收藏 分享(赏)

软件项目开发过程 (4)ppt课件.ppt

上传人:小陳 文档编号:3309370 上传时间:2020-12-23 格式:PPT 页数:89 大小:2.02MB
下载 相关 举报
软件项目开发过程 (4)ppt课件.ppt_第1页
第1页 / 共89页
软件项目开发过程 (4)ppt课件.ppt_第2页
第2页 / 共89页
软件项目开发过程 (4)ppt课件.ppt_第3页
第3页 / 共89页
软件项目开发过程 (4)ppt课件.ppt_第4页
第4页 / 共89页
软件项目开发过程 (4)ppt课件.ppt_第5页
第5页 / 共89页
亲,该文档总共89页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、软件工程方法学与软件工程方法学与 软件项目过程概述软件项目过程概述 1 讲座学习目标 了解软件工程产生背景和必要性 了解软件工程的要素 了解软件工程的方法学 了解软件过程与软件开发流程 体会软件工程的意义 2 第一部分 前言 第二部分 软件工程方法学 第三部分 软件过程 讲座内容 3 第一部分 前言 4 “软件”“工程”的概念 建筑工程 需求、勘探、计划、分析、设计、施工 、监理、竣工、验收、维护 软件工程 需求、分析、设计、规范、实现、测试 部署、维护 5 软件工程的几个问题 软件开发过程有哪几种参与角色 角色之间如何进行沟通和交流? 软件开发过程中为什么要V? 测试有哪几种类型? V和测试

2、的区别 6 系统架构师 项目经理 开发人员 测试人员 解决方案 架构师 客户 软件开发生命周期的角色 7 8 9 10 项目对比 开发一个屏幕打印出“HELLO WORLD! ”的软件系统 开发一套公司内部员工信息管理系统 开发一套印刷行业OA系统 11 软件工程产生背景 50年代60年代的大部分时间里,计算 机领域存在的主要是硬件工程。 60年代末70年代,出现了“软件危机” ,在1967年与德国召开了会议上确立了软 件工程的学科。 12 软件工程的要素 方法 软件工程方法为软件工程提供了 “如何做” 、“如何管”、”如何满 足质量“的技术 工具 软件工具为软件工程方法提供了自动的或半自动的

3、软件支撑环境 过程 方法使用的顺序 要求交付的文档资料 为保证质量和适应变化所需要的管理 软件开发各个阶段完成的里程碑 13 小结 软件工程是为了确保不同角色通过分工 协作,在可控的成本和周期内,满足一 个质量基线要求,实现客户所需要的软 件的涉及软件开发方法学、管理学等学 科的交叉学科 14 第二部分 软件工程方法学概述 15 软件工程方法学-关键问题 需求阶段: 什么是客户的上下文? 要达到什么目的? 分析阶段: 要处理什么实体? 如何确保有正确的实体? 系统设计阶段: 如何解决问题? 在完成的系统中需要什么硬件和软件 子系统设计阶段: 如何实现解决方案? 源代码和支持文件有哪些? 规范阶

4、段: 哪些规则控制着系统组件之间的接口 可以去除模糊,确保正确吗? 实现阶段: 如何编写组件,符合规范的要求? 如何编写漂亮代码? 测试阶段: 完成的系统满足要求吗? 可以攻破系统吗? 部署阶段: 系统管理员必须作什么? 如何培训最终用户? 维护阶段: 可以找出和更正错误吗? 可以改进系统吗? 16 1.瀑布方法学 可行性研究与计划可行性研究与计划 需求分析需求分析 设计设计 规范规范 运行维护运行维护 部署部署 开 发 阶 段 维护阶段 定义 阶段 编码编码 测试测试 17 2.螺旋式方法学 设计设计 规范规范 需求需求 测试测试 分析 实现 产品维护项目 产品增强项目 新产品开发项目 概念

5、开发项目 18 规范实现 设计 测试 分析需求 部署维护 3.迭代式方法学 规范实现 设计 测试 分析需求 部署维护 19 4.递增式方法学 发布 时间 1.01.12.02.1 20 4.合并方法学 发布 时间 1.01.12.02.1 21 4.面向对象方法学 以对象为中心,结合了螺旋式、迭代式 和递增式最佳部分方法一门方法学。 是一门可以由开发者自由合理定制每个 阶段实施方法的方法学 22 23 24 25 26 小结 (1) 方法学的目的是:使后人分享前人的成功,避开前人的失败, 把注意力集中在尚未 开拓领域的创造性劳动上。所以方法学与开 发人员的创造性是绝不冲突的。它既不能像法律那样

6、靠权威来界 定是非边界,也不能像定律那样通过证明和推理给出普遍结论。如 果 一定要做比喻的话,它好比人的世界观。 (2) 没有放之四海而皆准的方法学,任何方法学都有其局限性,所 以软件开发人员大可不必拘泥于某种特定的方法学。 (3) 事实表明,由 OOP 带动的 OOSE 方法确实比结构化方法更能 自然地抽象现实世界,而且一些 OOP 工具确实已相当成熟。相反, 结构化方法及开放平台下的结构化程序开发工具,虽然不能说止步 不前,但其近年来的进步是有限的。 27 架构设计示例 28 29 简介(二层结构) 每个客户机或客户应用 程序均和服务器或服务 程序建立“硬连接” NMX网络连接 = 30

7、简介(二层结构遇到的障碍) 客户端的扩展性差 n不够模块化, 维护、升级困 难 n业务逻辑在客户端 n对安全性/业务变化的管理能 力差 n关系数据库系统间的互联性 差,没有交易处理 n单一服务器,以局域网为中 心 n不足以扩展到广域网及 Internet 两层客户机两层客户机/ /服务器结服务器结 构构 业 务 逻 辑 业 务 逻 辑 业 务 逻 辑 存 储 过 程 31 简介(结构的转变二层结构到三层结构) 业 务 逻 辑 业 务 逻 辑 存 储 过 程 三层客户机三层客户机/ /服务器结服务器结 构构 GUIGUIGUI 业 务 逻 辑 业 务 逻 辑 业 务 逻 辑 32 简介(三层结构

8、) 网络连接 = N+M 33 简介(两层三层比较) = = OS DiesOS Dies 1000 Connections + 1000 Processes + 500 MB of RAM + 10,000 Open Files 1000 Clients 没有交易中间件 50 Connections + 50 Processes + 25 MB of RAM + 500 Open Files 50 TP Monitor 1000 Clients = = OS is FineOS is Fine I can do this! 有交易中间件 34 简介(三层结构的优势) n处理能力高 n卓越的扩

9、展能力 n应用可管理性强 n更高的可靠性 n应用的开发、升级 、周期短 n支持Internet 三层客户机三层客户机/ /服务器结构服务器结构 GUIGUIGUI 业 务 逻 辑 业 务 逻 辑 业 务 逻 辑 35 36 37 38 39 40 41 42 43 44 软件过程概述 45 软件过程 开 发 过 程 质量控制 平台 项目管理 平台 项目 启动 项目 策划 项目 监控 项目 结项 配置 管理 需求 管理 业务建模 需求 分析与设计 程序实现 软件测试 实施维护 测试计划 迭代开发 质量保证同级评审 46 项目管理过程 各个子过程的关系 项目启动 项目结项 项目策划项目跟踪监控 P

10、DCA 47 项目启动过程 48 项目策划过程 49 项目经理 SQA 高层经理 配置管理员开发人员测试人员 需求分析人员 客户经理 验收测试负责人 开发经理 典型的项目组织结构 50 项目跟踪与监控过程 51 项目结项过程 52 工程过程 各子过程的关系 需求需求管理 分析与设计 实现 实施与维护 测试 同级评审 53 需求过程 54 需求过程 工具 MS Office Rational Rose 分析方法 结构化数据流图、实体关系图 面向对象用例 55 需求管理过程 56 需求管理过程 方法与工具 需求管理矩阵 Rational RequisitePro Rational Clearque

11、st 57 58 分析与设计过程 方法与工具 Visio Rational Rose PowerDesigner 数据库 Oracle SQL Server 59 软件设计文档 数据库设计文档 60 实现过程 方法与工具 语言工具 VA For Java WSAD VC+ VB PB Delphi ASP+ C# VB.NET Jscript.NET 单元测试工具 Junit Xunit CCunit Rational Clearquest(BUG跟踪) 61 62 测试过程 方法与工具 Rational Robot Rational Clearquest 63 64 同级评审过程 65 同级

12、评审过程 66 支持过程 配置管理 质量保证 度量分析 缺陷预防 67 68 配置管理 方法与工具 Rational Clearquest MS SourceSafe CVS 69 70 质量保证 方法与工具 MS Project2003 MS Office NC问题处理工具 项目示例 SQA计划 UFE-MIS-SQA评审、审核记录表 UFE-MIS-不符合问题跟踪记录表 UFE-MIS SQA工作报告 71 72 度量分析 方法与工具 MS Excel 示例 项目度量分析报告 过程数据库和过程能力基线 73 74 缺陷预防 方法与工具 鱼骨图 柏拉图 Excel Clea第4章 软件结构设

13、计 第4章 软件结构设计 n设计:应用各种技术和原理,对设备、过程或系统作 出足够详细的定义,使之能够在物理上得以实现。 n软件结构设计:是一个把软件需求变换为软件表示的 过程,是对软件的整体结构、程序结构、数据结构、文 件结构、接口定义等的设计,是宏观上的设计。 4.1 4.1 软件结构设计概述软件结构设计概述 1 第4章 软件结构设计 软 件 设 计 结构设计(总体设计)任务:制订系统实 现方案和设计规范并合理确定系统的整体 模块结构及接口关系。 详细设计(模块设计)任务:详细规定每 个模块功能的实现算法。 结构化设计方法; 数据结构驱动的设计方法 面向对象的设计方法 结 构 设 计 2

14、第4章 软件结构设计 软件设计与程序设计的区别: 程序设计就是编程序,这是大家熟悉的,很多人印象 中的“做软件”就是编程序, 因此可能有人会把程序 设计和软件设计等同起来。这是不对的,软件设计是 宏观上的设计。而程序设计仅仅是软件设计的实现, 所以做软件决不简单等同与编程序。 3 第4章 软件结构设计 4.2 4.2 软件结构设计的目标、任务和过程软件结构设计的目标、任务和过程 目标目标:综合采用各种技术手段,将系统需求转换为数:综合采用各种技术手段,将系统需求转换为数 据结构、模块结构(或对象据结构、模块结构(或对象/ /类结构)的表达形式,类结构)的表达形式, 并实现系统的性能、安全性、可

15、靠性要求。取得最佳并实现系统的性能、安全性、可靠性要求。取得最佳 方案。最佳方案的标准:方案。最佳方案的标准:(1)(1)开发费用省;开发费用省;(2)(2)资源消资源消 耗低;耗低;(3)(3)开发时间短;开发时间短;(4)(4)生产效率高;生产效率高;(5)(5)可靠性可靠性 较高;较高;(6)(6)可维护性好。可维护性好。 结果:用模块结构图表达。结果:用模块结构图表达。 4 第4章 软件结构设计 任务:任务: 结构设计是一个自顶向下,逐步具体的综合性的设计过结构设计是一个自顶向下,逐步具体的综合性的设计过 程。主要内容:程。主要内容: (1 1)综合分析系统的各种实现方案,提出最佳实现

16、方案)综合分析系统的各种实现方案,提出最佳实现方案 的建议。的建议。 (2 2)制定设计规范、标准及约定原则。)制定设计规范、标准及约定原则。 (3 3)软件结构设计:采用某种软件设计方法,按照模块)软件结构设计:采用某种软件设计方法,按照模块 的构造原则,逐步、逐层地设计软件的模块层次结构的构造原则,逐步、逐层地设计软件的模块层次结构 。 5 第4章 软件结构设计 (4 4)数据结构以及接口的设计。)数据结构以及接口的设计。 (5 5)系统性能设计。)系统性能设计。 (6 6)系统安全性能设计:系统的自保护设计;数据)系统安全性能设计:系统的自保护设计;数据 一致性设计;容错设计。一致性设计

17、;容错设计。 (7 7)系统可靠性设计。)系统可靠性设计。 (8 8)设计文档的编写:结构设计说明书;用户手册)设计文档的编写:结构设计说明书;用户手册 ;系统初步的测试计划说明书。;系统初步的测试计划说明书。 (9 9)设计的审查和复审。)设计的审查和复审。 6 第4章 软件结构设计 软件结构设计过程: 1. 设想供选择方案; 2.选择合理的方案; 3.推荐最优方案; 4.功能分解; 5.设计软件结构; 6.设计数据库; 7.制订测试计划; 8.书写文档; 9.审查和复审; 7 第4章 软件结构设计 4.3 软件设计中的基本概念和原理 1. 模块化 所谓模块,是指具有相对独立性的,由数据说明

18、、执行语句 等程序对象构成的集合。程序中的每个模块都需要单独命名,通 过名字可实现对指定模块的访问。在高级语言中,模块具体表现 为函数、子程序、过程等。一个模块具有输入/输出(接口)、功 能、内部数据和程序代码四个特征。输入/输出用于实现模块与 其他模块间的数据传送,即向模块传入所需的原始数据及从模块 传出得到的结果数据。功能指模块所完成的工作。模块的输入/ 输出和功能构成了模块的外部特征。内部数据是指仅能在模块内 部使用的局部量。程序代码用于描述实现模块功能的具体方法和 步骤。模块的内部数据和程序代码反映的是模块的内部特征。 8 第4章 软件结构设计 模块化是指将整个程序划分为若干个模块,每

19、个模块用于 实现一个特定的功能。划分模块对于解决大型复杂的问题是非 常必要的,可以大大降低解决问题的难度。为了说明这一点, 我们可对问题复杂性、开发工作量和模块数之间的关系进行以 下推理。 首先,我们设C(x)为问题x所对应的复杂度函数,E(x)为解 决问题x所需要的工作量函数。对于两个问题P1和P2,如果: C(P1) C(P2) 即问题P1的复杂度比P2高,则显然有: E(P1) E(P2) 即解决问题P1比P2所需的工作量大。 9 第4章 软件结构设计 在人们解决问题的过程中,发现存在有另一个有趣的规律 : C(P1+P2) C(P1)+C(P2) 即解决由多个问题复合而成的大问题的复杂

20、度大于单独解决各 个问题的复杂度之和。也就是说,对于一个复杂问题,将其分 解成多个小问题分别解决比较容易。由此我们可以推出: E(P1+P2) E(P1)+E(P2) 即将复杂问题分解成若干个小问题,各个击破,所需要的工作 量小于直接解决复杂问题所需的工作量。 10 第4章 软件结构设计 根据上面的推理,我们可以得到这样一个结论,模块化可 以降低解决问题的复杂度,从而降低软件开发的工作量。虽然 增加程序中的模块数可以降低开发每个模块的工作量,但同时 却增加了设计模块接口的工作量。通过图4.1所示的模块数与软 件开发成本的关系图中可以看出,当划分的模块数处于最小成 本区时,开发软件的总成本最低。

21、 模块化不但可以降低软件开发的难度,而且可以使程序结 构清晰,增加易读性和易修改性。此外,模块化还有利于提高 代码的可重用性及团队合作开发大型软件的可行性。 11 第4章 软件结构设计 图4.1 模块数与软件开发成本 12 第4章 软件结构设计 2. 模块独立性 1) 耦合性 耦合性是对一个软件结构内部不同模块间联系紧密程度的 度量指标。模块间的联系越紧密,耦合性就越高,模块的独立 性也就越低。由于模块间的联系是通过模块接口实现的,因此 ,模块耦合性的高低主要取决于模块接口的复杂程度、调用模 块的方式以及通过模块接口的数据。模块间的耦合性主要可划 分为如下几种类型。 13 第4章 软件结构设计

22、 (1) 数据耦合。若两个模块之间仅通过模块参数交换信息 ,且交换的信息全部为简单数据,则称这种耦合为数据耦合。 数据耦合的耦合性最低,通常软件中都包含有数据耦合。数据 耦合的例子如下所示: 14 第4章 软件结构设计 sum(int a,int b) int c; c=a+b; return(c); main() int x,y; printf(x+y= %d,sum(x,y); /*主函数与sum函数之间即为数据耦合关系*/ 15 第4章 软件结构设计 (2) 公共耦合。若两个或多个模块通过引用公共数据相互 联系,则称这种耦合为公共耦合。例如,在程序中定义了全局 变量,并在多个模块中对全局

23、变量进行了引用,则引用全局变 量的多个模块间就具有了公共耦合关系。 FORTRAN语言中使用 的common语句也会在多个模块间建立公共耦合关系。公共耦合 的复杂度随着耦合的模块个数的增加而显著增加。在程序设计 中,若两个模块间需要交换的数据较多,仅通过参数传递难以 实现时,可以考虑采用公共耦合完成,但一定注意尽量降低公 共耦合的程度。 16 第4章 软件结构设计 (3) 控制耦合。若模块之间交换的信息中包含有控制信息 (尽管有时控制信息是以数据的形式出现的),则称这种耦合为 控制耦合。控制耦合是中等程度的耦合,它会增加程序的复杂 性。控制耦合的例子如下所示: void output(flag

24、) if (flag) printf(OK! ); else printf(NO! ); main() int flag; output(flag); /*主函数与output函数之间即为控制耦合关系*/ 17 第4章 软件结构设计 (4) 内容耦合。若一个模块对另一模块中的内容(包括数据 和程序段)进行了直接的引用甚至修改,或通过非正常入口进入 到另一模块内部,或一个模块具有多个入口,或两个模块共享 一部分代码,则称模块间的这种耦合为内容耦合。内容耦合是 所有耦合关系中程度最高的,会使因模块间的联系过于紧密而 对后期的开发和维护工作带来很大的麻烦,因此,应坚决避免 任何形式的内容耦合。实际上

25、,许多高级程序设计语言在规定 语法时就已经杜绝了任何形式的内容耦合。 耦合是影响软件复杂度的一个重要因素,设计过程中应力 求降低程序的耦合性。在以上所介绍的耦合中,数据耦合的程 度最低,其次是公共耦合,再其次是控制耦合,程度最高的是 内容耦合。 18 第4章 软件结构设计 2) 内聚性 内聚性是对一个模块内部各个组成元素之间相互结合的紧密 程度的度量指标憇0舐2葼(鍔騀匀騁騀騀讀缁H缀窢匝倀騁椀脂匃紃缃缙缙褙鴙鞕腒搀漀挀昀挀戀攀搀愀昀搀戀戀搀挀昀攀戀搀攀最椀昀鞕腒搀漀挀尀尀愀昀搀昀挀愀昀昀挀攀搀攀攀瀀稀氀愀爀瀀儀焀氀爀愀愀眀爀吀漀夀刀焀礀砀樀樀椀椀漀砀倀漀刀栀洀眀鞕脀桰琀琀瀀猀眀眀眀眀攀渀欀甀

26、渀攀琀挀漀洀椀氀攀刀漀漀琀尀圀攀渀欀甀渀攀琀椀氀攀刀漀漀琀尀愀搀愀愀挀攀搀戀攀攀搀搀攀鞕襺腒鞕屒豨豨鞕桺抈鳿犘W獣瑞鹸睿豨蒋佶蕎罾擿洀洀萀摐洀洀洀洀萀摐洀洀猀鞕蒐摝洀洀猀鞕靺洀洀鞕靺玏摞洀洀馕撖洀洀鐀豨湏捿湫烿傑梟觿抈谀褰鞕襺鞕艺鑛幢葜塎鞕襺獶轝聞镎驵獶轝葞湦獶轝葞聶腧葹佶豒層腏鞕襺针罨襑罨跿豴塨襛蒈罨骋襵肈湎驸襛蒈腎穝灓穝憂層肈镎赔梈扑覗啴啓豏鞕襺喈铿鞕襮邈豧瘰腎薉鞕湏舰驖扛豟栰葮逰豨炈灢灢塎腔蕨葏妘鈰呬譬獓慞咈驛奏湵靓罓靎葨襶芈盿捾褰荳鑒陞穎荳豧赔襑褰腥羑荳块豗璌荳块著湏荳块鑗卨顏謰慓襧腥慜睧腓鞕襺貈葢葒屝鞕葺鑓葵妘襬靎規葓婶呙豸坸葸饶単筟蒘絗著坒鞕荳襴针饗単罏屮豎汎葓叿_膗罗屮铿蹛T筎譼著鞕癓蒐鑓鑓獪葭例鑝蕖鞕豛盿鹞絒覈鞕癓鎏豻铿抖癫彑佣打葟褀葵腎睧豑睝鑑豞僿饧鑥偞梟瞑鑑驞豨叿腒鑥扦鞕襺铿葾腶鞕葺灶0扙鞕葺鑶慜鑻偞梟钀衞扦鞕襺鑒罨鞕襔魾奛鞕襺聓褰貈奵鬰煥罨鞕饙貋蹜齒鷿豨鞕鞕賿鮋U祙鮑褰腒褀鑒鞕葓扶豲湏葧葸灶貑湏膋靜骉散蹛葨鑒捞喋瑏搀饧托響葨癶荑桛抈页兢饘饧托靎顧兢饘葞塶饿鞕饎呧坩璌驥跿襜驖靎覔呧驖鑒啴屏絏遙豺喋盿鞕葺艶獬呧坩靎坟妐蕿需饎単厕筟饗単牏馂単牧瀰摮犖駿単葑罏蕓靎饿蒖鑴

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

当前位置:首页 > 应用文书 > PPT文档

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报