2010系统集成项目管理工程师(2).doc_第1页
2010系统集成项目管理工程师(2).doc_第2页
2010系统集成项目管理工程师(2).doc_第3页
2010系统集成项目管理工程师(2).doc_第4页
2010系统集成项目管理工程师(2).doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2010系统集成项目管理工程师(2).txt我自横刀向天笑,笑完我就去睡觉。 你的手机比话费还便宜。路漫漫其修远兮,不如我们打的吧。 本文由他新贡献 ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 系统集成项目管理工程师 辅导课程 2 北京理工大学 计算机学院 徐进 1 3.信息系统集成专业技术知识 3.1信息系统建设 3.1.1基本概念 3.1.2 软件工程方法和技术 3.2软件过程模型 3.3软件分析方法 3.3.1结构化分析方法 3.3.2 面向对象分析方法 3.4软件设计方法 3.4.1结构化设计 3.4.2面向对象设计 2 3.1信息系统建设 3.1.1基本概念 信息系统集成定义 根据信息产业部1999年1047号文件计算 机信息系统集成资质管理办法(试行) 中定义,计算机信息系统集成是指从事计算 机应用系统工程和网络系统工程的总体策 划、设计、开发、实施、服务及保障。 3 信息系统的特点 ? 以满足用户需求为根本出发点 ? 是综合的、高技术含量的系统工程 ? 最终交付物时完整系统,而不是产品 ? 系统包括技术、管理、商务活动,技术是 核心,管理商务是保障 4 信息系统集成的分类 信息系统集成包括两大类: ? 设备系统集成 也称“硬件系统集成”、“系统集成”,或简 称“弱电系统集成”,区别于机电设备安装类 的强点集成。 ? 应用系统集成(Application System Integration) 应用系统集成也称“行业信息化解决方案集 成”。指提供符合业务需求和管理需求的系统 技术解决方案和运维方案。 5 设备集成包括: ? 智能建筑系统集成(Intelligent Building System Integration),指搭建建筑主体内的智能化管理 系统。如:综合布线技术、楼宇自控技术、网 络互联技术、多媒体应用技术、安防技术等。 ? 计算机网络系统集成(Computer Network System Integration)指利用综合布线和计算机网 络技术,将分散在不同地点的电脑设备及功能 的集成。 ? 安防系统集成(Security System Integration)指 搭建机构或组织内部的安全防范管理系统。如: 门襟系统、楼宇对讲系统、防盗监控报警系统、 停车管理系统、远程会议系统等。 6 信息系统集成技术 ? 信息系统技术与软件工程 从信息系统集成的分类可以看出,信息系 统集成所涉及的专业技术非常广泛,除了 包括多种学科的专业技术之外,还包括管 理学科的技术和方法。从信息系统集成的 开发过程来看,主要涉及技术是软件工程 和网络技术。 7 3.1.2 软件工程方法和技术 1基本概念 2软件过程管理 3软件需求分析概述 4软件设计概述 5软件测试 6软件维护 7软件质量保证及评价体系 8 1基本概念 软件工程的定义 ? 软件工程方法和技术是计算机学科的重要 部分。按照IEEE93对软件工程定义:第一, 软件工程是将系统的、严格约束的、可量 化的方法应用于软件的开发、运行和维护, 即将工程化应用于软件。第二,软件工程 是在一中所述方法的研究。 9 软件工程定义中给出的4个要点 ? 软件工程的性质是系统的、严格约束的、 可量化的方法 ? 软件工程作用的范围是用于软件的开发、 运行和维护的全过程 ? 软件工程的目标是工程化应用于软件 ? 软件工程的趋势是软件工程方法的不断发 展和研究 10 软件工程的内容 包括: ? 工程部分:包括软件项目的招标、投标、合同、 实施、监督、验收、推广,等方面来研究,以 经济管理科学的理论为依据,研究软件工程的 规划策略和经济收益等工程问题。 ? 技术部分:软件项目的分析、设计、编码、测 试、维护等技术方法。依据软件技术理论,以 高效、健壮、可复用、可维护的软件为目标。 研究软件体系结构、组成成分,以及构造方式, 等。 ? 管理部分:软件项目开发的人员组织、过程控 制、进度风险分析和质量保证体系等方面,以 科学性、合理性、高效可行、及可测量性为目 标,来研究工程项目管理。 11 软件开发生命周期(Systems Development Life Cycle) 是软件的产生直到报废的存活期。与人类 相同,任何软件都会经历同样的生命周期。 12 软件过程 软件过程(Software Procedure)是指软件生存 周期所涉及的一系列相关过程。过程是活动 的集合;活动中包括完成软件项目的各项任 务的;每个任务都要运用软件开发方法和技 术实施软件系统。活动的执行按照基本的规 律,在一定的条件下,可以是顺序的、重复 的、并行的、嵌套的等不同的形式,这些形 式属于过程模型(本章过面论述)。 13 2软件过程管理 研究的热点主要包括: 1)软件过程模型的分析和建立,包括:软件过程的合 理性、可实施性,以及形式描述和可验证。 2)软件过程管理的体系,包括:软件过程定义的概念、 内容、策略、方法等,主要的软件过程管理体系: ?RUP(Rational Unified Process) 统一过程 ?PSP (Personal Software Process) 个体软件过程 3)软件过程改进和评估体系 ?CMM(Capability Maturity Model for Software,SW-CMM) 软件能力成熟度模型体系 ?CMMI(Capability Maturity Model Integration)能力 成熟度模型集成体系, ?CMMI/SPCA双模认证(软件能力成熟度与软件过程 能力)评估体系。 14 ? ? ? RUP(Rational Unified Process)Rational公司提出 的软件按开发过程模型。是一个面向对象软件 工程的通用业务流程。 RUP的目标:为确保在可预计的时间安排和预 算内开发出满足最终用户需求的高品质的软件。 RUP 过程模型: 横轴是时间轴,分为反复迭代的四个阶段:初 始阶段、细化阶段、构造阶段和发布阶段 纵轴是工作流轴,包括六个核心工作流程和三 个核心支撑工作流程 15 RUP 核心工作流包括: 业务建模工作流 需求工作流 分析设计工作流 实现工作流 测试工作流 发布工作流 RUP 核心支撑工作流包括: 环境工作流 项目管理工作流 配置与变更管理工作流 16 RUP的6项经验 迭代式开发。允许在过程中,不断适应需求的 变化,通过不断细化来加深对问题的理解。 管理需求。提供如何提取系统功能和约束条件, 并将其文档化。 基于构件的体系结构。使系统成为可构造、可 复用,系统应该尽量采用构件式结构。 可视化建模。采用UML对软件系统建模,提供 软件文档控制及管理能力。 验证软件质量。软件质量评估是事先进行的并 贯穿在整个过程所有活动中的必需任务,要统 一组织和管理 控制软件变更。给出了如何控制、跟踪及监控 对系统过程中的修改工作,以确迭代过程进行。 17 PSP个体软件过程 ? PSP (Personal Software Process)个体软件过程, 是由美国Carnegie Mellon大学软件工程研究所 开发的,是用于软件开发中,控制和管理个人 工作方式的一种软件过程体系。 ? PSP给出了个体软件过程的原则,并可应用到 任何软件工程任务之中。 ? PSP提供了度量和分析工具,帮助软件开发者 做出准确的计划;确定为改善产品质量所采取 的步骤;建立度量个体软件过程改善的基准; 确定过程的改变对软件开发者能力的影响。 18 PSP过程体系框架 1)个体度量过程 ? PSP0中规定了建立个体过程基线,包括在计划、 开发以及后置处理三个阶段中,制定开发时间、 选定缺陷类型标准、度量缺陷限值、排除缺陷 限值等。 ? PSP0.1增加了编码标准、程序规模度量和过程 改善建议三个关键过程域。 2)个体规划过程 ? PSP1是个体计划方法,用自己的历史数据预测 程序的大小和需要的开发时间,并使用线性回 归方法计算估计参数,确定置信区间以评价预 测的可信程度。 ? PSP1.1增加了对任务和进度的规划。 19 3)个体质量管理过程 ? PSP2是个体质量管理,建立程序缺陷的检测表, 按照检测表进行设计复查和代码复查(也称 “代码走查”),便于尽早发现软件缺陷,减 小修复代价。 ? PSP2.1给出设计过程和设计模板,介绍设计方法。 4 4)个体循环过程PSP3 PSP3 ? PSP3是延伸个体过程达到大规模的生产过程的 方法,采用螺旋式上升过程,即迭代增量式开 发方式,分解大型系统的程序,对每个分解模 块按照PSP2.1所描述的过程开发,并逐步集成完 整软件产品。 20 软件过程改进和评估体系 ? CMM(Capability Maturity Model for Software, SW-CMM,简称CMM)软件能力成熟度模型, 是由美国Carnegie Mellon大学的软件工程研究 所(简称SEI)受美国国防部委托,于1991年 研究制定的。初始的目的是为了评价美国国防 部的软件合同承包组织的能力,因为在软件企 业应用进取得了较大的成功,所以在全世界范 围内被广泛使用。 ? CMM的核心 CMM的是这对软件开发全过程管理和控制, 使其更加科学化、标准化。作为一种评价软件 承包能力,并且,帮助其改善软件质量的方法。 CMM的核心是软件开发过程的管理工程能力 的提高与评估。 21 CMM的体系的主要内容: 能力等级 第一级 基本级 第二级 可重复级 特点 关键过程域 关键过程域KPA 软件过程混乱而无序,几乎没有过程定 软件过程混乱而无序 几乎没有过程定 义 ,完全依靠的个人的才能和经验来实 完全依靠的个人的才能和经验来实 施系统,反应式的管理方式 反应式的管理方式。 施系统 反应式的管理方式。 需求管理,项目计划 项目计划,项目 建立了基本的项目管理机制, 建立了基本的项目管理机制 , 对项目 需求管理 项目计划 项目 进度和费用有必要的跟踪,能够利用以 跟踪和监督,软件子合同管 进度和费用有必要的跟踪 能够利用以 跟踪和监督 软件子合同管 前类似的项目经验,重复开发过程。 软件配置管理,软件质 前类似的项目经验,重复开发过程。 理 ,软件配置管理 软件质 软件配置管理 量保障 过程定义,过程焦点 培训, 过程焦点,培训 制定了软件工程化标准化和文档标准 过程定义 过程焦点 培训 并在软件开发过程中得以实施。 集成管理,软件产品工程 软件产品工程, 化,并在软件开发过程中得以实施。 并在软件开发过程中得以实施 集成管理 软件产品工程 组间协调,专家审评 组间协调 专家审评 收集软件过程和产品质量的详细度量, 收集软件过程和产品质量的详细度量 定量的软件过程管理和产 对软件过程和产品质量有定量的理解 品质量管理 和控制。 和控制。 缺陷预防,过程变更管理和 软件过程的量化反馈和新的思想和技 缺陷预防 过程变更管理和 术促进过程的不断改进。 术促进过程的不断改进。 技术变更管理 22 第三级 定义级 第四级 管理级 第五级 优化级 软件配置管理 软件配置项(SCI Software Configuration Item): 分类 环境类 定义类 设计类 编码类 测试类 维护类 特性 软件开发或维护环境 需求分析与定义阶段得到的 工作产品 设计阶段得到的产品 编码及单元测试后产品 系统测试后得到的产品 进入维护后所得到的产品 举例 编辑器、编译器、文档工具等 需求规格说明书、开发计划、设 计和测试标准、验收计划 设计规格说明、程序规格说明、 用户界面设计标准、用户手册 源代码、目标代码、单元测试数 据及结果 系统测试数据、测试结果、操作 手册、安装手册 以上任何需要变更的配置项 23 CMM关键过程域和考核标准 ?KPA是CMM实现每级目标的关键过程域(Key Process Area) ?KPA统一考核标准: 确定目标:给出准确的目标,若满足了某个级别的所有 KPA要求,则表明达到了该级别的能力。 实施保证:必须采取的活动,包括制定企业范围的政策 和高层管理的责任。 实施能力:前提条件,包括资源保证、人员培训等。必 须采取措施满足这些条件后,才有可能执行KPA的活动。 执行活动:执行KPA的角色和步骤。包括计划、执行、及 执行跟踪等。 度量分析:对过程度量和度量分析,确定执行活动的状 态,以及执行活动的有效性。 实施验证:验证执行活动是否与所建立的过程一致。组 织评审、审计及质量保证活动。 24 CMMI(Capability Maturity Model Integration)能力 成熟度模型集成,是SEI在2000年发布的CMM的新版 本。在CMM基础上,整合了Software CMM、 Systems Eng-CMM、People CMM和Acquisition CMM, 建立起除软件开发外,软件系统工程中诸多因素处 理能力的标准和评价体系。 ? CMMI主要内容 软件能力成熟度模型CMM 2.0草案、系统工程能力 成熟度模型、软件采购能力成熟度模型、集成产品 和过程开发等。CMMI的KPA增加至 25个,目标105 个, 关键实践485条。 ? CMMI的基本目标 解决大型软件项目过程改进难度增大问题 可实施软件过程的并行化与多学科组合 提高过程改进的效益 25 CMM评估 ? 评估机构及人员要求: 必须由SEI授权的合作机构,由SEI授权的主任评估 师进行评估。遵守SEI发布的评估需求和评估方法; 若进行双模式SPCA(软件过程能力和软件能力成 熟度)评估,必须得到信息产业部和国家认证认可 委员会的批准,评估过程遵守国家发布的SPCA评 估方法。 ? 申请评估企业的一般条件 要求企业的项目或产品活动应能覆盖所申请 CMM/CMMI等级的要求; SPCA评估,要求企业成立5年以上,软件开发人员 20人以上,评估项目和人员覆盖率达到70以上 26 实施CMM到评估的基本流程: ? CMM/CMMI培训 ? 成立软件过程组织、软件质量保证组织 ? 建立和完善过程管理体系 ? 试点实施 ? 推广并制度化 ? 参加预评估 ? 参加、准备最终评估 ? 持续改进 27 3软件需求分析概述 软件需求分析是软件生命周期中必不可少的 重要的部分,是软件开发成败的关键,占整 个工程一半以上的工作量。 ? 需求分析 用经过证实的有效原理、方法,通过合 适的工具和记号,系统地描述待开发产品 或系统的行为特征及相关约束。 28 需求分析的任务和步骤 的任务和步骤 建立分析模型 在当前物理模型的基础上,建立分析模型 ?完成“软件需求规格说明” (Software Requirement Specification,SRS) 在SRS中,定义软件的功能,信息,表示软件 的行为 ?需求验证 与用户达成共识,编写测试计划和测试案例 29 系统分析步骤示意 行业知识 学习 访问用户 考察现场 定制 调研计划 组织调研 建立未来 系统逻辑 模型 建立当前 系统物理 模型 整理调研 问题陈述 多次反复的过程 编制需求 规格说明 开发 系统原型 30 需求分析阶段的产品 需求规格说明: 需求规格说明 (主要内容) 1.引言 1.1编写目的 1.2项目背景 1.3定义 1.4参考资料 2.任务概述 2.1目标 2.2运行环境 2.3条件与限制 3.数据描述 3.1数据字典(或数据库描述) 3.2数据采集 4.功能需求 4.1功能划分 4.2功能描述 5.性能描述 5.1数据精确度 5.2时间特性 5.3适应性 6.运行需求 6.1用户界面 6.2硬件接口 6.3软件接口 6.4故障处理 7.其它需求 31 软件的非功能性需求 过程需求:交付需求、实现方法需求、标准需 求等 产品需求:可用性、性能需求、可靠性需求、 可移植性需求、可重用性需求、安全性需求等 外部需求:法规需求、费用需求、互操作性需 求等 ? 需求模型 模型是描述现实问题的一种手段,它能抽象和简 化地反映实际产品或系统的外部特征和本质。不 同的方法学有不同的模型表示。因此,它是软件 工程方法学研究的主要内容之一。 (本章后面论述) 32 4+1试图模型 由Kruchten在1995年提出,从五个侧面来表达系统 最终用户功能需求 编程人员软件元素管理 逻辑视图 场景 进程视图 系统运行特性、非 功能性需求 开发视图 物理视图 系统实施的拓扑、 系统安装 逻辑视图和开发视图属于静态结构表达 进程视图和物理视图是从系统的动态结构老表达的。 33 4软件设计概述 软件设计,在软件生命周期中处于技术核心的位置, 将完成软件系统实现意义的工程表示。 ? 软件设计阶段任务: 数据设计,用数据结构组织处理数据元素之间 的逻辑关系 体系结构设计,定义软件的主要结构、构造元 素、及之间的关系、限制和约束 接口设计,描述软件内部、软件和协作系统之 间的通信,数据流或控制流 构件逻辑设计,对软件结构的构造元素,进行 软件算法过程的描述,为编码提供依据 34 软件设计的方法和技术 软件设计方法是软件工程中,软件技术的汇 集焦点。它汇集了操作系统、数据库技术、 网络技术、软件体系结构,以及算法设计、 界面设计等,几乎涵盖了计算机学科的所有 技术和方法。不同的方法学对应不同的设计 方法和技术,例如:结构化设计方法和面向 对象的设计方法。(本章后面分别论述) 35 5软件测试 软件测试的目标 为了发现软件中的错误,努力产生好的测试案例 软件测试的评价 能成功发现软件错误的测试才是好的测试 能揭示软件错误的案例才是好的案例 软件测试的基本原则 测试应符合软件的功能及性能需求 测试要有计划地进行 测试应该从小规模开始,逐步到大规模的测试 测试不可能穷举,只能尽量充分覆盖 测试应该由软件开发人员和独立测试组共同完成 36 软件测试的三个阶段 ? 单元测试阶段,验证程序控制结构的分支,尽量 覆盖所有可能的错误 ? 集成测试阶段,在单元测试的基础上验证程序以 及测试程序构造问题 ? 高阶测试,也叫做“确认性测试”,是对已经通 过集成测试并可运行的程序进行的测试 可行性分析 需求分析 设计 编码 系统维护 确认性测试 集成测试 单元测试 验证需求分析 验证设计 验证编码 测试v模型 37 软件测试的策略 软件测试的不同阶段对应不同测试策略 ? 单元测试策略,包括:程序中常见错误的 测试、单元测试规程,等策略 ? 集成测试策略,包括:自顶向下的测试、 自底向上的测试、回归测试、烟雾测试, 等策略 ? 高阶测试策略,包括:测试、测试、恢 复测试、安全测试、应力测试、性能测试 等策略 38 软件测试技术 ? 黑盒测试技术,为证实软件运行功能,通过功 能的操作执行发现和寻找错误 ? 白盒测试技术,为证实软件内部的执行规约, 在程序内部发现和寻找错误 软件测试方法和工具 ? 结构化测试方法和工具,是针对结构化程序语 言程序的测试方法,以及结构化程序设计语言 环境的软件测试工具。 ? 面向对象测试方法,针对面向对象程序语言程 序的测试方法,以及面向对象程序设计语言环 境的软件测试工具。 39 6软件维护 基本概念 ? 软件维护是指对已经提交用户使用的软件系统或软 件产品的修改 ? 是软件生命周期中必然经历的阶段 ? 任何软件系统或产品存都存在缺陷,这是软件基本 性质决定的: 软件是人工过程为主的知识密集型产品,软件开 发者对解决问题的理解总是有误差的 与软件操作相关的环境和需求是会变化的 软件解决的现实问题本身是存在不确定性因素的 软件开发的方法和技术本身是存在局限性的 40 软件维护的基本类型 ? 改正性维护:交付使用的软件暴露的错误隐患 ? 适应性维护:更新业务以及硬件系统或软件环境升级 ? 完善性维护:原有功能或性能在使用中发现短缺 ? 预防性维护:系统未来的扩充、维护、移植 4种维护的比例: 其 它 改正性 维护20% 完善性 维护50% 适应性 维护25% 41 软件维护的任务及过程 ? 设置专门的维护确认审批机构,减少由于 随意修改造成的系统结构混乱 ? 建立合理的维护管理流程及严格的维护文 档,包括:申请、审批、问题报告、维护 计划、实施结果 ? 进行维护活动的评审,对维护所带来的成 本开销给出定量的分析 42 7软件质量保证及评价体系 软件质量定义 ?按国际标准ISO/8042-1994对软件质量定义: 能满足明确需求的软件实体,所具有能力的特性 总合。 ?按照国家GB/T 11457-2006软件工程术语中定 义软件质量为: 软件产品中能满足给定需要的性质和特性的总体 软件具有所期望的各种属性的组合程度 顾客和用户觉得软件满足其综合期望的程度 确定软件在使用中将满足顾客预期要求的程度 43 软件质量模型 质量模型是质量特性结构的表达,业界认同 的软件质量模型有几种: ? Bohm 质量模型,1976年由Bohm等提出 软件质量分层模型 ? McCall 质量模型,1979年由McCall等人 提出的软件质量模型 ? ISOIEC 9126-1:2001,给出的软件质 量模型 44 Bohm 质量模型 设备独立性 自包含性 可移植性 可靠性 可用性 软件质量 效率 人类工程 可测性 可维护性 可理解性 可修改性 正确性 完备性 一致性 健壮性 可计测性 设备效率 可存取性 通信性 自描述性 结构化性 简单清晰性 可扩充性 45 McCall 质量模型 可维护性 可测试性 灵活性 互联性 可移植性 复用性 产品修正 产品转移 产品运行 正确性 可靠性 易用性 效率 完整性 46 ISOIEC 9126-1:2001质量模型 外部质量和内部质量 功能性 可靠性 易用性 效率 可维护性 可移植性 使用质量 有效性 生产性 安全性 满意度 47 软件质量保证体系 ISO9001是适用于所有工程质量保证标准。 ISO9000-3是在软件过程中质量保证体系使用 的子集。标准中给出的软件质量保证体系。 主要内容包括:管理职责、质量体系、合同 评审、设计控制、文件和资料控制、采购、 顾客提供产品的控制、产品标识和可追溯性、 过程控制、检验和试验、检验/测量和试验设 备的控制、检验和试验状态、不合格品的控 制、纠正和预防措施、搬运/贮存/包装/防护 和交付、质量记录的控制、内部质量审核、 培训、服务、统计系统等20多项。 48 软件评审 软件评审是软件质量保证的重要措施根据GB/T 12504-1990计算机软件质量保证计划规范软件 评审包括: 1)软件需求评审,产品对应需求的适合性,在软 件需求分析结束后进行。 2)概要设计评审,软件设计的总体结构、外部接 口、部件分配、数据结构以及各主要部件之间 的接口等方面的适合性,在软件概要设计结束 后进行。 3)详细设计评审,评价软件设计的每一个基本部 件的功能、算法和过程描述各方面的适合性, 在软件详细设计结束后进行。 49 4)软件验证和确认评审,评价软件验证与确认计 划中使用方法的适合性与完整性,在软件验证 与确认计划完成后进行。 5)功能检查,验证所开发软件满足需求的情况, 在软件提交前对软件进行。 6)物理检查,验证程序和文档的一致性并是否做 好了交付准备,在软件验收前进行。 7)综合检查,验证代码和设计文档的一致性、接 口规格说明的一致性、设计实现和功能需求的 一致性、功能需求和测试描述的一致性。在软 件验收时,用户或用户委托专家,进行抽样的 方式检查。 8)管理评审,计划执行情况定期管理评审,必须 由独立评审机构或授权的第三方主持进行。 50 软件的检查和走查方式 ? 软件检查,是针对软件产品的某一局部, 目标是检测和发现软件产品的异常情况记 录下来并提交 ? 软件走查,是对软件产品发现异常或缺陷 并改进的过程,可以在同事之间相互进行, 评价产品实现的运行效果,发现问题,改 进方案。 51 软件质量评价 ISO/IEC1458给出了软件质量评价标准,主要 内容包括: 软件评价的管理: 测试计划的编制指南 评价过程控制 ? 开发人员的评价过程 ? 顾客的评价过程 ? 评价者的评价过程 合同协议评价 模块评价 52 开发人员的评价过程,包括:软件质量指示器,评 价过程的要求;对组织的要求(数据收集的反馈方 式和途径);项目的要求(如确定质量要求、确定内 部和外部质量度量等);以及对质量分析、策划、 质量控制和质量评价的要求。 ? 顾客的评价过程,评价的目标包括: 用户的文件、 课程和培训;用于产品开发的软件工程过程;产品 历史运作情况;可执行软件产品本身(如通过黑盒 测试或原型评价)。 ? 评价者的评价过程,定义了供方自己的质量控制部 门或第三方机构对软件产品质量的评价过程。软件 产品的购买者或使用者,也可以独立进行评价。 53 评价供方、需方和评价者的相互关系、职责,以 及相互达成合同协议的性质。 ? 评价模块,包括6项内容:模块的范围,模块引 用文件,模块的定义,模块所使用文件、收集的 数据和计算的度量值,解释测量结果的信息,应 用程序要求的资源(如硬件、软件、人员的技能 和资格及工作量) 。 54 评价的五项活动: ?评价需求的分析 ?评价规范制定 ?评价的设计(包括评价计划) ? ?评价实施 ?评价结果记录 55 3.2开发过程模型 瀑布模型 传统软件开发模型 快速原型模型 演化模型 增量模型 螺旋模型 喷泉模型 面向对象开发模型 构件集成模型 转换模型 形式化方法模型 净室模型 (智能模型 智能模型) 智能模型 经典过程模型 56 瀑布模型 带来的问题: 带来的问题: ? 过程基本不可迭代 问题定义 可行性研究 需求分析 软件设计 需求在开始的不确定性 ? 错误到最后才能发现 ? 开发进程呈现塞阻状态 编码 测试 维护 模型要点: 模型要点: ? 阶段的顺序性 ? 推迟实现的观点 严格文档是保证质量的手段 ? 严格文档是保证质量的手段 57 57 原型模型 原型过程示意: 听取用 户意见 建造修 改原型 测试运 行原型 带来的问题: 带来的问题: ?系统分析组织仓促 系统分析组织仓促 ?用户不宜理解进度 用户不宜理解进度 ?先入为主而系统设计,可能不是最佳设计 先入为主而系统设计, 先入为主而系统设计 58 增量模型 增量1 分析 设计 增量2 分析 设计 增量3 3 分析 设计 增量4 编码 测试 第1个增量的发布 编码 测试 第2个增量的发布 编码 测试 第3个增量的发布 设计 编码 测试 第4增量的发布 模型要点: 模型要点: ?瀑布和原型模型相结合 瀑布和原型模型相结合 ?强调版本升级 强调版本升级 ?每版本开发遵循顺序过程 每版本开发遵循顺序过程 分析 59 59 螺旋模型 确定目标 选择方案 设定条件 累计费用 评估方案 明确风险 排除风险 评审约定 需求阶段计划 制定 阶段 计划 原型1 操作概念 原型3 运行 原型2 原型 模型 软件 需求 产品 设计 单元 测试 详细 设计 编码 开发 验证 系统集成 测试计划 运行 验收 测试 集成 测试 模型要点: 模型要点: ?统一了瀑布模型与原型模型 统一了瀑布模型与原型模型 与增量模型相似,更强调风险分析 与增量模型相似, 与增量模型相似 60 60 喷泉模型 演化 维护 确认 实现 设计 分析 模型要点: 模型要点: ?体现认识事物的循环迭代性 体现认识事物的循环迭代性 ?强调开发活动之间的无间隙性 强调开发活动之间的无间隙性 无明显的活动阶段划分 ?适用于面向对象的开发过程 适用于面向对象的开发过程 61 61 构件集成模型 模型要点: 模型要点: ? 基于面向对象的构件方法 ? 立足于软件复用性 ? 形成统一开发过程RUP 形成统一开发过程RUP ? 采用统一建模语言 问题域 查到构件 识别构件 未查到构件 查找构件 组装系统 生成构件 构件库 62 项目适应模型的一般规律 项目情况 ?需求明确或有先例的项目 需求明确或有先例的项目 ?需求不明确或与客户难以沟通的项目 需求不明确或与客户难以沟通的项目 ?规模大且时间紧的项目 规模大且时间紧的项目 ?带有突破性技术的项目 带有突破性技术的项目 ?采用面向对象方法开发的项目 采用面向对象方法开发的项目 ?明显复用潜力的项目 明显复用潜力的项目 适用模型 瀑布模型 原型模型 增量模型 螺旋模型 喷泉模型 构件模型 63 63 3.3系统分析方法 3.3.1 结构化分析方法(Structured Analysis) SA是面向数据流的分析方法,在20世纪90年 SA是面向数据流的分析方法, 20世纪90年 是面向数据流的分析方法 世纪90 代被广泛应用。 代被广泛应用。 ? SA方法适合于开发数据处理类型的软件,是 SA方法适合于开发数据处理类型的软件, 方法适合于开发数据处理类型的软件 需求分析阶段的描述工具。 需求分析阶段的描述工具。 ? SA方法的主要思想是:以数据的输入输出流 SA方法的主要思想是: 方法的主要思想是 确认其加工(或处理),从粗到细, ),从粗到细 向,确认其加工(或处理),从粗到细,逐 层分解。 层分解。 64 结构化分析方法和工具 数据流图(Data Flow Diagram 数据流图(Data 外部 实体 输入数据 DFD) 外部 实体 变换1 中间数据 变换3 中间数据 输入 输出 中间数据 输出数据 变换4 数据存储 输出数据 变换2 外部 实体 输入数据 外部 实体 变换加工说明: 输入: 输出: 加工: 65 数据流结构化 A F B f2 A f1 f3 Y X f4 Z f5 f7 f43 f45 f46 Z B f6 X Y f41 f42 66 数据字典 作用: 描述各个数据项约束 数据字典内容和形式: 名称: 别名: 何处使用/如何使用: 内容描述: 补充信息: 67 系统分析建模示例 家庭安全系统问题陈述: 家庭安全系统问题陈述: 系统由房主在安装时配置, 系统由房主在安装时配置,通过系统控制窗口和键盘 功能与房主交互进行。系统可以监控所有连接的传感器。 功能与房主交互进行。系统可以监控所有连接的传感器。 在安装过程中,每个传感器可以设置编号和类型, 在安装过程中,每个传感器可以设置编号和类型,系 统的启动和关闭必须有主人密码控制;传感器事件发生时, 统的启动和关闭必须有主人密码控制;传感器事件发生时, 软件激活系统上的警报器,在设定的时间延时后, 软件激活系统上的警报器,在设定的时间延时后,软件自 动拨打设定的电话号码,并提供位置信息和事件性质, 动拨打设定的电话号码,并提供位置信息和事件性质,电 话号码将每隔20秒重拨一次,直至电话接通。 20秒重拨一次 话号码将每隔20秒重拨一次,直至电话接通。 系统运行时,系统控制窗口显示提示信息和系统状态。 系统运行时,系统控制窗口显示提示信息和系统状态。 通过键盘可以控制系统运行。 通过键盘可以控制系统运行。 68 例:家庭安全系统控制面板 SAFEHOME 关闭 离开 2 测试 5 编码 8 驻留 3 旁路 6 警声 9 01 报警 检查 火情 1 离开 驻留 紧急 旁路 准备未就绪 最大 4 立即 7 准备就绪 装备 电源 * 0 # 69 从问题陈述,分析 系统顶层DFD 从问题陈述,分析SafeHome系统顶层 系统顶层 控制面板 用户命令 和数据 SafeHome 显示信息 警告类型 控制面板 显示 警告 系统 传感器 传感器 状态 电话号 电话线 70 SafeHome 第一层 第一层DFD 控制面板 用户命令 和数据 处理 用户 输入 口令 正确的ID信息 正确的 信息 处理 口令 配置数据 传感器信息 监控 传感 器 警告类型 电话线 配置请求 配置 系统 配置数据 启动停止 激活 或失 效 系统 配置信息 激活/失效信息 激活 失效信息 显示 信息 和 状态 显示信息 控制面板 显示 警告 传感器 传感器 状态 电话号信号 71 监控传感器的精化DFD 监控传感器的精化 传感器信息 配置信息 显示 格式 化 传感器ID 传感器 类型,位置 类型 位置 评定 输出 警告数据 产生 警告 信号 警告类型 配置数据 读 传感 器 传感器ID 传感器 类型,位置 类型 位置 电话号 拨打 电话 电话号信号 传感器状态 72 3.3.2 面向对象分析方法 面向对象分析和设计方法的起源 语言以来, 从60年代出现 Simula 60语言以来,形成了体 年代出现 语言以来 现类和对象两个基本概念的程序设计语言;70年 现类和对象两个基本概念的程序设计语言; 年 代诞生的Smalltalk语言,真正确立了面向对象程 语言, 代诞生的 语言 序设计语言的地位。 年代面向对象的分析和设 序设计语言的地位。80年代面向对象的分析和设 计方法才正式出现。 计方法才正式出现。 伴随着软件界对于结构化方法引起的越来越多 的争议, 的争议,以及面向对象程序设计越发广泛的应用 和成熟,产生了面向对象分析和设计方法。 和成熟,产生了面向对象分析和设计方法。 7 3 面向对象方法的基本概念和原则 (1)思想方法 ? 从现实世界中客观存在的事物出发,以问题域 从现实世界中客观存在的事物出发, 事物出发 中的事物为中心,建立和表达系统。 事物为中心 中的事物为中心,建立和表达系统。 ? 将事物的特征和系统责任抽象表示为系统的对 将事物的特征和系统责任抽象表示为系统的对 特征 抽象表示为系统的 作为系统的基本构成单位 构成单位。 象,作为系统的基本构成单位。 (2)4个基本概念 (2)4个基本概念 ? 类和对象 ? 消息和封装 ? 继承 ? 多态和动态绑定 74 类和对象 ? 在外部世界中 , 相同属性和操作的对象属于一 在外部世界中, 个类,对象是类的一个实例; 个类,对象是类的一个实例; ? 在机器空间中 , 类是一个可复用的模板 , 而对 在机器空间中, 类是一个可复用的模板, 象是复用出来的独立可执行程序块; 象是复用出来的独立可执行程序块; ? 数据抽象是在数据对象上定义相关的属性和必 数据抽象 是在数据对象上定义相关的属性和必 要的操作; 过程抽象是定义某功能到责任实体 是定义某功能到责任实体; 要的操作 ; 过程抽象 是定义某功能到责任实体 ; 而这一实体要有必要的属性和执行这一功能的 一些列操作; 一些列操作; ? 对象包括实体对象和无形对象; 对象包括实体对象和无形对象; 实体对象 75 封装和消息 ? 隐藏类的内部属性和操作的执行 , 只留 隐藏类的内部属性和操作的执行, 下外部可见的操作界面。 下外部可见的操作界面 。 避免外界错误 地对内部进行修改,造成不良影响; 地对内部进行修改,造成不良影响; ? 对象只通过消息来请求其他的对象执行 自身的操作; 自身的操作 ; 消息必须直接发给指定的 对象, 对象 , 消息中包括请求执行操作的必要 信息; 信息; ? 接收消息的对象是消息的 执行者, 在执 接收消息的对象是消息的执行者 , 执行者 行时也可以向其他对象发出请求 请求。 行时也可以向其他对象发出请求。 76 类和子类 ? 类可以有子类,子类继承父类,形成类 类可以有子类,子类继承父类, 的层次结构; 的层次结构; ? 继承的概念与现实意义相同,子类继承 继承的概念与现实意义相同, 父类的全部属性和操作, 父类的全部属性和操作,并允许有自己 的属性和操作; 的属性和操作; ? 继承可以有多重继承; 继承可以有多重继承; ? 继承有传递性; 继承有传递性; ? 继承的重要作用在于源代码的复用。 继承的重要作用在于源代码的复用。 77 继承: 继承: 学生 姓名 年龄 研究生 导师 研究方向 本科生 班级 专业 78 继承层次: 继承层次: 运输工具 轮船 车辆 飞机 卡车 轿车 79 多继承: 多继承: 人员 姓名 年龄 职工 部门 职务 研究生 导师 研究方向 在职研究生 80 多态性 ? 在继承关系的类层次结构中,定义同名操作, 在继承关系的类层次结构中,定义同名操作, 形成同一操作的多种形态, 形成同一操作的多种形态,按同一个消息响 应不同的行为。 多态性” 应不同的行为。即“多态性”。 多态性更强地体现了信息隐蔽的原则, 多态性更强地体现了信息隐蔽的原则,实现 接口的独立封装。 接口的独立封装。 多态性的实现机制: 多态性的实现机制: 静态联编 静态联编编译直接确定连接的软件成分 动态联编编译不确定连接的软件成分, 动态联编编译不确定连接的软件成分,执 行时根据定义的实体再确定需要的连接的软 件成分 81 ? 多态性: 多态性: 静态联编: 静态联编: 图形 字符型坐标 数字型坐标 移动() 移动() 移动() 移动() 动态联编: 动态联编: Virtue 图形 坐标 移动() 移动() 矩形 长 宽 移动() 移动() 点 移动() 移动() 圆 半径 移动() 移动() 可使用统一图形移动接口,采用移动()的动态联编 可使用统一图形移动接口,采用移动()的动态联编 () 82 面向对象方法的优势 ? 以更接近人类认识世界的思维的方式来建立问 题域模型, 题域模型,因为事物本身不但包括属性也包括 行为,认识事物, 行为,认识事物,从来不会将事物的属性和行 为分离 ? 建造系统的基本元素是封装了操作的对象实体, 建造系统的基本元素是封装了操作的对象实体, 回避了以易变的处理过程为基础的系统建造 ? 从实体对象抽象得到的对象类,保持了语义上 从实体对象抽象得到的对象类, 的一致性, 的一致性,提高了系统的复用和构造性 ? 继承机制是源代码级的复用机制,在此基础上 继承机制是源代码级的复用机制, 的多态机制,成为系统可扩充性结构, 的多态机制,成为系统可扩充性结构,以及分 布式系统结构实现的基础保证 83 面向对象方法的发展趋势 年代到现在20多年的发展过程 从80年代到现在 多年的发展过程,面向对象 年代到现在 多年的发展过程, 方法学逐渐走向成熟和。主要表现在: 方法学逐渐走向成熟和。主要表现在: 横向求同:多种的面向对象方法之间的求同。 ? 横向求同:多种的面向对象方法之间的求同。 纵向求同:与非面向对象方法的求同。 ? 纵向求同:与非面向对象方法的求同。 ? 标准化: 统一建模语言(Unified Modeling 标准化: 统一建模语言( Language UML) 96年由Booch、Jacobson、Rumbaugh三位面向 96年由Booch、Jacobson、Rumbaugh三位面向 年由Booch 对象方法的专家,在国际对象管理组织OMG建议下, OMG建议下 对象方法的专家,在国际对象管理组织OMG建议下, Rational公司研制了UML, 97年的1.0版到现在 公司研制了UML 年的1.0 在Rational公司研制了UML,从97年的1.0版到现在 2.X版 逐步完善。目前是业界共识的标准。 的2.X版,逐步完善。目前是业界共识的标准。 84 面向对象分析模型 统一建模语言(Unified Modeli

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论