UML系统分析与设计教程(第2版)第6章
- 格式:ppt
- 大小:196.50 KB
- 文档页数:15
68 图捕捉。
这5个视是彼此相关、交互作用的,运用这5个视,可对软件系统进行全方位的描述。
但并不是所有的软件系统建模都需要这5个视,譬如运行在单机上的软件系统就不需要部署视。
当然,也可以根据需要添加视,譬如,为安全性很关键的软件系统建模时,可以添加安全视来描述系统的安全性解决方案。
5.2 UML的图UML是用来对软件系统的产物进行可视化、规范定义、构造并为之建立文档的建模语言。
模型建立的可视化为设计人员、开发人员、用户和领域专家之间的交流提供了便利;规范定义意味着UML建立的模型是准确的、无歧义的、完整的;构造意味着可以将UML模型映射到代码实现;UML还可以为系统的体系结构以及系统的所有细节建立文档。
UML为软件系统建模提供了强大的支持,并提供了很大的自由度。
开发人员在迭代的递增式开发过程中,可以根据所开发系统的特点,在每次迭代的微过程(分析、设计、实现、测试和配置)中,灵活地选用UML所提供的各种图。
UML1.x定义了9种图为软件系统建模,而新版的UML2.0则定义了13种图,这些图从不同应用层次和不同角度为软件系统从系统分析、设计直到实现等阶段提供了有力支持。
而且,这些图为系统在不同的阶段建立不同的模型,建模的目的也各不相同。
UML的13种图如下(其中顺序图和通信图放在一起介绍)。
(1)类图(Class Diagram)。
类图描述了类、接口、协作以及它们之间的关系。
类图是在面向对象系统建模中最重要的常用图,它描述了系统的静态设计视和静态互动视。
(2)对象图(Object Diagram)。
对象图描述了对象以及对象间的关系。
如同类图一样,对象图从实例的角度描述了系统的静态设计视和静态互动视。
(3)组件图(Component Diagram)。
组件图描述了组成软件系统的组件间的相互关系、交互作用和组件的公共接口。
组件图描述了系统的静态实现视。
一般来说,软件组件就是一个实际文件,它可以是源代码文件、二进制代码文件、可执行文件、脚本、表等,并可以用来说明编译、链接或执行时组件之间的依赖关系。
UML系统分析与设计教程第二版教学设计介绍UML是一种被广泛使用的面向对象分析和设计(OOAD)工具,可以用来模拟软件开发中的流程。
本教程将提供UML系统分析与设计的教学设计,适用于学生、软件工程师或任何想了解UML的人。
教学目标通过学习本课程,学生应能掌握以下技能:•理解和运用UML的核心概念和通用建模技术•使用UML对软件进行系统建模和分析•对复杂系统进行建模和分析教学重点•UML的基本概念和原则•UML图形的使用方法和含义•对系统进行建模和分析的方法和流程教学大纲第一节:UML简介•UML的定义和用途•UML图形的分类与含义•UML的优点和局限性第二节:UML基础知识•UML核心概念和原则•类图、时序图和用例图的基本元素和使用方法第三节:UML高级应用•组合、聚合和泛化的区别•状态图和活动图的建模技术•UML建模规范的介绍和应用第四节:UML与软件开发•UML的集成开发环境•使用UML进行软件架构设计•对UML进行版本控制和文档管理教学方法该课程采用理论和实践相结合的教学方法。
学生将在课堂上学习UML的基础知识,然后使用软件进行实操操作。
通过实践,学生能够更好地理解UML的实际运用,掌握UML建模和分析的技能。
基本要求•学生需要具备基本的编程知识和计算机应用能力•学生需要了解面向对象编程(OOP)的概念和基本语法•学生需要有一台个人电脑,并安装适合的UML建模工具教学评估教师将在每节课程结束后进行小测验,以检查学生的理解情况。
此外,教师还将指导学生完成一个UML建模的小项目,并进行评估。
评估成绩将计入学生的课程成绩和期末考试成绩。
结语随着软件开发的不断发展,UML已成为了重要的建模和分析工具。
本教程将帮助学生了解和掌握UML的核心概念和基本技术,提高软件建模和分析的能力,为未来的工作奠定基础。
同样的技术也可以用于为子系统的需求建模。
对于图6.7所示的公司管理系统,该用例图可视化地描述了公司管理系统的功能需求,为最终用户、领域专家和开发人员之间的交流提供了途径。
该系统的重要行为包括雇员可以选择得到报酬的方式(用例“Select Payment Method”),可以对雇员进行考勤(用例“Maintain Timecard”),雇员可以创建工作报告(用例“Create Employee Report”),考勤记录和工作报告要保存在数据库中(用例“Maintain Timecard”和“Create Employee Report”与参与者“Project Management DB”通信,将数据保存在数据库中),管理员可以创建、修改、删除系统中雇员的信息(用例“Maintain Employee Information”),每月的固定时间要通过银行系统给雇员发薪水(参与者“System Clock”与用例“Run Payroll”通信,说明发薪水的时间到了,触发用例的行为,用例“Run Payroll”与参与者“Bank System”通信,将薪水发给雇员),并通过打印机打印出工资单(用例“Run Payroll”与参与者“Printer”通信,调用打印机打印出工资单)。
小 结用例模型用于需求分析阶段,它描述了待开发系统的功能需求,并驱动了需求分析之后各阶段的开发工作。
用例图(Use Case Diagram)是UML中用来对系统的动态方面进行建模的7种图之一。
用例图描述了用例、参与者以及它们之间的关系。
本章介绍了用例图的语义和功能,描述了如何识别参与者、用例,如何使用事件流描述用例;还介绍了用例和脚本的关系,举例说明了用例间的类属关系、包含关系和扩充关系的语义、功能和应用;最后举例说明了如何使用用例图为系统的上下文以及系统的需求建模。
习 题6.1 用例图的功能是什么?6.2 如何识别出参与者?如何识别出用例?6.3 用例间存在哪几种关系?6.4 分析下述课程管理系统的问题描述。
UML系统分析与设计教程第二版教学设计一、引言UML(Unified Modeling Language)是软件工程中广泛使用的一种建模语言,可以用于描述系统的结构、行为和交互。
UML系统分析与设计教程是一本经典的UML教材,在软件工程领域具有较高的知名度和影响力。
本文将介绍针对UML系统分析与设计教程第二版的教学设计,主要包括教学目标、教学策略、教学内容和教学评价等方面。
二、教学目标本次教学的主要目标是让学生掌握UML的基本概念、建模方法和应用技巧,具备使用UML进行软件系统设计和分析的能力,进一步提升学生的软件工程能力。
具体目标包括:1.理解UML的基本概念和历史背景;2.掌握UML的建模方法和图表符号的含义;3.能够使用UML进行系统需求分析和设计,并完成相应的UML图表;4.掌握UML的应用技巧,如设计模式和代码生成等。
三、教学策略1.教学以实践为主,通过实际的案例让学生熟悉UML的建模方法和应用技巧;2.强调理论与实践相结合,让学生在实际操作中巩固理论知识;3.强调团队合作,通过小组讨论和合作完成项目;4.强调自主学习和持续学习,让学生能够独立学习和掌握新技能。
四、教学内容本次教学的主要内容包括以下几个方面:1. UML基础1.1 UML的基本概念和历史背景; 1.2 UML的体系结构和核心组件; 1.3 UML 图表符号的含义和应用。
2. UML建模方法2.1 UML用例图; 2.2 UML类图; 2.3 UML时序图和活动图; 2.4 UML状态图。
3. UML应用技巧3.1 设计模式的应用; 3.2 代码生成和反向工程; 3.3 UML工具的使用。
五、教学评价本次教学的评价主要包括以下几个方面:1.学生的作业质量和完成度;2.学生对UML建模方法和应用技巧的掌握程度;3.学生对UML在软件系统设计中的应用理解程度;4.学生的课堂表现和团队合作能力。
六、总结通过本次教学,学生将深入学习和实践UML建模方法和应用技巧,为提高其软件工程综合能力奠定更坚实的基础。
系统设计与分析教程uml习题答案UML概述1. 请指出UML的三个主要的特性。
1)UML是⼀种语⾔2)UML是⽤来建模的3)UML是统⼀的标准2. 请指出三种以上现实⽣活中的常⽤模型,并说明它们分别在各⾃的领域中发挥了什么样的作⽤。
1)电路图:电⼦产品设计、⽣产、维修2)园区沙盘:直观、⽴体化地展⽰园区的景观、布局3)地图:导航、指路等3. 请简要说明建模的意义和建模的原则。
建议能够帮助我们按照实际情况或按我们需要的样式对系统进⾏可视化;提供⼀种详细说明系统的结构或⾏为的⽅法;给出⼀个指导系统构造的模板;对我们所做出的决策进⾏⽂档化在建模时应遵循以下原则:选择要创建什么模型对如何动⼿解决问题和如何形成解决⽅案有着意义深远的影响;每⼀种模型可以在不同的精度级别上表⽰;最好的模型是与现实相联系的;单个模型是不充分的。
对每个重要的系统最好⽤⼀组⼏乎独⽴的模型去处理4. 请说明蓝图和草图的区别,并简单描述其适⽤的场景。
蓝图⼀般是指采⽤C ASE⼯具绘制的、正式的、规范的UML模型;⽽草图则通常是指⼿⼯绘制的、规范度较低的在纸张的UML模型。
对于局部的、重要性不⾼的、共享范围较⼩的UML模型,直接将草图扫描到电脑存档即可;对于全局的、重要性⾼的、⾼度共享的,在草图的基础上⽤C ASE⼯具绘制成为正式的蓝图,并将其纳⼊统⼀的模型管理中5. 说明UML适⽤的建模领域,以及其作⽤和主要的参与⼈员。
业务建模,⽤来加强对业务领域的了解,以领域专家为主,需求分析⼈员是主⼒,系统分析员、架构师可参与。
需求模型,⽤来加强需求了解,便于技术决策,以需求分析⼈员为主,系统分析员是主⼒,领域专家提供指导,架构师和资深开发⼈员参与。
设计模型:包括⾼层设计模型和详细设计模型。
⾼层设计模型以架构师为主,系统分析员从需求⽅⾯提供⽀持,资深开发⼈员从技术实现⽅⾯提供⽀持。
详细设计模型则以资深开发⼈员为主,架构师提供指导。
实现模型:架构师、资深开发⼈员(设计⼈员);以资深开发⼈员(设计⼈员)为主,架构师提供总体指导。
54图4.21 接口与类之间的关系(二)4.9 包包(Package)是一个用来将模型元素分组的通用机制。
包可以用在任何一个UML图中,但一般多用于用例图和类图。
包就像文件夹一样,可以将模型元素分组隐藏,从而简化UML图,使得UML图更易理解。
有时候,甚至可以将一个系统看做一个单一的、高级的包。
包的UML符号如图4.22所示。
包可以有包名,以与其他包相区分。
在实践中,包的名字通常是从问题域的词汇表中抽取出的短名词或名词词组。
包可以含有类、接口、组件、节点、协作、用例、图或其他的包等元素,但每个元素只能被一个包所拥有。
包所含有的元素要在包中进行声明,如果包被破坏,包中的元素也会被破坏。
一个包界定了一个命名空间,这意味着在一个包中,同种元素必须有不同的名字。
例如,在同一个包中,不能有类名同为Number的两个类,但是可以在包Package1中有一个类名为Number 的类,并在包Package2中也有一个类名为Number的类。
而且,类Package1::Number 和类Package2::Number是可以用它们的路径名来区分的不同的类。
在一个包中,不同种元素可以有相同的名字。
例如,在一个包中,一个类和一个组件可以用相同的名字来命名,如将类和组件都命名为Number。
但是,在实践中,为了避免混乱,最好将同一个包中的不同元素命名为不同的名字。
包可以含有其他的包。
例如,在Java语言的类库中,类File在包io中,而包io又在包java 中,所以类的全名是java.io.File。
但是,在实践中,应避免过深的包嵌套,一般两到三层的嵌套比较适宜。
●可见性。
如同类属性和操作的可见性是可控制的一样,包中元素的可见性也是可控制的。
包中的元素图4.22 包的UML符号。
意思是10个人干1年)的项目,有的人可能需要使用20个用例,另外一些人可能需要使用100多个用例。
而实际上,对一个10人年的项目来说,20个用例似乎太少,100多个用例又似乎太多,所以在建立模型时,要注意选取适中的用例粒度,以避免用例数目过多或过少。
确定用例的过程是对获取的用例进行提炼和归纳的过程。
为了构造一个好的用例,应该遵循的原则是:一个应该从头至尾地描述一个完整的功能,且要与参与者交互。
例如,在图6.3所示的教学系统中,学生首先必须选择课程,然后必须被注册到所选择的课程中,最后学生还必须为课程付费,这3个过程应该用3个用例还是1个来描述呢?由于这3个过程是1个完整行为的3个部分,独立存在是没有意义的,所以最好用一个用例——注册课程(Register for courses)来描述。
另外,如何绑定彼此密切相关但不同的功能呢?例如,注册人员可以添加课程、取消课程,还可以修改课程,这应该用3个用例还是1个用例来描述呢?最好使用1个用例——课程维护(Maintain Course Info),因为这3个过程都是由1个参与者(注册人员)进行的,并且只涉及了系统中的同一个实体(课程)。
该教学系统必须满足如下需求。
●学生(Student)需要使用系统注册课程。
●授课教师(Lecturer)需要使用系统选择所要教的课程,并通过系统获得关于该课程的学生花名册。
●注册人员(Registrar)负责学期课程目录的产生,维护系统所需的关于课程、学生和教师的信息。
基于以上需求,可以建立如下用例。
●课程登记(Register for Courses)。
●选择所教的课程(Select Course to Teach)。
●获取学生花名册(Request course roster)。
●维护课程信息(Maintain course info)。
●维护教师信息(Maintain teacher info)。
●维护学生信息(Maintian student info)。
77 1.4.2 分支流S-1:添加所选课程系统提示含有课程名和课程代号的域,学生输入希望选修的课程名和课程代码(E-3),系统显示信息表示该课程可以选修(E-4),并建立该课程与该学生的连接(E-5)。
用例重新开始。
S-2:删除所选课程系统显示含有课程名和课程代号的域,学生输入希望取消的课程名字和课程代码,系统删除该课程与该学生的连接(E-6)。
用例重新开始。
S-3:查看所选课程系统检索(E-7)并显示出学生所选的所有课程的信息,包括课程名、课程代码、上课时间、上课地点、授课教师、课程助教、学生数量。
当学生表示查看完毕,用例重新开始。
S-4:打印所选课程系统打印出学生所选的课程信息(E-8)。
用例重新开始。
1.4.3 替代流(Alternative Flows )E-1 如果输入的密码无效,用户可以重新输入密码或终止用例。
E-2 如果输入的学期无效,用户可以重新输入学期或终止用例。
E-3 如果输入的课程名或代码无效,用户可以重新输入有效的课程名和代码的组合或终止用例。
E-4 如果所要求的课程不可以选修,学生会得到信息提示该课程目前无法选修。
用例重新开始。
E-5 如果学生与课程间的连接不能建立,信息会被存储,系统会晚些时候再次建立连接。
用例继续。
E-6 如果学生与课程间的连接不能删除,系统会存储信息,并晚些时候删除该连接。
用例继续。
E-7 如果系统不能检索课程选修信息,那么用例重新开始。
E-8 如果系统不能打印课程选修信息,学生会得到信息表示该选项目前无法使用。
用例重新开始。
6.3.2 用例与脚本当细化对系统需求的理解时,需要用交互作用图来描述这些流,因为用一个顺序图来描述用例的所有信息是不可能的。
例如,在一个商场系统中,会有“付账”这个用例,这个用例可以有不同的变种,可以用现金付账,也可以用信用卡付账,甚至还可以用转账的方式付账(例如,当单位购买大量的货物时),每一种情况都可以用不同的顺序图来描述。