面向对象的分析方法
什么是软件
- 一种特别的产品
- 随着其规模和复杂性的进步及应用领域的扩大,逐渐形成了工程
软件的组成
- 程序(program)
- 相关数据(data)
- 说明文档(document)
什么是程序
程序是按照事先设计好的功能和性能要求执行的指令序列
什么是数据
数据是程序能正常操纵信息的数据结构
什么是文档
文档是与程序开发维护和使用有关的各种图文资料
软件工程
- 针对软件这一具有特征性质的产品的工程化方法
- 涵盖了软件生存周期的所有阶段
- 并提供了一整套工程化的方法来指导软件人员的开发工作
软件危机
什么是软件危机
软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题
软件危机需要解决的需求
1.如何开发软件,以满足日益增长、日趋复杂的需求
2.是如何维护数量不断膨胀的软件产品
软件工程学科的提出
为了解决软件危机所带来的一系列问题,提出了“软件工程”的概念,从此出现了一门新的学科---软件工程
软件的生命周期
1.分析
2.设计
3.实现
4.测试
5维护
软件工程的方法就是基于软件危机的问题提出来的。大型的、复杂的软件系统开发是一项工程,必须按工程学的方法组织软件的生产和管理,必须经过系统的分析、设计、实现、测试和维护等一系列的软件生命周期阶段
软件工程知识体系
软件工程包含两部分内容
软件开发技术
包括软件开发方法学、软件工具和软件工程环境
软件项目管理
包括软件度量、项目估算、进度控制、人员组织、配置管理、
项目计划等
软件开发三要素
1.方法
2.工具
3.过程
软件工程应该包含的知识
IEEE的软件工程实施体系指南SEWBOK(Guide to the Software Engineering Body of Knowledge 2004Version)界定了软件工程的10个知识领域(KAs:Knowledge Areas),即软件需求、软件设计、软件构建、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具和方法及软件质量。
软件工程框架
软件工程的框架由软件工程目标、软件工程活动和软件工程原则三个方面的内容构成。
- 软件工程目标
- 软件工程活动
- 软件工程原则
软件工程目标
开发与生产出具有良好的软件质量和费用合算的产品,即生产具有正确性、可用性以及费用合算的软件产品。
正确性
指软件产品达到预期功能的程度
可用性
指软件基本结构、实现及文档为用户可用的程度
费用合算
指软件开发运行的整个开销能满足用户要求的程度
软件质量
是指该软件能满足明确的和隐含的需求能力有关特征和特性的总和
软件工程活动
需求
1.问题分析包括需求获取和定义,又称软件需求规约
2.需求分析包括生成软件功能规约
设计
1.包括概要设计和详细设计
实现
1.是把设计结果转换为可执行的程序代码
确认
1.贯穿整个开发过程,对完成的结果进行确认,保证产品满足用户的要求
支持
1.支持是修改和完善活动
软件工程原则
1.选取适宜开发范型
2.采用合适的设计方法
3.提供高质量的工程支持
4.重视开发过程的管理
软件工程基本原理
1.用分阶段的生命周期计划严格管理 2.坚持进行阶段评审。 3.实行严格的产品控制。 4.采用现代程序设计技术 5.结果应能清楚地审查。 6.开发小组的人员应该少而精。 7.承认不断改进软件工程实践的必要性。