简单易懂的软件工程概述_第1页
简单易懂的软件工程概述_第2页
简单易懂的软件工程概述_第3页
简单易懂的软件工程概述_第4页
简单易懂的软件工程概述_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第1章软件工程概述

本章要点:软件工程产生的原因软件工程的基本原理软件工程方法学和面向对象方法学基本原理软件过程软件工程有关工具和环境本章学习目标:了解软件工程产生的原因掌握软件工程的基本原理

了解软件工程方法学和面向对象方法学基本原理了解软件过程了解软件工程有关工具和环境§1.1软件工程的产生

一、软件发展经历了三个阶段:

1、程序设计时代(1946-1956年)

采用“个体生产方式”

2、程序系统时代(1956-1968年)

随着软件规模的扩大,个体生产已经不能够满足软件生产的需要,一个软件需要由几个人协同完成,采用“生产作坊方式”,随着软件需求量、规模及复杂度的增大,生产作坊的方式已经不能够适应软件生产的需要,出现所谓“软件危机”。

主要表现在两个方面:(1)软件产品质量低劣,甚至开发过程就夭折。(2)软件生产率低,不能满足需要。“软件危机”产生的原因“软件危机”(Software

crisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的软件花费了大量人力财力,却在开发过程中就夭折。3、软件工程时代(1968年至今)为了克服软件危机,适应软件发展的需要,而采用“工程化的生产”方式。将工程学的某些原理和方法应用在软件的设计和开发中来软件工程研究的主要内容有以下两个方面:1、软件开发技术,它包括软件开发方法、技术和软件开发工具及环境、软件管理技术。2、软件规范(国际规范)包括:(1)软件开发技术(软件结构、开发方法、工具与软件工程环境、软件工程标准化)(2)软件工程管理(质量管理,软件工程经济学:成本估算,计划安排)软件工程研究的目标是“以较少的投资获取较高质量的软件”。

§1.2软件工程及其基本原理

一、软件工程的的定义软件工程是指导计算机软件开发和维护的工程学科。采用工程学的概念、原理、技术和方法,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来开发与维护软件。

二、有关概念程序:为了使计算机实现预期的目的(如解某一算题或控制某一过程)而编排的一系列步骤称为程序。软件:计算机的程序加上该程序的各种规格书或文档。软件方法是以大型程序为研究对象的。相应文档是软件的核心之一。

软件工程:生产软件的工程。研究软件工程的学问叫软件工程学(有时人们也把软件工程学简称为软件工程)。软件可靠性:软件在所给条件下和规定时间内,能完成所要求的功能的性质。

软件可靠度:软件在所给条件下和规定时间中,能完成所要求功能的概率。

软件工程的基本原理

软件工程的七条基本原理:

1.用分阶段的生命周期计划严格管理

2.坚持进行阶段评审3.实行严格的产品控制4.采用现代程序设计技术

5.结果应能清楚地审查

6.开发小组的人员应该少而精

7.承认不断改进软件工程实践的必要性

§1.3软件生存期

软件生存期又称软件生命周期,是指一个软件系统从目标提出到最后丢弃的整个过程。

软件工程基本原理强调软件生命周期的阶段性,其基本思想是各阶段任务相对独立,具有明确的完成标志。阶段的划分使得人员分工职责清楚,项目进度控制和软件质量得到确认。原则上,前一阶段任务的完成是后一阶段工作的前提和基础;而后一阶段的任务则是对于前一阶段问题求解方法的具体化。

生存期瀑布模型

(目标与范围说明书)(需求说明书)(设计文档)(程序)(测试报告)(维护报告)(可行性论证报告)问题定义测试运行维护可行性分析需求分析设计编程设计时期开发时期运行时期图1.1软件生命周期的阶段划分一、问题题定义问题定义义阶段必必须回答答的关键键问题是是:“要要解决的的问题是是什么?”二、可行行性研究究此阶段的的任务不不是具体体解决问问题,而而是研究究问题的的范围,,探索这这个问题题是否值值得去解解决,是否有可可行的解解决办法法。三、需求求分析这个阶段段的任务务,主要要是确定定目标系系统必须须具备哪哪些功能能。四、总体体设计这个阶段段必须回回答的关关键问题题是:““应该如如何解决决这个问问题?””五、详细细设计详细设计计阶段的的任务就就是把解解法具体体化,设设计出程程序的详详细规格格说明,,包括必必要的细细节,程程序员可可以根据据它们写写出实际际的程序序代码。。六、编码码和单元元测试这个阶段段的任务务是程序序员根据据目标系系统的性性质和实实际环境境,选取取一种适适当的高高级程序序设计语言(必要时时用汇编编语言),把详详细设计计的结果果翻译成成用选定定的语言言书写的的程序,,并且仔仔细测试试编写出出的每一一个模块块。七、综合合测试这个阶段段的任务务是通过过各种类类型的测测试,使使软件达达到预定定的要求求。八、软件件维护维护阶段段的任务务,是通通过各种种必要的的维护活活动使系系统持久久地满足足用户的的需要。。§1.4软件工程程方法学学软件开发发方法和和技术可可归纳为为三大类类:瀑布布型模型型、原型型化模型型和变换换型。一、软件件开发的的瀑布型型模型严格按照照软件生生命周期期的阶段段划分,,顺序执执行各阶阶段构成成软件开开发的瀑瀑布型模模型。瀑布模型型的特点点是:1.阶段段间具有有顺序性性和依赖赖性顺序性要要求每个个阶段工工作开始始的前提提是其上上一阶段段工作结结束。因因此前一一阶段输输出的文文档就是是其后一一阶段的的输入文文档。依依赖性是是指各阶阶段工作作正确性性依赖与与上一阶阶段工作作的正确确性。2.推迟迟实现的的观点编码开始始的越早早,项目目完成的的时间很很可能越越长。这这是因为为过早进进入编码码往往意意味着大大量的返返工。3.质量量保证的的观点为保证软软件开发发质量,,瀑布型型模型在在生命周周期的各各阶段强强调:第一,制制作规定定的文档档是各阶阶段完成成的里程程碑,没没有交出出合格的的文档也也就没有有完成该该阶段的的任务。。第二,每每个阶段段结束之之前都必必须对完完成的文文档进行行评审,,以便及及早发现现问题,,改正错错误。二、原型化开开发模型瀑布型模型的的缺陷在于软软件开发阶段段推进是直线线型的,工程程实践说明这这是一个“理理想化”模型型,不完全符符合人们认识识问题的规律律。原型化开发方方法。其主要要思想是:先先建立一个能能够反映用户户需求的原型型系统(“样样机”),使使得用户和开开发者可以对对目标系统的的概貌进行评评价、判断。。然后对原型型进行若干轮轮反复的扩充充、改进、求求精,最终建建立完全符合合用户需求的的目标系统。。初始原型可以以非常简单,,它只实现未未来系统的主主要功能,系系统主要模块块之间的重要要接口。初始始原型主要用用于向用户展展示系统功能能概貌。确认认开发人员对对系统主要功功能的理解。。对系统应该该具备的功能能的演示运行行通常可以对对用户与开发发人员之间的的沟通起到催催化剂作用,,确立用户对对项目开发的信信心。基于初始原型型的评价可以以建立实验性性进化原型。。实验性进化化原型的建立立是一个逐步步迭代的增量量过程,每次次迭代的新版版本应该具有有更强的功能能,更优的性性能。当实验性进化化原型得到最最终确认以后后,开发进入入目标系统的的实现阶段::将原型转换换为完全符合合系统运行环环境要求的目目标系统,并并进行最终集集成和验收测测试。由原型转化为为目标系统的的途径有:(1)抛弃原原型法:建立立原型系统的的目的主要是是准确定义系系统需求,严严格验证方案案设计。原型型使用完毕后后抛弃,然后后在重新建立立目标系统。。应用抛弃原原型法建立原原型的过程相相当于瀑布型型模型的需求求分析和总体体设计过程。。(2)演演化化原原型型法法::目目标标系系统统是是对对实实验验性性原原型型不不断断扩扩充充、、完完善善送送代代的的结结果果。。每每次次迭迭代代都都要要求求再再分分析析、、再再设设计计、、再再实实现现以以及及再再测测试试评评价价。。当当认认为为问问题题求求解解基基本本满满意意时时就就可可以以交交付付系系统统的的初初始始版版本本了了。。演演化化原原型型法法的的实实施施要要求求用用户户和和开开发发人人员员在在一一个个相相当当长长的的时时期期中中对对信信息息交交流流和和系系统统修修改改持持一一种种开开放放的的态态度度。。许许多多面面向向市市场场的的软软件件产产品品采采用用所所谓谓ββ版版发发布布,,就就是是施施行行演演化化原原型型法法开开发发的的一一种种策策略略。。原始用户需求初始原型快速生成评价∕确认实验性原型进化最终确认目标系统实现目标系统测试系统交付展示∕理解∕沟通补充∕确认∕优化三、、变变换换型型变换换型型开开发发方方法法是是一一种种形形式式化化软软件件开开发发方方法法。。它它从从软软件件需需求求的的形形式式化化规规格格说说明明出出发发,,经经过过一一系系列列的的程程序序变变换换,,得得到到最最终终的的程程序序系系统统。。软软件件需需求求形形式式化化规规格格说说明明,,也也往往往往经经过过原原型型检检查查和和确确认认。。如如能能保保证证形形式式化化规规格格说说明明是是正正确确的的,,在在逐逐级级变变换换中中所所使使用用的的变变换换规规则则是是保保持持正正确确性性的的变变换换规规则则,,那那么么就就可可确确认认,,变变换换最最后后所所得得到到的的程程序序系系统统一一定定是是正正确确的的。。变换换型型开开发发方方法法必必须须有有严严格格的的数数学学理理论论和和形形式式化化技技术术的的支支持持,,目目前前这这种种开开发发方方法法尚尚处处于于研研究究和和实实验验阶阶段段。。面向向对对象象方方法法面向向对对象象方方法法学学的的基基本本思思想想是是,,在在问问题题求求解解过过程程中中,,应应该该尽尽可可能能符符合合人人类类习习惯惯的的思思维维方方式式。。软软件件开开发发的的方方法法应应该该过过程程与与人人类类认认识识世世界界解解决决问问题题习习惯惯的的方方法法与与过过程程接接近近,,也也就就是是使使描描述述问问题题的的问问题题空空间间与与问问题题求求解解的的解解空空间间在在结结构构上上尽尽可可能能一一致致。。客观观世世界界的的问问题题都都是是由由客客观观世世界界中中的的实实体体和和实实体体之之间间的的相相互互联联系系构构成成的的。。对对象象(Object)是是客客观观世世界界中中的的实实体体在在问问题题域域中中的的抽抽象象。。对象象的的概概念念是是抽抽象象数数据据类类型型概概念念的的发发展展。。面面向向对对象象的的方方法法的的基基本本出出发发点点是是,,将将描描述述实实体体对对象象静静态态属属性性的的数数据据与与描描述述实实体体动动态态行行为为的的操操作作统统一一为为一一个个不不可可分分割割的的整整体体。。对象象与与传传统统数数据据类类型型的的区区别别在在于于::(1)对对象象不不是是被被动动地地等等待待外外部部对对其其施施加加操操作作。。对对象象是是进进行行操操作作的的主主体体,,通通过过消消息息发发送送请请求求对对象象主主动动地地执执行行某某些些操操作作,,处处理理其其私私有有数数据据。。面向向对对象象的的方方法法学学可可以以概概括括为为::面面向向对对象象的的方方法法=对对象象+类类+继继承承+消消息息通通信信(1)客客观观世世界界是是由由各各种种对对象象组组成成的的。。对对象象是是可可以以分分解解的的::复复杂杂对对象象可可以以由由比比较较简简单单的的对对象象组组合合构构成成。。因因此此面面向向对对象象的的软软件件系系统统是是若若干干对对象象的的有有机机集集合合。。(2)所有有对象象按其其结构构成分分,可可以划划对分分为各各种对对象类类。(3)局部部于一一个对对象的的私有有成分分都被被“封封装””在对对象内内部,,外部部不能能访问问。对对象之之间仅仅能通通过消消息传传递互互相作作用。。面向对对象方方法的的主要要优点点是::(1)使用用现实实世界界的概概念抽抽象地地思考考问题题从而而自然然地解解决问问题。。(2)保证证软件件系统统的稳稳定性性。(3)软件件系统统具有有可重重用性性。(4)软件件系统统具有有良好好的可可维护护性。。§1.5软软件过过程软件过过程(SoftwareProcesses)也称为为软件件生存存周期期过程程或软软件过过程组组,是是指软软件生生存周周期中中的一一系列列相关关过程程(Process)。。过程程就是是活动动的集集合,,活动动是任任务的的集合合,任任务则则起到到把输输入加加工成成输出出的作作用。。活动动的执执行可可以是是顺序序的、、迭代代的(重复复的)、并并行的的、嵌嵌套的的或者者是有有条件件地引引发的的。软件过过程应应当包包含以以下3个含含义::·个体体含义义:即即指软软件或或系统统在生生存周周期中中的某某一类类活动动的集集合,,如获获取过过程、、供应应过程程、开开发过过程、、管理理过程程等。。·整体体含义义:即即指软软件或或系统统在所所有上上述含含义下下的软软件过过程的的总体体。·工程程含义义:即即指解解决软软件过过程的的工程程,它它应用用软件件工程程的原原则、、方法法来构构造软软件过过程模模型,,并结结合软软件的的具体体要求求进行行例化化,以以及在在用户户环境境中运运作,,以此此进一一步提提高软软件开开发率率、降降低成成本。。工程含含义还还可以以包含含如下下几个个方面面:(1)软件件过程程不仅仅要有有工程程视面面,也也要有有合同同视面面(包包括系系统视视面和和用户户视面面)。。(2)软件件过程程包含含管理理视面面。(3)软件件过程程应包包含运运作视视面。。(4)不同同角色色由于于其视视面不不同,,所参参与的的软件件过程程亦不不相同同。2、软软件过过程的的基本本成分分软件过过程涉涉及软软件生生存周周期中中相关关的过过程与与活动动,其其中““活动动”是是构成成软件件过栓栓的最最基本本的成成分之之一。。此外外,软软件开开发是是由多多人分分工协协作、、并使使用不不同的的硬件件环境境和软软件环环境来来完成成的,,因此此软件件过程程还包包括支支持人人与人人之间间进行行协调调与通通信的的组织织结构构、资资源及及约束束等因因素。。因而而,过过程活活动、、活动动中所所涉及及的人人员、、软件件产品品、所所用资资源和和各种种约束束条件件是软软件过过程的的基本本成分分。3、软件过过程标准1995年年8月1日日,ISO/IEC经过多次次讨论和修修改后,正正式发布了了ISO//IEC12207第一版““信息技术术软件生存存周期过程程”国际标标准。我国则根据据该草案于于1995年颁布GB/T8566一1995《信息息技术软件件生存周期期过程》国国家标准;;ISO/IEC12207国际标准准集各种相相关标准的的优点于一一体,把软软件生存周周期的各个个过程分成成三类,即即主要生存存周期过程程、支持生生存周期过过程和组织织的生存周周期过程,,软件人员员可以根据据具体的软软件项目进进行剪裁。。主要生存周周期过程包包括:(1)获取取过程:确确定需方和和组织向供供方获取系系统、软件件或软件服服务的活动动。(2)供应应过程:确确定供方和和组织向需需方提供系系统、软件件或软件服服务的活动动。(3)开发发过程:确确定开发者者和组织定定义并开发发软件的活活动。(4)操作作过程:确确定操作者者和组织在在规定的环环境中为其其用户提供供运行计算算机系统服服务的活动动。(5)维护护过程:确确定维护者者和组织提提供维护软软件服务的的活动。支持生存周周期过程包包括8个过过程,其目目的是支持持其他过程程,作为其其组成部分分,它们有有助于软件件项目的成成功和质量量提高。它它包括:(1)文档档编制过程程:确定记记录生存周周期过程产产生的信息息所需的活活动。(2)配置置管理过程程:确定配配置管理活活动。(3)质量量保证过程程:确定客客观地保证证软件和过过程符合规规定的要求求以及已建建立的计划划所需的活活动。(4)验证证过程:根根据软件项项目要求,,按不同深深度确定验验证软件所所需的活动动。5)确认过过程:确定定确认软件件所需的活活动。(6)联合合评审过程程:确定评评价一项活活动的状态态和产品所所需的活动动。(7)审核核过程:确确定为判断断符合要求求、计划和和合同所需需的活动。。(8)问题题解决过程程:确定一一个用于分分析和解决决问题的过过程(包括括不合格)。组织的生存存周期过程程包括4个个过程,它它们被一个个软件组织织用来建立立和实现构构成相关生生存周期的的基础结构构和人事制制度,并不不断改进这这种结构和和过程。具具体包括::(1)管理理过程:确确定生存周周期过程中中的基本管管理活动。。(2)建立立过程:确确定建立生生存周期过过程基础结结构的基本本活动。(3)改进进过程:确确定一个组组织为建立立、测量、、控制和改改进其生存存周期过程程所需开展展的基本活活动。(4)培训训过程:确确定提供经经适当培训训的人员所所需的活动动。4、软件过过程工程的的定义软件过程工工程就是为为建立软件件过程所必必须实施的的一系列工工程化的活活动。它涉涉及与此有有关的方法法、工具和和环境的研研究。5、软件过过程工程和和软件项目目工程如果说软件件过程工程程是以软件件过程为中中心的工程程活动,那那么在这种种理念形成成之前的软软件工程所所进行的是是以软件开开发为中心心的工程活活动,因而而被称之为为软件项目目工程。6、软件过过程周期软件过程周周期,也称称其为软件件过程生存存周期或软软件过程生生命周期,,它是指一一个软件过过程从孕育育、诞生、、成长、衰衰老的全部部历程。§1.6软软件工工程工具和和环境一、软件工工程环境的的概念和类类型1.按软件件生产的不不同方面、、不同阶段段分类1)软件开开发环境::这类环境境目前数量量最多,它它支持软件件的需求分分析、设计计、编码或或测试等。。这类环境境中有的主主要支持编编程,也称称为程序设设计环境。。如UNIX程序设设计环境2)软件项项目管理环环境:它们们支持软件件的项目管管理,诸如如计划、人人员组织、、成本估算算等。3)软件质质量保证环环境:这类类软件环境境包括程序序正确性证证明、验证证以及软件件测讨的功功能GYPSY,AFFIRM,SPECIAL等属于于这一类。。4)软件维维护环境。。2.按是否否与软件开开发方法有有关分类1)不依赖赖于软件开开发方法的的环境:工工具箱是这这类环境的的主要的一一种。它并并不依赖于于某种件开开发方法,,而是将最最常用的软软件工具组组成一个软软件包,供供用户使用用。2)支持持某种软软件开发发方法的的环境::为使软软件开发发建立在在更严谨谨的科学学基础之之上,许许多计算算机科学学家在形形式方法法上做了了大量研研究。3.按工工作方式式分类1)交互互式软件件环境2)批处处理软件件开发环环境二、软件件工程环环境的发发展前景景整体化是是指软件件工程环环境应支支持软件件生产的的各个阶阶段,应应有统一一的知识识库支持持和统一一的用户户界面,,各工具具间应有有一致的的接口。。有了整整体化的的软件工工程环境境的支持持就能大大大改善善软件生生产的质质量和效效率。智能化是是指将人人们在软软件生产产中的丰丰富知识识和经验验收集和和归纳起起来放入入知识库库。这可可使当前前的交互互式软件件工程环环境有大大量知识识作后盾盾,交互互能力得得到进一一步提高高,以便便加快软软件的开开发过程程,并大大大改善善软件的的维护效效率。形式化是是指将实实际应用用系统的的面向用用户的非非形式描描述和实实现该系系统的计计算机形形式化表表示之间间尽可能能缩短距距离,以以便提高高自动化化程度。。三、人工工智能和和软件工工程环境境软

温馨提示

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

评论

0/150

提交评论