- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《软件⼯程导论》第⼀章软件⼯程学概述1.3软件⽣命周期
概括地说,软件⽣命周期由3个时期组成,每个时期⼜进⼀步划分成若⼲个阶段:
软件定义(问题定义、可⾏性研究、需求分析)
软件开发(总体设计、详细设计、编码和单元测试、综合测试)
总体设计、详细设计,⼜称 “系统设计“。
编码和单元测试、综合测试,⼜称 “系统实现“。
软件维护
当软件在使⽤过程中发现错误时,应加以改正;
当环境改变时,应该修改软件以适应新的环境;
当⽤户有新要求时,应该及时改进软件以满⾜⽤户的新需要。
通常对维护时期不再进⼀步划分阶段,但是每⼀次维护活动本质上都是⼀次压缩和简化了的定义和开发
过程。
⼀、问题定义(阶段)
该阶段必须回答的关键问题是:“要解决的问题是什么?“
通过对客户的访问调查,系统分析员扼要地写出关于问题性质、⼯程⽬标和⼯程规模的书⾯报告,经过
讨论和必要的修改之后,这份报告应该得到客户的认可。
⼆、可⾏性分析(阶段)
该阶段要回答的关键问题是:“对于上⼀个阶段所确定的问题有⾏得通的解决办法吗?“
可⾏性研究应该⽐较简短,这个阶段的任务不是具体解决问题,⽽是研究问题的范围,探索这个问题是
否值得去解,是否有可⾏的解决办法。
可⾏性研究的结果是客户作出是否继续进⾏这项⼯程的决定的重要依据,⼀般来说,只有投资可能取得
较⼤效益的那些⼯程项⽬才值得继续进⾏下去。可⾏性研究以后的那些阶段,将需要投⼊更多的⼈⼒物
理。及时终⽌不值得投资的⼯程项⽬,可避免更⼤的浪费。
三、需求分析(阶段)
这个阶段的任务仍然不是具体地解决问题,⽽是准确地确定“为了解决这个问题,⽬标系统必须做什么
“ ,主要是确定⽬标系统必须具备哪些功能。
系统分析员在需求分析阶段必须和⽤户密切配合,充分交流信息,以得出经过⽤户确认的系统逻辑模
型。
通常⽤数据流图、数据字典和简要的算法表⽰系统的逻辑模型。
在该阶段确定的 “系统逻辑模型“ 是以后设计和实现⽬标系统的基础,因此必须准确完整地体现⽤户的要
求。
这个阶段的⼀项重要任务,是⽤正式⽂档准确地记录对⽬标系统的需求,这份⽂档通常称为规格说明书
(specification)。
四、总体设计 / 概要设计(阶段)
该阶段必须回答的关键问题是:“概括地说,应该怎样实现⽬标系统?“
步骤:
第⼀步:应该设计出实现⽬标系统的⼏种可⾏⽅案。通常应设计出低成本、中等成本、⾼成本3种⽅
案。软件⼯程师应该⽤适当的表达⼯具描述每种⽅案,分析每种⽅案的优缺点。
第⼆步:在充分权衡各种⽅案的利弊的基础上,推荐⼀个最佳⽅案。制定出实现最佳⽅案的详细计划。
如果客户接受所推荐的⽅案,则进⾏第三步:
设计程序的体系结构,也就是确定程序由哪些模块组成以及模块间的关系。
第⼀、⼆步的设计⼯作,确定了解决问题的策略及⽬标系统中应包含的程序。但是,怎样设计程序呢?
答:软件设计的⼀条基本原理就是,程序应该模块化,即⼀个程序应该由若⼲个规模适中的模块按合理
的层次结构组织⽽成。
五、详细设计(阶段)
总体设计阶段以⽐较抽象概括的⽅式提出了解决问题的办法。详细设计阶段的任务就是把解法具体化,
也就是回答这个关键问题:“应该怎样具体地实现这个系统呢?“
该阶段的任务还不是编写程序,⽽是设计出程序的详细规格说明。
详细设计,也称为模块设计,在这个阶段将详细地设计每个模块,确定实现模块功能所需要的算法和数
据结构。
六、编码和单元测试(阶段)
这个阶段的关键任务是写出正确的容易理解的、容易维护的程序模块。
程序员应根据⽬标系统的性质和实际环境,选取⼀种适当的⾼级程序设计语⾔,把详细设计的结果翻译
成⽤选定的语⾔书写的程序,并且仔细测试编写出的每个模块。
七、综合测试(阶段)
该阶段的关键任务,是通过各种类型的测试(及相应的调试)使软件达到预定的要求。最基本的测试是
集成测试和验收测试
集成测试,是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配的
过程中对程序进⾏必要的测试。
验收测试,是按照规格说明书的规定(通常在需求分析阶段确定),由⽤户(或在⽤户积极参加下)对
⽬标系统进⾏验收。
必要时,还可以再通过现场测试或平⾏运⾏等⽅法对⽬标系统进⼀步测试检验。
通过对软件测试结果的分析可以预测软件的可靠性;反之,根据对软件可靠性的要求,也可以决定测试
和调试过程什么时候可以结束。
应该⽤正式的⽂档资料把测试计划、详细测试⽅案以及实际测试结果保存下来,作为软件配置的⼀个组
成部分。
⼋、软件维护(阶段)
维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满⾜⽤户的需要。
通常有4类维护活动:
改正性维
原创力文档


文档评论(0)