软件工程导论(第1章)

上传人:cl****1 文档编号:587495928 上传时间:2024-09-06 格式:PPT 页数:51 大小:1.09MB
返回 下载 相关 举报
软件工程导论(第1章)_第1页
第1页 / 共51页
软件工程导论(第1章)_第2页
第2页 / 共51页
软件工程导论(第1章)_第3页
第3页 / 共51页
软件工程导论(第1章)_第4页
第4页 / 共51页
软件工程导论(第1章)_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《软件工程导论(第1章)》由会员分享,可在线阅读,更多相关《软件工程导论(第1章)(51页珍藏版)》请在金锄头文库上搜索。

1、软件工程软件工程( Software Engineering )课程介绍课程介绍课程主要内容:程主要内容:第一部分:第一部分:软件工程的基本定件工程的基本定义、基本原理和、基本原理和软件件过程模型程模型(对应第一章)第一章)第二部分:从可行性研究、需求分析、第二部分:从可行性研究、需求分析、总体体设计、详细设计、编码实现、维护六个步六个步骤来来说明明软件开件开发过程中的具体程中的具体问题和具体解决方法(和具体解决方法(对应第二、三、四、五、六、七、八第二、三、四、五、六、七、八章)章)结构化分析构化分析设计第三部分:面向第三部分:面向对象方法概象方法概论、面向、面向对象分析、象分析、设计、实现

2、(对应第九、十、十一、十二章)第九、十、十一、十二章)第四部分:第四部分:软件件项目管理基本概念(目管理基本概念(对应第十三章)第十三章)考核方式考核方式考考试方法:采用百分制,方法:采用百分制,满分分为100分。分。(1)闭卷考卷考试:占:占总评成成绩的的50%。(2)期中考)期中考试:占:占总评成成绩的的30%。(3)课堂作堂作业、平、平时考勤、提考勤、提问:占:占总评成成绩的的10%;课后作后作业、实验报告:占告:占总评成成绩的的10%。第第1章:软件工程学概述章:软件工程学概述1.1 软件危机软件危机 60年年代代中中期期以以前前:通通用用硬硬件件相相当当普普遍遍,软件件却却是是为某某

3、个个具体的具体的应用而用而编写的。写的。 60年年代代中中期期到到70年年代代中中期期:软件件作作坊坊。这时软件件危危机机出出现,随随之之而而来来人人们开开始始研研究究消消除除危危机机的的途途径径,从从而而形形成成一一门新的学科新的学科软件工程学。件工程学。 软件危机件危机:计算机算机软件的开件的开发和和维护过程中所遇程中所遇到的一系列到的一系列严重重问题。(正常、不正常运行。(正常、不正常运行软件都件都具有具有这种种问题) 1.1.1 软件危机的介绍软件危机的介绍软件危机的件危机的实质:l如何开如何开发软件,以件,以满足足对软件日益增件日益增长的需求的需求l如何如何维护数量不断膨数量不断膨胀

4、的已有的已有软件件1)对软件开件开发成本和成本和进度的估度的估计常常很不准确;常常很不准确;2)用)用户对完成的完成的软件系件系统不不满意的意的现象象经常常发生;生;3)软件件产品的品的质量往往靠不住;量往往靠不住; 4)软件常常是不可件常常是不可维护的;的;5)软件通常没有适当的文档件通常没有适当的文档资料;料;6)软件成本在件成本在计算机系算机系统总成本中所占的比例逐年上升;成本中所占的比例逐年上升;7)软件开件开发生生产率提高的速度跟不上率提高的速度跟不上计算机算机应用的用的发展展趋势。 软件危机的典型表现:软件危机的典型表现:1.1.2 产生生软件危机的原因件危机的原因1)软件本身特点

5、造成;)软件本身特点造成;程序规模庞大;程序规模庞大;程序复杂性随着程序规模的增加而呈指数上程序复杂性随着程序规模的增加而呈指数上升。升。2)软件开发与维护的方法不正确。)软件开发与维护的方法不正确。主要表现:主要表现: (a)忽视软件需求分析;)忽视软件需求分析; (b)认为软件开发就是写程序并使之运行;)认为软件开发就是写程序并使之运行; (c)轻视软件维护;)轻视软件维护; 在在软件开件开发的不同的不同阶段段进行修改需要付出的行修改需要付出的代价很不相同:代价很不相同:高高中中低低早期早期中期中期后期后期软件开发时期软件开发时期代价代价引入同一修改的代价随时间变化的趋势引入同一修改的代价

6、随时间变化的趋势1.组织管理:管理:软件开件开发不是某种个体不是某种个体劳动的神秘技巧,的神秘技巧,软件开件开发应该是一种是一种组织良好、管理良好、管理严密、各密、各类人人员协同配合、共同完成的工程同配合、共同完成的工程项目。目。2.方法:方法:应该推广使用在推广使用在实践中践中总结出来的开出来的开发软件件的成功的技的成功的技术和方法,并且研究探索更好更有效的和方法,并且研究探索更好更有效的技技术和方法,尽快消除在和方法,尽快消除在计算机系算机系统早期早期发展展阶段段形成的一些形成的一些错误概念和做法。概念和做法。3.工具:工具:应该开开发和使用更好的和使用更好的软件工具。在件工具。在软件开件

7、开发的每个的每个阶段都有段都有许多繁多繁琐重复的工作需要做,在重复的工作需要做,在适当的适当的软件工具件工具辅助下,开助下,开发人人员可以把可以把这类工作工作做得既快又好。做得既快又好。1.1.3 解决软件危机的途径解决软件危机的途径 如果把各个如果把各个阶段使用的段使用的软件工具有机地集件工具有机地集合成一个整体,支持合成一个整体,支持软件开件开发的全的全过程,程,则称称为软件工程支撑件工程支撑环境。境。 为了了解解决决软件件危危机机产生生的的问题,软件件工工程程与与方方法法学学逐逐渐形形成成,然然后后出出现了了两两个个相相互互相相承承又又各有各有侧重的学科:重的学科: 1)软件件工工程程学

8、学:主主要要应用用工工程程的的方方法法和和技技术研研究究软件件开开发与与维护的的方方法法、工工具具和和管管理理的的一一门交叉学科。交叉学科。 2)程序程序设计方法学方法学:主要:主要应用数学的方法研用数学的方法研究程序的性究程序的性质以及程序以及程序设计的理的理论和方法的学和方法的学科。科。 1.2 软件工程软件工程1.2.1 软件工程的介件工程的介绍1968年年NATO会会议议:软软件件工工程程就就是是为为了了经经济济地地获获得得可可靠靠的的且且能能在在实实际际机机器器上上有有效效地地运运行行的的软软件件,而建立和使用完善的工程原理。而建立和使用完善的工程原理。1993年年IEEE:软软件件

9、工工程程是是(1)把把系系统统的的、规规范范的的、可可度度量量的的途途径径应应用用于于软软件件开开发发、运运行行和和维维护护过过程程,也也就就是是把把工工程程应应用用于于软软件件;(2)研研究究(1)中提到的途径。)中提到的途径。 1. 软件工程关注于大型程序的构造;件工程关注于大型程序的构造; 2. 软件工程的中心件工程的中心课题是控制复是控制复杂性;性; 3. 软件件经常常变化;化; 4. 开开发软件的效率非常重要;件的效率非常重要; 5. 和和谐地合作是地合作是软件开件开发的关的关键; 6. 软件必件必须有效地支持它的用有效地支持它的用户; 7. 在在软件工程件工程领域中是由具有一种文化

10、背景的域中是由具有一种文化背景的人替具有另一种文化背景的人人替具有另一种文化背景的人创造造产品。品。软件工程的本质特性:软件工程的本质特性:1.2.2 软件工程的基本原理件工程的基本原理1. 用分阶段的生命周期计划严格管理;用分阶段的生命周期计划严格管理;2. 坚持进行阶段评审;坚持进行阶段评审;3. 实行严格的产品控制;实行严格的产品控制;4. 采用现代程序设计技术;采用现代程序设计技术;5. 结果能清楚地审查;结果能清楚地审查;6. 开发小组的人员应该少而精;开发小组的人员应该少而精;7. 承认不断改进软件工程实践的必要性。承认不断改进软件工程实践的必要性。1.2.3 软件工程方法学件工程

11、方法学软件工程件工程包括:技包括:技术和管理两个方面的内容,是技和管理两个方面的内容,是技术和和管理管理紧密密结合所形成的工程学科。合所形成的工程学科。 通常把在通常把在软件生命周期全件生命周期全过程中使用的一整套技程中使用的一整套技术方法方法的集合称的集合称为方法学方法学(Methodology),也称),也称为范型范型(Paradigm)。)。 软件工程方法学的件工程方法学的3要素要素:方法方法、工具工具和和过程程一一. 传统方法学方法学 也称也称为生命周期方法学或生命周期方法学或结构化范型。构化范型。从时间角度对软件开发和维护的复杂问题进行分解,把软件生命的漫长周期依次划分为若干个阶段,

12、每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。 文档是通信的工具,它们清楚准确地说明了到这个时候为止,关于该项工程已经知道了什么,同时确立了下一步工作的基础。此外,文档也起备忘录的作用,在完成生命周期每个阶段的任务时,应该采用适合该阶段任务特点的系统化的技术方法结构分析或结构设计技术。结构化方法(构化方法(Structure Method)有:有: 1)结构化构化设计方法(方法(SD);); 2)结构化分析方法(构化分析方法(SA);); 3)结构化分析与构化分析与设计技技术(SADT) 4)JACKSON方法方法 5)WARNIER方法方法二二. 面向面向对象方法学象方法学 把数据和

13、把数据和对数据的操作数据的操作紧密密结合起来的方法,合起来的方法,模模拟人人类认识世界解决世界解决问题的方法和的方法和过程。程。 面向面向对象的方法象的方法 =对象(属性与服象(属性与服务的封装)的封装) +分分类 +继承承 +通通过消息的通消息的通讯面向面向对象方法把数据和行象方法把数据和行为看成同等重要,是一种以数据看成同等重要,是一种以数据为主主线,把数,把数据和据和对数据的操作数据的操作紧密地密地结合起来的方法。其具有如下合起来的方法。其具有如下4个要点:个要点:把把对象象(Object)作作为融合了数据及在数据上的操作行融合了数据及在数据上的操作行为的的统一的一的软件构件。用件构件。

14、用对象分解取代象分解取代传统方法的功能分解。方法的功能分解。把所有把所有对象划分象划分为类(Class):每个:每个类定定义了一了一组数据和一数据和一组操操作。作。按照父按照父类(基(基类)和子)和子类(派生(派生类)的关系,把若干个相关)的关系,把若干个相关类组成一个成一个层次次结构的系构的系统。子。子类能能够继承。承。对象彼此象彼此间仅能通能通过发送消息互相送消息互相联系。系。对象是数据象是数据处理的主理的主体,具有封装性特点。体,具有封装性特点。复复杂性降低、可理解性、性降低、可理解性、简化开化开发与与维护、软件重用。件重用。1)适适用用于于实时事事物物处理理系系统的的有有限限状状态机机

15、方方法法(FSM););2)适用于并适用于并发软件系件系统的的PETRI网方法;网方法;3)以数学概念和理)以数学概念和理论为基基础的形式化方法,如的形式化方法,如 SDC公司的形式化开公司的形式化开发方法方法FDM: (Formal Development Methodology) IBM公司的公司的维也也纳开开发方法方法VDM: (Vienna Development Method ) 三三. 其他开发方法其他开发方法 1.3 软件生命周期软件生命周期软件生命周期软件生命周期:指软件从提出到最终被淘汰的这个存在期。指软件从提出到最终被淘汰的这个存在期。软软件件生生命命周周期期由由软软件件定

16、定义义、软软件件开开发发和和运运行行维维护护三三个个时时期期组组成成,每每个个时时期期又又划划分分若若干干个个阶段。阶段。 软件生命周期件生命周期组成:成: 1)软件定件定义时期的主要任期的主要任务为: A.问题定定义 B.可行性研究可行性研究 C.需求分需求分析析 2)软件开件开发时期的主要任期的主要任务为: D.总体体设计 E.详细设计 F.编码和和单元元测试 G.综合合测试 3)运行)运行维护时期的主要任期的主要任务为: H. 使使软件持久地件持久地满足用足用户的需要的需要问题定定义问题定定义阶段必段必须回答的关回答的关键问题是:是:“要解决的要解决的问题是什么是什么?”。通通过问题定定

17、义阶段的工作,段的工作,系系统分析分析员应该提出关于提出关于问题性性质、工程目工程目标和和规模模的的书面面报告。通告。通过访问调查,分析,分析员扼要地写扼要地写出他出他对问题的理解,并在用的理解,并在用户和使用部和使用部门负责人的会人的会议上上认真真讨论这份份书面面报告,得出一份双方都告,得出一份双方都满意的文档。意的文档。可行性研究可行性研究这个个阶段要回答的关段要回答的关键问题是:是:“对上一上一阶段所确定的段所确定的问题有行得有行得通的解决通的解决办法法吗?” 系系统分析分析员需要需要进行一次大大行一次大大压缩和和简化化了的系了的系统分析和分析和设计的的过程,也就是在程,也就是在较抽象的

18、高抽象的高层次上次上进行行的分析和的分析和设计的的过程。可行性研究程。可行性研究应该比比较简短,短,这个个阶段的段的任任务不是具体解决不是具体解决问题,而是研究,而是研究问题的范的范围,探索,探索这个个问题是否是否值得去解,是否有可行的解决得去解,是否有可行的解决办法法。在问题定义阶段提出的对工程目标和规模的报告通常比较含糊。可行性研究阶段应该导出系统的高层逻辑模型(通常用数据流图表示),并且在此基础上更准确、更具体地确定工程规模和目标。然后分析员更准确地估计系统的成本和效益,对建建议的系的系统进行仔行仔细的成本效益分析是的成本效益分析是这个个阶段的主要任段的主要任务之一之一。软件定义软件定义

19、可行性研究的可行性研究的结果是使用部果是使用部门负责人做出是否人做出是否继续进行行这项工程的工程的决定的重要依据决定的重要依据,一般说来,只有投资可能取得较大效益的那些工程项目才值得继续进行下去。可行性研究以后的那些阶段将需要投入更多的人力物力。及时终止不值得投资的工程项目,可以避免更大的浪费。需求分析需求分析这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了了解决解决这个个问题,目,目标系系统必必须做什么做什么”,主要是确定目标系统必须具备哪些功能功能。用户了解他们所面对的问题,知道必须做什么,但是通常不能完整准确地表达出他们的要求,更不知道怎样利用计算机解决他们的问题;软件开发人员

20、知道怎样用软件实现人们的要求,但是对特定用户的具体要求并不完全清楚。因此,系统分析员在需求分析阶段必必须和用和用户密切配合,充分交流信息,以密切配合,充分交流信息,以得出得出经过用用户确确认的系的系统逻辑模型。通常用数据流模型。通常用数据流图、数据字典、数据字典和和简要的算法表示系要的算法表示系统的的逻辑模型模型。在需求分析在需求分析阶段确定的系段确定的系统逻辑模型是以后模型是以后设计和和实现目目标系系统的的基基础,因此必,因此必须准确完整地体准确完整地体现用用户的要求的要求。 总体体设计这个阶段必须回答的关键问题是:“概括地概括地说,应该如何解决如何解决这个个问题?”。总体设计阶段的第一项主

21、要任务就是应该考虑几种可能的解决方案。(1)低成本的解决方案。系统只能完成最必要的工作,不能多做一点额外的工作。(2)中等成本的解决方案。这样的系统不仅能够很好地完成预定的任务,而且可能还具有用户没有具体指定的某些功能和特点。虽然用户没有提出这些具体要求,但是系统分析员根据自己的知识和经验断定,这些附加的能力在实践中将证明是很有价值的。(3)高成本的“十全十美”的系统。系系统分析分析员应该使用系使用系统流程流程图或其他工具描述每种可能的系或其他工具描述每种可能的系统,估,估计每种方案的成本和效益,每种方案的成本和效益,还应该在充分在充分权衡各种方案的利弊的基衡各种方案的利弊的基础上,推荐一个上

22、,推荐一个较好的系好的系统(最佳方案),并且制定(最佳方案),并且制定实现所推荐的系所推荐的系统的的详细计划划。软件设计的一条基本原理就是程序应该模块化,也就是一个大程序应该由许多规模适中的模块按合理的层次结构组织而成。总体设计阶段的第二项主要任务就是设计软件的结构,也就是确定程序由哪些模块组成以及模块间的关系。通常用层次图或结构图描绘软件的结构。 软件开发软件开发详细设计详细设计阶段的任段的任务就是把解法具体化,也就是回答下面就是把解法具体化,也就是回答下面这个关个关键问题:“应该怎怎样具体地具体地实现这个系个系统呢?呢?”这个阶段的任务还不是编写程序,而是设计出程序的出程序的详细规格格说明

23、明。这种规格说明的作用很类似于其他工程领域中工程师经常使用的工程蓝图,它们应该包含必要的细节,程序员可以根据它们写出实际的程序代码。通常用 HIPO图(层次图加输入处理输出图)或 PDL语言(过程设计语言)描述详细设计的结果。编码和和单元元测试这个阶段的关键任务是写出正确的容易理解、容易写出正确的容易理解、容易维护的程序模的程序模块。程序员应该根据目标系统的性质和实际环境,选取一种适当的高级程序设计语言(必要时用汇编语言),把详细设计的结果翻翻译成用选定的语言书写的程序,并且仔细测试编写出的每一个模块。综合合测试这个阶段的关键任务是通通过各种各种类型的型的测试(及相(及相应的的调试)使)使软件

24、达到件达到预定的要求定的要求。最本的测试是集成测试和验收测试。所谓集成集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试。所谓验收测试则是按照规格说明书的规定(通常在需求分析阶段确定),由用户(或在用户积极参加下)对目标系统进行验收。必要时还可以再通过现场测试或平行运行等方法对目标系统进一步测试检验。通常需要以正式的或非正式的方式对用户进行培训。通过对软件测试结果的分析可以预测软件的可靠性;反之,根据对软件可靠性的要求,也可以决定测试和调试过程什么时候可以结束。应该用正式的文档用正式的文档资料把料把测试计划、划、详细测试方案以及方案

25、以及实际测试结果保存下来,做果保存下来,做为软件配置的一个件配置的一个组成部分成部分。软件件维护维护阶段的关键任务是通通过各种必要的各种必要的维护活活动使系使系统持久地持久地满足足用用户的需要的需要。通常有四类维护活动:改正性维护,也就是诊断和改正在使用过程中发现的软件错误适应性维护,即修改软件以适应环境的变化完善性维护,即根据用户的要求改进或扩充软件使它更完善预防性维护,即修改软件为将来的维护活动预先做准备。每一项维护活动都应该经过l提出提出维护要求(或要求(或报告告问题)、分析)、分析维护要求、提出要求、提出维护方案、方案、审批批维护方案、确定方案、确定维护计划、修改划、修改软件件设计、修

26、改程序、修改程序、测试程序、复程序、复查验收收等一系列步骤,因此实质上是经历了一次压缩和简化了的软件定义和开发的全过程。每一每一项维护活活动都都应该准确地准确地记录下来,做下来,做为正式的文档正式的文档资料加以保存料加以保存。运行维护运行维护表表1.1结构分析设计过程小结结构分析设计过程小结 阶阶段段关关键问题键问题结结束束标标准准问题定义问题是什么?关于规模和目标的报告书可行性研究有可行的解吗?系统的高层逻辑模型:数据流图、成本效益分析需求分析系统必须做什么?系统的逻辑模型:数据流图、数据字典、算法描述总体设计概括地说,应该如何解决这个问题?可能的解法: 系统流程图、成本/效益分析推荐的系统

27、结构:层次图或结构图详细设计怎样具体地实现这个系统?编码规格说明:HIPO图或 PDL编码/单元测试 正确的程序模块源程序清单;单元测试方案和结果综合测试符合要求的软件综合测试方案和结果;完整一致的软件配置维护持久地满足用户需要的软件完整准确的维护记录1.4 软件过程软件过程软件件过程程:为了了获得得高高质量量软件件所所需需要要完完成成的的一一系系列列任任务的的框框架架,它它规定定了了完完成成各各项任任务的的工工作作步步骤。软件件过程程(ISO9000):使使用用资源源将将输入入转化化为输出的活出的活动所构成的系所构成的系统。输入:如入:如软件需求件需求输出:如出:如软件件产品品1.4.1 瀑

28、布模型瀑布模型传传统统瀑瀑布布型型模模型型开开发发软软件的三大特点:件的三大特点:1. 阶阶段段间间具具有有顺顺序序性性和和依赖性依赖性2. 推迟实现的观点推迟实现的观点3.质量保证的观点质量保证的观点优优点点:采采用用规规范范的的方方法法;严严格格规规定定每每个个阶阶段段提提交交的的文文档档;要要求求每每个个阶阶段段交交出出的产品必须经过验证。的产品必须经过验证。缺缺点点:由由文文档档驱驱动动的的,在在软软件件交交付付给给用用户户之之前前,用用户户只只能能通通过过文文档档来来了了解解产产品品,这这样样导导致致用用户户很很难难全全面面认认识识软软件件产产品品,导导致致开开发发出出的的产产品品不

29、不能能真真正正满满足足用户的需要用户的需要1.4.2 快速原型模型快速原型模型快速原型快速原型是快速建立起来的是快速建立起来的可以在计算机上运行的程序,可以在计算机上运行的程序,它所能完成的功能往往是最它所能完成的功能往往是最终产品能完成的功能的一个终产品能完成的功能的一个子集。子集。优点优点:不带反馈环,基本上:不带反馈环,基本上是线性顺序进行。原型能够是线性顺序进行。原型能够快速与用户进行交互而得到快速与用户进行交互而得到验证;开发人员从原型中获验证;开发人员从原型中获得经验,从而避免犯错误。得经验,从而避免犯错误。1.4.3 增量模型增量模型增量模型开发软件时把软件产品作为一系列增量构件

30、来设计、编码、集成和测试。增量模型开发软件时把软件产品作为一系列增量构件来设计、编码、集成和测试。优优点点:能能较较短短时时间间内内提提交交可可完完成成部部分分工工作作的的产产品品;逐逐步步增增加加产产品品功功能能可可以以使使用用户户有有充充裕裕的的时间学习和适应新产品。时间学习和适应新产品。缺缺点点:把把每每个个构构件件集集成成到到现现有有软软件件体体系系结结构构中中时时,必必须须不不破破坏坏已已经经开开发发出出来来的的产产品品,必必须须在软件体系结构设计得便于按照这种方式进行扩充。即:软件系统是开放的在软件体系结构设计得便于按照这种方式进行扩充。即:软件系统是开放的一种风险更大的增量模型:

31、一种风险更大的增量模型:1.4.4 螺旋模型螺旋模型其基本思想其基本思想是使用原是使用原型及其他方法来尽量型及其他方法来尽量降低风险。降低风险。 可把它看作在每个阶可把它看作在每个阶段之前都增加风险分段之前都增加风险分析的快速原型模型。析的快速原型模型。优点:优点:该模型是风险该模型是风险驱动的。驱动的。1.4.5 喷泉模型泉模型 典型的面向对象软件典型的面向对象软件开发过程模型之一。开发过程模型之一。优点:优点:由于整个开发过由于整个开发过程中都是围绕对象组成程中都是围绕对象组成的,所以在生命周期的的,所以在生命周期的各个阶段区分不明显,各个阶段区分不明显,在各个开发步骤反复迭在各个开发步骤

32、反复迭代,每次反复都会增加代,每次反复都会增加或明确一些目标系统的或明确一些目标系统的性质,这样减少了不一性质,这样减少了不一致性,降低了出错的可致性,降低了出错的可能性。能性。1.4.6 Rational 统一过程统一过程1. RUP软件开件开发经验最佳最佳实践践(1)迭代式开迭代式开发,每次迭代以完成可,每次迭代以完成可执行版本行版本结束。束。(2)管理需求管理需求,根据用,根据用户需求制定迭代需求制定迭代计划。划。(3)使用基于构件的体系使用基于构件的体系结构构,体系,体系结构要开放,以构要开放,以适适应需求的需求的变化。化。(4)可可视化建模化建模,能,能够精确表达系精确表达系统。(5

33、)贯穿于开穿于开发过程的程的软件件质量量验证,确保,确保软件件质量。量。(6)控制控制软件件变更更,确保每次修改是可接受的和能被,确保每次修改是可接受的和能被跟踪的。跟踪的。2. RUP软件开件开发生命周期生命周期纵轴代表核心工作代表核心工作轴,横,横轴代表代表时间核心工作核心工作轴:业务建模:深入了解使用目建模:深入了解使用目标系系统的机构及其商的机构及其商业运作,运作,评估目估目标系系统对使用它使用它的机构的影响的机构的影响需求:捕需求:捕获客客户的需求,并且使开的需求,并且使开发人人员和用和用户达成达成对需求描述的共需求描述的共识分析与分析与设计:把需求分析的:把需求分析的结果果转化成分

34、析模型与化成分析模型与设计模型模型实现:把:把设计模型模型转换成成实现结果果测试:检查各个子系各个子系统的交互与集成,的交互与集成,验证所有需求是否都被正确的所有需求是否都被正确的实现了,了,识别、确、确认缺陷并确保缺陷并确保软件部署之前消除缺陷。件部署之前消除缺陷。部署:成功地生成目部署:成功地生成目标系系统的可运行版本。的可运行版本。配置与配置与变更管理:跟踪并更管理:跟踪并维护在在软件开件开发过程中程中产生的所有制品的完整性和一致生的所有制品的完整性和一致性。性。项目管理:提供目管理:提供项目管理框架,目管理框架,为软件开件开发项目目执行行计划、人划、人员配配备、执行和行和监控等方面的使

35、用准控等方面的使用准则,并,并为风险管理提供框架管理提供框架环境:向境:向软件开件开发机构提供机构提供软件开件开发环境,包括:境,包括:过程管理和工具支持程管理和工具支持工作工作阶段:段:初始初始阶段:建立段:建立业务模型,定模型,定义最最终产品品视图,并且确定,并且确定项目的范目的范围精化精化阶段:段:设计并确定系并确定系统的体系的体系结构,制定构,制定项目目计划,确定划,确定资源需求源需求构建构建阶段:开段:开发出所有构件和出所有构件和应用程序,把它用程序,把它们集成集成为客客户需要的需要的产品,并且品,并且详尽地尽地测试所有功能所有功能移交移交阶段:把开段:把开发出的出的产品提交品提交给

36、用用户使用。使用。1.4.7 敏捷过程与极限编程敏捷过程与极限编程1.敏捷敏捷过程程 具有高效、快速响具有高效、快速响应变化的开化的开发过程。程。(1)个体和交互)个体和交互胜过过程和工具;程和工具;(2)可以工作的)可以工作的软件件胜过面面俱到的文档;面面俱到的文档;(3)客)客户合作合作胜过合同合同谈判;判;(4)响)响应变化化胜过遵循遵循计划。划。2.极限极限编程程 敏捷敏捷过程中最著名的一种,指把好的开程中最著名的一种,指把好的开发实践运用到极致,践运用到极致,多多应用于用于软件需求模糊的件需求模糊的场合。合。客客户作作为开开发团队的成的成员使用用使用用户素材素材短交付短交付时间验收收

37、测试结对编程程测试驱动开开发集体所有集体所有持持续集成集成开持开持续的开的开发速度速度开放的工作空开放的工作空间及及时调整整计划划简单的的设计重构重构使用使用隐喻极限极限编程的整体开程的整体开发过程:程:图1.11 XP项目的整体开发过程极限极限编程的迭代程的迭代过程:程:图1.12 XP迭代开发过程1.4.8 微软过程微软过程1.微微软过程准程准则项目目计划划应该兼兼顾未来的不确定因素未来的不确定因素用有效的用有效的风险管理来减少不确定因素的影响管理来减少不确定因素的影响经常生成并快速地常生成并快速地测试软件的件的过渡版本,从而提高渡版本,从而提高产品的品的稳定性和可定性和可预测性性采用快速

38、循采用快速循环、递进的开的开发过程程用用创造性的工作来平衡造性的工作来平衡产品特性和品特性和产品成本品成本项目目进度表度表应该具有具有较高高稳定性和定性和权威性威性使用小型使用小型项目目组并并发地完成开地完成开发工作工作在在项目早期把目早期把软件配置件配置项基基线化,化,项目后期目后期则冻结产品品使用原型使用原型验证概念,概念,对项目目进行早期行早期论证把零缺陷作把零缺陷作为追求的目追求的目标里程碑里程碑评审会的目的是改会的目的是改进工作,切工作,切记互相指互相指责2.微微软软件生命周期件生命周期(1)规划划阶段段(2)设计阶段段(3)开)开发阶段段(4)稳定定阶段段(5)发布布阶段段图1.1

39、3微软软件生命周期阶段划分和主要里程碑3.微微软过程模型程模型 微微软过程的每个生命周程的每个生命周期期发布一个布一个递进的的软件版本,各个生件版本,各个生命周期持命周期持续、快速、快速地迭代循地迭代循环。图1.14微软过程的生命周期模型1.5小结软件工程的基本原理和方法件工程的基本原理和方法软件工程方法学:件工程方法学:生命周期方法学生命周期方法学面向面向对象方法象方法 面向面向对象方法象方法对象象类继承用消息通信承用消息通信软件生命周期划分:件生命周期划分:问题定定义、可行性研究、需求分析、可行性研究、需求分析、总体体设计、详细设计、编码和和单元元测试、综合合测试、运行运行维护 等等8 8

40、个个阶段段软件件过程:瀑布模型、快速原型模型、增量模型、程:瀑布模型、快速原型模型、增量模型、风险驱动的螺旋模型,的螺旋模型,Rational统一一过程,敏捷程,敏捷过程与极限程与极限编程,微程,微软过程。程。练习题名名词词解解释释:1 1、软软件工程件工程2 2、软件过程3、软件危机4、软件生命周期填空:填空:1 1、软软件件过过程中的一个任程中的一个任务务集合包括一集合包括一组软组软件工程任件工程任务务、(、( )和)和应该应该交付交付的的产产品(品(软软件配置成分)。通常使用件配置成分)。通常使用软软件生命周期模型件生命周期模型简洁简洁地描述地描述软软件件过过程。程。请举请举出几种典型的

41、出几种典型的软软件件过过程模型如微程模型如微软过软过程、(程、( )、()、( )等。)等。2 2、软软件工程方法学的三个要素:件工程方法学的三个要素: ( )、()、( )、 ( )3 3、软软件工程包含件工程包含( )、()、( )两方面内容,是两方面内容,是( )与与( )紧紧密密结结合所形成的学科。合所形成的学科。简简述述题题:1 1、软软件工程包括哪件工程包括哪7 7条基本原理?条基本原理?2 2、简简要要说说明明软软件生命周期包括哪三个件生命周期包括哪三个时时期?各个期?各个时时期包括哪些期包括哪些阶阶段活段活动动?概括?概括说说明明传统传统瀑布模型瀑布模型软软件开件开发发有哪些特点?有哪些特点?3 3、软软件生命周期的件生命周期的8 8个个阶阶段分段分别别是什么?是什么?4 4、P32.P32.第一、三、四第一、三、四题题,P33.P33.第六、七第六、七题题

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

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