中国海洋大学 考研复习软工复习整理

上传人:今*** 文档编号:108175693 上传时间:2019-10-22 格式:PPT 页数:93 大小:1.29MB
返回 下载 相关 举报
中国海洋大学 考研复习软工复习整理_第1页
第1页 / 共93页
中国海洋大学 考研复习软工复习整理_第2页
第2页 / 共93页
中国海洋大学 考研复习软工复习整理_第3页
第3页 / 共93页
中国海洋大学 考研复习软工复习整理_第4页
第4页 / 共93页
中国海洋大学 考研复习软工复习整理_第5页
第5页 / 共93页
点击查看更多>>
资源描述

《中国海洋大学 考研复习软工复习整理》由会员分享,可在线阅读,更多相关《中国海洋大学 考研复习软工复习整理(93页珍藏版)》请在金锄头文库上搜索。

1、各阶段的基本任务: 1. 问题定义 必须回答的关键问题是:“要解决的问题是什么?” 2. 可行性研究 必须回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?” 3. 需求分析 准确的确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备那些功能。,4. 总体设计 必须回答的关键问题是:“概括地说,应该如何解决这个问题?”。 有两个任务: (1)考虑几种可能的解决方案。 低成本解决方案;中等成本解决方案;高成本“十全十美”的系统; (2)设计软件结构,即确定程序由哪些模块组成以及模块间的关系。 5.详细设计 关键问题是:“应该怎样具体地实现这个系统?”,6.编

2、码和单元测试 关键任务是写出正确的容易理解、容易维护的程序模块。 7.综合测试 关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求。 8.软件维护 关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。 维护类型:改正性维护、适应性维护、完善性维护、预防性维护。,1.4.1 瀑布模型 把生命周期划分为阶段的目的及实质是:控制开发工作的复杂性;通过有限的确定步骤,把用户需求从抽象的逻辑概念逐步转化为具体的物理实现。,图1.2 传统的瀑布 模型,问题定义,总体设计,需求分析,可行性研究,详细设计,综合测试,编码与单元测试,软件维护,按照传统的瀑布模型开发软件,有如下几个特点:

3、 1.阶段间具有顺序性和依赖性 这个特点由两重含义: (1)必须等前一阶段的工作完成之后,才能开始后一阶段的工作;(2)前一阶段的输出文档就是后一阶段的输入文档,因此只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。 2.推迟实现地观点,3.质量保证的观点 在瀑布模型的每个阶段都应该坚持两个重要做法: (1)每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。 (2)每个阶段结束前都要对所完成的文档进行评审,以便及早发现问题,改正错误。,1.4.2 快速原型模型 所谓快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能一般是最终产品能完成的功能的

4、一个子集。如图1.4所示。,快速原型 验证,规格说明 验证,设计 验证,编码 测试,综合测试,维护,变化的需求 验证,图1.4 快速原型模型,注:实线箭头表示开发过程 虚线箭头表示维护过程,从图1.4可以看出,快速原型模型是不带反馈环的,这正是这种过程模型的主要优点:软件产品的开发基本上是线性顺序进行的。 (1)原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。 (2)开发人员通过建立原型已经掌握很多东西。因此,在设计和编码阶段发生错误的可能性也较小,这自然减少后续阶段修改前面错误的可能

5、性。,1.4.3 增量模型 增量模型也称为渐增模型,如图1.5所示。,图1.5 增量模型,使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。,图1.5所示的增量模型表明,必须在开始实现各个构件之前就全部完成需求分析、规格说明和概要设计的工作。由于在开始构建第一个构件之前就已经有了总体设计,因此风险较小。图1.6描绘一种风险更大的增量模型:一旦确定了用户需求之后,就着手拟定第一个构件的规格说明文档,完成后规格说明组将转向第二个构件的规格说

6、明,与此同时设计组开始设计第一个构件用这种方式开发软件,不同的构件将并行的构建,因此有可能加快工程进度。但是,使用这种方法将冒构件无法集成到一起的风险。,规格说明,设计,编码和集成,交付客户,规格说明,设计,编码和集成,交付客户,规格说明,设计,编码和集成,交付客户,构件1:,构件2:,构件n:,图1.6 风险更大的增量模型,1.4.4 螺旋模型,软件开发总要冒一定风险,项目越大,软件越复杂,承担该项目所冒的风险也越大。软件风险可能在不同程度上损害软件开发过程和软件产品质量。因此,在软件开发过程中必须及时识别和分析风险,并且采取适当措施以消除或减少风险的危害。 螺旋模型的基本思想是,使用原型及

7、其他方法来尽量降低风险。理解这种模型的简便方法是,把它看作在每个阶段之前都增加了风险分析过程的快速原型模型,如图1.7所示。,图1.7 简化的螺旋模型,图1.8 完整的螺旋模型,1.4.5 喷泉模型 迭代是软件开发过程中普遍存在的一种内在属性。经验表明,软件过程各个阶段之间的迭代或一个阶段内各个工作步骤之间的迭代,在面向对象范型中比在结构化范型中更常见。 图1.9所示的喷泉模型,是典型的面向对象的软件过程模型。“喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。,图1.9 喷泉模型,图中代表不同阶段的圆圈相互重叠,这明确表示两个活动之间存在交叠。图中在一个阶段内的向下箭头代表该阶段内的迭

8、代(或求精)。 为避免使用喷泉模型开发软件时开发过程过分无序,应该把一个线性过程(如图1.9中的中心垂线)作为总目标。,1.最佳实践 迭代式开发 管理需求 使用基于构件的体系结构 可视化建模 验证软件质量 控制软件变更,1.4.6 Rational 统一过程,Rational统一过程(Rational Unified Process, RUP)是由Rational公司推出的一种软件过程。 RUP总结了6条最有效的软件开发经验,这些经验被称为“最佳实践”。,2. RUP软件开发生命周期 RUP软件开发生命周期是一个二维的生命周期模型。如下图所示。图中纵轴代表核心工作流,横轴代表时间。,(1)核心

9、工作流 RUP中有9个核心工作流,其中前6个为核心过程工作流(Core Process Workflows),后3个为核心支持工作流(Core Supporting Workflows)。 业务建模(Business Modeling) 需求(Requirements) 分析和设计(Analysis & Design) 实现(Implementation) 测试(Test) 部署(Deployment),配置和变更管理(Configuration & Change Management) 项目管理(Project Management) 环境(Environment) (2)工作阶段 RUP中

10、的软件生命周期在时间上被分解为四个连续的阶段,每个阶段都有明确的目标,并且定义了用来评估是否达到这些目标的里程碑。如果评估结果令人满意的话,可以允许项目进入下一个阶段。,四个阶段的工作目标分别是: 初始阶段(Inception):建立业务模型,定义最终产品视图,并且确定项目的范围。 精化阶段(Elaboration):设计并确定系统的体系结构,制定项目计划,确定资源需求。 构建阶段(Construction):开发出所有构件和应用程序,把它们集成为客户需要的产品,并且详尽地测试所有功能。 移交阶段(Transition):把开发出的产品提交给用户使用。,(3)RUP迭代式开发 RUP强调采用迭

11、代和渐增的方式来开发软件,整个项目开发过程由多个迭代过程组成。一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。 RUP重复一系列组成软件生命周期的循环,但是,在不同的迭代过程中是以不同的工作重点和强度对这些核心工作流程进行访问的。,1.4.7 敏捷过程与极限编程,1.敏捷过程 为了使软件开发团队具有高效工作和快速响应变化的能力,17位著名的软件专家于2001年2月联合起草了敏捷软件开发宣言,它由4格简单的价值观声明组成。 (1)个体和交互胜过过程和工具 (2)可以工作的软件胜过面面俱到的文档 (3)客

12、户合作胜过合同谈判 (4)响应变化胜过遵循计划,2.极限编程 极限编程(eXtreme Programming, XP)是敏捷过程中最富盛名的一个,其名称中极限二字的含义是指把好的开发实践运用到极致。目前,极限编程已经成为一个典型的开发方法,广泛应用于需求模糊且经常改变的场合。 (1)极限编程的有效实践 客户作为开发团队的成员 使用用户素材(正在进行的关于需求的谈话内容的助记符。)使用用户素材可以合理安排实现该项需求的时间 短交付周期,验收测试 结对编程 测试驱动开发 集体所有 持续集成:一天之内多次集成,不断回归测试 可持续的开发速度 开放的工作空间 及时调整计划 简单的设计 重构:在不改变

13、系统行为的前提下,重新调整和优化系统内部结构,以降低复杂性、消除冗余、增加灵活性和提高性能。 使用隐喻:描述系统如何运作,用何种方式加入新功能。,(2)极限编程的整体开发过程 图1.11描述了极限编程的整体开发过程。,图1.11 XP项目的整体开发过程,(3)极限编程的迭代过程 图1.12描述了极限编程的迭代开发过程。,图1.12 XP迭代开发过程,综上所述,以极限编程为杰出代表的敏捷过程,具有对变化和不确定性的更快速,更敏捷的反映特性,而且在快速的同时仍然能保持可持续的开发速度。上述这些特点使得敏捷过程能够较好的适应商业竞争环境下对小型项目提出的有限资源和有限开发时间的约束。,项目计划应该兼

14、顾未来的不确定因素 用有效的风险管理来减少不确定因素的影响 经常生成并快速地测试软件地过渡版本,从而提高产品地稳定性和可预测性,1.4.8 微软过程,作为世界上最大的同时也是最成功的软件公司之一,Microsoft(微软)公司拥有自己独特的软件开发过程,几十年的实践证明微软过程是非常成功和行之有效的。 1、微软过程准则 微软过程遵循下述的基本准则:,采用快速循环,递进地开发过程 用创造性地工作来平衡产品特性和产品成本 项目进度表应该具有较高稳定性和权威性 使用小型项目组并发地完成开发工作 在项目早期把软件配置项基线化,项目后期则冻结产品 使用原型验证概念,对项目进行早期论证 把零缺陷作为追求的

15、目标 里程碑评审会的目的是改进工作,切忌相互指责,2.微软软件生命周期 微软过程把软件生命周期划分成5个阶段。图1.13描绘了生命周期的阶段及每个阶段的主要里程碑。,(1)规划阶段 主要任务是,根据从市场上获得的用户情况和客户需求等信息,在调查、统计和分析的基础上,完成下述工作。,确定产品目标。 获取竞争对手的信息。 完成对客户和市场的调研分析。 确定新版本产品应具备的主要特征。 确定相对于前一版本而言,新版本应该解决的问题和需要增加的功能。,(2)设计阶段 主要工作如下: 根据产品目标编写系统的特性规格说明书。主要描述软件特性、系统结构、各构件间的相关性以及接口标准。 从系统高层着手开始进行

16、系统设计,主要完成:系统设计方案,描绘系统结构图,确定系统中存在的风险因素,分析系统的可重用性。 划分出系统的子系统,给出各自系统和各个构件的规格说明。 根据产品特性规格说明书制定产品开发计划。,(3)开发阶段 主要任务是,完成产品中所有构件的开发工作,包括编写程序代码和书写文档。 (4)稳定阶段 主要任务是对产品进行测试和调试,以确保已经正确地实现了整个解决方案,产品可以发布了。 (5)发布阶段 发布产品或解决方案,并把项目移交到运营和支持人员手中,以获得最终用户对项目的认可。,3.微软过程模型 微软过程的每一个生命周期发布一个递进的软件版本,各个生命周期持续,快速地迭代循环。如图1.14所示。,图1.12 微软过程的生命周期模型,2.2 可行性研究的过程 步骤如下: 1.复查系统规模和目标 2.研究目前正在使用的系统 从两个方面出发:(1)原系统的功能和优点; (2)原系统存在的缺陷。 3.导出新系统的高层逻辑模型 优秀的设计通常按以下步骤进行:,现有的物理系统,现有系统的逻辑模型,新的物理系统,目标系统的逻辑模型,4. 进

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

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

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