电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

类型第章软件工程

收藏

编号:335174062    类型:共享资源    大小:304KB    格式:PPT    上传时间:2022-09-13
  
12.9
金贝
分享到微信 分享到微博 分享到QQ空间
关 键 词:
软件工程
资源描述:
n软件工程是在七十年代为了对付应用软件日益增长的复杂程度、漫长的开发周期以及用户对软件产品经常不满意的状况而发展起来的。第6章 软件工程n6.1软件工程与软件过程n6.2传统方法学n6.3面向对象方法学n6.4软件项目管理6.1软件工程与软件过程n软件危机 n软件工程 n软件过程 软件危机(1)n软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题 n1968年北大西洋公约组织的计算机科学家在联邦德国召开的国际学术会议上第一次提出了“软件危机”(software crisis)这个名词 软件危机(2)n软件危机包含两方面问题:n如何开发软件,以满足不断增长,日趋复杂的需求n如何维护数量不断膨胀的软件产品 软件危机(3)n软件危机的原因:n一方面是与软件本身的特点有关n一方面是由软件开发和维护的方法不正确有关软件危机(4)n为了消除软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科 软件工程(1)n软件工程是一类求解软件的工程,它应用计算机科学,数学以及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量,降低成本的目的 n软件工程是一门指导计算机软件开发和维护的工程学科软件工程(2)n软件工程是一门交叉学科。软件工程包含技术和管理两个方面的内容,是管理与技术的紧密结合n软件开发技术包括软件开发方法学、软件开发过程、软件工具和软件工程环境,软件工程管理包括软件管理学、软件经济学和软件心理学n目前使用最广泛的软件工程方法学,分别是传统方法学和面向对象方法学软件过程(1)n软件工程过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤 n在概念上可以把软件生命周期划分成问题定义、可行性研究、需求分析、概要设计、详细设计、编码和单元测试、综合测试以及维护八个阶段软件过程(软件过程(2)n软件生命周期n软件定义n软件开发n运行维护6.2传统方法学n传统方法学也称生命周期方法学或结构化范型。它采用结构化技术来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用 n结构化分析 n结构化设计 n结构化实现 结构化分析(1)n传统的软件工程方法学使用结构化分析技术,完成分析用户需求的工作n需求分析是发现、求精、建模、规格说明和复审的过程 n需求分析要尽可能准确地了解用户当前的情况和需要解决的问题。通过与用户交流,对用户的基本需求反复细化,以得出对目标系统的完整、准确和具体的需求 结构化分析(2)n为了详尽地了解并正确地理解用户的需求,必须使用适当的技术与用户通信和沟通 n访谈 n简易的应用规格说明技术 n快速原型 结构化分析(3)n为了更好地理解问题,人们常常采用建立模型的方法,结构化分析实质上就是一种建模活动,通常建立数据模型、功能模型和行为模型结构化分析(4)n建立模型使用的工具通常有:n实体关系图(建立数据模型)n数据流图(建立功能模型)n状态转换图(建立行为模型)n数据字典则是描述在数据模型、功能模型和行为模型中出现的数据对象和控制信息的特性,给出这些对象的精确定义。结构化设计(1)n软件设计在软件工程过程中处于技术核心地位,是软件开发过程中决定软件产品质量的关键阶段n软件设计必须依据对软件产品的需求来进行,目标是设计出所要开发的软件的模型 结构化设计(2)n结构化设计把结构化分析的结果作为基本输入信息了获得高质量的软件设计结果n结构化设计应该遵循模块化、抽象、逐步求精、信息隐藏和模块独立等基本设计原理,特别是其中的模块独立原理,对软件体系结构设计和接口设计具有非常重要、十分具体的指导作用 结构化实现(1)n实现包括编码和测试两个阶段。n传统的软件工程方法学规定编码是在对软件进行了概要设计和详细设计之后进行的,编码是把软件设计的经过翻译成用某种程序设计语言书写的程序,因此,程序的质量基本上由设计的质量决定。n编码使用的语言,特别是写程序的风格,也对程序质量有相当大的影响。结构化实现(2)n软件测试在软件生命周期中横跨两个阶段。n在编写出每个模块之后就对它做必要的测试(称为单元测试),模块的编写者和测试者是同一个人,编码和单元测试属于软件生命周期的同一个阶段。在这个阶段结束之后,对软件系统还要进行各种综合测试,这是软件生命周期中的另一个独立的阶段,通常由专门的测试人员承担这项工作。结构化实现(3)n测试阶段的根本任务是发现并改正软件中的错误。n软件测试有两类方法:白盒测试和黑盒测试。n在测试过程的早期阶段主要使用白盒测试技术,在测试的后期主要使用黑盒测试技术。结构化实现(4)n目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。n在测试过程发现的软件错误必须及时改正,这就是调试的任务。6.3面向对象方法学n当软件规模较大或对软件的需求模糊易变时,采用生命周期方法学开发往往不能成功。其原因是结构化范型技术要么面向行为(对数据的操作),要么面向数据。n面向对象方法把数据和行为看成同等重要,是一种以数据为主线,把数据和对数据的操作紧密地结合在一起的方法。面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识世界解决问题的方法与过程,从而使描述问题的问题空间(问题域)与实现解法的解空间(求解域)在结构上尽可能一致。n面向对象分析 n面向对象设计 n面向对象实现 n标准建模语言UML 面向对象分析n面向对象分析的关键工作是分析、确定问题域中的对象及对象间的关系,并建立起问题域的对象模型。n大型、复杂系统的对象模型由五个层次组成:主题层、类对象层、结构层、属性层和服务层。它们对应着在建立对象模型的过程中所应完成的五项工作。面向对象设计(1)n面向对象设计,就是用面向对象观点建立求解空间模型的过程。n通过面向对象分析得出的问题域模型,为建立求解空间模型奠定了基础。n分析与设计本质上是一个多次反复迭代的过程,而面向对象分析与面向对象设计的界限尤其模糊。面向对象设计(2)优秀设计应该遵循一些基本准则:n模块化n抽象n信息隐藏n弱耦合n强内聚n可重用 面向对象实现(1)n面向对象实现主要包括两项工作:n第一是把面向对象设计结果翻译成用某种程序设计语言书写的面向对象程序;n第二是测试并调试面向对象的程序。面向对象实现(2)n一旦完成了面向对象程序设计,就开始对每个类进行单元测试。n测试类时使用的方法主要有随机测试、划分测试和基于故障的测试。标准建模语言UML(1)面向对象的分析与设计(OOAD)方法的发展在上个世纪80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言。标准建模语言UML(2)n公认的面向对象建模语言出现于70年代中期。n90年代中,一批新方法出现了,其中最引人注目的是Booch 1993、OOSE和OMT-2等。nCoad/Yourdon方法,著名的OOA/OOD,它是最早的面向对象的分析和设计方法之一。标准建模语言UML(3)nGrady Booch和Jim Rumbaugh将Booch 93和OMT-2 统一起来,并于1995年10月发布了第一个公开版本,称之为统一方法UM 0.8(Unitied Method)。n经过Booch、Rumbaugh和Jacobson三人的共同努力,于1996年6月和10月分别发布了两个新的版本,即UML 0.9和UML 0.91,并将UM重新命名为UML(Unified Modeling Language)。标准建模语言UML(4)UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。标准建模语言UML(5)n作为一种建模语言,UML的定义包括:nUML语义nUML表示法 标准建模语言UML(6)1、UML语义 n描述基于UML的精确元模型定义。n元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。nUML还支持对元模型的扩展定义。标准建模语言UML(7)2、UML表示法 n定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。n这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。标准建模语言UML(8)标准建模语言UML的重要内容可由下列五类图来定义:n用例图 n静态图n行为图n交互图 n实现图标准建模语言UML(9)n标准建模语言UML的主要特点:nUML统一了Booch、OMT和OOSE等方法中的基本概念 nUML还吸取了面向对象技术领域中其他流派的长处,其中也包括非OO方法的影响 nUML在演变过程中还提出了一些新的概念标准建模语言UML(10)标准建模语言UML的应用领域:n建立软件系统的模型 n描述非软件领域的系统 UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。6.4软件项目管理n计划 n组织 n控制 n国际标准 计划(1)n软件工程包括技术和管理两方面的内容,是管理与技术紧密结合的产物。n只有在科学而严格的管理之下,先进的技术方法和优秀的软件工具才能真正发挥出它们的威力。n软件项目管理是大型软件工程项目成功的关键。计划(2)n软件项目管理从项目计划开始,而第一项计划活动就是估算。n为了估算项目工作量和完成期限,首先需要预测软件规模。n度量软件规模的常用技术主要有代码行技术和功能点技术。计划(3)n根据项目的规模可以估算出完成项目所需的工作量,常用的估算模型有n静态单变量模型n动态多变量模型nCOCOMO模型。计划(4)n项目管理者的目标是定义所有的任务,识别出关键任务,跟踪关键任务的进展状况,以保证能够及时发现拖延进度的情况。n管理者必须制定一个足够详细的进度表,以便监督项目进度并控制整个项目。计划(5)n常用的制定进度计划的工具主要有nGantt 图n工程网络 组织n对任何软件项目而言,最关键的因素都是承担项目的人员。必须合理地组织项目组,使项目组有较高生产率。n“最佳的”小组结构取决于管理风格、组里的人员数目和他们的技术水平,以及所承担的项目的难易程度。n目前国外比较流行的组织方式有:民主制程序员组、主程序员组、现代程序员组。控制(1)n控制就是掌握被控制的对象,不让它任意活动或超出规定范围活动,尽量使一切活动都按照预定的计划进行,向预期的目标前进。控制(2)n通过软件计划,明确了软件开发的目标,规划了具体的开发方案,而组织职能的实施又为计划的实现提供了组织机构和资源配置方面的保证。n但是,计划规定的目标再好,人员组织的再合理,如果没有有效的控制作为保证,软件开发目标也是难以实现的。因此,控制是十分重要的管理活动。国际标准nIEEE1058.1软件项目管理计划标准 nISO9000质量标准 nISO/IEC 12207软件生命周期过程标准 nISO/IEC TR15504 软件过程评估标准 n能力成熟度模型(CMM)
展开阅读全文
提示  金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:第章软件工程
链接地址:https://www.jinchutou.com/shtml/view-335174062.html
关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.