软件设计过程的技术与方法1

上传人:tian****1990 文档编号:71611440 上传时间:2019-01-21 格式:PPT 页数:78 大小:1.87MB
返回 下载 相关 举报
软件设计过程的技术与方法1_第1页
第1页 / 共78页
软件设计过程的技术与方法1_第2页
第2页 / 共78页
软件设计过程的技术与方法1_第3页
第3页 / 共78页
软件设计过程的技术与方法1_第4页
第4页 / 共78页
软件设计过程的技术与方法1_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《软件设计过程的技术与方法1》由会员分享,可在线阅读,更多相关《软件设计过程的技术与方法1(78页珍藏版)》请在金锄头文库上搜索。

1、第10章 软件设计过程 的技术与方法,软件设计过程的技术与方法,10.1 软件工程方法学 10.2 软件工程的标准化 10.3 软件设计常用的文档类型及作用 10.4 能力成熟度模型CMM,10.1软件工程方法学,软件工程方法学,10.1.1 软件开发流程与软件工程方法学 软件工程方法学是指导和管理软件开发的应用工程学科,一个软件的开发流程不外乎涉及三个方面的内容:分析、软件设计和实现。随着开发方法的不断进步,人们设计了不同的软件生命周期模型。对不同生命周期模型实现过程的演化反映了软件工程方法的进化。纵观软件工程方法的进化过程,经历了从概念的提出到相关技术的研究,再到软件工程方法学的形成;从相

2、关工具的形成,再到相关工具的实现等一系列的过程,逐步形成当前指导软件开发的技术基础。软件工程方法的每一步发展都充分体现了在保证产品质量前提下提高开发速度的基本目标。,软件工程方法学,10.1.2 软件工程基本方法 软件工程方法在软件开发的长期过程中随着软件工程技术的不断进步而不断完善,软件工程的基本方法经历了传统的结构化方法、面向对象方法、软件过程方法和构件工程方法四个阶段的演变。虽然软件工程方法取得了很大的进步,但是当前采用的软件开发方法主要还是结构化方法、面向对象方法。因为对相当数量的软件系统来说,以上两种方法,尤其是结构化方法,仍然是目前较为有效的软件开发方法。在本教材中主要使用结构化方

3、法和面向对象方法描述软件开发的基本过程。,软件工程方法学,1.结构化方法 结构化方法是按功能将问题分解抽象成模块、建立模块和模块之间的调用关系来进行软件开发的。它的基本思想是将系统中的功能与数据相分离。 结构化方法是一种围绕功能来组织软件系统的方法,在这种方法中,系统的基本构成要素是模块,它是一种实现系统单一功能的程序单元。模块具有输入、输出、内部数据和过程等基本要素。,软件工程方法学,2.面向对象方法 面向对象开发方法是继结构化开发方法之后,着重解决系统需求变化和维护困难等问题而发展起来的一种全新的方法。面向对象方法是一种围绕真实世界中的事物来组织软件系统的全新方法。在这种方法中,系统的基本

4、构成要素是对象。从软件开发人员的角度来看,对象是一种将数据和处理这些数据的操作合并在一起的程序单元;从用户的角度来看,对象是一种具有某些属性和行为的事物。对象可以是具体的,也可以是概念性的。对象具有标识惟一性、分类性、多态性、继承性和封装性等基本特性。,软件工程方法学,3.软件过程方法 软件过程方法起始于软件开发的过程思想。随着软件工程不同开发模型的相继提出,开发人员从注重软件开发的各个独立活动步骤发展到探究以软件开发过程中的方法、机制等内容为基础的思维方式,逐渐形成了软件开发的过程概念。,软件工程方法学,软件过程概念在1984年10月召开的第一届国际软件过程讨论会上首次正式提出,并将软件过程

5、定义为:“软件过程(Software Process)是在软件生存期中所实施的一系列活动的集合,且每个活动可由一些任务组成。” 进入20世纪90年代,国际标准化组织(ISO)和国际电器电子工程师学会(IEEE)分别推出软件过程标准,将软件过程概念进一步扩展为多视面(Multi View)的过程。它把软件过程定义为“软件生命周期过程或软件过程组,是指软件生命周期中的一系列相关过程。过程是活动的集合,活动是任务的集合,任务则起到把输入加工成输出的作用。活动的执行可以是顺序的、迭代的(重复的)、并行的、嵌套的或者是有条件地引发的。它从合同、工程、运作、管理等视面研究软件生存期中所涉及的各种过程和活动

6、。”,软件工程方法学,软件过程方法是为建立软件过程所必须实施的一系列工程化的活动,它的研究对象是与此有关的方法、工具和环境。它的出现被认为是人们对软件工程方法认识的又一次质的飞跃。它促使软件开发人员把注意力从抽象的软件生命周期模型转向对软件项目成功起着关键作用的过程细节。,软件工程方法学,4.构件工程方法 基于构件的软件工程(Component-Based Software Engineering,CBSE)是强调使用可复用的软件构件来设计和构造基于计算机的系统。它借鉴了工业界开发新产品中的使用已有部件,而不是一切都从头开始设计的成功经验。,软件工程方法学,软件复用的基础是由专门的软件企业生产

7、的软件组件(Component),即构件。软件开发人员在软件开发时可大量复用这些规范的、高效的软件构件,以达到降低软件的开发费用,提高软件的生产效率和提高软件质量的目的。 在基于构件的软件工程方法的实施中,包含领域工程和基于构件的开发这两个并行的工程活动。领域工程是在应用领域探索可以复用的内容,这些内容包括功能模块、操作和数据。,软件工程方法学,基于构件的开发包括以下基本过程: (1)以客户的需求为基础,确定满足欲开发目标系统的体系结构。 (2)在可复用构件库中找出与本系统开发有关的构件。 (3)根据目标系统的体系结构确定符合要求的构件。 (4)对构件进行适应性修改,使其更好地满足系统集成的要

8、求。 (5)集成构件以形成子系统和应用整体。在开发中,若构件库中已存在的构件不能满足系统开发的要求,还需要订制符合系统开发要求的构件。,软件工程方法学,10.1.3 软件对象与方法选择 软件工程方法的选择与软件系统的特征有密切的关系,在软件的设计中一般涉及两类常见的软件系统。一类系统需求明确而且不随设计过程变化,这类系统的设计目标及功能可以预先指定。在实际应用中属于这类系统的有工艺稳定的生产过程的计算机控制系统、通讯设备的控制系统或者是计算机中的操作系统、编译程序、数据库系统等系统软件。这类系统的开发,与传统的工程方法十分类似,一般先进行规范的需求分析,需求规格说明书可以制定得非常精确和完整。

9、在严格的组织管理下采用以瀑布模型和结构化分析及设计为代表的传统软件工程方法。,软件工程方法学,这种软件开发方法的主要特征是强调生命周期前期的需求分析,假设用户的需求可以完全预先获取,认为在后期的开发过程中这个需求分析的结果是稳定的,基本不变的。这类软件系统的开发过程是有规律的、可预先计划的,通常这类系统也称为过程驱动的系统。在目前大多数软件系统的开发中,上述方法仍然对软件开发有着十分重要的指导意义,尤其是在项目管理方面。在实际应用设计中,即使是对一些复杂的、不确定的软件系统的开发,仍然可以在开发过程中部分地使用传统的软件工程方法。,软件工程方法学,在软件系统的开发中,用户的需求在大多数情况下是

10、模糊的或随时间变化的。在这一类系统的开发中,甚至在系统开发完成后,在用户的使用过程中,用户还会由于需求的变化提出修改的要求。这类系统的变化是在用户对系统的认识不断深化和要求更加确切的情况下而驱动的,所以这类系统一般也称为用户驱动的系统。例如在各行各业中普遍使用的管理信息系统、决策支持系统以及某些面向终端用户需要的系统等。开发这一类系统需要采用反复试探的技术,这类系统必须具有快速、简便地进行调整的特性。因此所用的开发方法也必须能迅速构建,反复试用和改进以满足变化和渐进的要求。这就对可提高软件系统的稳定性、可修改性和可重用性的面向对象方法、构件方法以及其他更新的开发方法提出了需求。,软件工程方法学

11、,从上面的分析可以看出,要充分地对开发对象予以考虑,以选择合适的软件开发方法。这不但需要开发人员对所开发的系统进行仔细地分析、理解和认识,也需要在软件的开发中积累经验,以便根据实际的问题选择适当的方法以经济、快捷的方式达到应用系统的目的。,10.2软件工程的标准化,软件工程的标准化,软件工程的基本思路是借助工程的方法开发软件,因此将工程中成熟的技术和方法应用在软件工程中是一条简捷、必要的途径。在各类工程技术中,标准化技术对工程项目的顺利实施、保证工程质量起到了重要的作用。采用标准化的方法,首先可以在企业内建立起最佳的生产秩序、技术秩序、安全秩序、管理秩序,使企业的生产活动和经营管理活动井然有序

12、,避免混乱。另外,还可以获得最佳的社会效益和经济效益,因为一个标准的制定不仅要考虑标准在技术上的先进性,还要考虑经济上的合理性。,软件工程的标准化,在软件的开发过程中,随着软件生命周期的演化,涉及许多技术、管理以及确认与验证工作。用规范的方法和要求来提供统一操作规程和衡量标准,使软件开发的各个工作环节都有章可循,保证软件开发的最佳效益,对软件的成功开发有重要的作用。难怪有人认为,软件开发的工程化和标准化是克服软件危机的有效途径。,软件工程的标准化,10.2.1 软件工程标准化的意义 软件工程标准化是随着软件工程学的蓬勃发展而产生、发展起来的。通过开展软件工程标准化,可以将软件开发中复杂、多样、

13、无序的事物或概念转变为简单、规整、有序的事物或概念,以求在一定范围内达成某种共识,满足软件开发技术发展的需要。软件工程标准化对实现资源共享,大幅度缩短软件开发周期,节省软件的开发经费和运行维护成本,改进产品的安全性、通用性、可靠性和可维护性,提高生产效率、节省资源等都有重要的意义,由此可以获得巨大的社会效益和经济效益。由于计算机信息技术在新一轮技术革命中起着领导与促进作用,其特征决定了软件工程标准化实施的重要性。,软件工程的标准化,10.2.2 软件工程标准化的内容 由于软件工程是一项针对软件开发的复杂的系统工程,因此它涉及的领域也是多方面的。它不仅包括软件开发的管理、工程和产品,也包括职业术

14、语等方面的内容。软件工程的标准化一般从两个方面来规范软件的开发:(1)程序设计语言的标准化。为某一程序设计语言规定若干个标准子集,对于语言的实现者和用户都带来了很大方便。(2)软件过程的标准化。为软件生命周期各个阶段的工作建立标准或规范。例如国家标准GB/T155381995软件工程标准分类法就是有关软件工程标准的分类标准。,软件工程的标准化,软件工程标准涉及到过程管理、产品管理、资源管理以及确认与验证等多方面的内容,具体说它包括过程标准涉及方法、技术、度量等;产品标准涉及需求、设计、部件、描述、计划、报告等;专业标准涉及职别、道德准则、认证、特许、课程等;记法标准涉及术语、表示法、语言等。,

15、软件工程的标准化,10.2.3 常用的标准 由于软件工程的标准化有着非常重要的作用,所以有关软件开发的各个级别的组织、机构都制定了相关的标准,在一定的范围内得到了广泛的认可和贯彻。从标准化的角度来说,标准制定可根据制定机构和适用范围分为国际标准、国家标准、行业标准、企业(机构)标准以及项目(课题)标准五个层次。,软件工程的标准化,1.国际标准 国际标准是“由国际标准化团体通过的标准”(GB3935.183标准化基本术语第一部分)。1991年ISO.IEC公布的国际标准定义是:由国际标准化组织通过的并公开发布的标准。 国际标准化团体是指ISO(International Standards Or

16、ganization)、IEC(International Electro-technical Commission)以及由ISO公布的其他27个国际组织(其中,ISO、IEC是两个最大的国际标准化组织)。到目前为止,ISO和IEC共发布国际标准1万多个。,软件工程的标准化,从属性上来说,国际标准有着广泛的代表性和权威性,世界各国和一些国际化的组织在制定它们的标准时都参考了国际标准。对软件工程标准化有重要意义的是,在20世纪60年代初,ISO建立了“计算机与信息处理技术委员会”,简称ISO/TC97,专门负责与计算机有关的标准化工作。从此,软件工程标准化有了快速的发展。,软件工程的标准化,2.国家标准 由某个国家政府或国家级的机构制定或批准,是本国内各级标准必须服从、不得与之相抵触的标准,是一个国家标准体系的主体和基础,是全国范围内都必须遵守的标准,有一定的强制性。中华人民共和国国家技术监督局是我国的最高标准化机构,它所公布实施的标准称为中华人民共和国国家标准,简称为“国标(GB)”。现在,我国已批准了若干软件工程标准。我国制定和

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号