- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
东北大学软件工程复试大全软件工程
?一、软件工程概述
(一)软件工程定义
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到软件开发的各个方面,包括需求分析、设计、编码、测试、维护等,旨在提高软件的质量、可靠性和可维护性,同时控制软件开发成本和进度。
(二)软件工程的目标
1.正确性:软件应满足用户明确的和隐含的需求,正确地实现软件的功能。
2.可靠性:软件在规定的环境下和时间内,能正确地完成预期功能,不会出现故障。
3.高效性:软件运行时占用系统资源少,响应速度快,能有效地利用硬件资源。
4.可维护性:软件易于理解、修改和扩展,以便在软件生命周期中能够方便地进行维护。
5.可移植性:软件能在不同的硬件平台和操作系统上运行。
(三)软件工程的基本原理
1.用分阶段的生命周期计划严格管理:将软件生命周期划分为若干阶段,每个阶段都有明确的任务和目标,通过制定详细的计划来管理软件开发过程。
2.坚持进行阶段评审:在每个阶段结束时进行评审,及时发现和纠正错误,确保阶段成果的质量。
3.实行严格的产品控制:对软件产品的需求、设计、实现等进行严格的控制,确保软件产品符合用户需求和质量标准。
4.采用现代程序设计技术:运用先进的程序设计语言、工具和方法,提高软件的开发效率和质量。
5.结果应能清楚地审查:软件开发过程中的各种文档和代码应清晰、规范,便于审查和理解。
6.开发小组的人员应该少而精:选择高素质、有经验的人员组成开发小组,提高开发效率和质量。
7.承认不断改进软件工程实践的必要性:随着技术的发展和实践经验的积累,不断改进软件工程的方法和技术。
二、软件生命周期
(一)软件定义时期
1.问题定义
明确要解决的问题是什么,对问题进行简要的描述,确定项目的目标和规模。
2.可行性研究
从技术、经济和操作等方面研究问题是否可行,是否有解决问题的可能方案。包括技术可行性分析、经济可行性分析和操作可行性分析。
(二)需求分析时期
1.需求获取
通过与用户沟通、调研等方式,获取用户对软件系统的功能、性能、可靠性等方面的需求。
2.需求分析
对获取的需求进行分析和整理,确定软件系统的逻辑模型,明确软件系统应该做什么。
3.编写需求规格说明书
将需求分析的结果以文档的形式记录下来,形成需求规格说明书,作为软件开发的依据。
(三)软件设计时期
1.总体设计
确定软件系统的总体结构,包括模块划分、模块之间的接口和调用关系等。设计软件的总体架构,如分层架构、客户端/服务器架构等。
2.详细设计
对总体设计中的每个模块进行详细设计,确定模块的内部算法和数据结构。使用详细设计工具,如流程图、N-S图等,描述模块的实现细节。
(四)编码时期
根据详细设计的结果,使用选定的程序设计语言编写程序代码。遵循编码规范,保证代码的可读性、可维护性和正确性。
(五)测试时期
1.单元测试
对每个模块进行单独测试,检查模块是否正确实现了规定的功能。
2.集成测试
将各个模块组装起来进行测试,检查模块之间的接口是否正确,模块组合后是否能实现预期的功能。
3.系统测试
对整个软件系统进行测试,检查软件系统是否满足用户的需求和质量标准。包括功能测试、性能测试、可靠性测试等。
4.验收测试
由用户对软件系统进行验收测试,确认软件系统是否符合用户的实际需求,能否投入使用。
(六)维护时期
1.改正性维护
修改软件在测试和运行过程中发现的错误。
2.适应性维护
修改软件以适应环境的变化,如硬件升级、操作系统更新等。
3.完善性维护
根据用户的需求变化,对软件进行功能扩展和性能优化。
4.预防性维护
对软件进行维护,以提高软件的可维护性和可靠性,预防未来可能出现的问题。
三、软件开发模型
(一)瀑布模型
1.特点
按照软件生命周期的阶段依次进行软件开发,每个阶段都有明确的输入和输出,如同瀑布流水一样,前一个阶段完成后才进入下一个阶段。
2.优点
阶段明确,文档驱动,便于管理和控制软件开发过程。
3.缺点
缺乏灵活性,后期发现前期错误时修改成本高,不适合需求不明确或变化频繁的项目。
(二)快速原型模型
1.特点
快速构建软件的原型,让用户对软件的功能和界面有初步的认识,然后根据用户的反馈对原型进行修改和完善,最终形成软件产品。
文档评论(0)