第章软件工程学概述2_第1页
第章软件工程学概述2_第2页
第章软件工程学概述2_第3页
第章软件工程学概述2_第4页
第章软件工程学概述2_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程导论

天津市大学软件园本章学习目标:了解软件危机的发生原因和典型表现识记软件工程的概念和基本原理识记软件生命周期和软件过程的概念识记常用的生命周期模型第1章软件工程学概述第1章软件工程学概述

1.1软件危机

1.2软件工程

1.3软件生命周期第1章软件工程学概述

1.1软件危机

1.2软件工程

1.3软件生命周期1.1.1软件的定义软件的经典定义: 软件=“完成特定功能的程序+数据结构+文档”软件的特征:

1、软件是开发的,而不是制造的;

2、软件不磨损,但退化;

3、自定义。1.1.1软件的定义软件发展中的相关问题:

硬件的发展超过软件;

现有软件与用户的要求矛盾;

软件失败导致“灾难性后果”;

需要高质量、高可靠性的软件;

设计的问题使升级和维护十分困难。1.1.1软件危机的定义定义“在计算机软件的开发和维护过程中所遇到的一系列严重的问题。”1.1.2软件危机的表现(1)对软件开发成本和进度的估计常常很不准确。

实际成本往往大大超过估计成本,或开发进度比计划推迟几个月或一年以上。这种现象极大地影响了软件开发组织的信誉,也会引起用户的强烈不满。(2)软件产品质量较差,可靠性低。

软件开发过程中不能坚持严格的审查、复审和测试,使得软件可靠性差、质量问题多。

1.1.2软件危机的表现(3)用户对开发出来的软件产品不满意。开发人员与用户之间的交流不充分,仅对用户需求有了一个模糊的认识就匆忙开始写程序。这样的结果就是用户对于所谓已经完成的软件很不满意。(4)软件常常是不可维护的。在实际项目中,很多程序的错误往往难以修改,而且不能适应软硬件环境的变化,也无法添加用户需要的一些新功能。1.1.2软件危机的表现(5)软件产品缺少应有的文档资料。软件=程序+数据+文档。开发人员对文档认识不足,不能保证在开发过程中文档的完整性和准确性。缺少文档资料会造成软件开发、管理、审查、用户交流、软件维护等方面的诸多问题。(6)软件产品的供不应求。软件开发的生产率远远低于计算机硬件发展速度和用户的需求,造成了软件产品的供不应求。产产生软软件危危机的的原因因客观原原因::软件与与硬件件产品品不同同,软软件是是“开开发的的”而而非““制造造的””。其其开发发过程程难以以管理理和控控制,,产品品质量量也不不好把把握。。软件没没有““磨损损”,,但是是它会会不断断“退退化””。软软件系系统无无法适适应不不断变变化的的环境境和功功能需需求。。软件都都规模模庞大大,而而程序序的复复杂性性是随随其规规模的的扩大大呈指指数增增加。。主观原原因::对用户户要求求没有有完整整和准准确的的认识识就匆匆忙编编写程程序。。对软件件的开开发过过程的的认识识不准准确。。生命命周期期的每每个阶阶段都都有特特定的的工作作和特特点,,都是是不可可逾越越的。。只有有上一一阶段段工作作完成成,才才能开开始下下一阶阶段的的工作作。对软件件质量量的重重视不不够是是造成成软件件开发发成本本激增增的主主要原原因。。注意意软件件开发发过程程中错错误的的“放放大效效应””。轻视软软件维维护将将是一一个重重大的的错误误。软软件开开发时时期各各阶段段的关关键目目标都都是提提高软软件的的可维维护性性。产产生软软件危危机的的原因因第1章软软件件工程程学概概述1.1软件危危机1.2软件工工程1.3软件生生命周周期1.4软件过过程1.2软软件工工程为了更更有效效地开开发与与维护护软件件,软软件工工作者者在20世纪60年代后后期开开始认认真研研究消消除软软件危危机的的途径径,从从而逐逐渐形形成了了一门门新兴兴的工工程学学科——计算机机软件件工程程学(简称为为软件工工程)。软软件工工程的的概念念定义指导软软件开开发与与维护护的工工程科科学采用工工程的的概念念、原原理、、技术术和方方法来来开发发和维维护软软件,,综合合运用用正确确的管管理技技术和和最好好的技技术方方法,,以经经济地地开发发出高高质量量的软软件并并有效效维护护它。。软软件工工程的的概念念IEEE的定义①软件工工程是是把系系统的的、规规范的的、可可度量量的途途径应应用于于软件件开发发、运运行和和维护护过程程,也也就是是把工工程应应用于于软件件;②对这些途途径加以以研究。。软软件工程程的概念念诸多软件件工程的的定义所所揭示的的软件工程程的本质质认识是一一致的::软件工程程一般更更关注于于大型软软件系统统的开发发;其中中心任务务是控制制整个软软件系统统的复杂杂性,提提高软件件开发的的效率,,加强人人员和技技术的管管理,更更好地满满足用户户的需要要。软软件工程的的基本原理(1)用分阶段的的生命周期计计划严格管理理应该将软件开开发和维护的的漫长生命周周期划分成若若干个阶段,,并针对每个个阶段制定切切实可行的计计划,然后严严格按照计计划对软件的的开发和维护护工作进行管管理。(2)坚持进行阶阶段评审错误发现的越越早,改正错错误所付出的的代价就越小小。因此,开开发人员应该该坚持在每个个阶段都进行行严格的评审审,以便更更早地发现和和改正错误。。软软件工程的的基本原理(3)实行严格的的产品控制在软件开发的的过程中不应应随意修改需需求,当改变变需求时,,必须实行严严格的产品控控制以保持软软件各个配置置成分的一一致性。(4)采用现代程程序设计技术术采用先进的技技术不仅可以以提高软件开开发和维护的的效率,而且且还能有效地地提高软件产产品的质量。。软软件工程的的基本原理(5)结果可以以清楚地审查查应规定每个开开发阶段的产产品标准和文文档要求,使使得到的结果果可以清楚地地审查。(6)开发小组成成员少而精软件开发小组组人员要求素素质高,而人人数不宜过多多。随着人数数n的增加,通信信路径也急剧剧增加。软软件工程的的基本原理(7)承认不断改改进软件工程程实践的必要要性软件开发和维维护的过程也也需要随之改改进。要主动动采用最新的的软件技术,,而且还要不不断总结经验验和教训、收收集历史数据据帮助开发人人员改进软件件工程实践。。软软件工程方方法学软件生命周期期全过程中使使用的一整套套技术方法的的集合称为方方法学。软件工程方法法学主要包含含3个要素:方法、工具和和过程。目前使用最为为广泛的软件件工程方法学学是传统方法学和面向对象方法法学。软软件工程方方法学1.传统方法学-也称为生命周周期方法学或或结构化范型型。-它采用结构化化技术(包括括结构化分析析、结构化设设计和结构化化实现)来完完成软件开发发的各项任务务。-这种方法学将将软件生命周周期划分为若若干个阶段,,然后顺序完完成各个阶段段的任务。每每个阶段依依赖上一个阶阶段产生的结结果,并将上上一阶段工作作进一步具体体化。软软件工程方方法学2.面向对象方法法学-以数据为主线线,将数据和和其上的操作作紧密结合起起来。面向对对象方法学的的四要素:类类+对象+继承+消息传递。-面向对象的方方法学是尽量量模拟人类习习惯的思维方方式,使软件件开发过程更更接近人类认认知模式,做做到问题空间间与解空间在在结构上一致致。-运用面向对象象方法学开发发出来的软件件产品一般是是由很多较小小的独立对象象组成,从而而降低了软件件产品的复杂杂性,增强了了可理解性,,使得开发和和维护更为简简单有效。第1章软件工工程学概述1.1软件危机1.2软件工程1.3软件生命周期期软软件生命命周期的概念念定义一个软软件从从定义义、开开发、、使用用和维维护,,直至至最终终被废废弃,,要经经历的的漫长长的时时期称称为软软件生生命周周期。。软软件件生命命周期期的概概念构成3个时期期:软件定定义、软件开开发和运行维维护各时期任任务:软件定义义时期::确定软件件开发的的总目标标和工程程的可行行性;导导出实现现策略和和系统必必须完成成的功能能;进行行成本效效益的估估算;制制定开发发计划等等。软件开发发时期::具体设计计和实现现前一个个时期定定义的软软件。维护时期期:使软件持持久地满满足用户户的需要要。软软件生生命周期期的概念念构成3个时期::软件定义义、软件开发发和运行维护护8个阶段::问题定义可行性研究需求分析总体设计详细设计编码和单元测试综合测试软件维护阶段1:问题定义义“需要解决的问问题是什什么?”确定问题题的性质质软件目标标和规模模形成书面面报告。。各各阶段的的基本任任务阶段2:可行性研研究“确定软软件系统统是否值值得去解解”高层次的的系统分分析和设设计估算系统统的成本本和效益益《可行性研研究报告告》各各阶段段的基基本任任务阶段3:需求分分析“解决决这些些问题题需要要系统统做什什么??”与用户户的交交流生成系系统的的逻辑辑模型型《软件需需求规规格说说明书书》各各阶段段的基基本任任务阶段4:总体设设计((概要要设计计)“应该该怎样样实现现目标标系统统?””设设计计出实实现目目标系系统的的方案案设计软软件结结构,,确定定模块块及之之间关关系概概要要设计计说明明书各各阶段段的基基本任任务阶段5:详细设设计((模块块设计计)“如何何具体体地实实现这这个系系统??”详细的的设计计每个个模块块的算算法和和数据据结构构各各阶段段的基基本任任务阶段6:编码和和单元元测试试“写代代码,,测试试每个个模块块!””选取程程序设设计语语言写出容易理理解和和维护护的程程序模模块对每一一个模模块进进行严严格的的测试试各各阶段段的基基本任任务阶段7:综合测测试“通过过各类类测试试和调调试来来完善善软件件”集成测测试+验收测测试(用户参参加)保存测测试计计划、、测试试方案案和测测试结结果各各阶段段的基基本任任务阶段8:软件维维护“通过过各种种必须须的维维护活活动使使系统统持久久地满满足用用户的的需要要!””改正性性维护护适应性性维护护完善性性维护护预防性性维护护各各阶段段的基基本任任务软软件生生命周周期的的模型型定义在软件件开发发过程程中,,人们们通常常使用用生命命周期期模型型来简简要地地描述述软件件过程程。生生命周周期模模型规规定了了生命命周期期各个个阶段段和它它们执执行的的顺序序,因因此也也被称称为过程模模型。1.瀑瀑布布模型型—线线性模模型之之一在20世纪80年代之前,,瀑布模型型一直是惟惟一被广泛泛采用的生生命周期模模型。传统统软件工程程方法学学的软件过过程,基本本上可以用用瀑布模型型来描述。。瀑布模型1.瀑布布模型—线线性模型之之一瀑布模型的的特点:(1)各阶段之之间有依赖赖性和严格格的顺序性性。(2)推迟实现现。——典型特点(3)严格的阶阶段质保。。(4)文档驱动。。瀑布模型的的问题:(1)实际的项项目很少顺顺序严格(2)用户往往往难以给出出具体、正正确、完整整的要求(3)开发人员员“阻塞状状态”严重重1.瀑布布模型—线线性模型之之一2.原型型模型原型模型是是一个快速速开发的过过程,首先先和用户沟沟通进行主主要功能的的需求分析析和快速设设计,然后后建立一个个原型,再再请用户进进行评价和和反馈。开开发人员根根据用户的的反馈进一一步细化需需求,改进进原型系统统的设计,,如此反复复直至用户户满意。快速需求分析(用户沟通)构建/修改模型(快速设计)用户使用评价(运行测试)原型模型2.原型型模型快速原型模模型的特点点:(1)出品速度快快。(2)逐步求精。。(3)开发阶段迭迭代。快速原型模模型的问题题:(1)实现过程中中不应有的的折衷方案案。(2)开发者急于于完成原型型而忽略了了整体设计计和可维护护性;(3)用户的参与与过多也造造成了软件件开发管理理的混乱。。2.原型型模型增量模型也也称为渐增增模型。使使用增量模模型开发软软件时,把把软件产品品作为一系系列的增量分析设计编码测试交付增量1分析设计编码测试交付增量2……项目时间分析设计编码测试交付增量n增量模型3.增量量模型软件系统3.增量量模型增量模型增量模型的的特点:(1)结合了线性性模型和原原型模型的的特点;(2)每个增量可可以结合原原型法;(3)系统的问世世提前→“增量1”增量模型的的问题:开放的软件件体系结构构中心思想::“渐进开开发,逐步步完善”3.增量量模型-使用增量模模型开发时时,第一个个增量往往往是系统中中的核心构构件,同时时,要求产产品分解成成增量构件件的规模应应当适中。。-如何不破坏坏已经开发发的构件将将新的构件件集成到一一个产品中中是增量模模型的一个个难点。-增量模型的的提出很好好地解决了了线性模型型中的人员员阻塞问题题,尤其是是在项目开开始初期开开发人员不不足的时候候,能有效效地规避技技术风险。。3.增量量模型喷泉模型是是典型的面向向对象的软软件过程模模型之一,“喷泉””较好地体体现了面向向对象软件件开发过程程迭代和无缝的特性。4.喷泉泉模型4.喷喷泉模型(1)假设要求求你开发一一个软件,,该软件的的功能是把把读入的浮浮点数开平平方,所得得到的结果果应该精确确到小数点点后4位。。一一旦旦实实现现并并测测试试完完之之后后,,该该产产品品将将被被抛抛弃弃。。你你打打算算选选用用哪哪种种软软件件生生命命周周期期模模型型??请请说说明明你你做做出出选选择择的的理理由由。。问题题讨讨论论———情景景分分析析解::对这这个个软软件件的的需需求求很很明明确确,,实实现现开开平平方方功功能能的的算算法法也也很很成成熟熟,,因因此此,,既既无无须须通通过过原原型型来来分分析析需需求求也也无无须须用用原原型型来来验验证证设设计计方方案案。。此此外外,,一一旦旦实实现现并并测测试试完完之之后后,,该该产产品品将将被被抛抛弃弃,,因因此此也也无无须须使使用用有有助助于于提提高高软软件件可可维维护护性性的的增增量量模模型型或或螺螺旋旋模模型型来来开开发发该该软软件件。。问题

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论