软件工程实例 报告 文档 程序 都有
1 引言。
1编写目的: 可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可解 经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排。
明确开发风险及其所带来的经济效益。
本报告经审核后,交软件经理审查。
1.2 项目背景: 开发软件名称:超市进销存系统。
项目任务提出者:老师。
项目开发者:shu408157847。
用户:超市。
实现软件单位:学校 项目与其他软件,系统的关系: 本项目采用客户机/服务器原理,客户端的程序是建立在Windows NT 系统上以Microsoft Visual C++为开发软件的应用程序,服务器端采用Linux 为操作系统的工作站,是采用Oracle 8的为开发软件的数据库服务程序。
1.3 定义: [专门术语]: [缩写词]: 1.4 参考资料: 《软件工程导论》,张海藩,清华大学出版社。
《实用软件工程》,郑人杰等,清华大学出版社。
2.可行性研究的前提 2.1要求 主要功能: 性能要求: 对服务器上的数据必须进行及时正确的刷新。
输出要求:数据完整,详实。
输出要求:简捷,快速,实时。
安全与保密要求:权限不同 完成期限:预计六个月,即截止2007年12月8日。
2.2目标: 系统实现后,大大提高旅游局的机票预定服务效率超市的管理水平。
降低误差,减少开销 2.3条件,假定和限制 建议软件寿命:5年。
经费来源:。
硬件条件:服务器sun工作站,终端为pc机。
运行环境:Linux 数据库:Oracle8 投入运行最迟时间:2000/04/04 2.4可行性研究方法 2.5决定可行性的主要因素 1 经济可行性 成本/效益分析结果,短期-长期利益分析。
技术可行,现有技术可完全承担开发任务。
操作可行,软件能被原有工作人员快速接受。
3.技术可行性分析 3.1系统简要描述 3.2处理流程和数据流程 3.3环境可行性 3.4 人员可行性:操作宜学 3.5 效益分析 投资回收周期 2.3年 4.5敏感性分析 设计系统周期为五年, 估计最长可达10年 处理速度:一般查询速度关键数据查询速度: 5。
法律因素 6。
其他可供选择的方案 7.结论意见 由于投资效益比远大于100%, 技术、经济、操作都有可行性,可以进行开发. 以上为包含步骤,供你参考!!
求论文:软件工程国内外研究情况和发展趋势,存在问题
浅论软件工程 软件工程 (Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
在现代社会中,软件应用于多个方面。
典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。
同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。
这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域不同可以分为系统分析员,软件设计师,系统架构师,程序员,测试员等等。
人们也常常用程序员来泛指各种软件工程师。
软件工程的主要课程: 外语、高等数学、线性代数、高等代数、电子技术基础、离散数学、计算机引论(C语言)、数据结构、C++程序设计、汇编语言程序设计、算法设计与分析、计算机组成原理与体系结构、数据库系统、计算机网络、软件工程、软件测试技术、软件需求与项目管理、软件设计实例分析、CMM/ISO9000等。
软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。
(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。
正确性指软件产品达到预期功能的程度。
可用性指软件基本结构、实现及文档为用户可用的程度。
开销合宜是指软件开发、运行的整个开销满足用户要求的程度。
这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。
(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。
软件工程过程主要包括开发过程、运作过程、维护过程。
它们覆盖了需求、设计、实现、确认以及维护等活动。
需求活动包括问题分析和需求分析。
问题分析获取需求定义,又称软件需求规约。
需求分析生成功能规约。
设计活动一般包括概要设计和详细设计。
概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。
详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。
实现活动把设计结果转换为可执行的程序代码。
确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。
维护活动包括使用过程中的扩充、修改与完善。
伴随以上过程,还有管理过程、支持过程、培训过程等。
(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。
[编辑本段]软件工程的定义 软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义: (1)。
Barry Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
(2)。
IEEE在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究 (3)。
Fritz Bauer在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
目前比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
(4)。
《计算机科学技术百科全书》中的定义:软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。
软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。
其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。
[编辑本段]软件工程学的内容 软件工程学的主要内容是软件开发技术和软件工程管理. 软件开发技术包含软件工程方法学、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。
[编辑本段]软件工程基本原理 著名软件工程专家B.Boehm综合有关专家和学者的意见并总结了多年来
软件工程与计算机科学与技术的区别是什么?
软件工程 理论方面更强一些 是宏观的 具体见 http://www.itisedu.com/phrase/200602281725525.html 计算机科学与技术 计算机科学技术专业简介 一、培养目标及规格 本专业培养社会主义建设所需要的,德、智、体全面发展并能适应市场经济需要的,面 向基层的应用型高等专门人才。
在政治思想道德方面,拥护党的基本路线,热爱祖国,具有全心全意为人民服务精神; 遵纪守法,有良好的社会公共道德和职业道德。
在业务知识和能力方面,掌握本专业所必需的数学、外语、计算机电路、计算机组成原 理、汇编与高级语言程序设计、数据结构、操作系统、计算机网络等理论知识,熟练的微机 操作技能和OFFICE办公软件、图象处理软件、工具软件的使用方法;并具备一定的自学及跟 踪新技术发展的能力。
1. 计算机控制方向: (1) 毕业后能够从事计算机硬件系统应用与维护和小型控制系统的应用、开发与维 护工作。
(2)掌握本方向所必需的计算机电路、微机接口技术、单片机技术、计算机外部设备 、计算机控制技术及其实现等基础知识;并且掌握程序设计的基本方法和控制系统的调试技 能。
2. 计算机应用软件开发方向: (1)毕业后能够从事一般应用软件与CAD、CAI软件的开发、应用与维护工作。
(2)掌握本方向所必需的多媒体技术、多媒体程序设计、软件工程、应用软件开发技 术等基础知识;并且熟悉开发平台,掌握常用开发工具,了解软件开发的基本方法。
3. 计算机信息管理方向: (1)毕业后能够从事信息管理系统的应用、开发与维护工作。
(2)掌握本方向所必需的管理学、软件工程、数据库原理及相关的管理学科 的基础知识;并且掌握计算机网络环境下的计算机信息管理系统开发的基本方法和维护技能 。
4. 计算机网络方向: (1)毕业后能够参加计算机网络建设、从事管理以及应用开发工作。
(2) 掌握本方向所必需的数据通信和计算机网络、组网和网络管理、网络操作系统、IN TERNET和INTRANET应用以及JAVA语言程序设计等基础知识;并且掌握计算机组网的基本方法 和技能;具备一定的网络信息建设和网络管理的能力。
二、课程设置及教学管理 (—)统设专业教学计划中设统设必修课、选修课和集中实践环节。
其中统设必修课程由 中央电大统—开设,执行统一教学大纲、统一教材、统一考试、统—评分标准。
(二) 教学计划中所列选修课程供地方电大制定实施性教学计划时选用,亦可根据培养 目标及当地需要自开有针对性的选修课。
地方自开课程的教材、教学管理及考试工作由各省 级电大负责。
(三) 学生可以从公共选修课大表中选修课程,也允许学生跨科类选修,如选修经济、 文科的课程。
但这部分课程的学分不得超过课程总学分的 10%。
(四) 有实验、大作业的课程,必须按要求组织完成。
凡未做实验、大作业或实验、大 作业不及格者,不能取得该门课程的学分。
(五)本计划集中实践环节主要包括:计算机操作技能训练,流行实用软件使用,课程 设计,生产实习和毕业设计。
其中“计算机入门及操作技能训练”和“OFFICE办公软件”部 分由中央电大提供统设服务(即统一实验大纲和实验教材),地方电大应认真组织落实。
而 集中实践环节的其他部分,均全部由地方电大组织实施。
此外,学生应完成规定的课程设计 ,课程设计的内容应在本技术方向安排的大作业内容基础上,进行综合性课题设计。
(六)本计划毕业设计安排10 周。
重点培养学生综合运用所学理论知识和技能解决实际 问题的能力,选题要符合教学要求,并尽量选择与现实任务相联系的题目。
(七)本教学计划中的专业技术培养方向由各地电大根据培养人才的实际需要选定。
三、修业年限与毕业 实行完全学分制,学生注册后8年内取得的学分均为有效。
中央电大按三年脱产学习安排教学计划。
本专业最低毕业总学分为114学分。
学生修完课程,达到毕业总学分的要求,思想品德经鉴定符合要求,准予毕业并颁发毕 业证书,国家承认其高等教育三年制专科学历。
四、课程说明 统设必修课程: 1. 计算机数学基础 本课程4学分,课内学时72,开设一学期。
课程的主要内容:线性代数、概率基础、数理统计基础等。
2. 计算机电路基础 (1) 本课程4学分,课内学时72,其中实验18学时,开设一学期。
本课程是计算机应用专业的专业基础课。
主要内容包括:电路基本概念(电路与电路模 型、电路基本物理量、电路基本元件、基尔霍夫定律、简单的电阻电路),半导体基本器件 ;开关理论基础,门电路,组合逻辑电路与时序逻辑电路,可编程逻辑器件(随机读写存贮 器、只读存贮器、可编程逻辑阵列、通用逻辑阵列、现场可编程门阵列、在系统(ISP)编 程技术),数字系统的组成。
本课程后续课程:计算机电路基础(2)等。
3. 计算机电路基础(2) 本课程4学分,课内学时72,其中实验14学时,开设一学期。
本课程是计算机应用专业计算机控制方向的一门必修课。
主要内容包括:模拟电路基本 概念,运算放大器的原理及应用,功率放大及稳压电路;测试技术概述,机电系统运动参 数 (位移、速度、加速度、力、力矩、应变及应力等)的测试,过程系统...
软件开发与游戏设计的关系
你要学的话专业一定要学计算机软件开发专业了(听说游戏设计 美术是基础哩) 这个不用怕,游戏开发分美工和程序脚本开发的.你没美工基础就学软件开发吧人有理想就一定要冲着理想去奔!!!你要注意并不是学过了软件开发就可以找到游戏公司工作的,每年软件开发毕业的大学生多的要命.到时候就看你学的怎么样了学软件开发是要有很大的恒心的,看你应该是很爱玩游戏吧,以后学习的时候一点要把时间安排好了下面有些参考资料你先看看游戏脚本高级编程(附光盘) http://book.jqcq.com/product/584890.html游戏脚本编程”的全新领域,本书将从概括论述什么是脚本编程以及它是如何实现的开始,阐述游戏编程的理念,根据作者多年的开发经验,使读者掌握使用脚本是把游戏代码和主引擎分离开的最理想的办法,带读者进入神秘的游戏脚本语言世界,学习如何编写脚本语言,编译器理论,享受游戏编程方面的极大乐趣。
本书是游戏开? ... 游戏编程All in One http://book.jqcq.com/product/440188.html游戏开发人员,包含了Visual C++的《游戏编程All In One》为你提供了开发游戏所需要的一切准备工作。
本书根据内容由浅入深划分章节,覆盖了游戏开发所涉及的重要环节。
经验较少的开发人员可以从基本的C++编程开始,开发两个简单的文本游戏测试自己的技能。
之后,进入Windows编程以及和DirectX相关的主要内容:DirectX G ... C++游戏开发(附光盘) http://book.jqcq.com/product/620596.html游戏编程的概念、方法、技巧、实例以及综合运用。
本书共分为五部分,第一部分简要介绍编写游戏所需的工具和技能,包括大量有关编程的基本概念。
第二部分深入介绍面向对象编程。
第三部分展示如何构建游戏程序,并以Ping游戏为例进行全面讨论, 包括如何为游戏添加声音。
第四部分介绍编写游戏所需的高组C++技能。
第五部分 ... OpenGL游戏编程(含1CD) OpenGL游戏编程(含1CD) http://book.jqcq.com/product/440281.html游戏编程,但是以前从没接触过OpenGL的人编写.通过这本书,读者可以学到所有的基础知识,包括纹理贴图和顶点数组等一些非常重要的内容.完成了对本书的学习,你应该可以制作一些稍微复杂的游戏了. 这两本书很好: Windows 游戏编程大师技巧(第二版?含2CD) http://book.jqcq.com/product/368195.html这本书将带领你到达游戏编程技术的另一个层次。
光是人工智能那部分就很让人着迷了--那些演示非常精彩。
你还能从哪里获得如此详尽的介绍,教你把模糊逻辑学、神经网络和遗传法则运用到视频游戏上去呢?另外本书深入浅出地介绍了物理建模,教你如何将完全碰撞反应、动量传递和正向运动学等内容应用到游戏开发中,并进行实? ... 3D数学基础:图形与游戏开发 3D数学基础:图形与游戏开发 http://book.jqcq.com/product/584031.html3D几何世界背后的数学问题。
3D数学是一门与计算几何相关的学科,计算几何则是研究怎样用数值方法解决几何问题的学科。
3D数学和计算几何广泛应用在那些使用计算机来模拟3D世界的领域,如图形学、游戏、仿真、机器人技术、虚拟现实和动画等。
本书涵盖了理论知识和C++实现代码。
理论部分解释3D中数学和几何之间的关? ... 3D游戏编程大师技巧 http://book.jqcq.com/product/430242.html3D图形学的各个重要主题。
全书共分5部分,包括16章的内容。
第1~3章简要地介绍了Windows和DirectX编程,创建了一个Windows应用程序模板,让读者能够将精力放在游戏逻辑和图形实现中,而不用考虑Windows和DirectX方面的琐事;第4~5章简要地介绍了一些数学知识并实现了一个数学库,供以后编写演示程序时使用;第6章概述? ... 而服务器编程,我还没见过正真最好的书,毕竟是商业机密,不过有本书可以去看看: MUD游戏编程(配光盘) http://book.jqcq.com/product/584461.html本书从网络基本知识入手,全面阐述了如何开发纯文字MUD游戏。
并通过构建SimpleMUD和BetterMUD这两个MUD,重点讲述了如何实现MUD。
本书分为4大部分。
第1部分介绍了计算机网络的基本知识、Winsock/Berkeley Sockets API以及多线程的概念;展示了本书所用的基本库BasicLib中的所有类和函数;创建了一个套接字库SocketLib;介 ... 另外掌握一门脚本语言也是好的,无论服务器,客户端,都要使用。
Python编程基础 http://book.jqcq.com/product/580878.htmlPython是一种功能十分强大的面向对象编程语言,可以用于编写独立程序、快速脚本和复杂应用的原型。
作为一种开放源码的软件,Python可以自由获取,而且易学易用。
它已经在各种平台上实现了移植,其中包括Uniix、Linux、Windows 9x、Windows NT和MacOS。
本书详细讲述了Python语言的各个方面,在简单介绍Python的基本原理? ... 学习Python:第2版(影印版) http://book.jqcq.com/product/851923.htmlPython是流行、开源、面向对象的编程语言,既可以用于编写单机运行的程序也可以编写脚本程序,具有可移植、强大、易用等特点。
跟随专业教师学习是最快捷的掌握此语言的方式。
新版的《学习Python))把你带到Mark Lutz和David ...
软件为什么要采用工程化的方法开发
1.计算机科学计算机科学是一门包含各种各样与计算和信息处理相关主题的系统学科,从抽象的算法分析、形式化语法等等,到更具体的主题如编程语言、程序设计、软件和硬件等。
计算机科学分为理论计算机科学和实验计算机科学两个部分。
后者常称为“计算机科学”而不冠以“实验”二字。
前者有其他名称,如计算理论、计算机理论、计算机科学基础、计算机科学数学基础等。
数学文献中一般指理论计算机科学。
2.计算机工程计算机工程(也称为电子和计算机工程或计算机系统工程)是一门学科,结合内容都电气工程和计算机科学。
]计算机工程师正电气工程师有更多的培训领域的软件设计和硬件,软件一体化。
反过来,他们注重减少对电力电子学和物理学。
电脑工程师都参与了许多方面的计算,从设计的个别处理器,个人电脑,和超级计算机,以电路设计。
这一工程的许多子系统监控机动车辆。
第一个认可计算机工程学士学位课程在美国设立了Case Western Reserve大学在1971年,截至2004年10月在美国有170名工程技术认证委员会认证的计算机工程计划。
由于增加就业所需的工程师,谁可以设计和管理各种形式的计算机系统用于工业,一些大专院校提供世界各地的学士学位一般称为“计算机工程” 。
[引文需要]计算机工程和电子工程项目包括模拟和数字电路设计的课程。
如同大多数的工程学科,具有良好的知识的数学和科学是必要的计算机工程师。
计算机工程主要需要学习什么?计算机原理,操作.学习微机的工作原理,国际标准英文指法,五笔字型输入法DOS系统的操作应用,WINDOWS系列系统的操作.硬件基础.兼容机组装,调试.故障分析与排除,各类电脑检测仪的安装调试,硬件优化与升级.硬件市场行情.网络基础.局域网,互联网组建与通信,网络设计与制作,网络安全.机房布线,服务器架设.工具软件评测与使用.办公自动化软件操作及设备修理使用,系统优化与升级.常用软件,行业软件的使用.计算机图形设计及数据库系统编程,三维动画,3D等一整套技术系统学习. 3.软件工程 软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
在现代社会中,软件应用于多个方面。
典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。
同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。
这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
主要课程计算机基础与操作应用、计算机组装维修与局域网构建、计算机网络工程、电子商务、Cisco CCNA网络工程、REDHAT Linux操作系统、计算机网络安全分析管理、WEB网站设计、SQL Server数据库编程与管理、ASP商务网站与企业应用系统开发、VB企业应用系统开发、.NET编程与系统开发。
附:软件工程就业方向本专业学生毕业后可以从事各级各类企、事业单位的办公自动化处理、计算机安装与维护、网页制作、计算机网络和专业服务器的维护管理和开发工作、动态商务网站开发与管理、软件测试与开发及计算机相关设备的商品贸易等方面的有关工作。
软件工程专业旨在培养能从事计算机系统软件、应用软件的设计、研制和开发的高级工程技术人才。
培养具有良好的科学素养,系统地掌握计算机科学与技术基础知识、规范的软件设计与开发能力、良好的组织与交流能力,能在科研部门、教育单位、企业、事业和行政管理部门等单位从事复合型、实用型高层次软件设计、系统分析和工程应用的高级专门技术人才。
近几年,我国软件产业不断发展,对软件从业人员的需求也在不断增加中,新增的软件工程专业,对培养这方面的人才起很大的作用。
如果我以后学习软件工程,那么我是不是什么软件都可以编。
主要课程软件工程开发注意事项[2]外语、高等数学、线性代数、高等代数、电子技术基础、离散数学、计算机引论(C语言)、数据结构、C++程序设计、c#程序设计、JAVA程序设计、Delphi程序设计、汇编语言程序设计、算法设计与分析、计算机组成原理与体系结构、数据库系统、计算机网络、软件工程、软件测试技术、软件需求与项目管理、软件设计实例分析、CMM/ISO9000、Asp等。
编辑本段发展方向敏捷开发(Agile Development)被认为是软体工程的一个重要的发展。
它强调软体开发应当是能够对未来可能出现的变化和不确定性作出全面反应的。
敏捷开发被认为是一种“轻量级”的方法。
在轻量级方法中最负盛名的应该是“极限编程”(Extreme Programming,简称为XP)。
而与轻量级方法相对应的是“重量级方法”的存在。
重量级方法强调以开发过程为中心,而不是以人为中心。
重量级方法的例子比如CMM/PSP/TSP。
面向侧面的程序设计(Aspect Oriented Programming,简称AOP)被认为是近年来软体工程的另外一个重要发展。
这里的方面指的是完成一个功能的对象和函数的集合。
在这一方面相关的内容有泛型编程(Generic Programming)和模板。
以后出来可以做软件工程师、测试工程师、资讯工程师,除了软件工程师是要写代码外,其它的都不用你写代码,其次涉及到的编程语言有很多,你不可能全部懂,因此你只就选择一门或两门精读才行比如说java、或c++或c,你所说的iphone的android是其中的一种语言,不怎么难,前提是你有了编程基础,我要说的就这么多了,朋友希望对你有帮助。
软件设计与开发
专业前景:国家正在大力支持软件行业的发展,经过了系统化体系培训的高素质软件人才更容易走向国际化,也更受国内软件公司的欢迎。
据权威数据显示,未来十年内软件工程师依然是中国软件产业崛起中的黑马式工程。
培养目标:熟悉软件开发正规流程,掌握国际主流的大、中型软件开发平台和编程语言,具备一定创新能力和实际操作能力,成绩合格的毕业生将具备1-2年大型软件开发经验。
职业目标:java软件工程师、.net软件工程师、网站开发工程师、软件测试工程师证书:美国硅谷软件开发工程师认证、国家工业与信息化部软件工程师认证、国家人力资源与劳动保障部软件工程师认证、国家工业与信息化部653全国计算机专业人才认证
学软件开发需要学什么语言最好?
JAVA和C++区别 JAVA和C++都是面向对象语言。
也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。
而由于c++为了照顾大量的C语言使用者, 而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。
它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。
Java和c++的相似之处多于不同之处,但两种语言问几处主要的不同使得Java更容易学习,并且编程环境更为简单。
我在这里不能完全列出不同之处,仅列出比较显著的区别: 1.指针 JAVA语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了c/c++语言中指针操作失误,如野指针所造成的系统崩溃。
但也不是说JAVA没有指针,虚拟机内部还是使用了指针,只是外人不得使用而已。
这有利于Java程序的安全。
2.多重继承 c++支持多重继承,这是c++的一个特征,它允许多父类派生一个类。
尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容易。
Java不支持多重继承,但允许一个类继承多个接口(extends+implement),实现了c++多重继承的功能,又避免了c++中的多重继承实现方式带来的诸多不便。
3.数据类型及类 Java是完全面向对象的语言,所有函数和变量部必须是类的一部分。
除了基本数据类型之外,其余的都作为类对象,包括数组。
对象将数据和方法结合起来,把它们封装在类中,这样每个对象都可实现自己的特点和行为。
而c++允许将函数和变量定义为全局的。
此外,Java中取消了c/c++中的结构和联合,消除了不必要的麻烦。
4.自动内存管理 Java程序中所有的对象都是用new操作符建立在内存堆栈上,这个操作符类似于c++的new操作符。
下面的语句由一个建立了一个类Read的对象,然后调用该对象的work方法: Read r=new Read(); r.work(); 语句Read r=new Read();在堆栈结构上建立了一个Read的实例。
Java自动进行无用内存回收操作,不需要程序员进行删除。
而c十十中必须由程序贝释放内存资源,增加了程序设计者的负扔。
Java中当一个对象不被再用到时,无用内存回收器将给它加上标签以示删除。
JAVA里无用内存回收程序是以线程方式在后台运行的,利用空闲时间工作。
5.操作符重载 Java不支持操作符重载。
操作符重载被认为是c十十的突出特征,在Java中虽然类大体上可以实现这样的功能,但操作符重载的方便性仍然丢失了不少。
Java语言不支持操作符重载是为了保持Java语言尽可能简单。
6.预处理功能 Java不支持预处理功能。
c/c十十在编译过程中都有一个预编泽阶段,即众所周知的预处理器。
预处理器为开发人员提供了方便,但增加丁编译的复杂性。
JAVA虚拟机没有预处理器,但它提供的引入语句(import)与c十十预处理器的功能类似。
7. Java不支持缺省函数参数,而c十十支持。
在c中,代码组织在函数中,函数可以访问程序的全局变量。
c十十增加了类,提供了类算法,该算法是与类相连的函数,c十十类方法与Java类方法十分相似,然而,由于c十十仍然支持c,所以不能阻止c十十开发人员使用函数,结果函数和方法混合使用使得程序比较混乱。
Java没有函数,作为一个比c十十更纯的面向对象的语言,Java强迫开发人员把所有例行程序包括在类中,事实上,用方法实现例行程序可激励开发人员更好地组织编码。
8 字符串 c和c十十不支持字符串变量,在c和c十十程序中使用Null终止符代表字符串的结束,在Java中字符串是用类对象(strinR和stringBuffer)来实现的,这些类对象是Java语言的核心,用类对象实现字符串有以下几个优点: (1)在整个系统中建立字符串和访问字符串元素的方法是一致的; (2)J3阳字符串类是作为Java语言的一部分定义的,而不是作为外加的延伸部分; (3)Java字符串执行运行时检空,可帮助排除一些运行时发生的错误; (4)可对字符串用“十”进行连接操作。
9“goto语句 “可怕”的goto语句是c和c++的“遗物”,它是该语言技术上的合法部分,引用goto语句引起了程序结构的混乱,不易理解,goto语句子要用于无条件转移子程序和多结构分支技术。
鉴于以广理由,Java不提供goto语句,它虽然指定goto作为关键字,但不支持它的使用,使程序简洁易读。
l0.类型转换 在c和c十十中有时出现数据类型的隐含转换,这就涉及了自动强制类型转换问题。
例如,在c十十中可将一浮点值赋予整型变量,并去掉其尾数。
Java不支持c十十中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。
11.异常 JAVA中的异常机制用于捕获例外事件,增强系统容错能力 try{//可能产生例外的代码 }catch(exceptionType name){ //处理 } 其中exceptionType表示异常类型。
而C++则没有如此方便的机制。
怎样培养软件工程的思维与方法
专业培养目标:软件工程专业推行较高层次、实用型、复合式的工程科学技术教育,强调人才培养的实用性和专业性,培养具有良好的综合素质、良好的职业道德、扎实的软件理论和软件工程专业基础知识,并且具有良好的软件设计与实现能力、良好的项目管理能力、良好的交流与组织协调能力、较强的参与国际竞争能力和创新能力的计算机软件专业人才。
业务培养要求:本专业学生主要学习计算机科学、软件理论和软件工程专业方面的基本知识,接受科学思维和科学实验的基本训练;系统地学习最新的软件思想和软件开发技术;以实用型工程能力为培养导向,理论学习与实践紧密结合,加强英语水平、交流能力、团队精神和创新意识的培养,通过案例教学和实习使学生掌握软件开发技能和软件组织方法。
毕业后适合于到在科研部门、教育部门、企事业、技术和行政管理部门等单位能够从事计算机软件领域的科学研究、技术开发、教学及管理等工作。
也可以继续攻读计算机科学与技术、软件工程或相关技术学科、交叉学科的硕士学位。
毕业生应获得以下几方面的知识和能力:1.掌握计算机科学、计算机软件和软件工程等方面的基本理论和基本知识。
2.掌握最新的软件思想和软件开发技术。
3.具有良好的软件设计与实现能力。
4.具有一定的项目管理能力、良好的交流与组织协调能力。
5.得到科学研究的训练,初步掌握科学研究的基本方法。
6.熟练掌握一门外语。
能获取信息和应用信息。
学位主干课程:离散数学、数据结构、数字电路与逻辑设计、高级语言程序设计、操作系统、计算机网络、数据库系统、面向对象的程序设计、软件工程、软件体系结构、面向对象的分析与设计、软件需求分析、软件质量保证与测试、软件设计实例分析、软件项目管理等。
主要实践性教学环节:教学实习,课程设计,毕业实习,课外创新训练与社会实践。
主要专业实验:专业主干课程均安排实验,部分安排课程设计。