软考—程序员(软件生存周期)

**引言:**同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡的许多阶段,一般称为软件生存周期。把整个软件生存周期划分为若干阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,软件规模、种类、开发方式、开发环境以及开发时使用的方法论都会影响软件生存周期阶段的划分。在划分软件生存周期阶段时应该遵循一条基本原则,就是使各阶段的任务彼此间尽可能相对独立,同一阶段各任务的性质尽可能相同,从而降低每个阶段任务的复杂程度,简化不同阶段之间的联系,有利于软件开发的组织管理。
1.问题定义
问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”通过问题定义阶段的工作,系统分析员应该提出关于问题性质、工程目标和规模的书面报告。问题定义阶段是软件生存周期中最简短的阶段,一般只需要一天甚至更少的时间。
2.可行性分析
这个阶段要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法嘛?”可行性分析阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,以及是否有可行的解决办法。
3.需求分析
需求分析阶段的任务不是具体地解决问题,而是准确地确定软件系统必须要做什么,确定软件系统的功能、性能、数据和界面的要求,从而确定系统的逻辑模型。
4.总体设计
这个阶段必须回答的关键问题是:“概括地说,应该如何解决这个问题?”
首先,应该考虑几种可能的解决方案。系统分析员应该使用系统流程图或其他工具描述每种可能的系统,估计每种方案的成本和效益,还应该再充分权衡各种方案的利弊的基础上,推荐一个较好的系统(最佳方案),并且制定实现所推荐的系统额详细计划。总体设计阶段的第二项主要任务就是设计软件的结构,也就是确定程序由哪些模块组成以及模块件的关系。通常用层次图或结构图描绘软件的结构。
5.详细设计
总体设计阶段以比较抽象概括的方式提出了解决问题的办法。详细设计阶段的主要任务就是对每个模版完成的功能进行具体描述,也就是回答下面这个关键问题:“应该怎样具体地实现这个系统呢?”。因此,详细设计阶段的任务不是编写程序,而是设计出程序的详细规格说明,该说明应该包含必要的细节,程序员可以根据它们写出实际的程序代码。通常采用HIPO(层次加输入/处理/输出图)或PDL语言(过程设计语言)描述详细设计的结果。
6.编码和单元测试
编码阶段就是把每个模块的控制结构转换成计算机可接受的程序代码,即写成某种特定程序设计语言表示的源程序清单,并仔细测试编写出的每一个模块。
7.综合测试
综合测试阶段的关键任务是通过各种类型的测试(及相应的测试)使软件达到预定的要求。最基本的测试是集成测试和验收测试。所谓集成测试,是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试。所谓验收测试,是按照规格说明书的规定(通常再需求分析阶段确定),由用户(或在用户积极参与下)对目标系统进行验收。
通过对软件测试结果的分析可以预测软件的可靠性;反之,根据对软件可靠性的要求,也可以决定测试和调试过程什么时候可以结束。应该用正式的文档资料把测试计划、详细测试方案以及实际测试结果保存下来,作为软件配置的一个组成部分。
8.维护
维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。通常由改正性、适应性、完善性和预防性四类维护活动。其中,改正性维护是指诊断和改正在使用过程中发现的软件错误;适应性维护是指修改软件以适应环境的变化;完善性维护是指根据用户的要求改进和扩充软件使它更完善;预防性维护是指修改软件为将来的维护活动预先做准备。
每一项维护活动都应该准确地记录下来,作为正式的文档资料加以保存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值