面向对象方法是主动地反复迭代
1、通过对象分类,达到从特殊到一般的归纳过程
2、通过类的继承,达到从一般到特殊的演绎过程
对象与现实实体对应
1、降低复杂性
2、提高可理解性
3、简化软件开发、维护工作
软件生命周期
软件定义、软件开发、运行维护
定义:
1、问题定义
2、可研性研究
3、需求分析
开发:
4、总体设计
5、详细设计
6、编码和单元测试
7、综合测试
维护:
8、软件维护
1、问题定义
确定要解决什么问题
系统分析员对客户调查,写出关于问题性质、工程目标和工程规模的书目报告,由客户确认
2、可研性研究
研究问题的范围,是否值得解决
系统分析员在较抽象的高层次进行分析和设计
3、需求分析
明确目标系统需要具备什么功能
用户:了解问题,但不能很好地表达
开发人员:知道怎么实现,不了解具体需求
系统分析员:需求分析阶段,和用户交流信息,得出用户认可的逻辑模型。用数据流图、数据字典、简要算法写出需求规格说明书。
4、总体设计
概况实现过程
软件工程师:设计几种方案
(1)描述几种方案
(2)分析优缺点
(3)选择最佳方案
(4)制定详细计划
如果客户接受方案,则进一步设计程序体系结构
5、详细设计
具体实现过程,把解法具体化,形成详细规格说明
详细设计每个模块,确定模块功能所需算法和数据结构
详细规格说明包含必要的细节
6、编码和单元测试
程序员根据目标系统的性质和实际环境选取合适的语言,把详细设计翻译成程序,并测试每一个模块
7、综合测试
通过各种测试
基本 (1)集成测试(2)验收测试
进一步(3)现场测试(4)平行运行
为使用户积极参加验收测试,对用户进行培训
8、软件维护
四类维护:
改正性维护、适应性维护、完善性维护、预防性维护
每项维护活动都经过:
提出维护要求、分析维护要求、提出维护方案、审批维护方案、确定维护计划、修改软件设计、修改程序、测试程序、复查验收
实际上是经历一场简化的软件定义开发过程