系统架构师(第2版)第5章 软件工程基础知识.docxVIP

系统架构师(第2版)第5章 软件工程基础知识.docx

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第5章软件工程基础知识

本章主要讨论软件工程的基本概念,论述软件工程中基本的软件开发方法。按照常见的软件开发阶段划分,分别讨论需求、分析、设计、编码和测试等环节中的常见方法和技术,并介绍近年来出现的一些新的软件工程开发方法。

5.1软件工程

20世纪60年代以前,计算机刚刚投入实际使用,软件设计往往只是为了一个特定的应用而在指定的计算机上进行设计和编制,采用密切依赖于计算机的机器代码或汇编语言,软件规模比较小,文档资料通常也不存在,很少使用系统化的开发方法,设计软件往往等同于编制程序,基本上是个人设计、个人使用、个人操作、自给自足的私人化的软件生产方式。

60年代中期,大容量、高速度计算机的出现,使计算机的应用范围迅速扩大,软件开发量急剧增长,软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出。1968年,北大西洋公约组织(NATO)在联邦德国的国际学术会议首次提出了软件危机(SoftwareCrisis)概念。

软件危机的具体表现为:

●软件开发进度难以预测;

●软件开发成本难以控制;

●软件功能难以满足用户期望;

●软件质量无法保证;

●软件难以维护;

●软件缺少适当的文档资料。

为了解决软件危机,1968、1969年NATO连续召开了两次会议,提出了软件工程的概念。

5.1.1软件工程定义

软件工程一直以来都缺乏一个统一的定义,很多学者和组织机构都分别给出了自己的定义:

●BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必须的相关文件资料。

●IEEE:软件工程是:

①将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;

②对①中所述方法的研究。

●FritzBauer:在NATO会议上给出的定义,建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。

●《计算机科学技术百科全书》:软件工程是应用计算机科学、数学、逻辑学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则和方法,以提高质量、降低成本和改进算法。其中,计算机科学、数学用于构建模型与算法;工程科学用于制定规范、设计范型(Paradigm)、评估成本及确定权衡;管理科学用于计划、资源、质量、成本等管理。

软件工程过程是指为获得软件产品,在软件工具的支持下由软件工程师完成的一系列软件工程活动,包括以下4个方面。

(1)P(Plan)——软件规格说明。规定软件的功能及其运行时的限制。

(2)D(Do)——软件开发。开发出满足规格说明的软件。

(3)C(Check)——软件确认。确认开发的软件能够满足用户的需求。

(4)A(Action)——软件演进。软件在运行过程中不断改进以满足客户新的需求。

5.1.2软件过程模型

软件要经历从需求分析、软件设计、软件开发、运行维护,直至被淘汰这样的全过程,这个全过程称为软件的生命周期。软件生命周期描述了软件从生到死的全过程。

为了使软件生命周期中的各项任务能够有序地按照规程进行,需要一定的工作模型对各项任务给予规程约束,这样的工作模型被称为软件过程模型,有时也称之为软件生命周期模型。

1.瀑布模型

瀑布模型(WaterfallModel)是最早使用的软件过程模型之一,包含一系列活动。这些活动从一个阶段到另一个阶段逐次下降,它的工作流程在形式上很像瀑布,因此被称为瀑布模型,如图5-1所示。

瀑布模型的特点是因果关系紧密相连,前一个阶段工作的输出结果,是后一个阶段工作的输入。每一个阶段都是建筑在前一个阶段正确实施的结果之上。每一个阶段工作完成后都伴随着一个里程碑(一组检查条件),对该阶段的工作进行审查和确认。历史上,瀑布模型起到了重要作用,它的出现有利于人员的组织管理,有利于软件开发方法和工具的研究。

瀑布模型的主要缺点有:

(1)软件需求的完整性、正确性等很难确定,甚至是不可能和不现实的。因为用户不理解计算机和软件系统,无法回答目标系统“做什么”,对系统将来的改变也难以确定,往往用“我不能准确地告诉你”回答开发人员。

(2)瀑布模型是一个严格串行化的过程模型,使得用户和软件项目负责人要相当长的时间才能得到一个可以看得见的软件系统。如果出现与用户的期望不一致,或者出现需求变更,将会带来巨大的损失(例如人力、财力、时间等)。

(3)瀑布模型的基本原则是在每个阶段一次性地完全解决该阶段的工作,不会出现遗漏、错误等情况,而实际上这是不现实或不可能的。

2.原型化模型

原型模型(PrototypeModel)又称快速原型。由于瀑布型的缺点,人

文档评论(0)

写作能手瓜皮 + 关注
实名认证
服务提供商

信息系统项目管理师持证人

(1)深耕智慧园区10年+ (2)IoT产品专家 (3)工业4.0领头羊 (4)就业咨询指导5年+ (5)方案输出百万字+

领域认证该用户于2023年05月18日上传了信息系统项目管理师

1亿VIP精品文档

相关文档