在随着面向对象的程序设计的广泛应用,可视化编程遍地开花的今天,编程工作人员的地位一再被动摇,早以不再作为开发中的主流,而软件工程的应用以作为软件开发的质量和效率的重要见证已越来越被重视,针对早期的结构化建模工具的明显不足,ROSE吸取众多建模工具的优点,排除其不足,采用面向对象的成熟技术和双向工程的技巧,为提高软件开发的效率,保证软件开发的质量和可维护性作出了巨大的贡献。
软件工程概述
软件开发是一套关于软件开发各阶段的定义、任务、作用的建立在理论上的一门工程学科。它为解决软件危机,指导人们利用科学、有效的方法来开发软件,提高及保证软件开发的效率和质量取到了一定的作用。 软件开发过程:需求分析(开始阶段)--概要设计(静态结构)--详细设计(动态结构) --编码-测试-维护
结构化模型设计方法
A.E-R图(实体关系图)
实体:客观存在并可区分的事物。
属性:实体所具有的某种特性,一个实体可以有多个属性。
关系:实体之间的对应关系,可分为1:1联系、1:n联系、m:n联系
B.数据流图
C.功能模块图
结构化模型的不足
传统的结构化模型的设计所建立的模型不能反应源代码,与程序设计脱节。模型与代码几乎没什么关系。这样的模型不能生成代码,代码更不能生成模型,模型大多是画给领导看或拿出作掩盖。所以不能保证软件的质量,更不易软件的维护,没什么约束力也没有检测的标准,它的弊端是显于易见的。
面向对象的模型设计方法
定义:利用面向对象方法,把应用程序分成许多小块(对象),这些对象是独立的,然后组合这些对象,建立程序。
特点:包装、继承、多态。
常用的建模工具:PlayCase, Rational ROSE, Computer Association BPWin , Computer Association ERWin, Oracle Designer/2000, Sybase PowerDesigner
UML语言概述
定义:一种面向对象的统一建模语言。
作用:帮助我们对软件系统进行面向对象的和建模。
核心:类,类之间的关系。
建模:通过将用户的业务震需求映射为代码,保证代码满足这些需求,代码能方便地回溯需求,这个过程叫建模。
ROSE建模工具
定义:是一种分析和设计面向对象的建模工具。
作用:利用ROSE这个工具,我们可以建立用UML的软件系统的模型,面目可以自动生成和维护C++、JAVA、VB、PB、ORACLE等语言和系统的代码。
核心:七大框图
1. Use-Case Diagrams(用例框图)
2. sequence diagram (顺序框图)
3. Collaboration diagram (协作框图)
4. Class diagram (类框图)
5. State Transition diagram (状态框图)
6. Component diagram (组件框图)
7. Deployment diagram (扩展框图)
下面结合软件工程知识、利用ROSE建模工具,本人在开发电力部们的"110KV标准设计图文管理系统"中所用到的ROSE模型及对ROSE在开发实践中的剖析
一、 需求分析阶段
任务:建立用户需求和功能模块,确定系统中的角色和使用案例。利用ROSE,生成角色,使用案例和生成用例图
所用到的框图:
1.Use-Case Diagrams:显示使用案例(表示系统功能)与角色(人或系统)间的交互。如下图:
Use Case(用例):在不展现一个系统或系统内部结构的情况下,对系统或系统的连贯的功能单元的定义和描述。
角色:使用软件的人或外部系统本身。
2. sequence diagram
按时间先后顺序,从上到下分析使用案例,确定案例的处理流程。如下图:
3 Collaboration diagram :
确定对象之间的关系的处理过程的分析流程。如下图:
二、 概要设计阶段
任务:通过分析Use-Case Diagrams ,得到所用到的类,分析这些类的属性、操作和它们之间的关系。
所用到的框图:
1.Class Diagrams.
显示系统中类与类之间的交互。
2.包:具有一些共性的类组合在一起的图。
三、 详细设计阶段
任务:细化和个性Use-Case的描述 ,如类的操作和对象之间的消息相对应,填充参数及复杂的类的设计。
所用到的框图:
1.Class Diagrams
2.State Diagrams:显示一个对象从生成到删除的生命周期。
四、 编码和测试阶段
任务:进行软件的开发和测试,生成组件框图。
组件:表示代码的物理模块。
组件框图:表示系统中的组件及相互依赖性。
Delpoyment Diagrams:显示网络中的物理布局和各种组件的位置。
双向工程
1.生成代码:根据选择开发应用程序的语言生成对应的程序的代码。
步骤:检查模型-生成组件-将类映射组件-设置代码生成属性-选择类、组件和包-生成代码
2.逆向转出工程:根据选择开发应用程序的语言生成对应的程序的代码。
步骤:检查模型-生成组件-将类映射组件-设置代码生成属性-选择类、组件和包-生成代码