文章目录
一:软件定义(1)问题定义(2)可行性研究(3)需求分析二:软件开发(1)总体设计(2)详细设计(3)编码和单元测试(4)综合测试三:软件维护一:软件定义
(1)问题定义
问题定义:弄清用户要解决什么问题
通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认
(2)可行性研究
可行性研究:确定问题是否可行
为了回答这个问题,系统分析员需要进行一次大大压缩和简化了的系统分析和设计过程。可行性研究阶段的任务是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。可行性研究的结果是客户作出是否继续进行这项工程的决定的重要依据,只有投资可能取得较大效益的那些工程项目才值得继续进行下去。
(3)需求分析
需求分析:为了解决这个问题,系统需要具备怎样的功能
系统分析员必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。用数据流图、数据字典和简要的算法表示系统的逻辑模型。这个阶段的一项重 要任务,是用正式文档准确地记录对目标系统的需求,这份文档通常称为软件需求规格说明书(SRS)。
二:软件开发
(1)总体设计
总体设计:设计软件结构,确定程序由哪些模块组成以及模块间的关系
软件工程师应该用适当的表达工具描述每种方案,分析每种方案,推荐一个最佳方案并制定出详细计划。另一项主要任务就是设计程序的体系结构,即确定程序由哪些模块组成以及模块间的关系。
(2)详细设计
详细设计:针对每个模块,设计详细规格说明,确定算法和数据结构
详细设计阶段的任务就是把设计方案具体化,也就是回答:“应该怎样具体地实现这个系统呢?”这个阶段的任务是设计出程序的详细规格说明。在这个阶段将详细地设计每个模块,确定实现模块功能所需要的具体算法和数据结构
(3)编码和单元测试
编码和单元测试:将详细设计内容用语言实现,并测试每个模块
编码和单元测试阶段的关键任务是写出正确的、容易理解的、容易维护的程序模块。程序员把详细设计的结果翻译成用选定的高级编程语言书写的程序,编写出的每-一个模块, 并对编写好的各个模块进行测试
(4)综合测试
综合测试:通过各种类型测试使软件达到预定要求
最基本的测试是集成测试和验收测试
三:软件维护
①改正性维护,即诊断和改正在使用过程中发现的软件错误;
②适应性维护,即修改软件以适应环境的变化;
③完善性维护,即根据用户的要求改进或扩充软件使它更完善;
④预防性维护,即修改软件,为将来的维护活动预先做准备。