一、软件工程概述
1.软件生存周期
软件: 包含程序、数据及相关文档
软件工程: 涉及到软件开发、维护、管理等多方面的原理、工具与环境。最终的目的是开发高质量的软件。
目的: 提高软件生产率、提高软件质量、降低软件成本。
文档的作用:
- 提高软件开发过程能见度
- 提高开发效率,便于发现错误和不一致性
- 作为开发人员在一定阶段的工作成果和结束标志
- 记录开发过程中的有关信息,便于协调以后的软件、开发、使用和维护
- 提供对软件的运行、维护和培训的有关信息,便于相关人员和用户之间的协作、交流和了解
- 便于潜在用户了解软件的功能、性能等各项指标,为它们选购符合自己需要的软件提供依据
2.软件生存周期模型
瀑布模型:
螺旋模型:
喷泉模型:
3.软件开发方法
软件开发方法:结构化方法、Jackson方法、原型化方法、面向对象开发方法
二、软件需求分析
1.可行性分析
2.软件需求分析
系统必须完成的事,以及必须具备的品质
包括:
- 功能需求:所开发的产品必须具备什么样的功能
- 非功能需求:是指产品必须具备的属性或品质,如可靠性、性能、响应时间、容错性、扩展性等
- 设计约束:也称为限制条件、补充规约,这通常是对解决方案的一些约束说明,例如必须采用国有自主知识版 权的数据库系统、必须运行在UNIX操作系统之下等
三、软件设计
1.软件设计原则
软件设计原则: 抽象、模块化、信息屏蔽、模块独立
软件设计任务与活动
2.内聚和耦合
内聚:
耦合:
四、软件测试
1.V模型
2.软件测试过程
3.黑盒测试与白盒测试
- 语句覆盖: 被测试程序的每个语句至少执行一次。是一种很弱的覆盖标准
- 判定覆盖: 分支覆盖,判定表达式至少获得一次真、假值。判定覆盖比语句覆盖强。
- 条件覆盖: 每个判定语句中的每个逻辑条件的各种可能值至少满足一次。
- 路径覆盖: 覆盖所有可能的路径。
- 判定/条件覆盖: 每个条件所有可能的值(真/假)至少出现一次,且每个判定本身的判定结果(真/假)也至少出现一次。
- 条件组合覆盖: 每个判定中条件的各种可能值的组合都至少出现一次。
4.测试原则与注意事项
五、软件运行与维护
1.软件维护
六、程序员职业素养
1.软件工程基本原理
- 用分阶段的生命周期计划严格管理,将复杂问题简化处理
- 坚持进行阶段评审
- 记录软件每个版本的状态,实行严格的版本控制
- 采用现代程序设计技术,但不是最新的技术
- 结果能清除的审查
- 开发小组人员少而精
- 不断累积和改进软件过程实践经验和技术
2.软件工程的最终目标
3.程序员的职业素养