




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1 软件工程导论软件工程导论(第第1章章 课程介绍课程介绍 n课程主要内容:课程主要内容: n第一部分:软件工程的基本定义、基本原理和软件过程模型(对应第一章)第一部分:软件工程的基本定义、基本原理和软件过程模型(对应第一章) n第二部分:从可行性研究、需求分析、总体设计、详细设计、编码实现、维第二部分:从可行性研究、需求分析、总体设计、详细设计、编码实现、维 护六个步骤来说明软件开发过程中的具体问题和具体解决方法(对应第二、护六个步骤来说明软件开发过程中的具体问题和具体解决方法(对应第二、 三、四、五、六、七、八章)三、四、五、六、七、八章)结构化分析设计结构化分析设计 n第三部分:面
2、向对象方法概论、面向对象分析、设计、实现(对应第九、十、第三部分:面向对象方法概论、面向对象分析、设计、实现(对应第九、十、 十一、十二章)十一、十二章) n第四部分:软件项目管理基本概念(对应第十三章)第四部分:软件项目管理基本概念(对应第十三章) 第1页/共51页 考核方式考核方式 n考试方法:采用百分制,满分为考试方法:采用百分制,满分为100分。分。 n(1)闭卷考试:占总评成绩的)闭卷考试:占总评成绩的50%。 n(2)期中考试:占总评成绩的)期中考试:占总评成绩的30%。 n(3)课堂作业、平时考勤、提问:占总评成绩的)课堂作业、平时考勤、提问:占总评成绩的10%;课后作业、实验报
3、告:;课后作业、实验报告: 占总评成绩的占总评成绩的10%。 第2页/共51页 第第1章:软件工程学概章:软件工程学概 述述 n1.1 软件危机软件危机 n 60年代中期以前:通用硬件相当普遍,软件却是为某年代中期以前:通用硬件相当普遍,软件却是为某 个具体的应用而编写的。个具体的应用而编写的。 n 60年代中期到年代中期到70年代中期:软件作坊。这时软件危机年代中期:软件作坊。这时软件危机 出现,随之而来人们开始研究消除危机的途径,从而形成出现,随之而来人们开始研究消除危机的途径,从而形成 一门新的学科一门新的学科软件工程学。软件工程学。 第3页/共51页 软件危机软件危机:计算机软件的开发
4、和维护过程中所:计算机软件的开发和维护过程中所 遇到的一系列严重问题。(正常、不正常运行软件遇到的一系列严重问题。(正常、不正常运行软件 都具有这种问题)都具有这种问题) 1.1.1 软件危机的介绍软件危机的介绍 第4页/共51页 n软件危机的实质:软件危机的实质: l如何开发软件,以满足对软件日益增长的需求如何开发软件,以满足对软件日益增长的需求 l如何维护数量不断膨胀的已有软件如何维护数量不断膨胀的已有软件 第5页/共51页 n1)对软件开发成本和进度的估计常常很不准确;)对软件开发成本和进度的估计常常很不准确; n2)用户对完成的软件系统不满意的现象经常发生;)用户对完成的软件系统不满意
5、的现象经常发生; n3)软件产品的质量往往靠不住;)软件产品的质量往往靠不住; n4)软件常常是不可维护的;)软件常常是不可维护的; n5)软件通常没有适当的文档资料;)软件通常没有适当的文档资料; n6)软件成本在计算机系统总成本中所占的比例逐年)软件成本在计算机系统总成本中所占的比例逐年 上升;上升; n7)软件开发生产率提高的速度跟不上计算机应用的)软件开发生产率提高的速度跟不上计算机应用的 发展趋势。发展趋势。 软件危机的典型表现:软件危机的典型表现: 第6页/共51页 n1.1.2 产生软件危产生软件危 机的原因机的原因 1)软件本身特点造成;)软件本身特点造成; 程序规模庞大;程序
6、规模庞大; 程序复杂性随着程序规模的增加而呈指数程序复杂性随着程序规模的增加而呈指数 上升。上升。 2)软件开发与维护的方法不正确。)软件开发与维护的方法不正确。 主要表现:主要表现: (a)忽视软件需求分析;)忽视软件需求分析; (b)认为软件开发就是写程序并使之运行;)认为软件开发就是写程序并使之运行; (c)轻视软件维护;)轻视软件维护; 第7页/共51页 n 在软件开发的不同阶段进行修改需要付出在软件开发的不同阶段进行修改需要付出 的代价很不相同:的代价很不相同: 高高 中中 低低 早期早期中期中期后期后期软件开发时期软件开发时期 代价代价 引入同一修改的代价随时间变化的趋势引入同一修
7、改的代价随时间变化的趋势 第8页/共51页 1.组织管理:组织管理:软件开发不是某种个体劳动的神秘技软件开发不是某种个体劳动的神秘技 巧,软件开发应该是一种组织良好、管理严密、巧,软件开发应该是一种组织良好、管理严密、 各类人员协同配合、共同完成的工程项目。各类人员协同配合、共同完成的工程项目。 2.方法:方法:应该推广使用在实践中总结出来的开发软应该推广使用在实践中总结出来的开发软 件的成功的技术和方法,并且研究探索更好更有件的成功的技术和方法,并且研究探索更好更有 效的技术和方法,尽快消除在计算机系统早期发效的技术和方法,尽快消除在计算机系统早期发 展阶段形成的一些错误概念和做法。展阶段形
8、成的一些错误概念和做法。 3.工具:工具:应该开发和使用更好的软件工具。在软件应该开发和使用更好的软件工具。在软件 开发的每个阶段都有许多繁琐重复的工作需要做,开发的每个阶段都有许多繁琐重复的工作需要做, 在适当的软件工具辅助下,开发人员可以把这类在适当的软件工具辅助下,开发人员可以把这类 工作做得既快又好。工作做得既快又好。 1.1.3 解决软件危机的途径解决软件危机的途径 第9页/共51页 n 如果把各个阶段使用的软件工具有机如果把各个阶段使用的软件工具有机 地集合成一个整体,支持软件开发的全过地集合成一个整体,支持软件开发的全过 程,则称为程,则称为软件工程支撑环境。软件工程支撑环境。
9、第10页/共51页 n 为了解决软件危机产生的问题,软件工程为了解决软件危机产生的问题,软件工程 与方法学逐渐形成,然后出现了两个相互相承与方法学逐渐形成,然后出现了两个相互相承 又各有侧重的学科:又各有侧重的学科: n 1)软件工程学软件工程学:主要应用工程的方法和技:主要应用工程的方法和技 术研究软件开发与维护的方法、工具和管理的术研究软件开发与维护的方法、工具和管理的 一门交叉学科。一门交叉学科。 n 2)程序设计方法学程序设计方法学:主要应用数学的方法:主要应用数学的方法 研究程序的性质以及程序设计的理论和方法的研究程序的性质以及程序设计的理论和方法的 学科。学科。 第11页/共51页
10、 1.2 软件工程软件工程 n1.2.1 软件工程的介绍软件工程的介绍 1968年年NATO会议:软件工程就是为了经济地获会议:软件工程就是为了经济地获 得可靠的且能在实际机器上有效地运行的软件,得可靠的且能在实际机器上有效地运行的软件, 而建立和使用完善的工程原理。而建立和使用完善的工程原理。 1993年年IEEE:软件工程是(:软件工程是(1)把系统的、规范)把系统的、规范 的、可度量的途径应用于软件开发、运行和维护的、可度量的途径应用于软件开发、运行和维护 过程,也就是把工程应用于软件;(过程,也就是把工程应用于软件;(2)研究()研究(1) 中提到的途径。中提到的途径。 第12页/共5
11、1页 n 1. 软件工程关注于大型程序的构造;软件工程关注于大型程序的构造; n 2. 软件工程的中心课题是控制复杂性;软件工程的中心课题是控制复杂性; n 3. 软件经常变化;软件经常变化; n 4. 开发软件的效率非常重要;开发软件的效率非常重要; n 5. 和谐地合作是软件开发的关键;和谐地合作是软件开发的关键; n 6. 软件必须有效地支持它的用户;软件必须有效地支持它的用户; n 7. 在软件工程领域中是由具有一种文化背在软件工程领域中是由具有一种文化背 景的人替具有另一种文化背景的人创造产品。景的人替具有另一种文化背景的人创造产品。 软件工程的本质特性:软件工程的本质特性: 第13
12、页/共51页 n1.2.2 软件工程的基本原理软件工程的基本原理 1. 用分阶段的生命周期计划严格管理;用分阶段的生命周期计划严格管理; 2. 坚持进行阶段评审;坚持进行阶段评审; 3. 实行严格的产品控制;实行严格的产品控制; 4. 采用现代程序设计技术;采用现代程序设计技术; 5. 结果能清楚地审查;结果能清楚地审查; 6. 开发小组的人员应该少而精;开发小组的人员应该少而精; 7. 承认不断改进软件工程实践的必要性。承认不断改进软件工程实践的必要性。 第14页/共51页 n1.2.3 软件工程方法学软件工程方法学 n软件工程软件工程包括:技术和管理两个方面的内容,是技术和包括:技术和管理
13、两个方面的内容,是技术和 管理紧密结合所形成的工程学科。管理紧密结合所形成的工程学科。 n通常把在软件生命周期全过程中使用的一整套技术方法通常把在软件生命周期全过程中使用的一整套技术方法 的集合称为的集合称为方法学方法学(Methodology),也称为范型),也称为范型 (Paradigm)。)。 n 软件工程方法学的软件工程方法学的3要素要素:方法方法、工具工具和和过程过程 第15页/共51页 n一一. 传统方法学传统方法学 n 也称为生命周期方法学或结构化也称为生命周期方法学或结构化 范型。范型。从时间角度对软件开发和维护的复杂问题进行分解,把软件 生命的漫长周期依次划分为若干个阶段,每
14、个阶段有相对独立的任务,然 后逐步完成每个阶段的任务。 n 文档是通信的工具,它们清楚准确地说明了到这个时候为止,关于该项工程已经知道了什么,同时确立了下一步工作的基础。此外,文档也起备忘录的作用,在完成生命周期每个阶段的任务时,应该采用适合该阶段任务特点的系统化的技术方法结构分析或结构设计技术。 第16页/共51页 n结构化方法(结构化方法(Structure Method)有:有: n 1)结构化设计方法()结构化设计方法(SD);); n 2)结构化分析方法(结构化分析方法(SA);); n 3)结构化分析与设计技术()结构化分析与设计技术(SADT) n 4)JACKSON方法方法 n
15、 5)WARNIER方法方法 第17页/共51页 n二二. 面向对象方法学面向对象方法学 n 把数据和对数据的操作紧密结合起来的方法,把数据和对数据的操作紧密结合起来的方法, 模拟人类认识世界解决问题的方法和过程。模拟人类认识世界解决问题的方法和过程。 n 面向对象的方法面向对象的方法 n =对象(属性与服务的封装)对象(属性与服务的封装) n +分类分类 n +继承继承 n +通过消息的通讯通过消息的通讯 第18页/共51页 n面向对象方法把数据和行为看成同等重要,是一种以数据为主线,把数据和对数据的操面向对象方法把数据和行为看成同等重要,是一种以数据为主线,把数据和对数据的操 作紧密地结合
16、起来的方法。其具有如下作紧密地结合起来的方法。其具有如下4个要点:个要点: 把对象把对象(Object)作为融合了数据及在数据上的操作行为的统一的软件构件。用对象分作为融合了数据及在数据上的操作行为的统一的软件构件。用对象分 解取代传统方法的功能分解。解取代传统方法的功能分解。 把所有对象划分为类把所有对象划分为类(Class):每个类定义了一组数据和一组操作。:每个类定义了一组数据和一组操作。 按照父类(基类)和子类(派生类)的关系,把若干个相关类组成一个层次结构的按照父类(基类)和子类(派生类)的关系,把若干个相关类组成一个层次结构的 系统。子类能够继承。系统。子类能够继承。 对象彼此间仅
17、能通过发送消息互相联系。对象是数据处理的主体,具有封装性特点。对象彼此间仅能通过发送消息互相联系。对象是数据处理的主体,具有封装性特点。 n复杂性降低、可理解性、简化开发与维护、软件重用。复杂性降低、可理解性、简化开发与维护、软件重用。 第19页/共51页 n1)适用于实时事物处理系统的有限状态机)适用于实时事物处理系统的有限状态机 方法(方法(FSM);); n2)适用于并发软件系统的适用于并发软件系统的PETRI网方法;网方法; n3)以数学概念和理论为基础的形式化方法,)以数学概念和理论为基础的形式化方法, 如如 n SDC公司的形式化开发方法公司的形式化开发方法FDM: n (Form
18、al Development Methodology) n IBM公司的维也纳开发方法公司的维也纳开发方法VDM: n (Vienna Development Method ) 三三. 其他开发方法其他开发方法 第20页/共51页 1.3 软件生命周期软件生命周期 软件生命周期软件生命周期: 指软件从提出到最终被淘汰的这个存在期。指软件从提出到最终被淘汰的这个存在期。 软件生命周期由软件生命周期由软件定义软件定义、软件开发软件开发和和运行运行 维护维护三个时期组成,每个时期又划分若干个三个时期组成,每个时期又划分若干个 阶段。阶段。 第21页/共51页 n软件生命周期组成:软件生命周期组成:
19、n 1)软件定义时期的主要任务为:)软件定义时期的主要任务为: n A.问题定义问题定义 B.可行性研究可行性研究 C.需需 求分析求分析 n 2)软件开发时期的主要任务为:)软件开发时期的主要任务为: n D.总体设计总体设计 E.详细设计详细设计 n F.编码和单元测试编码和单元测试 G.综合测试综合测试 n 3)运行维护时期的主要任务为:)运行维护时期的主要任务为: n H. 使软件持久地满足用户的需要使软件持久地满足用户的需要 第22页/共51页 问题定义问题定义 n问题定义阶段必须回答的关键问题是:问题定义阶段必须回答的关键问题是:“要解决的问题是什要解决的问题是什 么么?”。通过问
20、题定义阶段的工作,。通过问题定义阶段的工作,系统分析系统分析员应该提出关员应该提出关 于于问题性质问题性质、工程目标和规模工程目标和规模的书面报告。通过访问调查,的书面报告。通过访问调查, 分析员扼要地写出他对问题的理解,并在用户和使用部门负分析员扼要地写出他对问题的理解,并在用户和使用部门负 责人的会议上认真讨论这份书面报告,得出一份双方都满意责人的会议上认真讨论这份书面报告,得出一份双方都满意 的文档。的文档。 可行性研究可行性研究 n这个阶段要回答的关键问题是:这个阶段要回答的关键问题是:“对上一阶段所确定的问题对上一阶段所确定的问题 有行得通的解决办法吗?有行得通的解决办法吗?” 系统
21、分析员需要进行一次大大系统分析员需要进行一次大大 压缩和简化了的系统分析和设计的过程,也就是在较抽象的压缩和简化了的系统分析和设计的过程,也就是在较抽象的 高层次上进行的分析和设计的过程。可行性研究应该比较简高层次上进行的分析和设计的过程。可行性研究应该比较简 短,短,这个阶段的任务不是具体解决问题,而是研究问题的范这个阶段的任务不是具体解决问题,而是研究问题的范 围,探索这个问题是否值得去解,是否有可行的解决办法围,探索这个问题是否值得去解,是否有可行的解决办法。 n在问题定义阶段提出的对工程目标和规模的报告通常比较含 糊。可行性研究阶段应该导出系统的高层逻辑模型(通常用 数据流图表示),并
22、且在此基础上更准确、更具体地确定工 程规模和目标。然后分析员更准确地估计系统的成本和效益, 对建议的系统进行仔细的成本效益分析是这个阶段的主要对建议的系统进行仔细的成本效益分析是这个阶段的主要 任务之一任务之一。 软件定义软件定义 第23页/共51页 n可行性研究的结果是使用部门负责人做出是否继续进行这项工可行性研究的结果是使用部门负责人做出是否继续进行这项工 程的决定的重要依据程的决定的重要依据,一般说来,只有投资可能取得较大效益 的那些工程项目才值得继续进行下去。可行性研究以后的那些 阶段将需要投入更多的人力物力。及时终止不值得投资的工程 项目,可以避免更大的浪费。 需求分析需求分析 n这
23、个阶段的任务仍然不是具体地解决问题,而是准确地确定 “为了解决这个问题,目标系统必须做什么为了解决这个问题,目标系统必须做什么”,主要是确定目 标系统必须具备哪些功能功能。用户了解他们所面对的问题,知道 必须做什么,但是通常不能完整准确地表达出他们的要求,更 不知道怎样利用计算机解决他们的问题;软件开发人员知道怎 样用软件实现人们的要求,但是对特定用户的具体要求并不完 全清楚。因此,系统分析员在需求分析阶段必须和用户密切配必须和用户密切配 合,充分交流信息,以得出经过用户确认的系统逻辑模型。通合,充分交流信息,以得出经过用户确认的系统逻辑模型。通 常用数据流图、数据字典和简要的算法表示系统的逻
24、辑模型常用数据流图、数据字典和简要的算法表示系统的逻辑模型。 n在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系 统的基础,因此必须准确完整地体现用户的要求统的基础,因此必须准确完整地体现用户的要求。 第24页/共51页 总体设计总体设计 这个阶段必须回答的关键问题是:“概括地说,应该如何解概括地说,应该如何解 决这个问题?决这个问题?”。总体设计阶段的第一项主要任务就是应该 考虑几种可能的解决方案。 n(1)低成本的解决方案。系统只能完成最必要的工作,不能 多做一点额外的工作。 n(2)中等成本的解决方案。这样的系统不仅能够很好地完
25、成 预定的任务,而且可能还具有用户没有具体指定的某些功能 和特点。虽然用户没有提出这些具体要求,但是系统分析员 根据自己的知识和经验断定,这些附加的能力在实践中将证 明是很有价值的。 n(3)高成本的“十全十美”的系统。系统分析员应该使用系系统分析员应该使用系 统流程图或其他工具描述每种可能的系统,估计每种方案的统流程图或其他工具描述每种可能的系统,估计每种方案的 成本和效益,还应该在充分权衡各种方案的利弊的基础上,成本和效益,还应该在充分权衡各种方案的利弊的基础上, 推荐一个较好的系统(最佳方案),并且制定实现所推荐的推荐一个较好的系统(最佳方案),并且制定实现所推荐的 系统的详细计划系统的
26、详细计划。 软件设计的一条基本原理就是程序应该模块化,也就是一个 大程序应该由许多规模适中的模块按合理的层次结构组织而 成。总体设计阶段的第二项主要任务就是设计软件的结构, 也就是确定程序由哪些模块组成以及模块间的关系。通常用 层次图或结构图描绘软件的结构。 软件开发软件开发 第25页/共51页 详细设计详细设计 n详细设计阶段的任务就是把解法具体化,也就是回答下面这详细设计阶段的任务就是把解法具体化,也就是回答下面这 个关键问题:个关键问题:“应该怎样具体地实现这个系统呢?应该怎样具体地实现这个系统呢?”这个阶 段的任务还不是编写程序,而是设计出程序的详细规格说明设计出程序的详细规格说明。
27、这种规格说明的作用很类似于其他工程领域中工程师经常使 用的工程蓝图,它们应该包含必要的细节,程序员可以根据 它们写出实际的程序代码。 n通常用 HIPO图(层次图加输入处理输出图)或 PDL语 言(过程设计语言)描述详细设计的结果。 编码和单元测试编码和单元测试 n这个阶段的关键任务是写出正确的容易理解、容易维护的程写出正确的容易理解、容易维护的程 序模块序模块。 n程序员应该根据目标系统的性质和实际环境,选取一种适当 的高级程序设计语言(必要时用汇编语言),把详细设计的 结果翻译翻译成用选定的语言书写的程序,并且仔细测试编写出 的每一个模块。 第26页/共51页 综合测试综合测试 n这个阶段
28、的关键任务是通过各种类型的测试(及相应的调试)通过各种类型的测试(及相应的调试) 使软件达到预定的要求使软件达到预定的要求。最本的测试是集成测试和验收测试。 n所谓集成测试集成测试是根据设计的软件结构,把经过单元测试检验 的模块按某种选定的策略装配起来,在装配过程中对程序进 行必要的测试。所谓验收测试则是按照规格说明书的规定 (通常在需求分析阶段确定),由用户(或在用户积极参加 下)对目标系统进行验收。必要时还可以再通过现场测试或 平行运行等方法对目标系统进一步测试检验。 n通常需要以正式的或非正式的方式对用户进行培训。 n通过对软件测试结果的分析可以预测软件的可靠性;反之, 根据对软件可靠性
29、的要求,也可以决定测试和调试过程什么 时候可以结束。 n应该用正式的文档资料把测试计划、详细测试方案以及实际应该用正式的文档资料把测试计划、详细测试方案以及实际 测试结果保存下来,做为软件配置的一个组成部分测试结果保存下来,做为软件配置的一个组成部分。 第27页/共51页 软件维护软件维护 维护阶段的关键任务是通过通过各种必要的维护活动使系统持久地满各种必要的维护活动使系统持久地满 足用户的需要足用户的需要。通常有四类维护活动: n改正性维护,也就是诊断和改正在使用过程中发现的软件错 误 n适应性维护,即修改软件以适应环境的变化 n完善性维护,即根据用户的要求改进或扩充软件使它更完善 n预防性
30、维护,即修改软件为将来的维护活动预先做准备。 每一项维护活动都应该经过 l提出维护要求(或报告问题)、分析维护要求、提出维护方提出维护要求(或报告问题)、分析维护要求、提出维护方 案、审批维护方案、确定维护计划、修改软件设计、修改程案、审批维护方案、确定维护计划、修改软件设计、修改程 序、测试程序、复查验收序、测试程序、复查验收等一系列步骤,因此实质上是经历 了一次压缩和简化了的软件定义和开发的全过程。每一项维每一项维 护活动都应该准确地记录下来,做为正式的文档资料加以保护活动都应该准确地记录下来,做为正式的文档资料加以保 存存。 运行维护运行维护 第28页/共51页 表表1.1结构分析设计过
31、程小结结构分析设计过程小结 阶段阶段关键问题关键问题结束标准结束标准 问题定义问题是什么?关于规模和目标的报告书 可行性研究有可行的解吗?系统的高层逻辑模型: 数据流图、成本效益分析 需求分析系统必须做什么?系统的逻辑模型: 数据流图、数据字典、算法描述 总体设计概括地说,应该如何解 决这个问题? 可能的解法: 系统流程图、成本/效 益分析 推荐的系统结构:层次图或结构图 详细设计怎样具体地实现这个系 统? 编码规格说明:HIPO图或 PDL 编码/单元测试 正确的程序模块源程序清单;单元测试方案和结果 综合测试符合要求的软件综合测试方案和结果;完整一致的软 件配置 维护持久地满足用户需要的
32、软件 完整准确的维护记录 第29页/共51页 1.4 软件过程软件过程 n软件过程软件过程:为了获得高质量软件所需要完成的:为了获得高质量软件所需要完成的 一系列任务的框架,它规定了完成各项任务的一系列任务的框架,它规定了完成各项任务的 工作步骤。工作步骤。 n软件过程(软件过程(ISO9000):使用资源将输入转化使用资源将输入转化 为输出的活动所构成的系统。为输出的活动所构成的系统。 n输入:如软件需求输入:如软件需求 n输出:如软件产品输出:如软件产品 第30页/共51页 n1.4.1 瀑布模型瀑布模型 传统瀑布型模型开发软传统瀑布型模型开发软 件的三大特点:件的三大特点: 1. 阶段间
33、具有顺序性和阶段间具有顺序性和 依赖性依赖性 2. 推迟实现的观点推迟实现的观点 3.质量保证的观点质量保证的观点 第31页/共51页 优点优点:采用规范的方法;:采用规范的方法; 严格规定每个阶段提交的严格规定每个阶段提交的 文档;要求每个阶段交出文档;要求每个阶段交出 的产品必须经过验证。的产品必须经过验证。 缺点:缺点:由文档驱动的,在由文档驱动的,在 软件交付给用户之前,用软件交付给用户之前,用 户只能通过文档来了解产户只能通过文档来了解产 品,这样导致用户很难全品,这样导致用户很难全 面认识软件产品,导致开面认识软件产品,导致开 发出的产品不能真正满足发出的产品不能真正满足 用户的需
34、要用户的需要 第32页/共51页 n1.4.2 快速原型模型快速原型模型 n快速原型快速原型是快速建立起来是快速建立起来 的可以在计算机上运行的程的可以在计算机上运行的程 序,它所能完成的功能往往序,它所能完成的功能往往 是最终产品能完成的功能的是最终产品能完成的功能的 一个子集。一个子集。 n优点优点:不带反馈环,基本:不带反馈环,基本 上是线性顺序进行。原型能上是线性顺序进行。原型能 够快速与用户进行交互而得够快速与用户进行交互而得 到验证;开发人员从原型中到验证;开发人员从原型中 获得经验,从而避免犯错误。获得经验,从而避免犯错误。 第33页/共51页 1.4.3 增量模型增量模型 增量
35、模型开发软件时把软件产品作为一系列增量构件来设计、编码、集成和测试。增量模型开发软件时把软件产品作为一系列增量构件来设计、编码、集成和测试。 优点优点:能较短时间内提交可完成部分工作的产品;逐步增加产品功能可以使用户有充裕的:能较短时间内提交可完成部分工作的产品;逐步增加产品功能可以使用户有充裕的 时间学习和适应新产品。时间学习和适应新产品。 缺点:把每个构件集成到现有软件体系结构中时,必须不破坏已经开发出来的产品,必须缺点:把每个构件集成到现有软件体系结构中时,必须不破坏已经开发出来的产品,必须 在软件体系结构设计得便于按照这种方式进行扩充。即:软件系统是开放的在软件体系结构设计得便于按照这
36、种方式进行扩充。即:软件系统是开放的 第34页/共51页 n一种风险更大的增量一种风险更大的增量 模型:模型: 第35页/共51页 n1.4.4 螺旋模型螺旋模型 n其基本思想其基本思想是使用是使用 原型及其他方法来尽原型及其他方法来尽 量降低风险。量降低风险。 n可把它看作在每个可把它看作在每个 阶段之前都增加风险阶段之前都增加风险 分析的快速原型模型。分析的快速原型模型。 n优点:优点:该模型是风该模型是风 险驱动的。险驱动的。 第36页/共51页 第37页/共51页 n1.4.5 喷泉模型喷泉模型 典型的面向对象软件典型的面向对象软件 开发过程模型之一。开发过程模型之一。 优点:优点:由
37、于整个开发过由于整个开发过 程中都是围绕对象组成程中都是围绕对象组成 的,所以在生命周期的的,所以在生命周期的 各个阶段区分不明显,各个阶段区分不明显, 在各个开发步骤反复迭在各个开发步骤反复迭 代,每次反复都会增加代,每次反复都会增加 或明确一些目标系统的或明确一些目标系统的 性质,这样减少了不一性质,这样减少了不一 致性,降低了出错的可致性,降低了出错的可 能性。能性。 第38页/共51页 1.4.6 Rational 统一过程统一过程 n1. RUP软件开发经验软件开发经验最佳实践最佳实践 n(1)迭代式开发迭代式开发,每次迭代以完成可执行版本结束。,每次迭代以完成可执行版本结束。 n(
38、2)管理需求管理需求,根据用户需求制定迭代计划。,根据用户需求制定迭代计划。 n(3)使用基于构件的体系结构使用基于构件的体系结构,体系结构要开放,体系结构要开放, 以适应需求的变化。以适应需求的变化。 n(4)可视化建模可视化建模,能够精确表达系统。,能够精确表达系统。 n(5)贯穿于开发过程的软件质量验证贯穿于开发过程的软件质量验证,确保软件质,确保软件质 量。量。 n(6)控制软件变更控制软件变更,确保每次修改是可接受的和能,确保每次修改是可接受的和能 被跟踪的。被跟踪的。 第39页/共51页 n2. RUP软件开发生命周期软件开发生命周期 第40页/共51页 n纵轴代表核心工作轴,横轴
39、代表时间纵轴代表核心工作轴,横轴代表时间 核心工作轴:核心工作轴: 业务建模:深入了解使用目标系统的机构及其商业运作,评估目标系统对使用业务建模:深入了解使用目标系统的机构及其商业运作,评估目标系统对使用 它的机构的影响它的机构的影响 需求:捕获客户的需求,并且使开发人员和用户达成对需求描述的共识需求:捕获客户的需求,并且使开发人员和用户达成对需求描述的共识 分析与设计:把需求分析的结果转化成分析模型与设计模型分析与设计:把需求分析的结果转化成分析模型与设计模型 实现:把设计模型转换成实现结果实现:把设计模型转换成实现结果 测试:检查各个子系统的交互与集成,验证所有需求是否都被正确的实现了,测
40、试:检查各个子系统的交互与集成,验证所有需求是否都被正确的实现了, 识别、确认缺陷并确保软件部署之前消除缺陷。识别、确认缺陷并确保软件部署之前消除缺陷。 部署:成功地生成目标系统的可运行版本。部署:成功地生成目标系统的可运行版本。 配置与变更管理:跟踪并维护在软件开发过程中产生的所有制品的完整性和一配置与变更管理:跟踪并维护在软件开发过程中产生的所有制品的完整性和一 致性。致性。 项目管理:提供项目管理框架,为软件开发项目执行计划、人员配备、执行和项目管理:提供项目管理框架,为软件开发项目执行计划、人员配备、执行和 监控等方面的使用准则,并为风险管理提供框架监控等方面的使用准则,并为风险管理提
41、供框架 环境:向软件开发机构提供软件开发环境,包括:过程管理和工具支持环境:向软件开发机构提供软件开发环境,包括:过程管理和工具支持 工作阶段:工作阶段: 初始阶段:建立业务模型,定义最终产品视图,并且确定项目的范围初始阶段:建立业务模型,定义最终产品视图,并且确定项目的范围 精化阶段:设计并确定系统的体系结构,制定项目计划,确定资源需求精化阶段:设计并确定系统的体系结构,制定项目计划,确定资源需求 构建阶段:开发出所有构件和应用程序,把它们集成为客户需要的产品,并且构建阶段:开发出所有构件和应用程序,把它们集成为客户需要的产品,并且 详尽地测试所有功能详尽地测试所有功能 移交阶段:把开发出的
42、产品提交给用户使用。移交阶段:把开发出的产品提交给用户使用。 第41页/共51页 1.4.7 敏捷过程与极限编程敏捷过程与极限编程n1.敏捷过程敏捷过程 n 具有高效、快速响应变化的开发过程。具有高效、快速响应变化的开发过程。 n(1)个体和交互胜过过程和工具;)个体和交互胜过过程和工具; n(2)可以工作的软件胜过面面俱到的文档;)可以工作的软件胜过面面俱到的文档; n(3)客户合作胜过合同谈判;)客户合作胜过合同谈判; n(4)响应变化胜过遵循计划。)响应变化胜过遵循计划。 第42页/共51页 n2.极限编程极限编程 n 敏捷过程中最著名的一种,指把好的开发实践运用到极敏捷过程中最著名的一种,指把好的开发实践运用到极 致,多应用于软件需求模糊的场合。致,多应用于软件需求模糊的场合。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品技术合作开发合同书
- 冷链物流速冻加工项目规划设计方案(范文模板)
- 数学建模与应用建模实践练习题集
- 乡村健康食品生产与供应链优化
- 电力电子技术应用实践题
- 增强平台竞争力与市场领导力的路径
- 市场营销消费者行为知识考点详解
- 历史文物保护与现代科技融合应用知识要点题
- 高中地理大单元教学的实施策略与实践
- 2025年监察与审计专业资格考试试卷及答案
- 仪器仪表制造职业技能竞赛理论题库
- 网络服务器配置与管理(微课版) 教案 项目02 虚拟化技术和VMware-2
- 税收分析试题及答案
- 2025年西式面点师(中级)面包烘焙实操考试试卷
- 回迁楼房买卖合同协议书
- 新课程理念下语文课堂教学体系重建
- 从技术革新到应用拓展:高效便捷三维人体重建的多维探索
- 2025年湖南省中考数学模拟试卷(二)
- 国家开放大学2025年《创业基础》形考任务3答案
- 广东省大湾区2025届普通高中毕业年级联合模拟考试(二)化学(含答案)
- SL631水利水电工程单元工程施工质量验收标准第1部分:土石方工程
评论
0/150
提交评论