软件工程作业1

一 制作个人简历
代码链接:https://github.com/SCOUTSONG/-
网页截图:

代码相关框架样式表:
https://github.com/SCOUTSONG/-/blob/master/代码相关框架样式表

二 查找阅读,文档说明下列问题
1.答:
通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。
瀑布模型是一个经典的软件生命周期模型,也叫预测型生命周期、完全计划驱动型生命周期。在这个模型里,在项目生命周期的尽早时间,要确定项目范围及交付此范围所需的时间和成本。在这个模型里,项目启动时,项目团队专注于定义产品和项目的总体范围,然后制定产品(及相关可交付成果)交付计划,接着通过各阶段来执行计划。应该仔细管理项目范围变更。如果有新增范围,则需要重新计划和正式确认。对于经常变化的项目而言,瀑布模型毫无价值。
瀑布模型把软件生命周期划分为8个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行维护。

下面举一个B2C电子商务网站建设的例子:
根据软件生命周期的原理,电子商务网站可以划分为系统规划、系统分析、系统设计、系统实施、系统测试、系统运行和维护。
一、系统规划阶段
系统规划阶段的任务是对企业的环境、目标、现行系统的状况等进行初步调查,根据企业目标和发展战略,研究新系统的必要性和可能性。在这个阶段给出备选方案,并进行可行性分析,写出可行性分析报告。待可行性分析报告审议通过后,编制系统设计任务书。
1.需求分析
为了进行可行性研究分析,首先对电子商务系统的需求进行分析。通过对企业的需求进行调查,明确电子商务网站需要做什么,做到什么程度。通过查阅资料、实地观察、业务专题报告等方法将该电子商务网站的需求归纳为功能需求和性能需求。
功能需求:B2C电子商务网站就是Business To Consumer也就是企业借助于Internet建立网点进行交易的一个系统。流程上,店家发布产品信息,消费者在线选购、在线支付,通过物流最后达成交易。所以从购买方看,需满足消费者在线选购、在线支付等;从销售方看,要能让店家整理网上商品、管理订单等。
性能需求:系统运行要稳定,在不同的系统中能正常运行,具有较强的适应性,可移植性。系统要有可扩展性,当出现新的需求时,能将其纳入系统,而不必改变原有的基本结构。
2.可行性分析
在电子商务网站需求已确定的情况下,对系统的进行判定,决定有无必要、有误可能完成系统的建设。在此,包括如下几个方面:运行可行性分析、经济可行性分析、技术可行性分析。
二、系统分析阶段
系统分析阶段的任务是根据系统设计任务书确定的范围,描述系统的业务流程,确定新系统的逻辑模型。系统分析阶段的成果体现在系统说明书中。
1.业务功能分析
根据功能需求,B2C电子商务网站要由前台系统和后台系统两部分构成的。前台系统是供消费者使用的界面,在这里可以提供注册会员、查看商品、购买商品、网上支付等基本功能。后台系统则是提供给销售方,主要是进行管理商品信息,同时要进行会员管理、配送商品、以及账务管理、报表统计等其他功能。
2.数据流分析
数据流分析通过绘制数据流图来帮助确定合理的数据项、确定合适的数据流向、确认合适的数据处理过程,为系统设计提供信息内容及处理依据。
三、系统设计阶段
系统设计阶段的任务就是根据系统说明书中的要求,设计新系统的物理模型,最终形成系统设计说明书。在这个阶段主要完成系统划分和数据库设计的工作。
1.系统划分
系统划分的基本思想是按功能角度自顶向下地将系统划分为若干个子系统,子系统再划分成模块,层层划分,逐步设计。B2C电子商务网站可以划分成登录帐户模块、浏览商品模块、购物车模块、订单管理模块、后台管理模块。
2.数据库设计
数据库的设计是系统设计的一个关键步骤。一个好的数据库不仅能反映现实世界实体之间的联系、能满足用户需求,还要易于扩充和修改。B2C电子商务建立了4个基本表:产品信息表、用户表、订单表、管理员表。
四、系统实施阶段
系统开发实施阶段要在系统规划的基础上确定整个商务系统结构中各个组成部分的具体内容,完成应用软件系统的编码,最终将电子商务系统的应用软件和各种平台集成在一起,并购置、安装和调试计算机设备,完成电子商务系统的上线运行准备。
1.编写模块:根据前面的系统设计说明书,确定需要用的技术来构筑电子商务平台,并完成应用软件系统的编码。B2C电子商务网站有登录帐户模块、浏览商品模块、购物车模块、支付模块、订单模块、后台管理模块。
2.构建硬件平台,根据各类技术标准,选择合适的硬件构建网站运行的平台,即其运行所需要的软硬件环境。
五、系统测试和维护阶段
系统测试阶段的目的是为了发现系统中存在的问题,需要测试系统的功能是否满足设计的需要,判定系统是否存在各种程度的错误或漏洞,测试的内容包括软件整体测试、极限测试、可操作性测试等。对于电子商务而言,主要考虑系统整体性能的指标参数,例如系统可支持的最大的用户数、系统的压力与性能比、系统的安全性指标等。在系统测试之后形成系统测试分析报告。
生产交付交付的东西有文档、数据、程序。

一般来说,软件生命周期主要包含以下六个阶段:
1、可行性研究和计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成开发任务的实施计划。
2、需求分析。对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件规格说明书及初步的用户手册,提交评审。
3、软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。
4、软件实现。把软件设计转换成计算机可以接受的程序代码。即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。
5、软件测试。在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。
6、运行和维护。将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。维护阶段也软件生命周期中所花费最多的阶段。

2.答:
软件灾难是计算机软件开发和维护过程中遇到的一系列严重问题的集中体现 。一方面是由软件本身的特点引起的,如软件越来越复杂 、软件故障难于检测 、工作量难以估计等 ,另一方面则是因为软件开发和维护方法不当所造成的 ,例如软件的个体化特征太强。

软件灾难级别分类为:
(1)微小的(Minor),一些小的问题如有个别错别字、文字排版不整齐等,这些问题对功能几乎没有影响,软件产品仍可使用。
(2)一般的(Major),不太严重的错误,如次要功能模块丧失、提示信息不够准确、用户界面差和操作时间长等。
(3)严重的(Critical),严重错误,指功能模块或特性没有实现,主要功能部分丧失,次要功能全部丧失,或致命的错误声明。
(4)致命的(Fatal),致命的错误,这些错误会造成系统崩溃、死机,或造成数据丢失、主要功能完全丧失等。

软件灾难的起源有:1.在需求阶段发现的缺陷;2.在构架阶段发现的缺陷;3.在设计阶段发现的缺陷;4.在编码阶段发现的缺陷;5.在测试阶段发现的缺陷。
软件灾难的来源有:1.由于需求的问题引起的缺陷;2.由于构架的问题引起的缺陷;3.由于设计的问题引起的缺陷;4.由于编码的问题引起的缺陷;5.由于测试的问题引起的缺陷;6.由于集成的问题引起的缺陷。

近些年发生的软件灾难从头到尾排序如下:
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-09-25 20:18  SCOUTSONG  阅读(226)  评论(0编辑  收藏  举报