最近一个项目中,开始全部使用
UML
做设计,在项目过程中,体会到关于
UML
的一些经验。我以前也间断地学过一些
UML
方向的知识,但从头到尾用到项目中,这是第一次,因此把其中一些收获列出来,不对的地方请指教。
一.
需求阶段
1.
需求阶段使用
use-case
图描述需求
顶层
use-case
:粗粒度地描述系统,给出系统的概况
细分
use-case
:将顶层
use-case
细化
Use_case
图的方法是:从参与者开始寻找用例,用
use-case diagram
来表示参与者与用例之间的关系。
Use-case
描述的方法是:就是
use-case
规约,用详尽的文字来描述用例的执行流程
(
包括主业务流程及所有分支流程及异常流程
)
。
Active diagram:
可选,类似业务流程图,业务比较复杂时,用流程图来描述业务。
注:
use-case
图和
use-case
描述,是整个系统设计的主要产品,今后的分析和设计,都将围绕这两个产品进行。以前看过的好多资料,都没有讲到这一点,
use-case
的作用非常大,将贯穿分析到设计到编码的全过程。
二.
分析阶段
分析阶段的主要工作,是围绕
use-case
图,及
use-case
规约,从中寻找参与系统的各种对象。
1.
用
sequence diagram
来描述
use-case
的执行过程
(
包括主流程及备选流程
)
:
方法:
a.
从参与者开始,寻找参与系统流程的对象
b.
依照参与者
à
边界类
à
控制类
à
生命周期类
à
实体对象
的次序,区分各对象的职责,将参与系统的各种对象,依次添加到
sequence
中。
c.
从后向前验证序列,检查每个对象是否拥有它提供服务所必需的信息。如果没有,需要重新考虑对象的职责划分,确保每个对象有相应的方法或通过调用能够找到必需的信息。
注:分析阶段,不应涉及到具体技术。关注的重点还是系统做什么,而不是怎么做。
思考:
1.
现有项目,往往技术是已经确定的,这种情况下,分析应该关注什么内容?
2.
生命周期类,是开发中工作量较大的部分,也有很多可选的
frmework
来支持,常用的有自己实现
DAO
、
hibernate
等技术路线。
3.
分析阶段,已经确定了系统中的
package
。有一点要注意,
package
一定要根据业务来进行划分,而不是在系统建立时,就根据客户的意见来强行划分包。根据包之间最小依赖关系,来划分包,并注意一定要避免包之间的相互依赖。
三.
从技术的角度考虑系统技术方法及软件构架
主要工作是为边界类、实体类、控制类选择候选技术。但往往项目已经是确定了技术路线的,比如我们公司项目已经规定使用
J2EE
技术。但即便如此,也有很多地方需要考虑。比如是使用
JMS
通信,还是自己实现
Observer
。是使用
EJB
,还是不使用。个人认为,使用
EJB
一定要慎重。
这部分工作需要系统设计经验比较丰富的人来做,因为技术路线一时选错,对系统后期带来的不良影响是十分大的。
根据可扩展性、可维护性、可靠性、可伸缩性的综合考虑,来确定系统的构架。
四.
设计阶段
设计阶段,同样围绕
use-case
图及
use-case
描述来进行,和分析阶段的不同,是加入了选定的具体技术,同时使用面向对象的理论及设计模式等,对系统进行设计。
使用
UML
的建模工具,在设计阶段产生的产品,主要有两大作用:一是便于交流,也便于修改。二是便于进度安排和工作分配。
五.
实现阶段
实现阶段是针对设计阶段的产品,编码来进行系统的实现。
注:主要内容都来自
<<Enterprise Java with UML
中文版
>>
及
RUP
文档。
分享到:
相关推荐
总结来说,面向对象分析与设计是一种系统化和结构化的方法论,它帮助开发人员设计和实现高质量的软件系统。餐厅点菜系统的例子展示了如何将面向对象的概念和工具应用到具体的项目中。通过利用UML的图形表示法和遵循...
2. 面向对象分析(OOA):在OOAD中,面向对象分析是首先进行的步骤,它侧重于理解问题域,识别关键实体和它们之间的关系。OOA过程包括识别类、接口和用例,以及定义对象的行为和职责。 3. 用例建模:用例是描述系统...
总的来说,这个面向对象与分析的习题集是一份宝贵的资源,可以帮助学习者巩固理论知识,提升实践技能,对于理解和掌握面向对象分析设计方法,特别是UML的应用,有着积极的促进作用。通过深入学习和解答这些习题,你...
面向对象分析与设计是软件开发过程中至关重要的环节,它涵盖了从需求理解到系统构建的一系列步骤,以提高软件的质量和可维护性。本知识体系主要围绕五个核心主题展开:方法、重构、模式、概念和原则。 首先,让我们...
面向对象分析与设计是软件开发领域中的核心概念,它涵盖了软件生命周期中从需求理解到系统实现的关键步骤。本文将深入探讨这一主题,并基于提供的资源——"面向对象分析与设计复习提要(2009-2010).ppt" 和 "面向对象...
面向对象分析(OOA)是整个软件开发生命周期的早期阶段,其目标是理解问题域,识别关键的对象和类,定义它们的属性和服务,以及它们之间的关系。OOA的主要任务是创建一个反映问题域的模型,为后续的面向对象设计...
根据提供的标题“深入浅出面向对象分析与设计.pdf”及描述来看,本文旨在解析和提炼该文档中的核心知识点。由于实际内容并未给出,以下将基于标题及描述进行假设性分析,重点围绕面向对象分析与设计的基本概念、原则...
根据提供的文件信息,有关《面向对象分析与设计 Grady 著 中文版(第三版)》的知识点将围绕面向对象分析与设计(Object-Oriented Analysis and Design, 简称OOAD)的主要概念进行详细说明。由于提供的部分内容重复...
面向对象分析与设计(Object-Oriented Analysis and Design,OOAD)是软件工程领域的一种方法论,专注于如何通过面向对象(Object-Oriented,OO)的方法来分析和设计软件系统。面向对象的方法强调对象是系统的基本...
面向对象分析与设计(第3版)是一本深入探讨面向对象技术的专业书籍,它涵盖了从问题识别到系统实现的全过程,旨在帮助读者理解和掌握面向对象方法在软件开发中的应用。面向对象编程是一种流行的编程范式,它以对象...
面向对象分析与设计是软件开发过程中关键的一环,它通过模型化系统的需求来理解问题域,为后续的编码实现提供蓝图。在这个场景中,我们关注的是在线购物客户订单处理的UML描述,这是一种典型的企业应用,涉及到多个...
本文将重点讨论“面向对象分析设计工具”——StarUML,以及它在面向对象技术应用开发中的作用。 StarUML是一款开源的建模工具,专为支持面向对象的分析和设计而设计。它提供了多种功能,包括创建类图、对象图、序列...
面向对象设计是在面向对象分析之后进行的步骤,它涉及如何将分析结果转化为实际的软件设计。OOD不仅关注于系统的功能需求,还考虑到了非功能性需求,如性能、可用性、可维护性等。设计阶段需要细化类的结构和交互,...
综上所述,校园二手交易平台的面向对象分析与设计涵盖了系统的核心功能和交互流程,通过UML工具进行建模,有助于理解系统的整体结构和行为,便于开发人员进行代码实现和系统维护。这个设计包括了用例分析、类的设计...
本文档是关于面向对象分析与设计大作业《网上招聘系统分析设计与实现》的详细报告,包括对网上招聘系统的需求规格说明、软件项目的概要设计说明、详细设计、编码案例说明、客户端系统测试计划和测试报告等内容。...