软件工程
一、定义:软件工程是应用计算机科学,数学,逻辑学及管理科学等原理,开发软件的工程。
1、可认为软件=程序+数据+文档
二、软件工程一般包含4个方面:
1、软件规格说明--规定软件的功能及其运行限制
2、软件开发--开发满足规格说明的软件
3、软件确认--确认是否满足用户的需求
4、软件演进--不断改进用户的需求
三、从开发的角度看:
用适当的资源,为开发软件进行的一组开发活动,活动结束时输入(即用户的需求)转化为输出(最终符合用户需求的产品)。
四、软件工程的七条基本原理:
1、用分段的生命周期计划严格管理
2、坚持进行阶段评审(提早发现错误)
3、实行严格的产品控制(采用基准配置管理--当需求变动时,其他各阶段的代码随之改动)
4、采纳现代程序设计技术(第四代语言的出现,采用先进的技术提高软件开发的效率)
5、结果应能清楚地审查(明确规定开发小组的责任和产品标准)
6、开发小组的人员少而精
7、承认不断改进软件工程实践的必要性(不断进行总结和问题报告统计)
五、软件开发方法
1、结构化方法--即面向功能或数据流的软件开发(使用数据流程图,数据字典等工具,主要观点是采用自顶向下,逐步求精,模块化的程序设计方法)
2、面向数据结构的软件开发--输出数据结构,到处程序框架。
3、面向问题的分析法--使用PAD图(是一种二维树形结构图,适用于中小型问题)
4、原型化方法
六、软件开发流程:
1、需求分析
A、向用户初步了解需求(用word列出开发的模块,每个大功能模块下有哪些小功能模块)
B、深入了解和分析需求(会列出相关的界面和界面功能)
C、向用户再次确认需求
软件设计
A、开发者对系统进行概要设计(基本处理流程,组织结构,模块划分,功能分配,接口实际,数据结构设计等)
B、在概要设计基础上进行详细设计(主要算法,数据结构,累的层次结构,调用关系,需要说明每个模块和子程序),保证需求完全分配给整个软件,完成《软件系统详细设计报告》
2、编码(应在整个项目时间中占1/3到1/2的时间)
根据报告分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。
3、测试
多种方式测试,要跟踪软件的运营状况持续修补和升级直到淘汰为止。
4、软件交付
开发者应向用户提交开发的目标安装程序、数据库的数据字典、《安装手册》、《用户使用指南》、需求报告、设计报告、测试报告、等双方约定的产物。
5、验收
查明项目的哪些工作已将完成,完成到生么程度
6、维护
修改后要填写《程序修改登记表》,并在《程序变更通知书》上写明新旧程序的不同之处。
六、软件设计方法
1、轻量级:极限流程,敏捷流程
2、重量级方法:ISO9000,CMM,,RUP(重量级方法中产生大量的正式文档)
七、软件需求
1、业务需求:通常来自项目投资人,购买产品的客户等;产生文档为项目轮廓图或市场需求文档
2、用户需求:用户需求描述了用户能使用系统来做什么
3、功能需求:描述开发人员需要实现什么,或规定开发人员不许再产品中实现的软件功能。