需求分析和系统建模1.docx
《需求分析和系统建模1.docx》由会员分享,可在线阅读,更多相关《需求分析和系统建模1.docx(22页珍藏版)》请在冰豆网上搜索。
需求分析和系统建模1
第2章需求分析和系统建模
一旦获得并整理出软件系统的各种需求,并通过特定的形式加以描述,然后再得到客户的认可之后,就需要对软件系统的需求进行分析,并最终能够建立软件系统的分析模型。
通过建立软件系统的分析模型,可以捕获到独立于软件系统具体实现技术细节之外的各种信息和预期行为,而这些内容与使用的开发语言、开发平台、部署的应用服务器等都是无关的。
如果对软件系统的设计活动是基于系统的分析结果而得到的,那么软件系统的开发人员可以更加确信开发出的应用系统项目将是一个完全按照用户需求构建的应用系统。
如何有效地进行需求分析并建立正确的系统分析模型?
通过对软件系统中的需求进行分析,开发者最终能够获得什么结果呢?
如何熟练应用可视化的建模工具?
这都是读者感兴趣的问题,本章将介绍如何进行软件系统的需求分析和系统建模等内容,并通过详细的图示和实现步骤来说明在RationalRose工具中的具体实现方法。
2.1RationalRose对UML建模的支持
2.1.1RationalRose2003工具概述
1.RationalRose工具概述
(1)RationalRose工具是美国Rational公司(即现在的IBM公司)开发的面向对象建模工具。
利用这个面向对象建模工具,开发者可以建立用UML描述的软件系统的各种模型,而且可以自动生成和维护C++、Java、VB、Oracle等语言和系统的代码,达到先建模后编码的效果。
(2)RationalRose工具是个菜单驱动应用程序,用工具栏帮助开发者使用常用特性。
它默认支持大多数流行的编程语言,包括C++、Ada、CORBA、Java、COM、VB、XML、Oracle、VC等;另外还能通过添加第三方Add-Ins插件组件,来支持其他的编程语言。
(3)RationalRose工具支持统一建模语言。
统一建模语言(UML)是由Rational公司3位世界级面向对象技术专家GradyBooch、IvarJacobson和JimRumbaugh通过对早期面向对象研究和设计方法的进一步扩展而得来的,它为可视化建模软件奠定了坚实的理论基础。
2.RationalRose2003工具的主要功能
RationalRose(RationalObjectOrientedSoftwareEngineering)是分析和设计面向对象软件系统的强大的可视化工具,可以先建模再编写代码,保证了系统结构设计的合理性。
其主要功能如下。
(1)对业务进行建模(工作流)。
(2)建立对象模型:
表达信息系统内有哪些对象,它们之间是如何协作完成系统功能的。
(3)对数据库进行建模。
RationalRose是一个对象模型设计工具,对数据库模型的支对粗糙,内嵌的只支持Oracle8数据库,对其他数据库设计的支持需要通过安装插件的方式获得,且对数据库物理存储参数等较细粒度的内容支持比较粗糙。
另外,RationalRose可以在对象模型和数据模型之间进行正、逆向工程,实现相互同步。
(4)建立组建模型
组件模型可以表达信息系统的物理组成,如有什么文件、进程、线程,分布如何等。
(5)RationalRose的对象模型主要支持Java、VC和VB这3种语言,并且可以生成这些目标语言的框架代码。
RationalRose对Java语言的支持更好,不但为不同版本的JDK提供了支持(不过RationalRose2003还不支持JDK5.0),还为Java具体产品及设计模式(如EJB、CORBA、Servlet、GoF设计模式等)提供了内嵌性的支持,这些支持直接反映在RationalRose的主菜单上。
此外,利用RationalRose工具能降低开发风险、降低成本、提高可用性、提高开发进度等。
·提供对面向对象模型的全面支持和对螺旋上升式开发过程的支持。
·提供对往返工程和团队开发的支持。
·提供对]二具的支持,并支持Unified、Booch、OMT等标记法。
2.1.2Rationalrose2003工具的基本使用
1.RationalRose2003版的安装
(1)安装RationalRose2003版的工具软件。
启动RationalRose2003版中的安装程序setup.exe,如图2.1所示。
图2.1启动RationalRose2003版中的安装程序setup.exe
(2)开始安装并选择安装的类型。
在安装时,一般选择默认的安装方式,如图2.2所示
图2.2开始安装并选择安装的类型
(3)接受软件的版权协议。
在接受软件的版权协议对话框中,选择接受软件版权协议,如图2.3所示。
图2.3接受软件的版权协议
(4)安装过程中采用默认设置。
在以后的各个安装步骤中都采用默认设置,知道打开如图2.4所示的对话框。
图2.4安装步骤都采用默认设置以后的结果
(5)开始安装
在图2.4所示的对话框中,单击【Install】按钮,开始安装,直到安装结束,如图2.5所示。
因此,从安装的过程来看,RationalRose软件的安装于一般Windows应用程序的安装相比没有什么特殊之处,而且RationalRose软件本身兼容性也比较好。
图2.5开始安装
2.启动RationalRose2003工具软件
(1)启动RationalRose2003工具软件。
从安装结果的【开始】菜单中选择启动RationalRose2003程序,如图2.6所示。
图2.6启动RationalRose2003工具软件
(2)弹出如图2.7所示的启动画面。
图2.7RationalRose2003启动画面
(3)接着弹出如图2.8所示的导入包的提示窗口。
如果项目开发时基于Java或者J2EE开发平台的,开发者还可以在图2.8所示的窗口中选择需要的JDK及J2EESDK版本,以便让RationalRose工具能够加在对应的系统类库。
图2.8导入包的提示窗口
(4)最后将打开程序窗口。
在图2.8所示的窗口中,选择JDK的版本并单击【OK】按钮,最后将开开如图2.9所示的程序窗口。
图2.9RationalRose2003启动后的程序窗口
3.RationalRose2003程序窗口的组成
该窗口主要包括标准工具条、图形工具条、浏览区、文档窗口、图形窗口和状态条等部分,如图2.10所示。
图2.10RationalRose2003程序窗口的组成
4.RationalRose2003程序的主要窗口说明
(1)Browser窗口(浏览区)。
Browser窗口用来浏览、创建、删除和修改模型中的模型元素,在界面的左边(如图2.10所示)。
浏览区描述了原本的视图模型,并且提供了在每一种视图组件间进行访问的功能。
其中“+”表示该图标为折叠图,“—”表示该图标已被完全扩展开。
浏览区可以设为“可见或不可见”、“Docked”(位置有边界范围)、“浮动”(可移动到任何位置)等状态。
(2)Diagram窗口(图形窗口)。
Diagram窗口用来显示和创作模型的各种图,在界面的右边。
(3)Document窗口(文档描述)。
Document窗口用来显示和书写各个模型元素的文档注释。
在界面的左下边。
该窗口可以设为“可视或被隐藏”、“固定或浮动”等状态。
5.RationalRose2003中主要菜单的功能说明
(1)【File】菜单。
·【Load】菜单项:
从一个文件中导入一个单元包,常用作同步刷新。
·【Save】菜单项:
保存对单元包所做的更改。
·【Saveas】菜单项:
把单元包保存到另外一个路径。
·【Import和Export】菜单项:
导入和导出package,对利用现成的建模成果很有用,例如可以导进一个现成的Java模型.这样就可以直接利用Java标准的对象了。
(2)【File】菜单中的【Workspace】菜单项。
【workspace】用来记忆当前文件的工作环境,即建模者打开的单元包和图,当再打开【workspace】时,RationalRose2003会根据【Workspace】的信息,还原到上次的工作界面。
(3)【Add-InManager】菜单项。
利用【Add-InManager】菜单项可以向RationalRose中添加第二方插件,如图2.11所示。
图2.11RationalRose2003窗口界面中的【Add-InManager】菜单项
很多外部产品都对RationalRose2003发布_广Add-In插件支持,以对RationalRose2003的功能做进一步的扩展,如Java、Oracle、Delphi。
有了这些Add-In插件,RationalRose2003工具就可以做更多深层次的工作,如图2.12所示。
图2.12RationalRose2003中内带的各种Add-In插件
(4)【Format】菜单中的【AutosizeAll】菜单项。
该菜单项使图的内容显示得更加整齐,当发现图的部分内容显示得不全时,使用这个菜单项很有用。
6.RationalRose2003中的各个视图
UML是用来描述模型的,用模型来描述系统的结构或静态特征,以及行为或动态特征。
从不同的视角为系统的构架建模,形成系统的不同视图。
RationalRose的4个视图分别为:
UseCase视图、Logical视图、Component视图和Deployment视图。
(1)UseCase视图。
UseCase视图强调从用户角度看到的或需要的系统功能,是被称为参与者的外部用户所能观察到的系统功能的模型图;在UseCase视图中可以包含以下图形。
·UseCase图;
·包、参与者、用例和关系:
·相互作用的交互图(序列图——按时间顺序排列对象交互操作,协作图——围绕对象及其间的链接关系组织对象的交互操作):
·对象和消息。
UseCase视图用于建立系统的概念模型。
UseCase视图包括业务UseCase模型包和UseCase模型包,UseCase模型包依赖于业务UseCase模型包。
它是系统中与实现无关的功能视图,如图2.13所示。
图2.13RationalRose2003中的UseCase视图
(2)Logical视图。
Logical视图用于展现系统的静态或结构组成及特征,也称为结构模型视图(StructuralModelView)或静态视图(StaticView);Logical视图用于建立系统的逻辑模型,包括分析模型和设计模型。
在模型包图下可以建立包中的类图、对象图、顺序图、协作图、活动图。
可以针对每个类绘制状态图和活动图,如图2.14所示。
图2.14RationalRose2003中的Logical视图
(4)Component视图。
Component视图体现了系统实现的结构和行为特征,也称为实现模型视图(ImplementationModelView);组件图形描述了在系统物理设计的组件中类和对象的分配情况,同时组件图也描述了包、组件和它们之间的依赖关系。
Component视图由组件图组成。
组件图由组件和组件之间的联系组成,系统的全部类的物理代码分别包含在不同的组件内,如图2.15所示。
图2.15RationalRose2003中的Component视图
(4)Deployment视图。
Deployment视图体现了系统实现环境的结构和行为特征,也称为环境模型视图(EnvironmentModelView)或物理视图(PhysicalView)。
Deployment视图由配置图组成。
配置图由节点和节点之间的联系组成,代表系统在实际运行环境中的配置。
Deployment视图包括进程、处理器、设备,如图2.16所示。
图2.16RationalRose2003中的Deployment视图
2.1.3利用RationalRose2003建立软件模型
1.创建模型文件
(1)RationalRose2003中的模型文件的扩展名是.mdl。
在该文件中存储开发者设计的各个视图,首先需要新建一个模型文件,然后再将该模型文件保存为指定文件名称的文件。
(2)新建一个模型文件。
从菜单栏选择【File】菜单,再选择【New】菜单项,或单击标准工具栏中的【New】按钮。
弹出如图2.17所示的对话框,选择要用到的框架或者JDK中的包,单击【OK】按钮,或者单击【cancel】按钮(表示不使用框架或者JDK中的包)。
图2.17新建一个模型文件时的对话框
2.保存模型文件
在RationalRose2003中进行文件的保存,类似于其他应用程序中文件保存的方法。
可以通过菜单或者工具栏实现。
(1)保存模型文件。
通过选择[File]菜单,再选择【Save】菜单项或者工具栏的【Save】按钮,来保存本模型文件。
在弹出的文件保存对话框中输入文件名称,比如“网上书店”,如图2.18所示。
图2.18保存模型文件为指定的文件名
(2)保存日志文件。
激活日志窗口,通过选择【File】菜单,再选择【SaveLogAs】菜单项来保存,或者右击日志窗口,在弹出的菜单中选择【SaveLogAs】菜单项来保存。
3.将创建的模型文件发布到Web服务器中
可以把在RationalRose2003中建立的模型文件视图发布到Web服务器中,使得开发团队中的其他人员都能够以浏览器的方式浏览该模型文件。
具体可以选择【Tools】菜单中的【WebPublisher】菜单项,然后在弹出的对话框内进行各项设置。
具体的设置项目及要求如图2.19所示的对话框中的项目,最后单击对话框中的【Publish】按钮进行发布。
图2.19将创建的模型文件发布到Web服务器中
4.在RationalRose2003中进行操作的几个要点
(1)一般对某个元素右击,然后在弹出属性菜单中进行操作。
(2)如果要求新建什么内容,则可以选择弹出属性菜单中的【New】菜单项下的功能项目。
(3)如果要求对已经创建的内容进行修改,则可以选择弹出属性菜单中的【OpenSpecification】菜单项,然后在属性对话框内进行修改,如图2.20所示。
图2.20对已经创建的内存进行修改的方法
(4)如何选择默认编程语言,例如选择Java语言的方法是,选择【Tools】菜单中的
【Options】菜单项,然后在弹出的对话框中单击[Notation]标签,并且在【Default】的下拉列表框中选择Java,如图2.21所示。
图2.21选择默认编程语言为Java的方法
2.1.4在RationalRose2003中创建项目的各个用例及用例图
1.新建某个网上书店项目中的各个用例
(1)新建项目中各个用例所在的包。
在RationalRose工具的浏览区中右击【UseCaseView】节点,然后在弹出的【New】级联菜单中选择【Package】菜单项,如图2.22所示。
图222新建项目中各个用例所在的包
(2)输入包的名称为“用例包”。
包是UML中最常用的管理模型复杂度的一种机制,它其实是一种容器,在包中可以容纳其他任意的模型元素(包括子包)。
通过建立包,能够有效地管理各个用例,并能够分门别类地进行用例的存放,如图2.23所示。
图223输入包的名称为“用例包”后的结果
(3)在该包中增加本项目中的各个用例。
在RationalRose中分别添加本项目的各个用例,如:
Register、Login、Search、BuyBook、CheckCart、OnLineQuery,DeleteUser,InsertUser,UpdateUser、DeleteBook、InsertBook、UpdateBook、BookKind等,如图2.24所示。
图2.24在该包中增加本项目的各个用例
2.新建项目中的各个参与者
(1)新建参与者所在的包。
通过建立参与者所在的包能够有效的管理各个参与者,并能够分门别类的进行存放。
包名称输入为“参与者包”,如图2.25所示。
图2.25新建参与者所在的包及结果
(2)在该包中增加本项目需要的各个参与者。
在RationalRose中分别添加各个参与者,如图书信息的浏览者(Visitor,没有进行购买行为的用户)、图书的购买者(读者用户)、收银员(财务人员)和管理员、超级管理员(Administrator,系统管理员)等,如图2.26所示。
图2.26在该包中增加本项目需要的参与者
3.新建本项目中的用例图
(1)新建一个用例图。
在RationalRose的浏览区中右击【UseCaseView】节点,然后在弹出的【New】级联菜单中选择【UseCaseDiagram】菜单项,并输入名称为“网上书店前台用例图”,最后的结果如图2.27所示。
图2.27新建本项目中的用例图
(2)关联参与者和各个用例。
在用例图中将前面创建的各个用例和参与者拖到用例图中,并单击【单向关联】按钮关联参与者和各个用例。
最后的结果如图2.28所示。
图2.28新建本项目巾的用例图的结果
(3)再新建另一个用例图。
再按照图2.27所示的方法,新建“网上书店用户管理用例图”,最后的结果如图2.29所示。
图2.29新建网上书店用户管理用例图的结果