软件工程第一次作业

一.个人简历

 

 代码地址:https://github.com/youyang666/Hello-World/blob/master/yy.html

二、查找阅读,文档说明下列问题

1、解释一个软件生命周期的概念并提供一个例子,解释它的各阶段,包括生产交付(不仅限于瀑布模型生命周期);

答:

软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。但随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导意义正在逐步减少。
生命周期的每一个周期都有确定的任务,并产生一定规格的文档(资料),提交给下一个周期作为继续工作的依据。按照软件的生命周期,软件的开发不再只单单强调“编码”,而是概括了软件开发的全过程。软件工程要求每一周期工作的开始只能必须是建立在前一个周期结果“正确”前提上的延续;因此,每一周期都是按“活动-结果-审核-再活动-直至结果正确”循环往复进展的。
阶段:
同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生存周期(软件生命周期)。把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。可以将软件生命周期概括为软件计划与可行性研究阶段(问题定义、可行性研究)、需求分析阶段、软件设计阶段(概要设计和详细设计)、软件编码阶段、软件测试阶段和软件运行与维护阶段。软件计划与可行性研究阶段(问题定义、可行性研究):此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
需求分析阶段:在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,也是在整个软件开发过程中不断变化和深入的阶段,能够为整个软件开发项目的成功打下良好的基础。
软件设计阶段(概要设计和详细设计):主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件编码阶段:是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。
软件测试阶段:在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。
软件运行和维护阶段:是软件生命周期中持续时间最长的阶段,包括纠错性维护和改进性维护两个方面。
例子:

螺旋模型

1988年,Barry Boehm正式发表了软件系统开发的"螺旋模型",它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。
螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:
(1) 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
(2) 风险分析:分析评估所选方案,考虑如何识别和消除风险;
(3) 实施工程:实施软件开发和验证;
(4) 客户评估:评价开发工作,提出修正建议,制定下一步计划。
螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。但是,螺旋模型也有一定的限制条件,具体如下:
(1) 螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此,这种模型往往适应于内部的大规模软件开发。
(2) 如果执行风险分析将大大影响项目的利润,那么进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目。
(3) 软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险
一个阶段首先是确定该阶段的目标,完成这些目标的选择方案及其约束条件,然后从风险角度分析方案的开发策略,努力排除各种潜在的风险,有时需要通过建造原型来完成。如果某些风险不能排除,该方案立即终止,否则启动下一个开发步骤。最后,评价该阶段的结果,并设计下一个阶段

2、查阅软件灾难相关资料,给软件灾难从头到尾排序。

软件灾难是指由于软件缺陷——BUG——所引起的灾难性故障,导致经济危害、政治危害、社会危害,甚至危及到人民大众,对社会生活产生严重的难以修复的危害。

对软件缺陷的定义:从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。

缺陷来源:1.由于需求的问题引起的缺陷2.由于构架的问题引起的缺陷3.由于设计的问题引起的缺陷4.由于编码的问题引起的缺陷5.由于测试的问题引起的缺陷6.由于集成的问题引起的缺陷

缺陷的级别:1.微小的2.一般的3.严重的4.致命的

近年来发生的软件灾难事件的排序:
1.  水手号(Mariner)的致命BUG (1962)

2.  哈特福德体育场倒塌事件 (1978)

3.  中情局给苏联送天然气 (1982)

4.  几乎引发第三次世界大战 (1983)

5.  医疗器械致死案 (1985)

6.  华尔街崩溃 (1987) 

7.  AT&T电话断网 (1990)

8.  爱国者辜负了战士 (1991)

9.  奔腾的长除法缺陷 (1993)

10.  阿丽亚娜火箭爆炸 (1996)

11.  天网带来了世界末日 (1997)

12.  火星气候探测器坠毁 (1998)

13.  灾难研究 (1999)

14.  英国护照不知所踪 (1999)

15.  千年之殇Y2K (1999)

16.  炸弹(Dot-Bomb)崩溃 (2000)

17.  爱虫病毒 (2000)

18.  为癌症治疗而死 (2000)

19.  EDS放弃了对对儿童的支持 (2004)

20.  FBI的三部曲终结 (2005)

posted @ 2019-10-07 13:16  游扬  阅读(138)  评论(0编辑  收藏  举报