2010信息系统项目管理师(2).ppt_第1页
2010信息系统项目管理师(2).ppt_第2页
2010信息系统项目管理师(2).ppt_第3页
2010信息系统项目管理师(2).ppt_第4页
2010信息系统项目管理师(2).ppt_第5页
已阅读5页,还剩187页未读 继续免费阅读

下载本文档

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

文档简介

1、信息系统项目管理师辅导课程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信息系统建设,信息系统集成定义 根据信息产业部1999年1047号文件计算机信息系统集成资质管理办法(试行)中定义,计算机信息系统集成是指从事计算机应用系统工程和网络系统工程的总体策划、设计、开发、实施、服务及保障。,3,3.1.1基本概念,信息系统的特点 以

2、满足用户需求为根本出发点 是综合的、高技术含量的系统工程 最终交付物时完整系统,而不是产品 系统包括技术、管理、商务活动,技术是核心,管理商务是保障,4,信息系统集成的分类 信息系统集成包括两大类: 设备系统集成 也称“硬件系统集成”、“系统集成”,或简称“弱电系统集成”,区别于机电设备安装类的强点集成。 应用系统集成(Application System Integration) 应用系统集成也称“行业信息化解决方案集成”。指提供符合业务需求和管理需求的系统技术解决方案和运维方案。,5,设备集成包括: 智能建筑系统集成(Intelligent Building System Integrat

3、ion),指搭建建筑主体内的智能化管理系统。如:综合布线技术、楼宇自控技术、网络互联技术、多媒体应用技术、安防技术等。 计算机网络系统集成(Computer Network System Integration)指利用综合布线和计算机网络技术,将分散在不同地点的电脑设备及功能的集成。 安防系统集成(Security System Integration)指搭建机构或组织内部的安全防范管理系统。如:门襟系统、楼宇对讲系统、防盗监控报警系统、停车管理系统、远程会议系统等。,6,信息系统集成技术 信息系统技术与软件工程 从信息系统集成的分类可以看出,信息系统集成所涉及的专业技术非常广泛,除了包括多种

4、学科的专业技术之外,还包括管理学科的技术和方法。从信息系统集成的开发过程来看,主要涉及技术是软件工程和网络技术。,7,3.1.2 软件工程方法和技术,1基本概念 2软件过程管理 3软件需求分析概述 4软件设计概述 5软件测试 6软件维护 7软件质量保证及评价体系,8,9,1基本概念 软件工程的定义 软件工程方法和技术是计算机学科的重要部分。按照IEEE93对软件工程定义:第一,软件工程是将系统的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。第二,软件工程是在一中所述方法的研究。,软件工程定义中给出的4个要点 软件工程的性质是系统的、严格约束的、可量化的方法 软件

5、工程作用的范围是用于软件的开发、运行和维护的全过程 软件工程的目标是工程化应用于软件 软件工程的趋势是软件工程方法的不断发展和研究,10,软件工程的内容 包括: 工程部分:包括软件项目的招标、投标、合同、实施、监督、验收、推广,等方面来研究,以经济管理科学的理论为依据,研究软件工程的规划策略和经济收益等工程问题。 技术部分:软件项目的分析、设计、编码、测试、维护等技术方法。依据软件技术理论,以高效、健壮、可复用、可维护的软件为目标。研究软件体系结构、组成成分,以及构造方式,等。 管理部分:软件项目开发的人员组织、过程控制、进度风险分析和质量保证体系等方面,以科学性、合理性、高效可行、及可测量性

6、为目标,来研究工程项目管理。,11,软件开发生命周期(Systems Development Life Cycle)是软件的产生直到报废的存活期。与人类相同,任何软件都会经历同样的生命周期。,12,软件过程 软件过程(Software Procedure)是指软件生存周期所涉及的一系列相关过程。过程是活动的集合;活动中包括完成软件项目的各项任务的;每个任务都要运用软件开发方法和技术实施软件系统。活动的执行按照基本的规律,在一定的条件下,可以是顺序的、重复的、并行的、嵌套的等不同的形式,这些形式属于过程模型(本章过面论述)。,13,2软件过程管理 研究的热点主要包括: 1)软件过程模型的分析和建

7、立,包括:软件过程的合理性、可实施性,以及形式描述和可验证。 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双模认证(软

8、件能力成熟度与软件过程能力)评估体系。,14,RUP(Rational Unified Process)Rational公司提出的软件按开发过程模型。是一个面向对象软件工程的通用业务流程。 RUP的目标:为确保在可预计的时间安排和预算内开发出满足最终用户需求的高品质的软件。 RUP 过程模型: 横轴是时间轴,分为反复迭代的四个阶段:初始阶段、细化阶段、构造阶段和发布阶段 纵轴是工作流轴,包括六个核心工作流程和三个核心支撑工作流程,15,RUP 核心工作流包括: 业务建模工作流 需求工作流 分析设计工作流 实现工作流 测试工作流 发布工作流 RUP 核心支撑工作流包括: 环境工作流 项目管理工作

9、流 配置与变更管理工作流,16,RUP的6项经验 迭代式开发。允许在过程中,不断适应需求的变化,通过不断细化来加深对问题的理解。 管理需求。提供如何提取系统功能和约束条件,并将其文档化。 基于构件的体系结构。使系统成为可构造、可复用,系统应该尽量采用构件式结构。 可视化建模。采用UML对软件系统建模,提供软件文档控制及管理能力。 验证软件质量。软件质量评估是事先进行的并贯穿在整个过程所有活动中的必需任务,要统一组织和管理 控制软件变更。给出了如何控制、跟踪及监控对系统过程中的修改工作,以确迭代过程进行。,17,PSP个体软件过程 PSP (Personal Software Process)个

10、体软件过程,是由美国Carnegie Mellon大学软件工程研究所开发的,是用于软件开发中,控制和管理个人工作方式的一种软件过程体系。 PSP给出了个体软件过程的原则,并可应用到任何软件工程任务之中。 PSP提供了度量和分析工具,帮助软件开发者做出准确的计划;确定为改善产品质量所采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件开发者能力的影响。,18,PSP过程体系框架 1)个体度量过程 PSP0中规定了建立个体过程基线,包括在计划、开发以及后置处理三个阶段中,制定开发时间、选定缺陷类型标准、度量缺陷限值、排除缺陷限值等。 PSP0.1增加了编码标准、程序规模度量和过程改善建

11、议三个关键过程域。 2)个体规划过程 PSP1是个体计划方法,用自己的历史数据预测程序的大小和需要的开发时间,并使用线性回归方法计算估计参数,确定置信区间以评价预测的可信程度。 PSP1.1增加了对任务和进度的规划。,19,3)个体质量管理过程 PSP2是个体质量管理,建立程序缺陷的检测表,按照检测表进行设计复查和代码复查(也称“代码走查”),便于尽早发现软件缺陷,减小修复代价。 PSP2.1给出设计过程和设计模板,介绍设计方法。 4)个体循环过程PSP3 PSP3是延伸个体过程达到大规模的生产过程的方法,采用螺旋式上升过程,即迭代增量式开发方式,分解大型系统的程序,对每个分解模块按照PSP2

12、.1所描述的过程开发,并逐步集成完整软件产品。,20,软件过程改进和评估体系 CMM(Capability Maturity Model for Software,SW-CMM,简称CMM)软件能力成熟度模型,是由美国Carnegie Mellon大学的软件工程研究所(简称SEI)受美国国防部委托,于1991年研究制定的。初始的目的是为了评价美国国防部的软件合同承包组织的能力,因为在软件企业应用进取得了较大的成功,所以在全世界范围内被广泛使用。 CMM的核心 CMM的是这对软件开发全过程管理和控制,使其更加科学化、标准化。作为一种评价软件承包能力,并且,帮助其改善软件质量的方法。CMM的核心是

13、软件开发过程的管理工程能力的提高与评估。,21,CMM的体系的主要内容:,22,23,软件配置管理,软件配置项(SCI Software Configuration Item):,CMM关键过程域和考核标准 KPA是CMM实现每级目标的关键过程域(Key Process Area) KPA统一考核标准: 确定目标:给出准确的目标,若满足了某个级别的所有KPA要求,则表明达到了该级别的能力。 实施保证:必须采取的活动,包括制定企业范围的政策和高层管理的责任。 实施能力:前提条件,包括资源保证、人员培训等。必须采取措施满足这些条件后,才有可能执行KPA的活动。 执行活动:执行KPA的角色和步骤。包

14、括计划、执行、及执行跟踪等。 度量分析:对过程度量和度量分析,确定执行活动的状态,以及执行活动的有效性。 实施验证:验证执行活动是否与所建立的过程一致。组织评审、审计及质量保证活动。,24,CMMI(Capability Maturity Model Integration)能力成熟度模型集成,是SEI在2000年发布的CMM的新版本。在CMM基础上,整合了Software CMM、Systems Eng-CMM、People CMM和Acquisition CMM,建立起除软件开发外,软件系统工程中诸多因素处理能力的标准和评价体系。 CMMI主要内容 软件能力成熟度模型CMM 2.0草案、系

15、统工程能力成熟度模型、软件采购能力成熟度模型、集成产品和过程开发等。CMMI的KPA增加至 25个,目标105个, 关键实践485条。 CMMI的基本目标 解决大型软件项目过程改进难度增大问题 可实施软件过程的并行化与多学科组合 提高过程改进的效益,25,CMM评估 评估机构及人员要求: 必须由SEI授权的合作机构,由SEI授权的主任评估师进行评估。遵守SEI发布的评估需求和评估方法; 若进行双模式SPCA(软件过程能力和软件能力成熟度)评估,必须得到信息产业部和国家认证认可委员会的批准,评估过程遵守国家发布的SPCA评估方法。 申请评估企业的一般条件 要求企业的项目或产品活动应能覆盖所申请C

16、MM/CMMI等级的要求; SPCA评估,要求企业成立5年以上,软件开发人员20人以上,评估项目和人员覆盖率达到70以上,26,实施CMM到评估的基本流程: CMM/CMMI培训 成立软件过程组织、软件质量保证组织 建立和完善过程管理体系 试点实施 推广并制度化 参加预评估 参加、准备最终评估 持续改进,27,3软件需求分析概述 软件需求分析是软件生命周期中必不可少的重要的部分,是软件开发成败的关键,占整个工程一半以上的工作量。 需求分析 用经过证实的有效原理、方法,通过合适的工具和记号,系统地描述待开发产品或系统的行为特征及相关约束。 需求分析过程 包括:需求获取、建立需求模型、编写软件需求

17、规格说明(Software Requirement Specification,SRS)及一致性验证。 需求分析的内容 包括:功能性需求、非功能性需求,28,软件的非功能性需求 过程需求:交付需求、实现方法需求、标准需求等 产品需求:可用性、性能需求、可靠性需求、可移植性需求、可重用性需求、安全性需求等 外部需求:法规需求、费用需求、互操作性需求等 需求模型 模型是描述现实问题的一种手段,它能抽象和简化地反映实际产品或系统的外部特征和本质。不同的方法学有不同的模型表示。因此,它是软件工程方法学研究的主要内容之一。 (本章后面论述),29,30,Kruchten在1995年提出了4+1试图模型,

18、从五个不同的侧面来表达系统。,逻辑视图,开发视图,进程视图,物理视图,场景,最终用户功能需求,编程人员软件元素管理,系统运行特性、非功能性需求,系统实施的拓扑、系统安装,逻辑视图和开发视图属于静态结构表达 进程视图和物理视图是从系统的动态结构老表达的。,31,4软件设计概述 软件设计,在软件生命周期中处于技术核心的位置,将完成软件系统实现意义的工程表示。 软件设计阶段任务: 数据设计,用数据结构组织处理数据元素之间的逻辑关系 体系结构设计,定义软件的主要结构、构造元素、及之间的关系、限制和约束 接口设计,描述软件内部、软件和协作系统之间的通信,数据流或控制流 构件逻辑设计,对软件结构的构造元素

19、,进行软件算法过程的描述,为编码提供依据,32,软件设计的方法和技术 软件设计方法是软件工程中,软件技术的汇集焦点。它汇集了操作系统、数据库技术、网络技术、软件体系结构,以及算法设计、界面设计等,几乎涵盖了计算机学科的所有技术和方法。不同的方法学对应不同的设计方法和技术,例如:结构化设计方法和面向对象的设计方法。(本章后面分别论述),33,5软件测试 软件测试的目标 为了发现软件中的错误,努力产生好的测试案例 软件测试的评价 能成功发现软件错误的测试才是好的测试 能揭示软件错误的案例才是好的案例 软件测试的基本原则 测试应符合软件的功能及性能需求 测试要有计划地进行 测试应该从小规模开始,逐步

20、到大规模的测试 测试不可能穷举,只能尽量充分覆盖 测试应该由软件开发人员和独立测试组共同完成,34,软件测试的三个阶段 单元测试阶段,验证程序控制结构的分支,尽量覆盖所有可能的错误 集成测试阶段,在单元测试的基础上验证程序以及测试程序构造问题 高阶测试,也叫做“确认性测试”,是对已经通过集成测试并可运行的程序进行的测试,确认性测试,集成测试,单元测试,编码,设计,需求分析,验证需求分析,验证设计,验证编码,可行性分析,系统维护,测试v模型,35,软件测试的策略 软件测试的不同阶段对应不同测试策略 单元测试策略,包括:程序中常见错误的测试、单元测试规程,等策略 集成测试策略,包括:自顶向下的测试

21、、自底向上的测试、回归测试、烟雾测试,等策略 高阶测试策略,包括:测试、测试、恢复测试、安全测试、应力测试、性能测试等策略,36,软件测试技术 黑盒测试技术,为证实软件运行功能,通过功能的操作执行发现和寻找错误 白盒测试技术,为证实软件内部的执行规约,在程序内部发现和寻找错误 软件测试方法和工具 结构化测试方法和工具,是针对结构化程序语言程序的测试方法,以及结构化程序设计语言环境的软件测试工具。 面向对象测试方法,针对面向对象程序语言程序的测试方法,以及面向对象程序设计语言环境的软件测试工具。,37,6软件维护 基本概念 软件维护是指对已经提交用户使用的软件系统或软件产品的修改 是软件生命周期

22、中必然经历的阶段 任何软件系统或产品存都存在缺陷,这是软件基本性质决定的: 软件是人工过程为主的知识密集型产品,软件开发者对解决问题的理解总是有误差的 与软件操作相关的环境和需求是会变化的 软件解决的现实问题本身是存在不确定性因素的 软件开发的方法和技术本身是存在局限性的,38,软件维护的基本类型 改正性维护:交付使用的软件暴露的错误隐患 适应性维护:更新业务以及硬件系统或软件环境升级 完善性维护:原有功能或性能在使用中发现短缺 预防性维护:系统未来的扩充、维护、移植,改正性 维护20%,适应性 维护25%,完善性 维护50%,其它,4种维护的比例:,39,软件维护的任务及过程 设置专门的维护

23、确认审批机构,减少由于随意修改造成的系统结构混乱 建立合理的维护管理流程及严格的维护文档,包括:申请、审批、问题报告、维护计划、实施结果 进行维护活动的评审,对维护所带来的成本开销给出定量的分析,40,7软件质量保证及评价体系 软件质量定义 按国际标准ISO/8042-1994对软件质量定义: 能满足明确需求的软件实体,所具有能力的特性总合。 按照国家GB/T 11457-2006软件工程术语中定义软件质量为: 软件产品中能满足给定需要的性质和特性的总体 软件具有所期望的各种属性的组合程度 顾客和用户觉得软件满足其综合期望的程度 确定软件在使用中将满足顾客预期要求的程度,41,软件质量模型 质

24、量模型是质量特性结构的表达,业界认同的软件质量模型有几种: Bohm 质量模型,1976年由Bohm等提出软件质量分层模型 McCall 质量模型,1979年由McCall等人提出的软件质量模型 ISOIEC 9126-1:2001,给出的软件质量模型,42,软件质量,可移植性,可用性,可维护性,可靠性,效率,人类工程,可测性,可理解性,可修改性,设备独立性,自包含性,正确性,完备性,健壮性,一致性,可计测性,设备效率,可存取性,通信性,自描述性,结构化性,简单清晰性,可扩充性,Bohm 质量模型,43,产品修正,产品转移,产品运行,可维护性 可测试性 灵活性,互联性 可移植性 复用性,正确性

25、 可靠性 易用性 效率 完整性,McCall 质量模型,44,外部质量和内部质量,功能性,易用性,可靠性,效率,可维护性,可移植性,使用质量,生产性,有效性,安全性,满意度,ISOIEC 9126-1:2001质量模型,45,软件质量保证体系 ISO9001是适用于所有工程质量保证标准。ISO9000-3是在软件过程中质量保证体系使用的子集。标准中给出的软件质量保证体系。主要内容包括:管理职责、质量体系、合同评审、设计控制、文件和资料控制、采购、顾客提供产品的控制、产品标识和可追溯性、过程控制、检验和试验、检验/测量和试验设备的控制、检验和试验状态、不合格品的控制、纠正和预防措施、搬运/贮存/

26、包装/防护和交付、质量记录的控制、内部质量审核、培训、服务、统计系统等20多项。,软件评审 软件评审是软件质量保证的重要措施根据GB/T 12504-1990计算机软件质量保证计划规范软件评审包括: 1)软件需求评审,产品对应需求的适合性,在软件需求分析结束后进行。 2)概要设计评审,软件设计的总体结构、外部接口、部件分配、数据结构以及各主要部件之间的接口等方面的适合性,在软件概要设计结束后进行。 3)详细设计评审,评价软件设计的每一个基本部件的功能、算法和过程描述各方面的适合性,在软件详细设计结束后进行。,46,4)软件验证和确认评审,评价软件验证与确认计划中使用方法的适合性与完整性,在软件

27、验证与确认计划完成后进行。 5)功能检查,验证所开发软件满足需求的情况,在软件提交前对软件进行。 6)物理检查,验证程序和文档的一致性并是否做好了交付准备,在软件验收前进行。 7)综合检查,验证代码和设计文档的一致性、接口规格说明的一致性、设计实现和功能需求的一致性、功能需求和测试描述的一致性。在软件验收时,用户或用户委托专家,进行抽样的方式检查。 8)管理评审,计划执行情况定期管理评审,必须由独立评审机构或授权的第三方主持进行。,47,48,软件的检查和走查方式 软件检查,是针对软件产品的某一局部,目标是检测和发现软件产品的异常情况记录下来并提交 软件走查,是对软件产品发现异常或缺陷并改进的

28、过程,可以在同事之间相互进行,评价产品实现的运行效果,发现问题,改进方案。,49,软件质量评价 ISO/IEC1458给出了软件质量评价标准,主要内容包括: 软件评价的管理: 测试计划的编制指南 评价过程控制 开发人员的评价过程 顾客的评价过程 评价者的评价过程 合同协议评价 模块评价,50,开发人员的评价过程,包括:软件质量指示器,评价过程的要求;对组织的要求(数据收集的反馈方式和途径);项目的要求(如确定质量要求、确定内部和外部质量度量等);以及对质量分析、策划、质量控制和质量评价的要求。 顾客的评价过程,评价的目标包括: 用户的文件、课程和培训;用于产品开发的软件工程过程;产品历史运作情

29、况;可执行软件产品本身(如通过黑盒测试或原型评价)。 评价者的评价过程,定义了供方自己的质量控制部门或第三方机构对软件产品质量的评价过程。软件产品的购买者或使用者,也可以独立进行评价。,51,评价供方、需方和评价者的相互关系、职责,以及相互达成合同协议的性质。 评价模块,包括6项内容:模块的范围,模块引用文件,模块的定义,模块所使用文件、收集的数据和计算的度量值,解释测量结果的信息,应用程序要求的资源(如硬件、软件、人员的技能和资格及工作量) 。,52,评价的五项活动: 评价需求的分析 评价规范制定 评价的设计(包括评价计划) 评价实施 评价结果记录,3.2开发过程模型,53,经典过程模型,传

30、统软件开发模型 演化模型 面向对象开发模型 形式化方法模型 (智能模型),增量模型 螺旋模型,喷泉模型 构件集成模型,瀑布模型 快速原型模型,转换模型 净室模型,54,要点:系统工程方法学基于软件过程 系统过程贯穿于开发生命周期 不同的过程,对应不同的系统开发活动,55,55,瀑布模型,需求分析,软件设计,编码,测试,维护,模型要点: 阶段的顺序性 推迟实现的观点 严格文档是保证质量的手段,带来的问题: 过程基本不可迭代 需求在开始的不确定性 错误到最后才能发现 开发进程呈现塞阻状态,可行性研究,问题定义,56,原型模型,带来的问题: 系统分析组织仓促 用户不宜理解进度 先入为主而系统设计,可

31、能不是最佳设计,听取用户意见,建造修改原型,测试运行原型,原型过程示意:,57,57,增量模型,分析,设计,编码,测试,分析,设计,编码,测试,分析,设计,编码,测试,分析,设计,编码,测试,增量2,增量3,增量4,增量1,第1个增量的发布,第2个增量的发布,第3个增量的发布,第4增量的发布,模型要点: 瀑布和原型模型相结合 强调版本升级 每版本开发遵循顺序过程,58,58,风险分析,累计费用,制定 阶段 计划,评审约定,模型,螺旋模型,模型要点: 统一了瀑布模型与原型模型 与增量模型相似,更强调风险分析,风险分析,风险分析,风险分析,原型1,原型2,原型3,运行原型,软件需求,需求有效性,产

32、品设计,设计有效性验证,操作概念,需求阶段计划,开发计划,确定目标 选择方案 设定条件,运行,验收测试,集成测试,详细设计,单元测试,编码,系统集成,测试计划,评估方案 明确风险 排除风险,开发 验证,59,59,喷泉模型,演化,维护,确认,实现,设计,分析,模型要点: 体现认识事物的循环迭代性 强调开发活动之间的无间隙性 无明显的活动阶段划分 适用于面向对象的开发过程,60,构件集成模型,构件库,问题域,识别构件,查找构件,生成构件,组装系统,查到构件,未查到构件,模型要点: 基于面向对象的构件方法 立足于软件复用性 形成统一开发过程RUP 采用统一建模语言,61,61,需求明确或有先例的项

33、目 瀑布模型 需求不明确或与客户难以沟通的项目 原型模型 规模大且时间紧的项目 增量模型 带有突破性技术的项目 螺旋模型 采用面向对象方法开发的项目 喷泉模型 明显复用潜力的项目 构件模型,项目情况,适用模型,项目适应模型的一般规律,3.3系统分析方法,62,返回目录,系统分析的基本概念 “系统分析”也叫“需求分析”或“问题定义” 系统分析是在可行性分析阶段之后的一个重要的阶段 系统分析阶段,定义系统的功能、数据、行为的规约,及与其他系统的接口约束。,63,建立分析模型 在当前物理模型的基础上,建立分析模型 完成“软件需求规格说明” (Software Requirement Specific

34、ation,SRS) 在SRS中,定义软件的功能,信息,表示软件的行为 需求验证 与用户达成共识,编写测试计划和测试案例,需求分析的任务和步骤,64,行业知识 学习,访问用户 考察现场,定制 调研计划,组织调研,整理调研 问题陈述,建立当前 系统物理 模型,建立未来 系统逻辑 模型,多次反复的过程,编制需求 规格说明,开发 系统原型,系统分析步骤示意,65,需求规格说明: (主要内容) 1.引言 1.1编写目的 1.2项目背景 1.3定义 1.4参考资料 2.任务概述 2.1目标 2.2运行环境 2.3条件与限制 3.数据描述 3.1数据字典(或数据库描述) 3.2数据采集,4.功能需求 4.

35、1功能划分 4.2功能描述 5.性能描述 5.1数据精确度 5.2时间特性 5.3适应性 6.运行需求 6.1用户界面 6.2硬件接口 6.3软件接口 6.4故障处理 7.其它需求,需求分析阶段的产品,66,3.3.1 结构化分析方法(Structured Analysis),SA是面向数据流的分析方法,在20世纪90年代被广泛应用。 SA方法适合于开发数据处理类型的软件,是需求分析阶段的描述工具。 SA方法的主要思想是:以数据的输入输出流向,确认其加工(或处理),从粗到细,逐层分解。,67,数据流图(Data Flow Diagram DFD),外部 实体,外部 实体,外部 实体,外部 实体

36、,变换1,变换3,变换2,变换4,数据存储,输入数据,中间数据,中间数据,中间数据,输入数据,输出数据,输出数据,输入,输出,变换加工说明: 输入: 输出: 加工:,结构化分析方法和工具,68,数据流结构化,F,f1,f41,f43,f45,f42,f46,f3,f2,f4,f5,f6,f7,A,B,A,B,X,X,Y,Y,Z,Z,69,名称: 别名: 何处使用/如何使用: 内容描述: 补充信息:,数据字典,作用:描述各个数据项约束 数据字典内容和形式:,70,系统分析建模示例 家庭安全系统问题陈述:,系统由房主在安装时配置,通过系统控制窗口和键盘功能与房主交互进行。系统可以监控所有连接的传感

37、器。 在安装过程中,每个传感器可以设置编号和类型,系统的启动和关闭必须有主人密码控制;传感器事件发生时,软件激活系统上的警报器,在设定的时间延时后,软件自动拨打设定的电话号码,并提供位置信息和事件性质,电话号码将每隔20秒重拨一次,直至电话接通。 系统运行时,系统控制窗口显示提示信息和系统状态。通过键盘可以控制系统运行。,71,例:家庭安全系统控制面板,SAFEHOME,01,报警 检查 火情,离开 驻留 紧急 旁路 准备未就绪,装备 电源,关闭 离开 驻留,最大 测试 旁路,立即 编码 警声,准备就绪,1,2,3,4,5,6,7,8,9,*,0,#,72,从问题陈述,分析SafeHome系统

38、顶层DFD,控制面板,传感器,SafeHome 系统,控制面板 显示,警告,电话线,用户命令 和数据,传感器 状态,显示信息,警告类型,电话号,73,SafeHome 第一层DFD,控制面板,传感器,处理用户输入,控制面板 显示,警告,电话线,用户命令 和数据,传感器 状态,显示信息,警告类型,电话号信号,配置 系统,监控 传感器,处理 口令,激活或失效 系统,显示 信息和 状态,传感器信息,配置信息,正确的ID信息,配置数据,配置数据,配置请求,启动停止,口令,激活/失效信息,74,监控传感器的精化DFD,评定 输出,配置信息,显示格式化,产生警告信号,读 传感器,拨打 电话,传感器状态,传

39、感器ID类型,位置,传感器信息,警告类型,警告数据,电话号,配置数据,电话号信号,传感器ID类型,位置,75,从60年代出现 Simula 60语言以来,形成了体现类和对象两个基本概念的程序设计语言;70年代诞生的Smalltalk语言,真正确立了面向对象程序设计语言的地位。80年代面向对象的分析和设计方法才正式出现。,面向对象分析和设计方法的起源,伴随着软件界对于结构化方法引起的越来越多的争议,以及面向对象程序设计越发广泛的应用和成熟,产生了面向对象分析和设计方法。,3.3.2 面向对象分析方法,76,面向对象方法的基本概念和原则 (1)思想方法 从现实世界中客观存在的事物出发,以问题域中的

40、事物为中心,建立和表达系统。 将事物的特征和系统责任抽象表示为系统的对象,作为系统的基本构成单位。 (2)4个基本概念 类和对象 消息和封装 继承 多态和动态绑定,77,类和对象 在外部世界中,相同属性和操作的对象属于一个类,对象是类的一个实例; 在机器空间中,类是一个可复用的模板,而对象是复用出来的独立可执行程序块; 数据抽象是在数据对象上定义相关的属性和必要的操作;过程抽象是定义某功能到责任实体;而这一实体要有必要的属性和执行这一功能的一些列操作; 对象包括实体对象和无形对象;,78,封装和消息 隐藏类的内部属性和操作的执行,只留下外部可见的操作界面。避免外界错误地对内部进行修改,造成不良

41、影响; 对象只通过消息来请求其他的对象执行自身的操作;消息必须直接发给指定的对象,消息中包括请求执行操作的必要信息; 接收消息的对象是消息的执行者,在执时也可以向其他对象发出请求。,79,类和子类 类可以有子类,子类继承父类,形成类的层次结构; 继承的概念与现实意义相同,子类继承父类的全部属性和操作,并允许有自己的属性和操作; 继承可以有多重继承; 继承有传递性; 继承的重要作用在于源代码的复用。,80,学生 姓名 年龄 ,研究生 导师 研究方向 ,本科生 班级 专业 ,继承:,81,继承层次:,运输工具,轮船,车辆,飞机,卡车,轿车,82,人员 姓名 年龄 ,研究生 导师 研究方向 ,职工

42、部门 职务 ,在职研究生 ,多继承:,83,多态性 在继承关系的类层次结构中,定义同名操作,形成同一操作的多种形态,按同一个消息响应不同的行为。即“多态性”。 多态性更强地体现了信息隐蔽的原则,实现接口的独立封装。 多态性的实现机制: 静态联编编译直接确定连接的软件成分 动态联编编译不确定连接的软件成分,执行时根据定义的实体再确定需要的连接的软件成分,84,动态联编:,静态联编:,图形 坐标 移动(),点 移动() ,矩形 长 宽 移动() ,圆 半径 移动(),多态性:,图形 字符型坐标 数字型坐标 移动() 移动() ,Virtue,可使用统一图形移动接口,采用移动()的动态联编,85,面

43、向对象方法的优势,以更接近人类认识世界的思维的方式来建立问题域模型,因为事物本身不但包括属性也包括行为,认识事物,从来不会将事物的属性和行为分离 建造系统的基本元素是封装了操作的对象实体,回避了以易变的处理过程为基础的系统建造 从实体对象抽象得到的对象类,保持了语义上的一致性,提高了系统的复用和构造性 继承机制是源代码级的复用机制,在此基础上的多态机制,成为系统可扩充性结构,以及分布式系统结构实现的基础保证,86,面向对象方法的发展趋势,从80年代到现在20多年的发展过程,面向对象方法学逐渐走向成熟和。主要表现在: 横向求同:多种的面向对象方法之间的求同。 纵向求同:与非面向对象方法的求同。

44、标准化: 统一建模语言(Unified Modeling Language UML) 96年由Booch、Jacobson、Rumbaugh三位面向对象方法的专家,在国际对象管理组织OMG建议下,在Rational公司研制了UML,从97年的1.0版到现在的2.X版,逐步完善。目前是业界共识的标准。,87,统一建模语言(Unified Modeling Language UML),UML是以图形来确定、表示、和记录软件系统的建模语言,面向对象分析模型,需求描述: Use Case 用况图,辅助模型: Sequence顺序图 Collaboration协作图 State状态图 Packet包图

45、Component构件图 Deployment部署图 Activity活动图,基本模型: Class类图 Object对象图,对象,对象间关系,对象属性,详细说明,88,1. 用况图(Use Case) 用况图的建立思想不属于面向对象的,而是业界早已熟悉的需求建模方法,只是UML有新的表示方法。,房主,include,Use Case示例:,身份确认,系统设置,系统运行查询,启动/关闭系统,传感器监测,密码修改,系统区域设置,系统电话设置,系统警报设置,include,extend,extend,extend,参与者,用况,包含用况,扩展用况,交互关系,显示窗,电话,报警器,传感器,参与者,8

46、9,include,extend,Use Case图元素:,参与者:与系统交互的,使用系统相关功能的角色,,用况:与参与者有交互的一个功能,参与者与用况的连线:表示双向,没有箭头,用况之间的连线:表示包含其中必须的功能,用况之间的连线:表示扩展可选的功能,90,2.类图(Class) 从问题域中的实体抽象出对象类,描述类之间的静态结构。,InternetClient,+search (s: String): String,CustomerList,+search (s: String): Customer +getCustomer (number: Sting): Customer +addC

47、ustomer (c: Customer): Boolean +removeCustomer (c: Customer): Boolean,0. 1,CompanyCustomer,+login (nimber: String , passwd: String): Boolean +update (webpage: String , e_mail: String): Boolean +viewMyInfo ( ): String,InternalClient,+updateCustomer (nimber: String , ): Boolean +addCustomer (name: Str

48、ing , ): Boolean +removeCustomer (number: String): Boolean +viewCustomer (number: String): String,Customer,-number: String -name: String -address: String -e_mail: String -webpage: String -pass: String,+check_pwd (s: String): Boolean +showInfo(): String,1,1,1,*,依赖关系,聚合关系,关联关系,继承关系,多重性表示,class图示例:,91,

49、类图(Class)图元素: 对象:在问题域中承担责任的事物 关联:对象类之间固有的关系 属性:对象类的特征,系统必要的信息,对象类名,属性,操作,类:名词为类名, 属性和操作栏必须有,内容可以暂略。,关联:有方向,由多重性描述,可以有名称,继承:一般和特殊的关系,聚合:整体和部分的关系,0 . n,多重性:,1. n,1. 1,0 . 1,* . ,0 . *,可见性分为:公共的(+) 私有的(-) 受保护的(#),92,边界,边界,(国家) 西班牙,(国家) 法国,(国家) 比利时,国家 名称,边界,对象图(Object),国家类的实例对象图,93,顺序图-强调消息交互的时序; 协作图-强调

50、对象收发消息的组织结构,顺序图的作用: 在给定的语境中,通过对象之间的消息通信,展现对象的行为;用以发现对象的操作。,交互图,关于顺序图和协作图,顺序图和协作图表示相同的模型语义,可以相互转换,能表示对方不能表示的某些内容。,协作图的作用: 分析对象行为的控制线程,规划系统分布,以及规划测试用例,94,3.顺序图(Sequence) 表示按时间顺序排列的对象间的交互。,ob1:C1,ob3:C3,ob2:C2,:C4,Op( ),x0create(x) x0bar(x),doit(w),doit(z),more( ),生命线,激活 (控制焦点),消息,匿名对象,对象,消息名 条件和参数,销毁,

51、自调用,参与者,创建对象,分支条件,95,包括: 实箭线“ ”同步过程,需要等待回应,会有嵌套控制 枝状箭线“ ”异步通信,发出消息后不必等待,继续执行虚的枝状箭线“ ” 显式表示回应返回 (一般的控制流省略返回消息,表明每个请求都有返回),对象-类创建的对象实体名 匿名对象-只表示类名 创建对象-通过消息发送创建的对象 生命线-表示对象存在的时间段 激活(控制焦点)-表示对象行为的操作历程,即活动的持续时间 销毁-对象被结束生命(杀死) 自调用-对象的操作递归调用自己,或本对象的其他操作 消息-,顺序图(Sequence)图元素:,96,c:Client,t:Transaction,p:OD

52、BCProxy,create,setAction(a,d,o),setValues(d,3.4),setValues (a”CO”),destroy,顺序图示例:,对象,生命线,激活,消息,97,4.协作图(Collaboration),协作图表示协同完成某行为对象之间的交互,强调对象的消息结构,而忽略时间顺序。,c: Client,t: Transaction,p: ODBCProxy,1: create 2: setAction(a,d,o) 3: destroy,2.1 :setValues(d,3.4) 2.2 setValues(a”CO”),Collaboration图示例:,链,

53、消息,对象,与前例的顺序图语义等价!,98,1:card inserted 2:password deposit 3:withdraw 4:accntStatus 5:terminate,2.1:verify accnt 2.2:verity PIN 2.3verity policy 3.1:with drawReq 4.1:deppositReq 4.2:acctInfoReq,verity Status deposit Status disppoense cash print AccntStar read CardInfo getCashAmnt,2:open accnt 3:initia

54、lDeposit 1:authorizeCard 4:deauthorize 5:close accnt,4.1.1:deposit 4.2.1:creditLimit 4.2.2:accntType 4.2.3:balance 4.2.4:withdraw 4.2.5:deposit close,2.1.1:valid accnt 2.2.1:valid PIN,ATM user interface,ATM,Bank,Cashier,Account,Validation Info,用协作图规划储蓄系统的行为:,99,5.状态转换图(State Transition) 状态图表示对象事物的行为

55、,描述对象在生命周期内,响应事件的状态转换过程,以及响应事件后所做的反映。,状态图的作用: 用以确定状态属性的范围;并以此确定对象的必要操作,包括接受的请求和响应请求所执行的必要动作,以及维持常态的必要行为。,状态图的两个要点: 状态转换的原子性(不可间断性) 针对有明确生命阶段的复杂行为对象建立状态图,100,源状态,目标状态,事件标记监护条件 / 动作表达式,状态和事件的表示:,事件的规格描述,状态名称 动作标号1/动作表达式1 动作标号2/动作表达式2 ,初始状态,终止状态,内部动作,两个伪状态,101,活动,空闲,关闭2分钟之后/断电(),when(温度1200)/测试设备(),事件示

56、例:,状态示例:,EnterPassword entry/password.reset() exit/password.test() clear/password.reset() help/display help print/defer do/suppress echo,102,Waiting 等待状态,Put( c)c/=“”/return false,GettingToken 获得符号状态,Put( c)c/=“”/token.append( c); return false,GettingBody 获得主句状态,Put( c)c/=“;”/body.append( c); return

57、 false,Put( c)c= =“”,Put( c)c= =“”,字符流分析器类状态图:,Put( c)c= =“;”/return true,字符流形式为:xx xx.x ; 要求分析出中的符号,及;号前的主句,状态图示例:,103,6.包图( Packet ) 用来对描述进行组织,以控制描述的复杂性。是对模型成分的分组的机制。,把模型成分组织成为包,可以嵌套表示 包有唯一的命名,可以被独立引用 包必须提供外部可访问的操作(接口),包的表示:,操作1() ,包名:vision 操作1() ,嵌套表示,包名:sensor,104,包之间依赖关系表示: 引入依赖-包中可见的操作可以被另一个包引用 (即提供方的元素直接附加到请求方) 访问依赖-包中可见的操作可以被另一个包使用 (请求方直接使用提供方的元素),Server,+Database +LoggingService,GUI,+Windoes +Form +EventHandler,Policies,+OrderRules,Cli

温馨提示

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

评论

0/150

提交评论