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

下载本文档

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

文档简介

第1章软件工程概述

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

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

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

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

采用“个体生产方式”

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

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

软件工程§1.1软件工程的产生一、软件发展经历了三个阶段:13主要表现在两个方面:(1)软件产品质量低劣,甚至开发过程就夭折。(2)软件生产率低,不能满足需要。“软件危机”产生的原因“软件危机”(Software

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

软件工程3、软件工程时代(1968年至今)为了克服软5§1.2软件工程及其基本原理

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

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

软件工程§1.2软件工程及其基本原理一、软件工程的的定义二、有6软件工程:生产软件的工程。研究软件工程的学问叫软件工程学(有时人们也把软件工程学简称为软件工程)。软件可靠性:软件在所给条件下和规定时间内,能完成所要求的功能的性质。

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

软件工程软件工程:生产软件的工程。研究软件工程的学问叫软件工程学(有7软件工程的基本原理

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

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

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

5.结果应能清楚地审查

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

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

软件工程软件工程的基本原理软件工程的七条基本原理:软件工程8§1.3软件生存期

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

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

软件工程§1.3软件生存期软件生存期又称软件生命周期,是指9生存期瀑布模型

(目标与范围说明书)(需求说明书)(设计文档)(程序)(测试报告)(维护报告)(可行性论证报告)问题定义测试运行维护可行性分析需求分析设计编程设计时期开发时期运行时期图1.1软件生命周期的阶段划分软件工程生存期瀑布模型(目标与范围说明书)(需求说明书)(设计文档10一、问题定义问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”

二、可行性研究此阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解决,是否有可行的解决办法。三、需求分析这个阶段的任务,主要是确定目标系统必须具备哪些功能。

软件工程一、问题定义软件工程11四、总体设计这个阶段必须回答的关键问题是:“应该如何解决这个问题?”

五、详细设计详细设计阶段的任务就是把解法具体化,设计出程序的详细规格说明,包括必要的细节,程序员可以根据它们写出实际的程序代码。六、编码和单元测试这个阶段的任务是程序员根据目标系统的性质和实际环境,选取一种适当的高级程序设计语言(必要时用汇编语言),把详细设计的结果翻译成用选定的语言书写的程序,并且仔细测试编写出的每一个模块。

软件工程四、总体设计软件工程12七、综合测试这个阶段的任务是通过各种类型的测试,使软件达到预定的要求。八、软件维护维护阶段的任务,是通过各种必要的维护活动使系统持久地满足用户的需要。

软件工程七、综合测试软件工程13§1.4软件工程方法学

软件开发方法和技术可归纳为三大类:瀑布型模型、原型化模型和变换型。一、软件开发的瀑布型模型严格按照软件生命周期的阶段划分,顺序执行各阶段构成软件开发的瀑布型模型。瀑布模型的特点是:1.阶段间具有顺序性和依赖性

顺序性要求每个阶段工作开始的前提是其上一阶段工作结束。因此前一阶段输出的文档就是其后一阶段的输入文档。依赖性是指各阶段工作正确性依赖与上一阶段工作的正确性。

软件工程§1.4软件工程方法学软件开发方法和技术可142.推迟实现的观点编码开始的越早,项目完成的时间很可能越长。这是因为过早进入编码往往意味着大量的返工。3.质量保证的观点为保证软件开发质量,瀑布型模型在生命周期的各阶段强调:第一,制作规定的文档是各阶段完成的里程碑,没有交出合格的文档也就没有完成该阶段的任务。第二,每个阶段结束之前都必须对完成的文档进行评审,以便及早发现问题,改正错误。

软件工程2.推迟实现的观点软件工程15二、原型化开发模型瀑布型模型的缺陷在于软件开发阶段推进是直线型的,工程实践说明这是一个“理想化”模型,不完全符合人们认识问题的规律。原型化开发方法。其主要思想是:先建立一个能够反映用户需求的原型系统(“样机”),使得用户和开发者可以对目标系统的概貌进行评价、判断。然后对原型进行若干轮反复的扩充、改进、求精,最终建立完全符合用户需求的目标系统。初始原型可以非常简单,它只实现未来系统的主要功能,系统主要模块之间的重要接口。初始原型主要用于向用户展示系统功能概貌。确认开发人员对系统主要功能的理解。对系统应该具备的功能的演示运行通常可以对用户与开发人员之间的沟通起到催化剂作用,确立用户对项目开发的信心。

软件工程二、原型化开发模型软件工程16基于初始原型的评价可以建立实验性进化原型。实验性进化原型的建立是一个逐步迭代的增量过程,每次迭代的新版本应该具有更强的功能,更优的性能。当实验性进化原型得到最终确认以后,开发进入目标系统的实现阶段:将原型转换为完全符合系统运行环境要求的目标系统,并进行最终集成和验收测试。

由原型转化为目标系统的途径有:

(1)抛弃原型法:建立原型系统的目的主要是准确定义系统需求,严格验证方案设计。原型使用完毕后抛弃,然后在重新建立目标系统。应用抛弃原型法建立原型的过程相当于瀑布型模型的需求分析和总体设计过程。软件工程基于初始原型的评价可以建立实验性进化原型。实验性进化17(2)演化原型法:目标系统是对实验性原型不断扩充、完善送代的结果。每次迭代都要求再分析、再设计、再实现以及再测试评价。当认为问题求解基本满意时就可以交付系统的初始版本了。演化原型法的实施要求用户和开发人员在一个相当长的时期中对信息交流和系统修改持一种开放的态度。许多面向市场的软件产品采用所谓β版发布,就是施行演化原型法开发的一种策略。

软件工程(2)演化原型法:目标系统是对实验性原型不断扩充、完善送代的18原始用户需求初始原型快速生成评价∕确认实验性原型进化最终确认目标系统实现目标系统测试系统交付展示∕理解∕沟通补充∕确认∕优化软件工程原始用户需求初始原型快速生成评价∕确认实验性原型进化最终确认19三、变换型变换型开发方法是一种形式化软件开发方法。它从软件需求的形式化规格说明出发,经过一系列的程序变换,得到最终的程序系统。软件需求形式化规格说明,也往往经过原型检查和确认。如能保证形式化规格说明是正确的,在逐级变换中所使用的变换规则是保持正确性的变换规则,那么就可确认,变换最后所得到的程序系统一定是正确的。变换型开发方法必须有严格的数学理论和形式化技术的支持,目前这种开发方法尚处于研究和实验阶段。

软件工程三、变换型软件工程201.4.2面向对象方法

面向对象方法学的基本思想是,在问题求解过程中,应该尽可能符合人类习惯的思维方式。软件开发的方法应该过程与人类认识世界解决问题习惯的方法与过程接近,也就是使描述问题的问题空间与问题求解的解空间在结构上尽可能一致。客观世界的问题都是由客观世界中的实体和实体之间的相互联系构成的。对象(Object)是客观世界中的实体在问题域中的抽象。软件工程1.4.2面向对象方法面向对象方法学的基本思想21对象的概念是抽象数据类型概念的发展。面向对象的方法的基本出发点是,将描述实体对象静态属性的数据与描述实体动态行为的操作统一为一个不可分割的整体。对象与传统数据类型的区别在于:(1)对象不是被动地等待外部对其施加操作。对象是进行操作的主体,通过消息发送请求对象主动地执行某些操作,处理其私有数据。

软件工程对象的概念是抽象数据类型概念的发展。面向对象的方法的基本出22面向对象的方法学可以概括为:面向对象的方法=对象+类+继承+消息通信

(1)客观世界是由各种对象组成的。对象是可以分解的:复杂对象可以由比较简单的对象组合构成。因此面向对象的软件系统是若干对象的有机集合。(2)所有对象按其结构成分,可以划对分为各种对象类。

(3)局部于一个对象的私有成分都被“封装”在对象内部,外部不能访问。对象之间仅能通过消息传递互相作用。

软件工程面向对象的方法学可以概括为:面向对象的方法=对象+类+继承+23面向对象方法的主要优点是:(1)使用现实世界的概念抽象地思考问题从而自然地解决问题。

(2)保证软件系统的稳定性。(3)软件系统具有可重用性。

(4)软件系统具有良好的可维护性。

软件工程面向对象方法的主要优点是:软件工程24§1.5软件过程

软件过程(SoftwareProcesses)也称为软件生存周期过程或软件过程组,是指软件生存周期中的一系列相关过程(Process)。过程就是活动的集合,活动是任务的集合,任务则起到把输入加工成输出的作用。活动的执行可以是顺序的、迭代的(重复的)、并行的、嵌套的或者是有条件地引发的。软件过程应当包含以下3个含义:·个体含义:即指软件或系统在生存周期中的某一类活动的集合,如获取过程、供应过程、开发过程、管理过程等。软件工程§1.5软件过程软件过程(SoftwareProce25·整体含义:即指软件或系统在所有上述含义下的软件过程的总体。·工程含义:即指解决软件过程的工程,它应用软件工程的原则、方法来构造软件过程模型,并结合软件的具体要求进行例化,以及在用户环境中运作,以此进一步提高软件开发率、降低成本。工程含义还可以包含如下几个方面:(1)软件过程不仅要有工程视面,也要有合同视面(包括系统视面和用户视面)。

(2)软件过程包含管理视面。

软件工程·整体含义:即指软件或系统在所有上述含义下的软件过程的总体。26(3)软件过程应包含运作视面。

(4)不同角色由于其视面不同,所参与的软件过程亦不相同。

2、软件过程的基本成分软件过程涉及软件生存周期中相关的过程与活动,其中“活动”是构成软件过栓的最基本的成分之一。此外,软件开发是由多人分工协作、并使用不同的硬件环境和软件环境来完成的,因此软件过程还包括支持人与人之间进行协调与通信的组织结构、资源及约束等因素。因而,过程活动、活动中所涉及的人员、软件产品、所用资源和各种约束条件是软件过程的基本成分。

软件工程(3)软件过程应包含运作视面。软件工程273、软件过程标准

1995年8月1日,ISO/IEC经过多次讨论和修改后,正式发布了ISO/IEC12207第一版“信息技术软件生存周期过程”国际标准。我国则根据该草案于1995年颁布GB/T8566一1995《信息技术软件生存周期过程》国家标准;

软件工程3、软件过程标准软件工程28ISO/IEC12207国际标准集各种相关标准的优点于一体,把软件生存周期的各个过程分成三类,即主要生存周期过程、支持生存周期过程和组织的生存周期过程,软件人员可以根据具体的软件项目进行剪裁。主要生存周期过程包括:(1)获取过程:确定需方和组织向供方获取系统、软件或软件服务的活动。(2)供应过程:确定供方和组织向需方提供系统、软件或软件服务的活动。(3)开发过程:确定开发者和组织定义并开发软件的活动。软件工程ISO/IEC12207国际标准集各种相关标29(4)操作过程:确定操作者和组织在规定的环境中为其用户提供运行计算机系统服务的活动。(5)维护过程:确定维护者和组织提供维护软件服务的活动。

支持生存周期过程包括8个过程,其目的是支持其他过程,作为其组成部分,它们有助于软件项目的成功和质量提高。它包括:

(1)文档编制过程:确定记录生存周期过程产生的信息所需的活动。(2)配置管理过程:确定配置管理活动。软件工程(4)操作过程:确定操作者和组织在规定的环境中为其用户提供运30(3)质量保证过程:确定客观地保证软件和过程符合规定的要求以及已建立的计划所需的活动。(4)验证过程:根据软件项目要求,按不同深度确定验证软件所需的活动。

5)确认过程:确定确认软件所需的活动。(6)联合评审过程:确定评价一项活动的状态和产品所需的活动。(7)审核过程:确定为判断符合要求、计划和合同所需的活动。(8)问题解决过程:确定一个用于分析和解决问题的过程(包括不合格)。

软件工程(3)质量保证过程:确定客观地保证软件和过程符合规定的要求以31组织的生存周期过程包括4个过程,它们被一个软件组织用来建立和实现构成相关生存周期的基础结构和人事制度,并不断改进这种结构和过程。具体包括:

(1)管理过程:确定生存周期过程中的基本管理活动。(2)建立过程:确定建立生存周期过程基础结构的基本活动。(3)改进过程:确定一个组织为建立、测量、控制和改进其生存周期过程所需开展的基本活动。(4)培训过程:确定提供经适当培训的人员所需的活动。

软件工程组织的生存周期过程包括4个过程,它们被一个软件组织用来建立和324、软件过程工程的定义

软件过程工程就是为建立软件过程所必须实施的一系列工程化的活动。它涉及与此有关的方法、工具和环境的研究。

5、软件过程工程和软件项目工程如果说软件过程工程是以软件过程为中心的工程活动,那么在这种理念形成之前的软件工程所进行的是以软件开发为中心的工程活动,因而被称之为软件项目工程。

6、软件过程周期软件过程周期,也称其为软件过程生存周期或软件过程生命周期,它是指一个软件过程从孕育、诞生、成长、衰老的全部历程。

软件工程4、软件过程工程的定义软件工程33§1.6软件工程工具和环境

一、软件工程环境的概念和类型

1.按软件生产的不同方面、不同阶段分类

1)软件开发环境:这类环境目前数量最多,它支持软件的需求分析、设计、编码或测试等。这类环境中有的主要支持编程,也称为程序设计环境。如UNIX程序设计环境

2)软件项目管理环境:它们支持软件的项目管理,诸如计划、人员组织、成本估算等。

3)软件质量保证环境:这类软件环境包括程序正确性证明、验证以及软件测讨的功能GYPSY,AFFIRM,SPECIAL等属于这一类。

软件工程§1.6软件工程工具和环境一、软件工程环境的概念和类型344)软件维护环境。

2.按是否与软件开发方法有关分类

1)不依赖于软件开发方法的环境:工具箱是这类环境的主要的一种。它并不依赖于某种件开发方法,而是将最常用的软件工具组成一个软件包,供用户使用。

2)支持某种软件开发方法的环境:为使软件开发建立在更严谨的科学基础之上,许多计算机科学家在形式方法上做了大量研究。

3.按工作方式分类

1)交互式软件环境

软件工程4)软件维护环境。软件工程352)批处理软件开发环境

二、软件工程环境的发展前景整体化是指软件工程环境应支持软件生产的各个阶段,应有统一的知识库支持和统一的用户界面,各工具间应有一致的接口。有了整体化的软件工程环境的支持就能大大改善软件生产的质量和效率。智能化是指将人们在软件生产中的丰富知识和经验收集和归纳起来放入知识库。这可使当前的交互式软件工程环境有大量知识作后盾,交互能力得到进一步提高,以便加快软件的开发过程,并大大改善软件的维护效率。软件工程2)批处理软件开发环境二、软件工程环境的发展前景软件工程36形式化是指将实际应用系统的面向用户的非形式描述和实现该系统的计算机形式化表示之间尽可能缩短距离,以便提高自动化程度。三、人工智能和软件工程环境软件工程学与人工智能结合,将会产生一批智能化的工具和设计软件的专家系统。软件工程形式化是指将实际应用系统的面向用户的非形式描述和实现该系统的37§1.7软件工程学习指南

1)在全面系统学习的基础上掌握基本理论、基本知识、基本方法。本课程从软件开发、维护和软件管理等方面系统地阐述了软件工程的基本概念和常用的方法,各章之间既有联系又有很大的区别,有的还有相对独立性。应全面系统的学习各章,再认识各章之间的联系,在全面系统学习的基础上掌握重点。2)把学习软件工程理论和应用软件工程的方法结合起来。3)重视理论联系实际,结合软件开发全过程的实践来进行学习。

软件工程§1.7软件工程学习指南1)在全面系统学习的基础上掌38本章小结

任何软件的开发过程都属于问题求解过程。如果把用户需求看成软件开发这个状态空间中的初始状态,那么稳定可靠的高质量的软件正是该空间中的目标状态,软件开发各个阶段所使用的工具和须遵循的规则就是进行状态变换的算符。划分软件开发的三个阶段,确定各个阶段所须实现的子任务和子目标,都应当遵循自顶向下逐步求精和过程抽象等原理,都须应用问题归约法。解决软件危机的办法是了解和应用软件工程学原理,认真按照软件生存周期模型所揭示的规律进行软件开发和维护。软件开发的各个阶段任务的正确划分,先进工具的选用,关注并应用软件工程环境的新成就,是按期高质量地完成大型软件开发的重要保证。

软件工程本章小结任何软件的开发过程都属于问题求解过39软件生存周期模型也称为瀑布模型,它是比较成熟且用得最为广泛的软件开发模式,本书主要介绍这种模式。此外,还有变换型和螺旋型等开发模式。这些模式已应用于某些大型软件的开发。软件生成周期模型是其它软件开发模型的基础,必须首先学好。能否按期高质量地完成大型软件的开发还与软件的开发计划和管理有密切关系。

软件工程软件生存周期模型也称为瀑布模型,它是比较成熟40第1章软件工程概述

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

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

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

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

采用“个体生产方式”

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

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

软件工程§1.1软件工程的产生一、软件发展经历了三个阶段:143主要表现在两个方面:(1)软件产品质量低劣,甚至开发过程就夭折。(2)软件生产率低,不能满足需要。“软件危机”产生的原因“软件危机”(Software

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

软件工程3、软件工程时代(1968年至今)为了克服软45§1.2软件工程及其基本原理

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

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

软件工程§1.2软件工程及其基本原理一、软件工程的的定义二、有46软件工程:生产软件的工程。研究软件工程的学问叫软件工程学(有时人们也把软件工程学简称为软件工程)。软件可靠性:软件在所给条件下和规定时间内,能完成所要求的功能的性质。

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

软件工程软件工程:生产软件的工程。研究软件工程的学问叫软件工程学(有47软件工程的基本原理

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

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

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

5.结果应能清楚地审查

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

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

软件工程软件工程的基本原理软件工程的七条基本原理:软件工程48§1.3软件生存期

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

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

软件工程§1.3软件生存期软件生存期又称软件生命周期,是指49生存期瀑布模型

(目标与范围说明书)(需求说明书)(设计文档)(程序)(测试报告)(维护报告)(可行性论证报告)问题定义测试运行维护可行性分析需求分析设计编程设计时期开发时期运行时期图1.1软件生命周期的阶段划分软件工程生存期瀑布模型(目标与范围说明书)(需求说明书)(设计文档50一、问题定义问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”

二、可行性研究此阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解决,是否有可行的解决办法。三、需求分析这个阶段的任务,主要是确定目标系统必须具备哪些功能。

软件工程一、问题定义软件工程51四、总体设计这个阶段必须回答的关键问题是:“应该如何解决这个问题?”

五、详细设计详细设计阶段的任务就是把解法具体化,设计出程序的详细规格说明,包括必要的细节,程序员可以根据它们写出实际的程序代码。六、编码和单元测试这个阶段的任务是程序员根据目标系统的性质和实际环境,选取一种适当的高级程序设计语言(必要时用汇编语言),把详细设计的结果翻译成用选定的语言书写的程序,并且仔细测试编写出的每一个模块。

软件工程四、总体设计软件工程52七、综合测试这个阶段的任务是通过各种类型的测试,使软件达到预定的要求。八、软件维护维护阶段的任务,是通过各种必要的维护活动使系统持久地满足用户的需要。

软件工程七、综合测试软件工程53§1.4软件工程方法学

软件开发方法和技术可归纳为三大类:瀑布型模型、原型化模型和变换型。一、软件开发的瀑布型模型严格按照软件生命周期的阶段划分,顺序执行各阶段构成软件开发的瀑布型模型。瀑布模型的特点是:1.阶段间具有顺序性和依赖性

顺序性要求每个阶段工作开始的前提是其上一阶段工作结束。因此前一阶段输出的文档就是其后一阶段的输入文档。依赖性是指各阶段工作正确性依赖与上一阶段工作的正确性。

软件工程§1.4软件工程方法学软件开发方法和技术可542.推迟实现的观点编码开始的越早,项目完成的时间很可能越长。这是因为过早进入编码往往意味着大量的返工。3.质量保证的观点为保证软件开发质量,瀑布型模型在生命周期的各阶段强调:第一,制作规定的文档是各阶段完成的里程碑,没有交出合格的文档也就没有完成该阶段的任务。第二,每个阶段结束之前都必须对完成的文档进行评审,以便及早发现问题,改正错误。

软件工程2.推迟实现的观点软件工程55二、原型化开发模型瀑布型模型的缺陷在于软件开发阶段推进是直线型的,工程实践说明这是一个“理想化”模型,不完全符合人们认识问题的规律。原型化开发方法。其主要思想是:先建立一个能够反映用户需求的原型系统(“样机”),使得用户和开发者可以对目标系统的概貌进行评价、判断。然后对原型进行若干轮反复的扩充、改进、求精,最终建立完全符合用户需求的目标系统。初始原型可以非常简单,它只实现未来系统的主要功能,系统主要模块之间的重要接口。初始原型主要用于向用户展示系统功能概貌。确认开发人员对系统主要功能的理解。对系统应该具备的功能的演示运行通常可以对用户与开发人员之间的沟通起到催化剂作用,确立用户对项目开发的信心。

软件工程二、原型化开发模型软件工程56基于初始原型的评价可以建立实验性进化原型。实验性进化原型的建立是一个逐步迭代的增量过程,每次迭代的新版本应该具有更强的功能,更优的性能。当实验性进化原型得到最终确认以后,开发进入目标系统的实现阶段:将原型转换为完全符合系统运行环境要求的目标系统,并进行最终集成和验收测试。

由原型转化为目标系统的途径有:

(1)抛弃原型法:建立原型系统的目的主要是准确定义系统需求,严格验证方案设计。原型使用完毕后抛弃,然后在重新建立目标系统。应用抛弃原型法建立原型的过程相当于瀑布型模型的需求分析和总体设计过程。软件工程基于初始原型的评价可以建立实验性进化原型。实验性进化57(2)演化原型法:目标系统是对实验性原型不断扩充、完善送代的结果。每次迭代都要求再分析、再设计、再实现以及再测试评价。当认为问题求解基本满意时就可以交付系统的初始版本了。演化原型法的实施要求用户和开发人员在一个相当长的时期中对信息交流和系统修改持一种开放的态度。许多面向市场的软件产品采用所谓β版发布,就是施行演化原型法开发的一种策略。

软件工程(2)演化原型法:目标系统是对实验性原型不断扩充、完善送代的58原始用户需求初始原型快速生成评价∕确认实验性原型进化最终确认目标系统实现目标系统测试系统交付展示∕理解∕沟通补充∕确认∕优化软件工程原始用户需求初始原型快速生成评价∕确认实验性原型进化最终确认59三、变换型变换型开发方法是一种形式化软件开发方法。它从软件需求的形式化规格说明出发,经过一系列的程序变换,得到最终的程序系统。软件需求形式化规格说明,也往往经过原型检查和确认。如能保证形式化规格说明是正确的,在逐级变换中所使用的变换规则是保持正确性的变换规则,那么就可确认,变换最后所得到的程序系统一定是正确的。变换型开发方法必须有严格的数学理论和形式化技术的支持,目前这种开发方法尚处于研究和实验阶段。

软件工程三、变换型软件工程601.4.2面向对象方法

面向对象方法学的基本思想是,在问题求解过程中,应该尽可能符合人类习惯的思维方式。软件开发的方法应该过程与人类认识世界解决问题习惯的方法与过程接近,也就是使描述问题的问题空间与问题求解的解空间在结构上尽可能一致。客观世界的问题都是由客观世界中的实体和实体之间的相互联系构成的。对象(Object)是客观世界中的实体在问题域中的抽象。软件工程1.4.2面向对象方法面向对象方法学的基本思想61对象的概念是抽象数据类型概念的发展。面向对象的方法的基本出发点是,将描述实体对象静态属性的数据与描述实体动态行为的操作统一为一个不可分割的整体。对象与传统数据类型的区别在于:(1)对象不是被动地等待外部对其施加操作。对象是进行操作的主体,通过消息发送请求对象主动地执行某些操作,处理其私有数据。

软件工程对象的概念是抽象数据类型概念的发展。面向对象的方法的基本出62面向对象的方法学可以概括为:面向对象的方法=对象+类+继承+消息通信

(1)客观世界是由各种对象组成的。对象是可以分解的:复杂对象可以由比较简单的对象组合构成。因此面向对象的软件系统是若干对象的有机集合。(2)所有对象按其结构成分,可以划对分为各种对象类。

(3)局部于一个对象的私有成分都被“封装”在对象内部,外部不能访问。对象之间仅能通过消息传递互相作用。

软件工程面向对象的方法学可以概括为:面向对象的方法=对象+类+继承+63面向对象方法的主要优点是:(1)使用现实世界的概念抽象地思考问题从而自然地解决问题。

(2)保证软件系统的稳定性。(3)软件系统具有可重用性。

(4)软件系统具有良好的可维护性。

软件工程面向对象方法的主要优点是:软件工程64§1.5软件过程

软件过程(SoftwareProcesses)也称为软件生存周期过程或软件过程组,是指软件生存周期中的一系列相关过程(Process)。过程就是活动的集合,活动是任务的集合,任务则起到把输入加工成输出的作用。活动的执行可以是顺序的、迭代的(重复的)、并行的、嵌套的或者是有条件地引发的。软件过程应当包含以下3个含义:·个体含义:即指软件或系统在生存周期中的某一类活动的集合,如获取过程、供应过程、开发过程、管理过程等。软件工程§1.5软件过程软件过程(SoftwareProce65·整体含义:即指软件或系统在所有上述含义下的软件过程的总体。·工程含义:即指解决软件过程的工程,它应用软件工程的原则、方法来构造软件过程模型,并结合软件的具体要求进行例化,以及在用户环境中运作,以此进一步提高软件开发率、降低成本。工程含义还可以包含如下几个方面:(1)软件过程不仅要有工程视面,也要有合同视面(包括系统视面和用户视面)。

(2)软件过程包含管理视面。

软件工程·整体含义:即指软件或系统在所有上述含义下的软件过程的总体。66(3)软件过程应包含运作视面。

(4)不同角色由于其视面不同,所参与的软件过程亦不相同。

2、软件过程的基本成分软件过程涉及软件生存周期中相关的过程与活动,其中“活动”是构成软件过栓的最基本的成分之一。此外,软件开发是由多人分工协作、并使用不同的硬件环境和软件环境来完成的,因此软件过程还包括支持人与人之间进行协调与通信的组织结构、资源及约束等因素。因而,过程活动、活动中所涉及的人员、软件产品、所用资源和各种约束条件是软件过程的基本成分。

软件工程(3)软件过程应包含运作视面。软件工程673、软件过程标准

1995年8月1日,ISO/IEC经过多次讨论和修改后,正式发布了ISO/IEC12207第一版“信息技术软件生存周期过程”国际标准。我国则根据该草案于1995年颁布GB/T8566一1995《信息技术软件生存周期过程》国家标准;

软件工程3、软件过程标准软件工程68ISO/IEC12207国际标准集各种相关标准的优点于一体,把软件生存周期的各个过程分成三类,即主要生存周期过程、支持生存周期过程和组织的生存周期过程,软件人员可以根据具体的软件项目进行剪裁。主要生存周期过程包括:(1)获取过程:确定需方和组织向供方获取系统、软件或软件服务的活动。(2)供应过程:确定供方和组织向需方提供系统、软件或软件服务的活动。(3)开发过程:确定开发者和组织定义并开发软件的活动。软件工程ISO/IEC12207国际标准集各种相关标69(4)操作过程:确定操作者和组织在规定的环境中为其用户提供运行计算机系统服务的活动。(5)维护过程:确定维护者和组织提供维护软件服务的活动。

支持生存周期过程包括8个过程,其目的是支持其他过程,作为其组成部分,它们有助于软件项目的成功和质量提高。它包括:

(1)文档编制过程:确定记录生存周期过程产生的信息所需的活动。(2)配置管理过程:确定配置管理活动。软件工程(4)操作过程:确定操作者和组织在规定的环境中为其用户提供运70(3)质量保证过程:确定客观地保证软件和过程符合规定的要求以及已建立的计划所需的活动。(4)验证过程:根据软件项目要求,按不同深度确定验证软件所需的活动。

5)确认过程:确定确认软件所需的活动。(6)联合评审过程:确定评价一项活动的状态和产品所需的活动。(7)审核过程:确定为判断符合要求、计划和合同所需的活动。(8)问题解决过程:确定一个用于分析和解决问题的过程(包括不合格)。

软件工程(3)质量保证过程:确定客观地保证软件和过程符合规定的要求以71组织的生存周期过程包括4个过程,它们被一个软件组织用来建立和实现构成相关生存周期的基础结构和人事制度,并不断改进这种结构和过程。具体包括:

(1)管理过程:确定生存周期过程中的基本管理活动。(2)建立过程:确定建立生存周期过程基础结构的基本活动。(3)改进过程:确定一个组织为建立、测量、控制和改进其生存周期过程所需开展的基本活动。(4)培训过程:确定提供经适当培训的人员所需的活动。

软件工程组织的生存周期过程包括4个过程,它们被一个软件组织用来建立和724、软件过程工程的定义

软件过程工程就是为建立软件过程所必须实施的一系列工程化的活动。它涉及与此有关的方法、工具和环境的研究。

5、软件过程工程和软件项目工程如果说软件过程工程是以软件过程为中心的工程活动,那么在这种理念形成之前的软件工程所进行的是以软件开发为中心的工程活动,因而被称之为软件项目工程。

6、软件过程周期软件过程周期,也称其为软件过程生存周期或软件过

温馨提示

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

评论

0/150

提交评论