Chap02需求分析和系统建模.ppt_第1页
Chap02需求分析和系统建模.ppt_第2页
Chap02需求分析和系统建模.ppt_第3页
Chap02需求分析和系统建模.ppt_第4页
Chap02需求分析和系统建模.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

Chap02 需求分析与系统建模,教学目标 掌握需求分析(OOA) 掌握系统建模(类图、顺序图、协作图) 掌握Rational Rose的使用(CASE) 教学重点 Rational Rose的使用 OOA 系统建模 教学难点 系统建模,1、获得需求 收集需求 整理需求 描述需求,思考的问题 1、我们能否直接从“需求”进入“设计”? 2、为什么要增加一个“需求分析”的环节?,2、系统设计,需求分析和建模 理解需求 分析需求 建立域模型 编写需求文档 评审需求文档 管理需求,一、Rational Rose对UML建模的支持,Rational Rose 2003 美国Rational公司(现IBM)开发的面向对象建模工具 UML(统一建模语言)由Rational 3世界级面向对象技术专家Grady Booch、Ivar Jacobson、Jim Rumbaugh,为可视化建模奠定了坚实的理论基础 Rational Rose 功能 Rational Rose(Rational Object Oriented Software Engineering)是分析和设计面向对象软件系统的强大的可视化工具。 功能 对业务进行建模(工作流) 建立对象模型 对数据库进行建模(比较粗糙) 建立组件模型 Rational Rose的对象模型主要支持Java VC VB,并可生成目标语言的框架代码,一、Rational Rose对UML建模的支持,Rational Rose 2003工具的使用 安装 启动 窗口 各个视图 Use Case视图:强调从用户角度看到的或需要的系统功能 Logical视图:展现系统的静态或结构组成及特征 Component视图:体现了系统实现的结构和行为特征 Deployment视图:体现系统实现环境的结构和行为特征,一、Rational Rose对UML建模的支持,利用Rational Rose 2003建立软件模型 创建文件 保存 保存日志 发布到Web服务器中,一、Rational Rose对UML建模的支持,用Rational Rose 2003创建项目中的用例及用例图 网上书店 新建用例 建立包:用例包 添加用例 新建参与者 建立包:参与者包 添加参与者 新建用例图 建立用例图(面向读者:前台) 关联参与者和用例 建立用例图(面向管理员:后台),二、需求(对用例)分析,当然需求分析也是一个分解的过程。,1、需求分析概述-系统概要设计的输入来自于需求工程 (1)什么是需求分析 分析是一个翻译软件需求和深入理解问题的过程-也就是把软件系统的全部功能被表示成一个单一的信息变换过程。,分析是建立业务模型,完全不考虑采用什么样的技术来实现,和实现无关,和计算机无关,和编程语言无关,而设计是将业务模型转变为和实现相关的计算机模型,必须考虑语言等实现相关的东西 。,希望您能够区分UML中所涉及的“分析类”和“实现类”之间的差别吗!当然也包括概要设计和详细设计中的“类”的差别?,(2)分析的目标 理解问题并开发一个简要描述方案的可视化模型,不依赖于具体的实施技术环境,即“要做什么”的问题 把我们对用例的理解,转变为与业务一致的形式,实现需求的价值,(3)需求分析工作的重点 工作的重点 主要是将功能性的需求翻译成软件的概念,或者说用软件的概念来诠译问题所要求的功能; 工作的核心 是捕获问题的行为,在屏蔽实施细节的基础上得到构成方案的粗略对象模型。,比如财务中的“对帐”、“审计”等,2、为什么要进行需求分析的过程 (1)需求分析工作的重要性 通过对用户的需求进行分析,可以产生出体现整个系统灵魂的文档,并且能够实现将客户需求从“具体描述”到“抽象表示”的一个过程 最终产生并能够制定出开发过程中可实施的规范和标准。,(2)需求分析工作的必要性 在需求分析阶段不仅仅是要获得客户的需求,更重要的是需要进行分析以了解需求的细节,并就细节跟客户进行充分地咨询和沟通,最终获取比较详细的信息。 如果开发方没有去做需求分析而是简单地按照功能要求去设计、规划,最终所开发出的系统是很难完全符合客户的业务流程需要的。,(3)需求分析的主要任务 为了使开发出来的目标系统能满足实际需要,在着手编程之前,必须要有一定的时间用来认真地考虑以下的问题: 系统所要求解决的问题是什么? 为解决该问题,系统应干些什么? 系统应该怎么去干? 注意:基本的要求应该是能够找出系统的主要“实体对象”以及系统的“业务流程”。,(4)如何完成这些任务 确定软件设计的约束和软件同其它系统元素的接口细节 找出用例中的执行流程、事件的各个类(目前为分析类)。 通过实现用例,把用例的行为指定到具体的类。 找出类的责任、属性和他们相互的关系。 规范地确定系统中各用例的职责,并最终对用例分析的结果进行评估,2、需求分析的基本过程 (1)问题识别 从系统的角度来理解软件并评审软件范围是否恰当 确定对目标系统的综合要求,即软件的需求 提出这些需求实现条件,以及需求应达到的标准,(2)分析与综合 从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的关联、接口特性和设计上的约束,分析它们是否满足功能要求,是否合理。 剔除其不合理的部分,增加其需要部分。 最终综合成系统的解决方案,给出目标系统的详细逻辑模型。,(3)编制需求分析阶段的文档资料 软件需求说明书 数据要求说明书(数据流图、数据字典和简明的算法描述) 初步的用户手册 修改、完善与确定软件开发实施计划,(4)需求分析评审 系统定义的目标是否与用户的要求一致; 系统需求分析阶段提供的文档资料是否齐全; 文档中的所有描述是否完整、清晰、准确反映用户要求; 与所有其它系统成分的重要接口是否都已经描述; 被开发项目的数据流与数据结构是否足够,确定; 所有图表是否清楚,在不补充说明时能否理解; 主要功能是否已包括在规定的软件范围之内,是否都已充分说明,三、面向对象的分析,面向对象的分析技术 OOA:Object Oriented Analysis 面向对象分析的首要任务 识别问题域内各种对象,并分析他们相互间的关系和通信,最终建立简洁、精简、可理解的问题域软件模型面向对象分析的结果 静态分析:体现在静态结构上确定出系统中各个类、类之间的关系、类的组成 动态分析:着重于动态行为的建立和理解获得对象之间的交互情况、对象的活动情况和状态。,三、面向对象的分析,面向对象的分析技术 实施面向对象分析的一般步骤: 分析用户需求,建立用例并通过用例图来描述用户的需求 通过建立域模型以识别类与对象,从而识别系统中的各个对象 确定对象的内部特征,从而定义出各个属性与服务,以进一步细化类的结构 识别对象之间的关系并使用设计模式对类的结构进行优化和改造 获得对象之间的行为关系,绘制出各种动态图形(顺序图、协作图、状态图),三、面向对象的分析,面向对象的分析技术 面向对象分析的主要优点 能够加强对问题域和系统功能的充分理解 促进与分析有关的各类人员之间的交流 对需求的变化具有较强的适应性 支持软件复用等技术 贯穿软件生命周期全过程的一致性,三、面向对象的分析,面向对象分析方法 主要的面向对象分析方法 Peter Coard和Edward Yourdon的OOA和OOD方法 Booth OMT(Object Modeling Technology)对象建模技术 功能模型(图2.30 P57) 对象模型(图2.21 P58) 动态模型(图2.22 P58) 面向对象分析的主要原则 抽象 封装 继承 聚合和组合 依赖和关联 消息通信,四、UML建模中涉及的分析类,Rational Rose 2003提供的3种分析类 边界类:是一种用于对系统外部环境与其内部运作之间的交互进行建模的类;代表系统的“用户界面”;功能:输入、输出、过滤 实体类:是用于对必须存储的信息和相关行为建模的类。 控制类:用于对一个或几个用例所特有的控制行为进行建模;功能:控制事件流、负责为实体类分配任务。 分析类和具体编程实现的语言无关,设计类具有特定的语言特点 分析类的UML表示,边界对象,实体对象,控制对象,四、UML建模中涉及的分析类,Rational Rose 2003提供的3种分析类 3种分析类对象间交互的4个原则: 用例的参与者只能与边界类进行交互 边界对象只能与控制对象和用例的参与者进行交互 实体对象只能与控制对象进行交互 控制对象可以和边界对象交互,也可以和实体对象交互。,四、UML建模中涉及的分析类,分析类的设计示例(网上银行) 边界类:用户账号表单、转账信息表单、存/取款表单 控制类:开户、销户、转账、存/取款、修改密码 实体类:用户、管理员、账户、人民币账户、美元账户 建立用户开户业务的分析类图(P64),1、系统建模 (1)概述 严格的说用例模型并不是面向对象的,它描述的是系统的功能,只是建立系统的最初的输入。 为了更细腻的分析需求,从面向对象的角度,可以建立领域模型。 (2)什么是建模 通过将用户的业务需求映射为项目的系统架构、程序代码,同时保证程序代码能够满足和实现用户的需求,并且代码还能回溯需求的过程。,五、面向对象的统一建模,您知道建“大厦”和建“狗窝”在流程方面的差别吗?,2、为什么要建模 (1)建立大厦和建立狗窝的区别是建设狗窝不需要设计 因此,同样要生产合格的软件也就要有一套关于体系结构、实现过程和所使用的工具各种规范的说明。,(2)建立模型有助于系统分析、设计-而且一个系统越大,越复杂,建模的重要性就越大,3、建模的意义体现 (1)在系统开发时需要对系统进行简化和抽象 (2)通过构建系统模型以便能够对系统进行全面的分析和设计,4、什么是模型 (1)模型是对现实世界的简化和抽象 (2)各行各业都使用模型来辅助设计 (3)模型是沟通的手段和了解真正系统的一种替代物 (4)模型可以精确地描述系统,您知道房地产商为什么要首先建楼盘模型吗?,您没有真正见到“神6”但您肯定见过“神6”的模型!,5、系统建模的具体方法-采用“结构化” (1)结构化模型设计方法的实现 传统的面向过程的软件开发是从-算法的角度和业务流程进行建模。 (2)模型的核心是数据词典 它描述了所有的在目标系统中使用的和生成的数据对象。围绕着这个核心的有三种图: 实体-关系图(ERD) 描述数据对象及数据对象之间的关系,用于数据建模; 数据流图(DFD) 描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能(子功能),用于功能建模; 使用系统结构图来表达功能间的关系,(3)使用系统结构图来表达功能间的关系,(4)使用数据流图表达功能与数据间关系,同时使用ER图表达数据间关系,(5)结构化模型设计方法主要的缺点 传统的结构化模型的设计所建立的模型(数据)不能反应源代码(操作),忽略了模型与代码之间不可分割的内在联系 模型与代码几乎没什么关系。同时根据模型不能生成代码,反之根据代码更不能生成模型。 不能保证软件的质量,更不易软件的维护-没什么约束力也没有检测的标准。 传统的软件开发是从算法的角度进行建模-所有的软件都用函数作为构造块,这种建模方法使设计人员把精力放在控制流程和对应的算法进行分析上,这种方法建立的模型是脆弱的,因为当需求发生变化的时候,将难以维护。 没有体现出数据所表示的业务含义,并且对客观世界的描述不够准确 过程式设计对于比较复杂的问题,或是在开发中需求变化比较多的时候,往往显得力不从心,6、系统建模的具体方法-采用“面向对象” (1)面向对象的建模-封装和继承 把系统看作是相互协作的对象,这些对象是结构和行为的封装-都属于某个类,通过类能反映某种层次化的结构。 系统的所有功能通过对象之间相互发送消息来获得。,(2)面向对象的建模所体现出主要优点 可以将整个系统看成为是一个包含以下元素的概念框架: 抽象、封装、模块化、层次、分类 并行、稳定、可重用和可扩展。,对象建模技术采用一组面向对象的概念和与程序语言无关的图形符号来统一表达软件开发人员在分析、设计直到实现的整个软件开发过程,7、OO建模技术的实现形式-通过UML来进行建模 (1)静态建模-静态建模机制主要包括 用例图 包图、类图、对象图 组件图和配置图,(2)动态建模-动态建模机制包括 时序图和协作图 状态图和活动图,8、何时需要建模 (1)在应用开发的任何阶段进入建模工作都是有意义的 (2)在设计最初阶段 无可否认的是,在设计最初阶段,应将精力主要用于处理有关应用系统功能、为实现这些功能应采用何种开发平台、编程环境等技术手段,而不是考虑程序的细节-如在屏幕上的什么位置应该放置什么按钮等。 (3)在项目开发的中期引入建模也是非常有意义的 Ratioal Rose既支持正向建模,同时也支持反向建模。 (4)Rose通过建立模型使开发人员把握程序开发的方向,准确完成需求分析中所要求的任务。,1、利用UML实现系统分析和设计的基本过程 (1)三个基本过程,六、利用UML实现面向对象的建模,(2)静态建模机制,(3)动态建模机制,2、UML适用于系统开发过程中的不同阶段 (1)在需求阶段 通过用例建模,描述对系统感兴趣的外部角色及其对系统(用例)的功能要求。 通过用时序图可以实现按时间先后顺序,从上到下分析用例,进一步确定和细化用例的处理流程和实现过程 通过协作图可以确定对象之间的关系的处理过程的分析流程 (2)分析阶段 重点关心问题域中的主要概念(如抽象、类和对象等)和机制,需要识别这些类以及它们相互间的关系-这可以用UML类图来描述。 为实现用例,类之间需要协作-这可以用UML动态模型中的协作图等来描述,希望您能够区分与设计阶段所出现的类图的不同!,(3)在设计阶段 概要设计中通过分析用例图,得到所用到的类,分析这些类的属性、操作和它们之间的关系。所需要用到的UML的图 类图-显示系统中类与类之间的交互 包图-具有一些共性的类组合在一起的图 详细设计中通过再进一步地细化各个用例图的实现,如类的操作和对象之间的消息等细节问题。所需要用到的UML的图 类图-显示系统中类与类之间的交互 状态图(当然也包括其它的动态视图)-显示一个对象从生成到删除的生命周期,希望您能够区分与分析阶段中所出现的类图的不同!,(4)编程(构造)是一个相对独立的阶段 任务:是用面向对象编程语言将来自设计阶段的类转换成实际的代码。 要点 在用UML建立分析和设计模型时,应尽量避免考虑把模型转换成某种特定的编程语言。 因为在早期阶段,模型仅仅是理解和分析系统结构的工具,过早考虑编码问题十分不利于建立简单正确的模型。 所用到的UML的图 包图-显示系统中类与类之间的集合关系 类图-显示系统中类与类之间的交互 组件图-表示系统中的组件及相互依赖性,(5)测试阶段 系统通常需要经过单元测试、集成测试、系统测试和验收测试等环节。 不同的测试小组使用不同的UML图作为测试依据; 单元测试依据类图和类功能规格说明文档; 集成测试依据组件图和协作图; 系统性能测试依据用例图来验证系统的行为; 验收测试由用户进行,以验证系统测试的结果是否满足在分析阶段确定的需求。 所用到的UML的图为部署图-显示网络中的物理布局和各种组件的位置,以及用例图。,3、统一建模中的“统一”含义 (1)软件开发的整个生命周期都可以用可视化建模技术统一起来,避免“分而治之”(业务流程图、ER图、DFD图等)。 (2)在传统的开发技术中,这些步骤是由不同的技术完成的,如业务模型是由IDEF 语言来描述,分析设计由数据流图来表示,数据库结构是用ER 来定义等等。 (3)通过统一建模语言UML,可以大大增强团队的沟

温馨提示

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

评论

0/150

提交评论