1、软件工程实践课程结业报告可视化建模与UML课程结业报告课题名称: 餐饮管理系统建模姓 名: 吴 在 兴 学 号: 9 0 9 1 4 0 2 6 班 级: 09 软件本(2)班 学 院: 电子与信息工程学院 指导老师: 夏 洁 武 完成日期:2012年5月28日目录第一章 引言31.1 系统目的31.2 用户特征31.3 运行环境和资源41.4 软件的体系结构4第二章 用例模型52.1用例图描述52.2构建用例图52.3结账用例图62.4经理用例图82.5人事管理和登录管理用例图9第三章 类模型103.1类图的描述103.2构建类图113.3庐陵楼系统登录类图11第四章 交互模型144.1顺序
2、图概述144.2构建顺序图154.3员工(经理)登录顺序图154.4删除员工顺序图17第五章 行为模型185.1活动图概述185.2构建活动图195.3状态图和活动图195.4用户登入活动图225.5餐桌预定活动图235.6菜单生成活动图245.7点菜状态图255.8人事管理状态图25第6章 课程学习小结266.1学习小结266.2解决的问题276.3待解决的问题27第一章 引言1.1 系统目的学生成绩管理系统是一个管理学生信息、成绩和教师信息的小型系统。统目标是学生方便直观的查询个人信息和成绩,教师能管理学生的成绩,管理员管理所有用户的信息和本系统。1.2 用户特征1.2.1 用户分类本系统
3、可将用户分为以下三类: 经理 经理拥有登录后台管理的功能,可以进行人事管理、登录管理、菜谱管理、报表统计、成本管理和系统设置等功能的使用权 收银员收银员具有登录收款系统的权限,可以进行餐桌管理、点菜服务、会员服务、结账服务等功能的使用权 管理员其权限功能和经理是一样的1.3 运行环境和资源本系统是基于windows平台上的应用程序,java语言编写开发。其软硬件条件必须满足windows和java的正常运转要求。软件环境:需要安装有eclipse、jdk。数据库系统:Microsoft sql Server 2005。1.4 软件的体系结构软件体系结构如图1-1所示图1-1 软件体系结构图 第
4、二章 用例模型用例模型是所有用例、参与者以及相互关系的集合,是关于系统功能和环境的模型。一个用例就是系统要实现的一项功能,即用例描述系统要做什么。用例模型是软件需求分析结果的可视化表示。2.1用例图描述用来描述用户的需求,它从用户的角度描述系统的功能,并指出功能的执行者,强调谁在使用系统,系统为执行者完成哪些功能。是基于系统要实现的功能的一个可视化描述。用例图是用例模型的重要组成部分,是对系统从宏观角度的确定描述。用例图是系统建模的起点,通过用例图搜集用户的需求,明确和系统相关的用户和其他系统,同时确定系统将会提供什么功能,已经各个功能之间的关系。2.2构建用例图1.确定系统的执行者执行者是系
5、统外部的一个实体,是与系统进行交互的任何事物或人,以某种方式参与用例的执行过程,参与者通过向系统输入或向系统发出某种请求来触发系统的执行。执行者通常是以他们在系统中所扮演的角色来命名,而不是以他们要执行的功能来确定的,否则会产生命名歧义。在定义用例之前要先确定系统的执行者。通过对需求进行逐条分析,最终确定了3个相关执行者:经理、收银员、管理员。如图2-1所示。图2-1 用例执行者2. 确定系统用例用例是描述执行者使用系统以打到某个目的涉及的一系列场景的集合。通过从各个执行者的角度进行分析,根据用户需求,将系统功能划分为三个功能模块。(1)收银员模块 餐桌管理 点菜服务 会员服务 结账服务(2)
6、经理和管理员模块 人事管理 登录管理 菜谱管理 报表统计 成本管理和系统设置2.3结账用例图图2-2 结账用例图l 简要说明本用例描述收银员和顾客结账的过程l 事件流(1)基本流 顾客选择预订餐桌 系统根据顾客的需求生成相应的预定餐桌 顾客选择点菜服务系统根据顾客的点菜生成相应的餐桌订单顾客选择结账服务系统显示顾客的订单,顾客确定后并保存系统显示结账的方式顾客选择付款方式进行结账系统判断顾客是否会员计算出订单的总额顾客确认订单结算成功信息,结束结账服务(2)备选流 顾客取消结账服务,系统给出提示,结束 若顾客没有付款,给出提示.保留该订单,等待顾客付款l 特殊条件需要系统能和现有的银行系统连接
7、,获得顾客付款信息l 前置条件结账服务打折必须顾客是系统会员,否则不能进行优惠打折结算l 后置条件无l 扩展点无l 相关数据顾客所选的餐桌类型,以及顾客点菜的菜式和数量2.4经理用例图图2-3 经理用例图l 简要说明本用例描述餐厅经理能使用的系统功能(1)基本流 系统以闪屏的形式加载 加载完后,弹出登录框.输入正确的用户名和密码 系统通过判断用户职位为经理,从而切换到经理登录界面显示出系统的主界面,经理可选择相应的功能模块进行操作人事管理可以对餐厅员工信息的管理登录管理可以对登录该系统的权限进行设置菜谱管理可以对餐厅的菜式进行增删改查报表统计实现对餐厅销售额的实时图形观察成本管理能控制餐厅的成
8、本系统设置可以更改系统的基本外观和背景音乐(2)备选流 若输入的用户名为收银员,且密码正确.则系统进入收款界面 若用户的密码输入错误,则不能进入系统.需重新输入l 特殊条件用户名和密码均输入正确,且有相应的权限l 前置条件无l 后置条件无l 扩展点无l 相关数据餐厅员工信息、菜式信息、餐厅各时间段的营业额信息2.5人事管理和登录管理用例图图2-4 人事管理和登录管理用例图l 简要说明本用例描述系统的人事管理和登录管理功能部分(1)基本流 用户输入自己的用户名和密码 系统通过判断用户为经理或管理员,切换到相应的系统界面 用户选择人事管理系统根据用户选择的人事管理,将员工的主要信息以表格的形式显示
9、出来用户有查看员工详细信息、修改员工信息、添加员工的功能权限用户选择删除员工信息系统根据用户选择的员工,将该员工的信息从数据库中删除用户选择查看员工详细信息系统根据用户选择的员工,将该员工的详细信息从数据库中调取出.并以对话框的形式显示出来用户选择修改员工信息系统对用户修改的员工信息进行更新,并重新显示给用户查看用户选择退出系统,系统保存信息并退出(2)备选流 若用户的密码输入错误,则提示用户重新输入 若用户没有选择相应的员工进行删除操作,则弹出对话框提示用户选择需要删除的员工 若用户选择登录管理功能,则切换到登录管理功能界面l 特殊条件用户名和密码均输入正确,且有相应的权限l 前置条件无l
10、后置条件无l 扩展点无l 相关数据员工的详细信息(包括姓名、年龄、薪水等)、系统用户的登录权限信息l 问题说明无第三章 类模型3.1类图的描述述类和类之间的关系,是UML中最基本和最重要的一类图。主要用于一些概念类的描述,描述类的外部特性和描述类的内部实现。类图是面向对象系统的核心。类图的直观性不论在分析阶段、设计阶段还是编码阶段都有十分重要的作用,软件开发人员在清楚地看到系统的设计之后,很容易提高编码的效率。类图的元素包括: 类名称:唯一标识一个类的名称。 属 性:描述类的对象所具有的特征。 方 法:对属性数据的处理过程。类间关系包括:关联、泛化、依赖、聚合、组合、实现、接口。给定一个类图,
11、可以判断一个对象是否表示了系统的一个可能状态。对象之间的关系是由类图上对应的关联关系来定义的。两个类之间的关联关系表明了他们的对象在运行时存在的连接关系。3.2构建类图 类是对显示世界中具有相同性质和行为的一类对象的抽象,它封装了这些类对象所共有的属性和操作。3.3庐陵楼系统登录类图图3-1 庐陵搂系统登录类图l MhlMain类(1)作用:该类为系统的主调方法,是系统运行的主函数类(2)具有的属性 p: DownLoad(为类DownLoad的一个对象)(3)具有的方法 void run():控制闪屏存在的时间,即一个线程方法 void main():系统的主函数l DownLoad类(1)
12、作用:该类的主要作用为实现系统的闪屏加载(2)具有的属性 t: Thead(为线程对象) f: Font(MyTool类中的定义的静态字体类型) ss: String(闪屏加载出现的欢迎词,为字符串类型)(3)主要方法 paintComponent(Graphics g):充当面板的画笔作用,用于画出个组件 void run():实现进度条的线程控制l UserLogin类(继承JDialog)(1)作用:闪屏加载完后,用户的登录界面(2)具有的属性 jl1,jl2: JLabel(Swing标签组件) jb1,jb2: JButton(Swing按钮组件) jt1: JTextField(S
13、wing 文本组件) jp: JPasswordField(Swing 密码框组件)(3)具有的方法 actionPerformed(actionEvent e):对用户完成输入后点击确定时间的监听 UserLogin():构造函数,对该类中使用到的组件、变量进行初始化l Windows1类(继承JFrame)(1)作用:用于显示系统的主界面(2)具有的属性 jmb: JMenuBar(Swing菜单条组件) jm1,jm2,jm3: JMenu(Swing 菜单项组件) jmi1,jmi2,jmi3,jmi4,jmi5,jmi6: JMenuItem(Swing 子菜单组件) jp1,jp2
14、,jp3: JPanel(Swing 面板组件)(3)具有的方法 actionPerformed(actionEvent e):对用户完成输入后点击确定时间的监听 UserLogin():构造函数,对该类中使用到的组件、变量进行初始化 mouseEntered(MouseEvent):对鼠标的进入事件进行监听 mouseExited(MouseEvent):对鼠标退出事件进行监听 mousePressed(MouseEvent):对鼠标按下事件进行监听 mouseReleased(MouseEvent):鼠标按下松开事件进行监听 initMenuBar():对主界面的菜单条进行初始化 init
15、ToolBar():对主界面的工具条进行初始化 initCenter():对主界面的中间面板切换部分进行初始化l UserModel类(1)作用:用户数据模型,实现用户操作的业务操作(2)具有的属性 无(3)具有的方法 CheckUser(String userID,String userPD):对用户输入的用户名和密码进行验证l SqlHelper类(1)作用:对数据库进行加载驱动并返回查询的数据结果集(2)具有的属性: ct: Connection(数据库连接类) ps:PrepareStateement(数据库操作类) rs:ResultSet(数据结果集) url:String(数据库
16、驱动路径)(3)具有的方法 SqlHelper():构造函数 query(String sql,String paras):结果集方法 exeUpdate(String,String):对数据库的更新操作 void close():关闭数据资源方法l MyTool类(1)作用:系统工具类(2)具有的属性 f1,f2,f3:Font(字体类)(3)具有的方法 无3.4添加员工类图图3-2 删除员工类图l AddClerkDialog类(1)作用:人事管理添加员工时的对话框,用于录入员工信息(2)具有的属性 jname,jsex,jnum,jpost,jage: JLael(Swing 标签组件)
17、 jnameText,jnumText,jsexText,jpostText,jageText: JTextField(Swing 文本组件) jsexRadio:JRadioButton(Swing 单选组件) b1,jb2:JButton(Swing 按钮组件)(3)具有的方法 void actionPerformed(ActionEvent e):对用户录入信息后的点击确定事件进行监听,并将添加员工的信息传递给ClerkModel层AddClerkDialog(ClerkInfo clerkInfo,String title,boolean model):构造函数l ClerkModel
18、类(1)作用:实现对人事管理的数据逻辑操作(2)具有的属性 columns: Vector (存放返回数据表的列头信息) rows: Vector(存放返回数据表的行信息)(3)具有的方法 void query(String sql,String paras) boolean delClerk(String clerkNo): 提供一个通过获得员工号来删除员工的方法 Object getValueAt(int rowIndex, int columnIndex):获得当前列的每行数据 String getColumnName(int column):返回数据表的列名 int getColumn
19、Count():获得数据表的列数 int getRowCount():获得数据表的行数第四章 交互模型顺序图和协作图统称交互模型,用来描述系统中多个对象之间的相互关系及对象间消息传递,用于系统中多个对象的相互作用的过程进行建模。4.1顺序图概述又叫时序图,它是强调消息时间顺序的交互图,描述类以及类间相互交换以完成期望行为的消息。顺序图向UML用户提供事件流畅时间推移的、清晰的、可视化的轨迹。使用顺序图来描述一个完整的用例过程,用途是把用例图表达的需求,转化为进一步、更加正式的精细表达。表示用例中的行为顺序。4.2构建顺序图1. 确定用例的需求根据用户需求可以很容易确定用例的需求。2. 找出需求
20、中涉及的对象4.3员工(经理)登录顺序图图4-1 经理登录顺序图l 登录系统的过程如下(1)用户登入前,系统先以闪屏的形式加载.并动态的呈现出欢迎用户的话语(2)闪屏加载完, 弹出用户登入界面.用户输入自己的用户名和密码(3)当用户点击确定登录时,通过actionPerformed(Action e)将用户的信息提交给mvc中的userModel模型层(4)用户模型层(userModel)以sql语句和用户信息的形式传递给数据控制层sqlHelper,该过程是由CheckUser(String sql,String userPD)来实现的(5)数据控制层sqlHelper从userModel获
21、得信息的同时,加载数据库驱动.从数据库中获取该用户的职位信息,并以ResultSet()的形式返还给userModel层(6)userModel从ResultSet结果中提取出用户职位,并返回给UserLogin登录界面层 (7)UserLogin将获得的用户职位信息进行判断为经理,同时发送显示系统消息给window1系统界面(8)用户登录成功,并显示出系统的主界面l 根据登录系统的过程,找出参加交互的对象.这个过程中参加交互的对象主要包括:用户(经理)、DownLoad、UserLogin、UserModel、SqlHelper、windows1 (1)经理:登录系统并使用系统各个功能的用户
22、(2)DownLoad:登录前,实现系统的闪屏加载(3)UserModel:负责对登录系统的用户进行业务操作(4)SqlHelper:对数据库进行加载驱动,并获得对数据库操作的结果集(5)windows1:用于显示系统的主界面,即用户登入成功后的界面l 经理登录过程的消息表消息发送对象接收对象new DownLoad()经理UserLoginnew UserLogin()DownLoadUserLoginactionPerformed(Action e)UserLoginUserModelcheckUser(String sql,String PD)UserModelSqlHelperResu
23、ltSetSqlHelperUserModelreturn celZW()UserModelUserLogingetName()UserLoginUserLoginnew Windows1()UserLoginWindows1 表4-1 用户(经理)登录过程消息的发送和接收表4.4删除员工顺序图图4-2 删除员工顺序图l 登录系统的过程如下(1)用户登入后,选择人事管理功能模块(2)进入人事管理模块后,选择一待删除员工并进行删除操作 (3)ClerkInfo员工信息显示层,将接收到的删除员工命令通过以员工号为行参将删除员工方法delClerk(clerkNo)传递给UserModel层 (4)
24、UserModel层接收到删除员工方法后,又以sql语句和paras为形参发送更新操作 exeUpdate(sql,paras),并传递给SqlHelper数据控制层(5)数据控制层SqlHelper接收到更新数据操作的同时,加载数据库驱动.并将得到的新的结果集Result返还给UserModel层 (6)userModel从ResultSet结果中提取出删除员工后新的员工信息,并返回给ClerkInfo (7)ClerkInfo员工信息得到更新(8)将重新更新的员工信息显示在windows1中 l 根据登录系统的过程,找出参加交互的对象.这个过程中参加交互的对象主要包括:经理(或管理员)、C
25、lerkInfo、UserModel、SqlHelper、windows1 (1)经理(或管理员): 对职工进行相关的crud操作(2)ClerkInfo:显示员工的详细信息,并在这里进行增删改查操作 (3)UserModel:负责对登录系统的用户进行业务操作(4)SqlHelper:对数据库进行加载驱动,并获得对数据库操作的结果集(5)windows1:用于显示系统的主界面,即用户登入成功后的界面l 经理登录过程的消息表消息发送对象接收对象删除员工经理ClerkInfodelClerk(clerkNo)ClerkInfoUserModelexeupdate(sql,paras)UserMod
26、elSqlHelperResult()SqlHelperUserModelClerkInfo()UserModelUserInforefresh()UserInfoWindows1 表4-2 经理(或管理员)删除员工操作的消息的发送和接收表第五章 行为模型行为模型分为状态图和活动图,是用来描述系统的动态行为特征的,是状态机的变现形式,主要用于描述事物的状态变化和处理过程。5.1活动图概述活动图是一种描述系统行为的图,它用于展现参与行为的类所进行的各种活动的顺序关系。活动图是特殊的状态图,其中所有状态均为动作状态,并且源状态中的动作一经完成即会触发控制流。活动图是用来描述一个目标所实施一系列活动
27、的过程,描述系统的动态特征。使用活动图来描述用户的业务流程可以帮助设计者理清用户业务过程,业务中的主要活动,参加活动的对象,以及这些对象之间的关系。活动图的用途广泛。可用于描绘用例的事务流;为复杂的商务行为或过程建模。描绘用例的事务流标准的用例图往往使用简单的图形和大量的文字体现用户需求和系统功能,文字的出现增加了用例图的阅读者理解图形的难度,进而影响了他们下一步的分析和设计工作。用活动图描绘用例的事务流,能使复杂的用例事务流更容易被理解。5.2构建活动图1. 过程分析 找到用例业务过程中的活动,可以通过一下问题来帮助寻找业务过程中的活动。 该业务过程需要完成哪些工作步骤。 每个参与者都要执行
28、哪些操作。 有没有哪些事件启动了哪些工作步骤。根据上面的问题,分析在系统执行的过程中,主要有哪些活动。2. 活动连接得到业务过程中的主要活动后,就需要进一步考虑这些活动的执行顺序。分析出各个活动、活动的控制流、活动的执行顺序、活动执行的条件、活动的分支、活动的并发执行。按执行的顺序、分支和汇合等连接活动图。3. 画出活动图根据以上分析得出的结果进行汇总,设计各个用例的活动图,最后画出活动图。5.3状态图和活动图l 概述以下状态图和活动图是用于描述该系统的动态行为特征的,主要描述系统事物状态的变化和处理过程l 活动图和状态图包含的元素(1)状态图包含的元素 起点 终点 状态 事件 转换 符合状态
29、和子状态(2)活动图包含的元素 起点和终点 活动 转移 接收信号和发送信号 决策点和汇合点 分叉和回合 控制流终点 泳道l 状态图和活动图的分析过程(1)状态图 状态分析 状态描述(2)活动图 过程分析、 活动连接 活动图描述l 图中使用到的图符的含义(1)状态图图符含义 (2)活动图图符含义5.4用户登入活动图图5-1 用户登入活动图l 过程分析在用户登入这一过程中,系统先需以闪屏的形式加载.之后弹出登入界面,用户输入用户名和密码,点击确定提交信息.系统会根据用户名来判断密码是否正确.正确则进入系统主界面,否者不能进入系统.直至用户输入的密码正确.根据这个过程可以得到如下一些主要活动:闪屏登
30、录 输入用户名和密码提交检查用户密码进入系统l 活动描述根据前面分析出的活动以及各活动的控制流,可以设计出如图7-8的过程活动图.当用户输入的信息被提交时,系统会先从数据库中得到数据来判断用户输入的密码是否正确,当密码正确时.再根据用户的职位来相应的进入到系统主界面(如经理和主管一样,但收银员则进入结账系统界面).5.5餐桌预定活动图图5-2 餐桌预定活动图l 过程分析餐桌预定过程,顾客选择预定餐桌时,系统先判断有无可预定的餐桌.当还有剩余餐桌可预定时,系统会提示用户选择相应的餐桌类型:普通或高级.最后系统根据用户选择的餐桌类型进行顾客登记.综上,可以得出这一过程的主要活动 预定餐桌 离开 餐
31、桌类型 普通餐桌 高级餐桌 客户登记l 活动连接通过分析所有活动的执行顺序和条件,可以发现在判断是否有剩余可预定餐桌出现一个决策点,而在顾客选择完餐桌类型后会出现一个汇合点l 活动图描述图7-9的活动图描述餐桌预定的全过程.5.6菜单生成活动图图5-3 菜单生成活动图l 过程分析 当顾客预定餐桌后,有一分岔和汇合的过程.即顾客可选择评价立即结束这一过程,亦可选择退菜或者点菜.当用户选择点菜后,系统根据用户选择的菜式生成相应的菜单.最后等待用户的结账,过程结束.具有的状态: 预定餐桌 评价 点菜 退菜 提示失败原因 生成菜单结账l 活动连接通过分析所有活动的执行顺序和条件,可以发现在顾客预定完餐
32、桌后出现一决策点,随后在顾客选择完菜式又形成一个汇合点l 活动图描述图7-10的活动图描述餐桌预定的全过程.5.7点菜状态图图5-4 点菜状态图5.8人事管理状态图图5-5 人事管理状态图l 状态分析在构建人事管理状态图时,首先需要找到该过程中对象的转换事件,即有哪些启动了活动或者导致状态转换,以及其他针对对象的转换事件.对着这过程分析后,找到以下一组事件,这些事件都属于状态图中的转换事件登录成功登录失败点击进入人事管理添加员工修改员工信息删除员工查询员工详细信息刷新员工信息列表显示 接下来对这些事件做进一步分析,可得到以下这些状态: 登录界面 系统主界面 人事管理功能模块界面 员工信息、员工
33、详细信息 增删改之后新的员工信息列表l 状态描述该过程的状态图如图7-12 所示第6章 课程学习小结6.1内容小结第一章讲的是面向对象技术开发,提到面向对象这个词,它有两个层次的意思,第一层就是面向对象思想,第二层次是面向对象程序设计语言,同时也讲到了面向对象程序设计方法,以及它与结构化程序设计的区别,然后介绍了面向对象程序设计方法的基本特征:封装,继承,多态和消息传递;接下来讨论了面向对象的最基本的概念:类和对象,最后介绍了集中有代表性的面向对象程序设计语言,例如:Simula67,Smalltalk,Eiffel,C+,Java等。第二章讲到的是RUP软件开发过程,RUP又称为统一软件过程
34、,能够有效地管理工作进度,控制和改善工作效率。它是目前的软件过程中与UML结合最好的过程,支持面向对象的软件开发。软件开发过程是指开发软件产品的一整套活动,主要包括软件描述,软件开发,软件有效性验证和软件不断改进。不同的软件开发商,针对不同的开发项目可能会采用不同的方式组织上述4项活动的实施。软件开发模型则是对软件开发的全过程,活动和任务的抽象描述,选择合适的软件开发过程将有利于提高软件开发的效率,软件产品的质量,以及日后的软件维护能力。第三章是UML概述。UML最早是由世界著名的面向对象技术专家Grady Booch,James Rumbaugh和Ivar Jacobson在1996年提出的
35、。UML是一种定义良好,易于表达,功能强大且普遍适用的建模语言。它支持面向对象系统的分析,设计,实现,交付等各个环节,可以用于系统的理解,设计,浏览,维护和信息控制。UML主要用于为软件系统建立可视化模型,为软件系统建立构件,为软件系统建立文档,它主要由用例图,类图,对象图,包图,状态图,活动图,顺序图,协作图,构件图以及部署图共计10种模型图组成。第四章讲解的是UML工具,UML工具最重要的用途是能够绘制UML图,几种应用较为广泛的UML工具有:Rational Rose,Microsoft Viso,Enterprise Architect,PowerDesigner。本章着重讲解的是Ra
36、tional Rose这个工具,后面的例子都是利用这个工具来进行模型构建的。第五章讲解的是用例模型。用例模型主要包括用例图和用例描述,用例图用来描述用户的需求,它从用户的角度描述系统功能,并指出各功能的执行者,强调谁在使用系统,系统为执行者完成哪些功能。用例图用于对系统,子系统或系统的行为进行可视化的表示,以方便系统的执行者更清晰地理解这些元素的用途,也便于系统的开发人员最终实现这些元素。用例图由以下几种元素组成:执行者,用例,系统,关系以及用例描述。再用力模型中,不仅执行者与用例之间存在关系,用例与用例图之间也存在关系。用例图中常见的关系主要包括:关联,包含,拓展以及泛化。第六章是交互模型的
37、一个概述,建立交互模型主要是建立顺序图和协作图。顺序图和协作图统称为交互图。它主要用来描述系统中多个对象之间的相互关系及对象间消息传递,用于对系统中多个对象的相互作用的过程进行建模。在面向对象分析过程中,可以使用顺序图来描述一个完整用例过程,使用协作图来分析系统中的对象和对象之间传递的消息。顺序图的主要用途之一是用来为某个用例的泛化功能提供其所缺乏的解释,即把用例表达的需求,转化为进一步,更加正式的精细表达。在顺序图中主要包括下面4中元素:对象,生命线,激活以及消息。协作图着重于描述协作对象间的交互和连接。它可以理解为按照空间来布图。协作图中的主要建模元素包括:对象,消息和链。第七章讲的是类图
38、和对象图,类图用来描述系统中类之间的静态关系,它对系统的静态结构进行描述。在程序设计的不同阶段,类图的作用也不相同。在分析阶段,类图主要用于一些概念类的描述;在设计阶段,类图主要用于描述类的外部特性;在实现阶段,类图主要用于描述类的内部实现。类图包括类的名字,属性,方法和类的可见性。类图描述包括两个部分:类和类间关系。主要的类间关系包括:关联,泛化,依赖以及其他关系。其他关系中经常用到的包括:聚合,组合以及实现。对象图描述了一组对象以及对象之间的关系。对象图是类图的实例,几乎使用与类图完全相同的标识。它们的不同点在于对象图显示类的多个对象实例,而不是实际的类。第八章是包的讲解,包是用来对模型元
39、素进行分组的,且为分组好的元素提供一个命名空间(namespace)。包是UML中的一种结构,用来将各种建模元素(如用例或者类)分组组织起来。包的符号是文件夹的样子,包的主要作用是对模型元素进行分组管理,并为这些分组好的元素提供一个同一的命名空间,包除了是一个命名空间外,其本身也是一个可打包的元素,也就是说一个包可以作为另外一个包的内部元素,即包是具有可嵌套性的。每个包都必须有一个类名,包的名称应该为一个字符串,用来唯一标识这个包,并且报名应该能够反映整个包的内容,使人能够直观地了解该包。包拥有的元素通常存在可见性,用于指示这个元素是不是可以被包外的其它元素访问,对于包所拥有的公共元素,总是可
40、以被外部采用限定姓名的方式进行访问的。创建包图的主要作用是:描述需求的高阶概述,描述设计的高阶概述,在逻辑上把一个复杂的图模块化,组织源代码,对框架进行建模。包之间的关系主要包括:依赖关系,泛化关系,还有包引入以及包合并的关系。包的设计原则主要包括:重用发布等价原则,无环依赖原则,稳定抽象等价原则,稳定依赖原则,共同封闭原则。第九章是行为模型的建立,行为模型的建立主要包括状态图以及活动图的建立。状态图和活动图是用来描述系统的动态行为特征的,主要用于描述事物的状态变化和处理过程。状态图(Statechart Diagram)是附加到类和用例的状态机图,描述对象响应外部激励时所经历的各种状态和转换
41、。通过展示时间和转换,状态图显示了对象在其生命周期中依次经历的各种状态。活动图(Activity Diagram)是一种描述系统行为的图,它用于展现参与行为的类所进行的各种活动的顺序关系。活动图是特殊的状态图,其中所有状态均为动作状态,并且源状态中的动作一经完成即会触发控制流。状态图中的元素主要包括以下几种:起点,终点,状态,事件,转换以及符合状态和子状态。活动图中的元素主要包括以下几种:起点和终点,活动,转移,接收信号和发送信号,决策点和汇合点,分叉河汇合,控制流终点以及泳道。第十章是构件图的建立,构件图描述了软件的各种构件和它们之间的结构关系,在进行系统开发时,构件图是各小组键有用的交流工
42、具。构件图从软件架构的角度来描述一个系统的主要功能,如系统分成几个子系统,每个子系统包括哪些类,包和构件,它们之间的关系以及它们分配到哪些节点上等等。使用构件图可以清楚地看出系统的结构和功能。在构件图中通常包含三种元素:构件,接口以及依赖。 第十一章描述的是部署图,部署图是UML用来描述系统的硬件配置,硬件部署以及软件构件和模块在不同节点上分布的模型图。部署图主要用来对系统的静态部署进行建模,部署图中常见的元素主要包括:节点以及关联关系。在使用部署图时不一定要使用UML中的图符,也可以根据自己的习惯来绘制部署图,只要保证绘制的部署图能够被所有的开发人员认可和理解即可。另外在绘制部署图时,绘制的
43、目标并不是描述所有的软件构件,只需要描述那些对系统的实现至关重要的构建即可。 第十二章描述的是面向对象实现技术。本章首先介绍面向对象实现阶段,如何选择面向对象的语言,如何对类和接口进行详细描述,并使用选择的程序设计语言实现。在实现阶段需要把UML设计的各种模型图最终转化成具体程序,这也是使用UML进行面向对象分析和设计的最终目的。这个阶段和选用的程序设计语言与开发环境关系密切,不同的语言和开发环境转换的方法和过程有一些差异,需要建模人员对具体选用的开发语言比较熟练,这样可以方便实现转换。6.2学习小结 通过这学期的可视化建模与UML课程,让我对各个建模有了一定的了解.如在软件开发时,无论采用面向对象的方法还是传统的方法,首先要做的就是了需求.而用例图是从用户的角度来描述系统功能的,所以在进行需求分析时,使用用例图可以更好的描述系统的功能. 在描述系统各对象之间的动态行为我们可以使用顺序图或者协作图,它们只是侧重点不同而已,顺序图主要强调消息的时间顺序即对象之间的通信模式,而协作图强调参加交互对象的组织即对象间的协作,它们之间是可以相互变换的.当我们要描述系统中类之间的静态关系就要使用类图来说明,而对象图是用于描述给定时刻实际存在的诸对象以及它们之间的关系.通过一个类图,就可以判断一个对象图是否表示了系统的一个