您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > Chap02需求分析和系统建模
Chap02需求分析与系统建模教学目标–掌握需求分析(OOA)–掌握系统建模(类图、顺序图、协作图)–掌握RationalRose的使用(CASE)教学重点–RationalRose的使用–OOA–系统建模教学难点–系统建模1、获得需求收集需求整理需求描述需求思考的问题1、我们能否直接从“需求”进入“设计”?2、为什么要增加一个“需求分析”的环节?2、系统设计需求分析和建模理解需求分析需求建立域模型编写需求文档评审需求文档管理需求一、RationalRose对UML建模的支持RationalRose2003–美国Rational公司(现IBM)开发的面向对象建模工具–UML(统一建模语言)由Rational3世界级面向对象技术专家GradyBooch、IvarJacobson、JimRumbaugh,为可视化建模奠定了坚实的理论基础RationalRose功能–RationalRose(RationalObjectOrientedSoftwareEngineering)是分析和设计面向对象软件系统的强大的可视化工具。–功能•对业务进行建模(工作流)•建立对象模型•对数据库进行建模(比较粗糙)•建立组件模型•RationalRose的对象模型主要支持JavaVCVB,并可生成目标语言的框架代码一、RationalRose对UML建模的支持RationalRose2003工具的使用–安装–启动–窗口–各个视图•UseCase视图:强调从用户角度看到的或需要的系统功能•Logical视图:展现系统的静态或结构组成及特征•Component视图:体现了系统实现的结构和行为特征•Deployment视图:体现系统实现环境的结构和行为特征一、RationalRose对UML建模的支持利用RationalRose2003建立软件模型–创建文件–保存–保存日志–发布到Web服务器中一、RationalRose对UML建模的支持用RationalRose2003——创建项目中的用例及用例图–网上书店•新建用例–建立包:用例包–添加用例•新建参与者–建立包:参与者包–添加参与者•新建用例图–建立用例图(面向读者:前台)–关联参与者和用例–建立用例图(面向管理员:后台)二、需求(对用例)分析当然需求分析也是一个分解的过程。1、需求分析概述---系统概要设计的输入来自于需求工程(1)什么是需求分析分析是一个翻译软件需求和深入理解问题的过程-----也就是把软件系统的全部功能被表示成一个单一的信息变换过程。分析是建立业务模型,完全不考虑采用什么样的技术来实现,和实现无关,和计算机无关,和编程语言无关而设计是将业务模型转变为和实现相关的计算机模型,必须考虑语言等实现相关的东西。希望您能够区分UML中所涉及的“分析类”和“实现类”之间的差别吗!当然也包括概要设计和详细设计中的“类”的差别?(2)分析的目标理解问题并开发一个简要描述方案的可视化模型,不依赖于具体的实施技术环境,即“要做什么”的问题把我们对用例的理解,转变为与业务一致的形式,实现需求的价值(3)需求分析工作的重点工作的重点主要是将功能性的需求翻译成软件的概念,或者说用软件的概念来诠译问题所要求的功能;工作的核心是捕获问题的行为,在屏蔽实施细节的基础上得到构成方案的粗略对象模型。比如财务中的“对帐”、“审计”等2、为什么要进行需求分析的过程(1)需求分析工作的重要性通过对用户的需求进行分析,可以产生出体现整个系统灵魂的文档,并且能够实现将客户需求从“具体描述”到“抽象表示”的一个过程最终产生并能够制定出开发过程中可实施的规范和标准。(2)需求分析工作的必要性在需求分析阶段不仅仅是要获得客户的需求,更重要的是需要进行分析以了解需求的细节,并就细节跟客户进行充分地咨询和沟通,最终获取比较详细的信息。如果开发方没有去做需求分析而是简单地按照功能要求去设计、规划,最终所开发出的系统是很难完全符合客户的业务流程需要的。(3)需求分析的主要任务为了使开发出来的目标系统能满足实际需要,在着手编程之前,必须要有一定的时间用来认真地考虑以下的问题:系统所要求解决的问题是什么?为解决该问题,系统应干些什么?系统应该怎么去干?注意:基本的要求应该是能够找出系统的主要“实体对象”以及系统的“业务流程”。(4)如何完成这些任务确定软件设计的约束和软件同其它系统元素的接口细节找出用例中的执行流程、事件的各个类(目前为分析类)。通过实现用例,把用例的行为指定到具体的类。找出类的责任、属性和他们相互的关系。规范地确定系统中各用例的职责,并最终对用例分析的结果进行评估2、需求分析的基本过程(1)问题识别从系统的角度来理解软件并评审软件范围是否恰当确定对目标系统的综合要求,即软件的需求提出这些需求实现条件,以及需求应达到的标准(2)分析与综合从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的关联、接口特性和设计上的约束,分析它们是否满足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最终综合成系统的解决方案,给出目标系统的详细逻辑模型。(3)编制需求分析阶段的文档资料软件需求说明书数据要求说明书(数据流图、数据字典和简明的算法描述)初步的用户手册修改、完善与确定软件开发实施计划(4)需求分析评审系统定义的目标是否与用户的要求一致;系统需求分析阶段提供的文档资料是否齐全;文档中的所有描述是否完整、清晰、准确反映用户要求;与所有其它系统成分的重要接口是否都已经描述;被开发项目的数据流与数据结构是否足够,确定;所有图表是否清楚,在不补充说明时能否理解;主要功能是否已包括在规定的软件范围之内,是否都已充分说明三、面向对象的分析面向对象的分析技术–OOA:ObjectOrientedAnalysis–面向对象分析的首要任务•识别问题域内各种对象,并分析他们相互间的关系和通信,最终建立简洁、精简、可理解的问题域软件模型——面向对象分析的结果•静态分析:体现在静态结构上——确定出系统中各个类、类之间的关系、类的组成•动态分析:着重于动态行为的建立和理解——获得对象之间的交互情况、对象的活动情况和状态。三、面向对象的分析面向对象的分析技术–实施面向对象分析的一般步骤:•分析用户需求,建立用例并通过用例图来描述用户的需求•通过建立域模型以识别类与对象,从而识别系统中的各个对象•确定对象的内部特征,从而定义出各个属性与服务,以进一步细化类的结构•识别对象之间的关系并使用设计模式对类的结构进行优化和改造•获得对象之间的行为关系,绘制出各种动态图形(顺序图、协作图、状态图)三、面向对象的分析面向对象的分析技术–面向对象分析的主要优点•能够加强对问题域和系统功能的充分理解•促进与分析有关的各类人员之间的交流•对需求的变化具有较强的适应性•支持软件复用等技术•贯穿软件生命周期全过程的一致性三、面向对象的分析面向对象分析方法–主要的面向对象分析方法•PeterCoard和EdwardYourdon的OOA和OOD方法•Booth•OMT(ObjectModelingTechnology)——对象建模技术–功能模型(图2.30P57)–对象模型(图2.21P58)–动态模型(图2.22P58)–面向对象分析的主要原则•抽象•封装•继承•聚合和组合•依赖和关联•消息通信四、UML建模中涉及的分析类RationalRose2003提供的3种分析类–边界类:是一种用于对系统外部环境与其内部运作之间的交互进行建模的类;代表系统的“用户界面”;功能:输入、输出、过滤–实体类:是用于对必须存储的信息和相关行为建模的类。–控制类:用于对一个或几个用例所特有的控制行为进行建模;功能:控制事件流、负责为实体类分配任务。分析类和具体编程实现的语言无关,设计类具有特定的语言特点分析类的UML表示用户账号表单(fromNetBank)账号(fromNetBank)开户(fromNetBank)边界对象实体对象控制对象四、UML建模中涉及的分析类RationalRose2003提供的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)静态建模---
本文标题:Chap02需求分析和系统建模
链接地址:https://www.777doc.com/doc-2905947 .html