890 likes | 1.04k Views
软 件 工 程 推 进 方 法. 李 超. 成都信息工程学院. 2005.6. 第四章 软件开发的标准过程. 标准软件开发过程 软件开发过程:把用户的要求转变成软件产品的过程。即把需求转换为设计,再把设计转变为代码,最后进行软件测试和交付使用。. 第四章 软件开发的标准过程. 标准软件开发过程. 必须建立规范的开发工程. 用户要求的多元化,高度化. 当前:软件开发面临的主要问题有. 用户需求的竞争和冲突急剧. 提高系统开发能力. 系统规模大. 保证系统开发质量. 系统复杂程度高. 系统维护量大. 第四章 软件开发的标准过程. 标准软件开发过程
E N D
软 件 工 程 推 进 方 法 李 超 成都信息工程学院 2005.6
第四章 软件开发的标准过程 • 标准软件开发过程 软件开发过程:把用户的要求转变成软件产品的过程。即把需求转换为设计,再把设计转变为代码,最后进行软件测试和交付使用。
第四章 软件开发的标准过程 • 标准软件开发过程 必须建立规范的开发工程 用户要求的多元化,高度化 当前:软件开发面临的主要问题有 用户需求的竞争和冲突急剧 提高系统开发能力 系统规模大 保证系统开发质量 系统复杂程度高 系统维护量大
第四章 软件开发的标准过程 • 标准软件开发过程 • 标准软件开发过程 标准软件开发过程通常指一个软件企业内部制订的、供所有软件项目或软件产品开发使用的、组织级的软件过程规范。主要用于指导项目组以有序、规范的方式开发高质量的软件产品。 按照工程化的思想,系统开发的过程可归纳为:系统分析、系统计划、系统设计、程序设计、程序编制、测试、安装、运行评价等8个大的过程。其相互关系:
第四章 软件开发的标准过程 P J S M • 标准软件开发过程 软件开发过程包括用于软件开发的方法、工具、活动及具体实践。软件项目经理利用它可以系统地、有效地组织开发工作;软件工程师通过它可以更好地掌握开发工作步骤及具体工作方法,实现项目组成员间的协同工作。 系统分析和系统计划Analysis A 软件开发工程体系图 系 统 管 理 工 程 管 理 C 系统设计Component-design D 程序设计Detail-design P 程序编制Programming T 测试Test I 移植安装Installation O 运行评价Operation
第四章 软件开发的标准过程 目前软件行业通常采用“迭代化开发过程”完成企业级应用软件的开发 IBM Rational
第四章 软件开发的标准过程 • 分析工程 • 系统分析概貌 系统分析的概念图 制约 策定新系统构想 现行业务系统调查/分析 现行业 务系统 现行业务 系统模型 建立新 系统方案 新系统 模型 评价新 系统方案 新系统 构想 需求分析 命题 用户
第四章 软件开发的标准过程 • 分析工程 • 重视需求分析 把握现行的事务作业和现行系统的构造、内容、特征是至关重要的。 客户对现行业务处理系统计算机化或者是对已计算机化的现行系统作改善的期待、要求是我们构造新系统的源泉。
第四章 软件开发的标准过程 • 分析工程 • 重视需求分析 客户单位的领导,管理者和业务人员各自的立场不同,对系统的要求也各不相同。因此,我们在作需求分析时,要充分听取、考虑各方的意见、要求,探讨尽可能实现客户各个方面要求的方案。
第四章 软件开发的标准过程 • 分析工程 • 重视需求分析 在考虑新系统的方案时,虽然客户期望能够将全部事务管理实现计算机化,但必须从重要性、效果、成本、影响范围等方面全盘考虑,从最优先的事件开始着手,是计算机化成功的保证。 可以建议分成各个阶段进行一次开发、二次开发,逐步实现计算机化是成功地构想新的系统的关键。
第四章 软件开发的标准过程 • 分析工程 • 结构化分析的思考方法 • 结构化分析方法建立系统模型的思考方法: 业务处理流程图 事件/处理观点 数据流观点 功能层次观点 系 统 数据流 功能层次图 系统模型建立的思考方法
第四章 软件开发的标准过程 • 分析工程 事件/处理分析方法 谁作 N次作业 事件 结果 (时间)
第四章 软件开发的标准过程 • 分析工程 数据流分析方法 输入 结果 处理
第四章 软件开发的标准过程 • 分析工程 • 功能层次分析方法 以业务处理的体系为出发点,采取自顶向下,逐步分解和抽象,找到系统的功能层次。
第四章 软件开发的标准过程 • 分析工程 eg. 定货系统 定货信息处理 定货处理 检查 定货单 检查定货条件 确认库存量 顾客 交涉 填写 定货单 功能层次分析方法示意图(定货系统实例)
第四章 软件开发的标准过程 • 分析工程 以数据为中心的系统分析方法 该方法是以数据为中心,找到系统的标准数据,并对标准数据进行维护处理。此种方法就是在以处理流程为主的分析方法中加入数据分析的方法。
第四章 软件开发的标准过程 • 分析工程 现行系统模型 新系统模型 新系统 构想方案 数据分析 信息要求分析 标准数据 新系统 设计开发 现行系统 调查/分析 新系统 现行系统 数据标准化过程 数据中心分析方法
第四章 软件开发的标准过程 • 分析工程 • 面向对象分析的思考方法 • 面向对象的开发方法是与传统的面向过程的开发方法相对而提出的。 • 它比面向过程的方法更能够容易地对应业务和操作的变化,更容易扩展系统的功能。
第四章 软件开发的标准过程 • 分析工程 • 面向对象分析的思考方法 • 它不是以对信息、数据的功能处理为中心,而是以处理的对象(包含有固定的信息、数据)为中心。 • 在进行系统分析时,不是以用什么方法去整理为重点,而是以整理什么东西为重点,要点是记录下事件的原样。
第四章 软件开发的标准过程 • 分析工程 • 面向对象分析的思考方法 分析的结果是: • 静态的对象关系图。 描述对象间的关系和构造。 • 动态的对象关系图。 描述对象的事件间的实行顺序和动态的转移关系。
第四章 软件开发的标准过程 • 分析工程 • 功能关系图 做什么: 。对象,类 。动态关系 。功能 面向对象分析 (OOA) OOAA 面向对象设计 (OOD) 怎样做: 。系统设计 。模块设计 OODA 面向对象编程 (OOP) OOPA 面向对象的开发方法
第四章 软件开发的标准过程 • 分析工程 • 系统分析作业过程 • 系统分析的过程 系统分析的内容包含了三个部分: 现行系统的调查 需求分析、 策定新系统构想
第四章 软件开发的标准过程 • 分析工程 • 现行系统的调查分析 现行系统的调查分析 现行系统的调查分析 整理业务清单 绘制业务流程图 描述业务内容 作出业务数据流程 构造业务系统功能关系 作出现行系统调查报告
第四章 软件开发的标准过程 • 分析工程 • 需求分析 需求分析 客户新要求的调查 新要求的整理 作出要求分类表 绘制要求关联图
第四章 软件开发的标准过程 • 分析工程 新系统的构想 新系统的构想 新系统功能要求定义 新系统功能关联图 新系统功能层次图 新系统数据流程图 新系统处理流程图 各种方案评价、比较
第四章 软件开发的标准过程 • 分析工程 系统分析的结果 系统分析作业完成后将产生各种报告书。 • 用户需求分析报告书 用户需求分析报告书的内容主要含有: 对用户需求的分析说明。 • 系统分析报告书 系统分析报告书的内容主要包含有:
第四章 软件开发的标准过程 • 系统构成 系统软硬件、支持环境的构成图及说明,系统运行环境的要求; • 系统功能 系统的功能模块划分,系统的各个功能模块说明; • 系统数据分析 系统输入数据的分析说明,系统输出数据的分析说明。
第四章 软件开发的标准过程 • 分析工程 • 系统分析作业过程 • 编制系统计划书 系统计划是在需求分析基础上对所开发的对象系统进行开发前的计划,特别是大、中型软件开发系统,编制好的系统计划书对加强开发项目管理,确保项目获得成功具有非常重要的意义。
第四章 软件开发的标准过程 • 分析工程 • 系统计划的作业内容 • 确认所开发的基本的系统构想; • 对类似系统进行调查、以确定业务流程; • 确定计算机处理的范围、内容、规模; • 计算机系统软件、硬件构成,处理能力,测试方案,运用方法的讨论; • 开发计划的确定(安装方法、作业规模、费用、开发体制、日程); • 成本计算、成本/效果比较。
第四章 软件开发的标准过程 • 分析工程 系统计划书的内容主要有: • 开发方针 • 开发阶段、周期、工数 • 开发体制及责任分担 • 开发环境(软、硬件) • 开发技术要求(语言、数据库、网络、相关技术等) • 软、硬件设备购置费 • 直接开发费 • 间接开发费
第四章 软件开发的标准过程 • 设计工程 设计工程是将需求分析阶段对新系统的构想变换成实际运行系统的过程。它包含了两个过程: • 外部设计 • 内部设计
第四章 软件开发的标准过程 • 设计工程 • 外部设计:外部设计主要是从用户的立场出发,明确如何使用系统,它通过对用户和系统间的界面、作业流程,精心设计达到可用和易用的目标,它通过对本系统和其他关联系统之间的界面设计,达到整合资源,实现效用最大化的目标。 • 内部设计:内部设计是从软件开发人员的立场出发,为实现需求和外部设计的目标对系统内部的构造、功能、性能等方面进行的设计。
第四章 软件开发的标准过程 • 设计工程 • 外部设计 外部设计工程,都是对本系统与外部的接口、界面方面进行设计。所以被称作外部设计。 首先要考虑确定新业务系统的组成,即确定业务流程。 如果系统规模大,则应分割成几个子系统进行设计。 同时要对相关的屏幕显示、表格、关联系统的连接、外部设备的连接界面等进行设计。要从业务的实用性方面对数据库进行逻辑设计。
第四章 软件开发的标准过程 • 设计工程 • 外部设计 分割 子系统 设计安全性 设计新 业务系统 确定外部 输入/出 设计新系统功能 批准 选择 系统方式 设计DB 应用、 故障对应 策划安装 制定开发计划 外部设计的作业内容和作业流程
第四章 软件开发的标准过程 • 设计工程 • 设计工程的思考方法 • 内部设计 内部设计是从开发者的立场出发,考虑采用什么样的方法来构造新的系统、以及确定新系统的组成结构。 根据设计的结果,考虑系统运行时的设备的容量、性能等因素,进行评估,最后确定设计方案。 设计物理DB 构造设计内部系统 程序设计 开发准备 分析性能/容量 设计测试方案 作成开发计划 内部设计的作业内容和作业流程
第四章 软件开发的标准过程 • 设计工程 • 模块设计基本方法和基本原则 • 数据流设计方法 以数据流为着眼点,对模块进行设计。有: STS分析方法 TR分析方法 共通模块分析方法。
第四章 软件开发的标准过程 • 设计工程 功能1 功能2 功能3 源(S) 变换(T) 吸收(S) 模块化 控制 数据 数据 出错 源 功能1 变换 功能2 吸收 功能3 : 处理数据 : 控制数据 STS分析方法示意图
第四章 软件开发的标准过程 • 设计工程 • 数据流设计方法 TR分析方法是将不同的事务处理(TRansaction)按不同的分支设计成不同的处理模块。在模块内部,数据流又是直线型的,所以,该分析方法又被说成是STS分析的准备作业。这种分析方法也被称为水平分析方法。
第四章 软件开发的标准过程 • 设计工程 功能2 功能1 功能4 功能3 模块化 控制 数据 功能1 功能4 数据 数据 功能2 功能3 :处理数据 :控制数据
第四章 软件开发的标准过程 • 设计工程 • 从外部设计(概要设计)到内部设计(详细设计) • 模块的关联性考虑 通常判断模块的关联性(或独立性)的两条重要准则是模块的聚合性和耦合性(详细介绍在第四章)。 对已设计好的模块,评价其模块的独立性,检查共通模块,以及模块间的界面、参数的多寡,复杂程度等。然后进行必要的修改,得到完善的分割方案。
第四章 软件开发的标准过程 • 设计工程 • 从外部设计(概要设计)到内部设计(详细设计) • 清真寺院屋顶的设计方法 该设计方法主要是将功能模块的组成方法象清真寺的屋顶一样,上面是控制模块和固定的模块,下面是集中一些共通模块。
第四章 软件开发的标准过程 • 设计工程 • 从外部设计(概要设计)到内部设计(详细设计) • 模块的影响范围和控制范围 模块的独立性是评价该系统分割是否合理,结构化设计是否合理的重要准则。组成系统的模块间独立性强,模块间不容易造成关连的错误链,可修改性强、可理解性好,这样模块的影响范围、控制范围容易把握。为此,一定要将模块的影响范围纳入模块的控制范围之内。
第四章 软件开发的标准过程 • 设计工程 • 从外部设计(概要设计)到内部设计(详细设计) 影响范围 模块A 错误 出错报告 模块A 影响范围 控制范围 控制范围 模块B 输入 输入 输出 模块B 输出 错误 出错报告 控制范围:上层模块调用下层模块的范围 影响范围:由模块设定的条件产生动作的范围
第四章 软件开发的标准过程 • 设计工程 • 从外部设计(概要设计)到内部设计(详细设计) • 评价模块间的界面 模块间的界面一定要清晰,参数要少而单纯,减少复杂性。 • 设计容易理解的功能模块 容易理解的功能模块就象黑箱一样,虽然看不见模块的内部结构,但从模块的输入,就能知道模块的输出状态。
第四章 软件开发的标准过程 • 设计工程 • 从外部设计(概要设计)到内部设计(详细设计) • 数据库的物理设计 在外部设计时,从应用的角度对数据库进行了讨论,在进行内部设计时应考虑系统运行环境的制约,对数据库进行具体的设计。数据库的设计过程是由概念设计、逻辑设计和物理设计。
第四章 软件开发的标准过程 • 设计工程 • 从外部设计(概要设计)到内部设计(详细设计) · 决定数据项目 · 分析数据特性 使用方法,增、删、改频率 数据量、增加频率、更新周期。 · 选择数据表 概念设计 设计新逻辑DFD · 决定数据表 . 决定键字 · 设计视图 · 推算数据量 · 设计故障对应方法 设计新物理DFD 逻辑设计 · 分配数据库 · 定义数据库 · 定义表 · 定义视图 · 定义权限 · 定义索引 物理设计
第四章 软件开发的标准过程 • 设计工程 • 从外部设计(概要设计)到内部设计(详细设计) • 性能/容量分析 通过性能/容量分析找到解决时间消耗太多的过程。对该过程进行优化处理,对提高系统性能和增加系统处理数据能力是有效的。 应 答 时 间 请求 处理 数 据 库 程序处理时间 请求 输入输出时间 输入输出 回答 处理 反应时间图示 回答
第四章 软件开发的标准过程 • 设计工程 • 设计工程的输入和输出 • 在外部设计工程中所作成的各种文档构成外部设计书。外部设计书所包含的内容有: 系统的硬件设备构成 网络结构图 数据流程图 系统使用的软件(OS,DBMS,NETWARE,其他相关软件) 外部代码表 屏幕设计 报表 外部接口 数据定义 数据库表 安全设计书 系统功能图 业务流程图 系统安装计划 开发计划 系统应用计划 故障对应计划
第四章 软件开发的标准过程 • 设计工程 • 设计工程的输入和输出 • 在内部设计工程中所作成的各种文档构成内部设计书。其内部设计书包含有: 共通用表设计书 出错处理设计书 共通程序模块设计书 物理数据库定义 程序设计书 数据库容量/系统性能分析 系统测试方针 命名规则 程序开发指南 开发环境 开发计划
第四章 软件开发的标准过程 • 制造工程 软件制造工程就是把系统工程师按照用户的需求设计出来的系统构架变为真正可运行的软件系统的工程。即是把软件生存周期过程中上流工程(需求分析、系统设计)所产生的结果作为制造工程的输入,而制造工程又将上一阶段提出的方案进一步具体化,经过程序设计、程序编码、单元测试,变为真正可以运行的软件产品。 制造工程是软件开发工程的一部分,通常叫做开发工程中的中流工程,它所包含的内容有程序设计、程序编制和单元测试三个部分。