1.1 知识准备
1.1.1 功能结构图
1.功能结构图的定义
功能结构图是对硬件、软件、解决方案等进行解剖,用于详细描述功能列表的结构、构成等而描绘或画出来的结构图。从概念上讲,上层功能包括(或控制)下层功能,越往上层走功能越笼统,越往下层去功能越具体。功能分解的过程就是一个由抽象到具体、由复杂到简单的过程。如某美容美发会员管理系统功能结构图如图1-1所示。
图1-1 某美容美发会员管理系统功能结构图
2.功能结构图的设计
功能结构的建立是设计者的设计思维由发散趋向于收敛、由理性化变为感性化的过程。它能够简洁、明确地表示设计问题或设计要求,并以框图形式表示系统间输入与输出的相互关系,是概念设计的关键环节。
功能结构图的设计过程是把一个复杂的系统分解为多个功能较单一模块的过程,这种分解为多个功能较单一模块的方法称作模块化。模块化是一种重要的设计思想,它把一个复杂的系统分解为一些规模较小、功能较简单、易于建立和修改的部分。一方面,各个模块具有相对独立性,可以分别设计实现;另一方面,模块之间的相互关系如信息交换、调用关系等可通过一定方式予以说明。各模块在这些关系的约束下共同构成统一的整体,完成系统的各项功能。
3.功能结构图的作用
功能结构图的作用主要是为了明确地体现内部组织关系,理清内部逻辑关系,规范各部分的功能,并使之条理化。
4.功能结构图的应用范围
功能结构图多应用于程序开发、工程项目施工、组织结构分析、网站设计等模块化场景。
5.绘制功能结构图的工具
绘制功能结构图的工具非常多,例如Photoshop、Fireworks、Word 2010、Microsoft Visio等。
1.1.2 用例图
用例图主要用于描述用户、需求、系统功能单元之间的关系,它展示了一个外部用户能够观察到的系统功能模型,它的主要作用是帮助开发团队以一种可视化的方式理解系统的功能需求。
用例图包括参与者(Actor)、用例(Use Case)、子系统(Subsystem)、关系、项目(Artifact)、注释(Comment)等元素。
1.参与者
参与者表示与应用程序或系统进行交互的用户、组织或外部系统,可以用一个小人表示,如图1-2所示。
图1-2 参与者
2.用例
用例是对包括变量在内的一组动作序列的描述。系统执行这些动作,并产生传递特定参与者的价值的可观察结果。对于用例的命名,可以取一个简单、描述性的名称,一般为具有动作性的词。用例在图中用椭圆来表示,椭圆里面附上用例的名称,如图1-3所示。
图1-3 用例
3.子系统
子系统用来展示系统的一部分功能,这部分功能联系紧密。例如,学籍管理系统的学生信息管理子系统,如图1-4所示。
4.关系
用例图中涉及的关系有关联、泛化、包含、扩展,具体如表1-1所示。
表1-1 用例关系表
(1)关联(Association):表示参与者与用例之间的通信。不同的参与者可以访问相同的用例。在用例图中,一般使用带箭头的实线表示。
箭头指向:箭头指向的方向为消息接收方,示例如图1-5所示。
图1-4 学籍管理系统的学生信息管理子系统
图1-5 学生与查询课程成绩用例的关联关系
(2)泛化(Inheritance):就是通常人们所理解的继承关系,子用例和父用例相似,但会表现出更特别的行为。子用例将继承父用例的所有结构、行为和关系。
箭头指向:指向父用例,示例如图1-6所示。
(3)包含(Include):用于把一个较复杂的用例所表示的功能分解成较小功能的步骤。
箭头指向:指向分解出来的功能用例,示例如图1-7所示。
图1-6 管理员与超级管理员、普通管理员的泛化关系
图1-7 维护产品信息用例与添加产品信息用例、修改产品信息用例、删除产品信息用例的包含关系
(4)扩展(Extend):指用例功能的延伸,相当于为基础用例提供一个附加功能。
箭头指向:指向基础用例,示例如图1-8所示。
5.用例规约
用例图在总体上描述了系统所能提供的各种服务,使人们对系统的功能有一个总体的认识。除此之外,还需要描述每一个用例的详细信息,这些信息包含在用例规约中。用例模型是由用例图和每一个用例的详细描述——用例规约所组成的。通常,用例规约包含以下内容。
(1)简要说明(Brief Description):简要介绍该用例的作用和目的。
(2)事件流(Flow of Event):包括基本流和备选流,事件流应该表示出所有的场景。
(3)用例场景(Use-Case Scenario):包括成功场景和失败场景,场景主要由基本流和备选流组合而成。
(4)特殊需求(Special Requirement):描述与该用例相关的非功能性需求(包括性能、可靠性、可用性和可扩展性等)和设计约束(所使用的操作系统、开发工具等)。
(5)前置条件(Pre-Condition):执行用例之前系统必须所处的状态。
(6)后置条件(Post-Condition):用例执行完毕后系统可能处于的状态。
用例规约基本上是用文本方式来表述的。为了更加清晰地描述事件流,也可以使用状态图、活动图或序列图来辅助说明。只要有助于表达,就可以在用例中任意粘贴用户界面和流程的图形化,或是其他图形。
某网站管理员发布新闻文章的用例如图1-9所示,描述用例的规约如表1-2所示。
图1-8 买电器用例与满1000送100用例、买一送一用例的扩展关系
图1-9 某网站管理员发布新闻文章的用例
表1-2 网站管理员发布新闻文章的用例规约
6.绘制用例图的工具
带有用例图的产品需求说明书可以使开发人员更容易理解,既提高了工作效率,又减少了沟通成本。因此,作为项目设计人员或开发人员,熟练掌握一款用例设计工具是非常有必要的。常用的工具有Rational Rose、StarUML等。
(1)Rational Rose简介。
Rational Rose是IBM公司出品的一款面向对象的统一建模语言的可视化建模工具,用于可视化建模和公司级水平软件应用的组件构造。确切地说是面向对象的建模工具,通过Rational Rose,可以清晰地把一些烦琐的业务实现原理、对象协调流程通过图示表达出来。Rational Rose提供了用例图、类图、序列图、状态图、活动图、组件图、部署图等。
(2)StarUML简介。
StarUML简称(SU)是一款开放源码的UML开发工具,是由韩国公司主导开发出来的产品,可以直接到StarUML网站下载。利用这款工具可以绘制用例图、类图、序列图、状态图、活动图、通信图、模块图、部署图、复合结构图共9款UML图,绘制完成后可导出为JPG、JPEG、BMP、EMF和WMF等格式的图片文件,使用非常方便。