实验2UML实验(2)实验学时:2每组人数:1实验类型:3(1:基础性2:综合性3:设计性4:研究性)实验要求:1(1:必修2:选修3:其它)实验类别:3(1:基础2:专业基础3:专业4:其它)一、实验目的1.学习类图的绘制;2.学习从系统需求中识别类,并构建相应的面向对象模型;3.学习使用顺序图描述对象之间的交互;4.学习使用活动图为业务流程建模;5.学习使用PowerDesigner实现正向工程和逆向工程。
二、实验内容1.根据以下描述绘制类图,再正向工程生成Java源代码(也可生成其他面向对象语言的源代码,如C++或C#等):图形(Shape)可分为圆形(Circle)、矩形(Rectangle)、椭圆形(Ellipse)等具体图形,在Shape类中提供了一个抽象的draw()方法用于绘制图形,而在具体的图形类中实现该抽象draw()方法。
提供一个图形工厂类(ShapeFactory),该类提供一个静态方法createShape(chartype),其返回类型为Shape,参数type为所需绘制图形对应的代码,例如“c”表示圆形,“r”表示矩形,“e”表示椭圆形等,在createShape()方法中,可以使用条件语句来判断所需绘制图形的类型,并根据参数的不同返回不同的具体形状对象。
UML软件建模教程课后习题及答案————————————————————————————————作者:————————————————————————————————日期:UML软件建模教程课后习题习题1一、简答题1.简述模型的作用。
答:现实系统的复杂性和内隐性,使得人们难于直接认识和把握,为了使得人们能够直观和明了地认识和把握现实系统,就需要借助于模型。
2.软件模型有什么特征?答:建模对象特殊,复杂性,多样性3.软件建模技术有哪些因素?答:软件建模方法,软件建模过程,软件建模语言,软件建模工具4.软件模型包括哪些方面的内容?答:从模型所反映的侧面看:功能模型,非功能模型,数据模型,对象模型,过程模型,状态模型,交互模型,架构模型,界面模型等;从软件开发工作看:业务模型,需求模型,分析模型,设计模型,测试模型等。
5.软件建模工具应该具有哪些基本功能?答:软件模型的生成和编辑,软件模型的质量保障,软件模型管理等二、填空题1、模型是对现实的(抽象)和模拟,是对现实系统(本质)特征的一种抽象、简化和直观的描述。
2、模型具有(反映性)、直观性、(简化性)和抽象性等特征。
3、从抽象程度,可以把模型分为(概念模型)、逻辑模型和(物理模型)三种类型。
4、较之于其他模型,软件模型具有(建模对象特殊)、复杂性和(多样性)等特征。
5、软件模型是软件开发人员交流的(媒介),是软件升级和维护的(依据)。
6、软件建模技术的要素包括软件建模方法、(软件建模过程)、软件建模语言和(软件建模工具)。
7、从开发阶段看,软件建模有业务模型、(需求模型)、分析模型、(设计模型)和测试模型。
8、软件语言有软件需求定义语言、(软件设计语言)、软件建模语言、(软件结构描述语言)、软件程序设计语言等。
9、根据软件建模工具的独立性,把软件建模工具分为(独立软件)建模工具和(插件式软件)建模工具。
10、OMG在(1997)年把UML作为软件建模的标准,UML2.0版本是(2005)年颁布的。
UML软件建模教程课后习题及标准答案UML软件建模教程课后习题及答案————————————————————————————————作者:————————————————————————————————日期:UML软件建模教程课后习题习题1一、简答题1.简述模型的作用。
《UML实验》参考答案1.某酒店订房系统描述如下:(1)顾客可以选择在线预订,也可以直接去酒店通过前台服务员预订;(2)前台服务员可以利用系统直接在前台预订房间;(3)不管采用哪种预订方式,都需要在预订时支付相应订金;(4)前台预订可以通过现金或信用卡的形式进行订金支付,但是网上预订只能通过信用卡进行支付;(5)利用信用卡进行支付时需要和信用卡系统进行通信;(6)客房部经理可以随时查看客房预订情况和每日收款情况。
绘制该酒店订房系统的用例图。
参考答案:顾客在线预订房间前台预订房间通过现金支付订金通过信用卡支付订金查看客房预订情况查看每日收款情况2.根据以下场景绘制用例图:某企业为了方便员工用餐,为企业餐厅开发了一个订餐系统(COS:CafeteriaOrderingSystem),企业员工可通过企业联网使用该系统。
软件体系结构第四章作业题1.请把基于体系结构的软件开发模型与其他软件开发模型进行比较。
答:一、基于体系结构为基础的基于构件组装的软件开发模型,如基于构件的开发模型和基于体系结构的开发模型等。
基于体系结构的开发模型是以软件体系结构为核心,以基于构件的开发方法为基础。
然后采用迭代增量方式进行分析和设计,将功能设计空间映射到结构设计空间,再由结构设计空间映射到系统设计空间的过程。
该开发模型把软件生命周期分为软件定义、需求分析和定义、体系结构设计、软件系统设计和软件实现5个阶段.特点:是利用需求分析结果设计出软件的总体结构,通过基于构件的组装方法来构造软件系统。
优点:基于构件的开发方法使得软件开发不再一切从头开发,开发的过程就是构件组装的过程,维护的过程就是构件升级、替换和扩充的过程。
构件组装模型导致了软件的复用,提高了软件开发的效率。
软件体系结构的出现使得软件的结构框架更清晰,有利于系统的设计、开发和维护。
并且软件复用从代码级的复用提升到构件和体系结构级的复用。
缺点:由于采用自定义的组装结构标准,缺乏通用的组装结构标准,因而引入了较大的风险。
可重用性和软件高效性不易协调,需要精干的有经验的分析和开发人员,一般开发人员插不上手。
客户的满意度低,并且由于过分依赖于构件,所以构件库的质量影响着产品质量。
二、以软件需求完全确定为前提软件开发模型,如瀑布模型等。
特点:软件需求在开发阶段已经被完全确定,将生命周期的各项活动依顺序固定,强调开发的阶段性;优点:开发流程简单。
并且如果在开发过程存在阻塞问题,则影响开发效率。
三、在开始阶段只能提供基本需求的渐进式开发模型,如螺旋模型和原型实现软件开发模型等。
特点:软件开发开始阶段只有基本的需求,软件开发过程的各个活动是迭代的。
通过迭代过程实现软件的逐步演化,最终得到软件产品。
填空题第一章(1)统一建模语言UML是绘制软件蓝图的标准工具语言,可以对软件系统产品进行说明、可视化、构造和编制文档。
(2)UML在实际软件项目中,可以用于构造各种类型系统的业务模型和软件模型。
(3)软件的开发模式有瀑布模型、喷泉模型、基于构件的开发模型和XP方法。
(4)面向对象程序的三大要素是多态、封装和继承。
(抽象)(5)瀑布模型的缺点是缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。
第二章(1)在UML中,静态视图包含有两种视图,分别是类图和对象图。
(2)规格说明,修饰,拓展划分是UML常用的通用机制。
(3)够造型,标记型,约束是UML常用的扩展机制。
(4)用例视图描述了系统的参与者与系统进行交互的功能,是参与者所能观察和使用到的系统功能的模型图。
第三章(1)RationalRose默认支持的目标语言主要包括Java、VisualBasic等。
(C++,C#)(2)部署视图显示的是系统的实际部署情况,它是为了便于理解系统如何在一组处理解节点上的物理分布,而在分析和设计中使用的架构视图。
(3)使用RationalRose生成代码的步骤包括选择待转换的目标模型、检查Java语言的语法错误、设置代码生成属性、生成代码。
(4)在用例视图中包括了系统中的所有参与者、用例和用例图,必要时还可以在其中添加顺序图、协作图、活动图和类图等。
(5)构件视图用来描述系统中的各个实现模块以及它们之间的依赖关系包含模型代码库、执行文件、运行库和其他构件等信息。
第四章(1)对象图的目的在于描述系统中参与交互的各个对象在同一时刻是如何运行的。
(2)链是两个或多个对象之间的独立连接,是关联的实例。
(3)在UML的图形表示中,类是由名字、属性和方法三个部分组成的。
(4)依赖关系使用一个从客户指南提供者的虚箭头来进行表示。
2.锻炼结合给定题目,进行有效需求分析的能力。
3.掌握如何使用建模工具绘制用例图的方法。
二、实验器材1.计算机一台。
2.UML建模工具,比如软件RationalRose或StarUML。
三、实验内容在理解用例图的基本功能和使用方法的基础上,结合具体问题,完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程。
用RationalRose或StarUML工具软件绘制系统的用例图.下文以RationalRose为例讲解基本步骤。
四、实验步骤1.结合实际给定题目,完成系统的需求建模。
2.针对每个用例进行业务分析。
以图书管理系统中“删除读者信息"用例为例来说明实验具体步骤。
3.根据分析结果,绘制用例图.以图书管理系统中“删除读者信息"用例为例说明具体绘图步骤:(1)在用例图上双击main,出现如图1。
参考答案:顾客在线预订房间前台预订房间前台服务员客房部经理通过现金支付订金通过信用卡支付订金查看客房预订情况查看每日收款情况信用卡系统2.根据以下场景绘制用例图:某企业为了方便员工用餐,为企业餐厅开发了一个订餐系统(COS:CafeteriaOrderingSystem),企业员工可通过企业内联网使用该系统。
一、选择题CDABCDABCCACDCCBADCADDCBCADBDA二、判断题√√X√√√√XX√X√√√XXXXX√√X√XXX三、简答题1、简述实体类的概念及其作用。
实体类实现所谓的对象关系映射(ObjectRelationalMapping,简称ORM),是为了解决面向对象的类与关系数据库的表之间,存在的不匹配的现象,通过使用描述对象和关系之间映射的元数据,在程序中的类对象,与关系数据库的表之间建立持久的关系,用于在程序中描述数据库表。
本质上就是将数据从一种形式转换到另外一种形式。
简单地说,就是描述一个业务实体的类。
实体类对象是现实世界中实体对象在计算机中的表示,在层与层之间以及层内模块间进行数据传输。
2、敏捷开发宣言。
我们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法,通过这项工作,我们认为:个体和交互胜过过程和工具可以工作的软件胜过面面俱到的文档客户合作胜过合同谈判响应变化胜过遵循计划虽然右项也有其价值,但我们认为左项更加重要。
3、简述XP的短交付周期的概念。
迭代计划:XP项目每两周交付一次可以工作的软件。
迭代是一次较小的交付,可能会被加入到产品中,也可能不会。
每个周期(Iteration)开发的需求都是用户最需要的东西。
发布计划:XP团队通常会创建一个计划来规划随后大约6次迭代的内容。
一次发布通常需要2-3个月的工作。
它表示了一次较大的交付,通常此次交付会被加入到产品中。
发布计划不是一成不变的,客户可以随时改变计划的内容,他可以取消用户故事,编写新的用户故事,或者改变用户故事的优先级别。
但是客户应该更改后面迭代的内容,尽量不要更改下一次迭代。
4、测试驱动开发的概念及其积极作用。
编写所有产品代码的目的都是为了使失败的单元测试能够通过。
软件设计与体系结构课后练习部分答案第一篇:软件设计与体系结构课后练习部分答案第一章作业6、简要叙述软件设计在软件工程中所处的位置和重要性。
答:所处的位置:软件需求分析需求规格说明软件设计设计文档软件编码。
重要性:(1)是对软件需求的直接体现;(2)为软件实现提供直接依据;(3)将综合考虑软件系统的各种约束条件并给出相应方案;(4)软件设计的质量将决定最终软件系统的质量;(5)及早发现软件设计中存在的错误将极大减少软件修复和维护所需的成本。
7、软件设计应该包含哪些要素?答:软件设计应该包含:目标描述、设计约束、产品描述、设计原理、开发规划、使用描述。
8、软件体系结构与软件设计有何关系?软件体系结构的出现有何必然性和重要意义?答:软件体系结构与软件设计的关系:软件体系结构设计作为软件设计过程中的活动之一,能在较为抽象的级别上描述整个软件系统的结构,成为大规模、复杂软件系统设计中必不可少的步骤。
软件体系结构的意义:软件体系结构将构件以及构件之间的连接作为软件体系结构的基本组成部分。
软件体系结构使软件复用从代码复用发展到设计复用和过程复用,为不同的人提供了共同的语言,体现了系统早期的设计决策,并作为系统设计的抽象,为实现框架和构件的共享与复用,基于体系结构的软件开发提供了有力的支持。
第二章作业1、简述UML的特点和用途。
答:UML的发起者在最初制定UML时,充分考虑了各种需求、方法和语言的特点使UML在表达能力、对新技术的包容能力和扩张性等方面具有显著的优势:(1)为使用者提供了统一的、表达能力强大的可视化建模语言,以描述应用问题的需求模型、设计模型和实现模型。
(2)提供对核心概念的扩展机制,用户可加入核心概念中没有的概念和符号,可为特定应用领域提出具体的概念、符号表示和约束。
(4)独立于任何开发过程,但支持软件开发全过程。
第一章是绘制软件蓝图的标准工具语言,可以对软件系统产品进行说明、可视化、构造和编制文档。
第二章中,静态视图包含有两种视图,分别是类图和对象图。
第三章默认支持的目标语言主要包括Java、VisualBasic等。
生成代码的步骤包括选择待转换的目标模型、检查Java语言的语法错误、设置代码生成属性、生成代码。
在用例视图中包括了系统中的所有参与者、用例和用例图,必要时还可以在其中添加顺序图、协作图、活动图和类图等。
的图形表示中,类是由名字、属性和方法三个部分组成的。
(5)在接口中包含一系列操作但是不包含属性,并且它没有对外界可见的关联。
第五章1)包是用于把元素组织成组的通用机制。
2.需求分析的基本任务是(确定用户需要软件干什么)。
3.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。
设计这组测试用例的方法是(边界值分析法)。
4.根据程序流程图划分的模块通常是(过程)内聚的模块。
5.软件的分类,按其功能可分为:系统软件、(支撑软件)和应用软件。
6.UML的定义包括UML语义和(UML表示法)两个部分。
7.客观世界中的若干类,通常有两种主要的结构关系:即分类结构和(整体和部分结构)。
8.IDEF1X图用来描述系统的(功能)模型,主要有实体、联系和(属性)三种成分,其中实体可分为独立实体和(从属实体),且一个实体只能在图中出现一次。
二、简答题(本题30分,每小题5分)1.什么是软件工程?软件工程和计算机科学有何区别?2.面向对象方法和结构化方法有何区别与联系?3.什么是模块的作用域和模块的控制域?为何要求模块的控制域必须在作用域内?4.什么是设计模式?试举例说明组合设计模式的应用。
5.什么是依赖倒置原则?它和开闭原则有何联系?6.软件生存期过程和软件生存期模型有何联系?瀑布模型有何特点?三、绘图题(本题34分)1.某单位拟开发一个计算机房产管理系统,要求系统具有分房、调房、退房和查询统计等功能。
房产科将用户申请表输入系统后,系统首先检查申请表的合法性,对不合法的申请表,系统拒绝接收;对合法的申请表根据类型分别进行处理。
(1)如果是分房申请,则根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阀值分数时,按分数高低将申请单插到分房队列的适当位置。
(5)瀑布模型的缺点是缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。
第二章(1)在UML中,静态视图包含有两种视图,分别是类图和用例图。
(2)规格说明,修饰,通用划分是UML常用的通用机制。
(4)用例图描述了系统的参与者与系统进行交互的功能,是参与者所能观察和使用到的系统功能的模型图。
第三章(1)RationalRose默认支持的目标语言主要包括Java、CORBA、VisualBasic等。
(2)部署视图显示的是系统的实际部署情况,它是为了便于理解系统如何在一组处理解节点上的物理分布,而在分析和设计中使用的架构视图。
第四章(1)对象图的目的在于描述系统中参与交互的各个对象在某一时刻是如何运行的。
《软件工程》作业参考答案作业一一、1.过程与模型工具和环境消息2.33.产品软件合同软件4.由外至内5.三种基本流程控制结构6.软件危机7.尽可能模拟人类习惯的思维方式人类认识世界8.结构化数据二、三、1.结构化方法:是一种传统的软件开发方法,其总的指导思想是自顶向下、初步求精、单入口、单出口,其基本原则是抽象和功能分解。
:是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发。
CASE把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸收了CAD(计算机辅助设计)、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术。
因而,CASE领域是一个应用、继承和综合的领域。
四、1.软件工程是一门工程性学科,其目标是以较少的代价获取高质量的软件,包括:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。
2.软件文档的作用有:提高软件开发过程的能见度;提高软件开发效率;作为开发人员阶段工作成果和结束标志;记录开发过程的有关信息便于使用与维护;提供软件运行、维护和培训有关资料;便于用户了解软件功能、性能。
瀑布模型是典型的文档驱动型软件开发模型,其缺点主要有:实际软件开发中,各阶段之间并非完全的自上而下线性顺序展开;在开发过程中,用户看不见系统,而只有在交付使用时系统才能和用户见面;针对需求模糊或变化的情况,瀑布模型不够灵活。
3.软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。
一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。
在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
实验2设计模式实验一实验学时:4每组人数:1实验类型:3(1:基础性2:综合性3:设计性4:研究性)实验要求:1(1:必修2:选修3:其它)实验类别:3(1:基础2:专业基础3:专业4:其它)一、实验目的1.熟练使用面向对象设计原则对系统进行重构;2.熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的创建型设计模式和结构型设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、适配器模式和组合模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。
二、实验内容1.在某图形库API中提供了多种矢量图模板,用户可以基于这些矢量图创建不同的显示图形,图形库设计人员设计的初始类图如下所示:Circle+++++init()setColor()fill()setSize()display()...:void:void:void:void:voidTriangle+++++init()setColor()fill()setSize()display()...:void:void:void:void:voidRectangle+++++init()setColor()fill()setSize()display()...:void:void:void:void:voidClient在该图形库中,每个图形类(如Circle、Triangle等)的init()方法用于初始化所创建的图形,setColor()方法用于给图形设置边框颜色,fill()方法用于给图形设置填充颜色,setSize()方法用于设置图形的大小,display()方法用于显示图形。
客户类(Client)在使用该图形库时发现存在如下问题:①由于在创建窗口时每次只需要使用图形库中的一种图形,因此在更换图形时需要修改客户类源代码;②在图形库中增加并使用新的图形时需要修改客户类源代码;③客户类在每次使用图形对象之前需要先创建图形对象,有些图形的创建过程较为复杂,导致客户类代码冗长且难以维护。
软件设计与体系结构课后练习部分答案(DOC)第一章作业6.简要介绍了软件设计在软件工程中的地位和重要性。
答:位置:软件需求分析?需求规格?软件设计?设计文件?软件编码。
重要性:(1)它是软件需求的直接体现;(2)为软件实施提供直接依据;(3)将综合考虑软件系统的各种约束条件并给出相应方案;(4)软件设计的质量将决定最终软件系统的质量;(5)及早发现软件设计中的错误将大大降低软件修复和维护的成本。
7、软件设计应该包含哪些要素?答复:软件设计应该包含:目标描述、设计约束、产品描述、设计原理、开发规划、使用描述。
8.软件架构和软件设计之间的关系是什么?软件架构出现的必然性和意义是什么?答复:软件体系结构与软件设计的关系:软件体系结构设计作为软件设计过程中的活动之一,能在较为抽象的级别上描述整个软件系统的结构,成为大规模、复杂软件系统设计中必不可少的步骤。
软件体系结构的含义:软件体系结构将组件和组件之间的连接作为软件体系结构的基本组件。
软件体系结构使软件重用从代码重用发展到设计重用和过程重用,为不同的人提供了一种通用的语言,反映了系统的早期设计决策,作为系统设计的抽象,为框架和组件的共享和重用,以及基于体系结构的软件开发提供了强有力的支持。
第二章作业1.简要描述UML的特点和用途。
答复:uml的发起者在最初制定uml时,充分考虑了各种需求、方法和语言的特点使uml在表达能力、对新技术的包容能力和扩张性等方面具有显著的优势:(1)它为用户提供了一种统一、强大的可视化建模语言来描述应用问题的需求模型、设计模型和实现模型。
(5)它为理解建模语言提供了形式化基础,用元素类型描述了基本语义,用OCL描述了定义良好的规则,用自然语言描述了动态语义。
参考答案:顾客在线预订房间前台预订房间通过现金支付订金通过信用卡支付订金查看客房预订情况查看每日收款情况2.根据以下场景绘制用例图:某企业为了方便员工用餐,为企业餐厅开发了一个订餐系统(COS:CafeteriaOrderingSystem),企业员工可通过企业内联网使用该系统。
参考答案:4.Drawausecasediagramforthefollowinglibrarysystem:Thelibrarystoresvariousitemsthatcanbeborrowed,includingbooksandjournals.Bookscanbeborrowedbybothstaffandstudents,butonlystaffmemberscanborrowjournals.Whenauserborrowsabook,theirloandetailsarecheckedtoensurethattheyhavenooverduebooksonloan,andhavenotalreadyborrowedthemaximumpermittednumberofbooks.Userscanchecktheirownloandetailsatanytime.Librariansarepermittedtochecktheloandetailsofanyuser.Libraryuserscanreservebooksthatarecurrentlyoutonloan.Ifthreereservationshavealreadybeenmadeforagivenbook,andafurtherreservationismade,anewcopywillbeorderedbythelibrarian.参考答案:BorrowjournalsBorrowbooksCheckloandetailsReservebooksOrderanewcopy5.某银行准备开发一个网上信用卡管理系统CCMS,该系统的基本功能为:(1)信用卡申请。
如果信用卡申请被银行接受,客户会收到银行的确认函,并告知用户信用卡的有效期及信贷限额;否则银行会发送一封拒绝函给该客户。
激活操作结束后,CCMS将激活通知发送给客户,告知客户其信用卡是否被成功地激活。
(2)月报表生成。
在每个月第一天的零点,CCMS为每个信用卡客户创建一份月报表,对该客户上月的信用卡交易情况及交易额进行统计。
(3)信用卡客户信息管理。
信用卡客户的个人信息可以在CCMS中进行在线的管理。
每个信用卡客户可以在线查询其个人信息。
(4)信用卡交易记录。
信用卡客户使用信息卡进行的每一笔交易都会记录在CCMS中。
(5)交易信息查询。
构造该系统的用例模型,要求绘制用例图,编写相应的用例文档,还需提供用例追踪矩阵。
参考答案:订房系统信用卡系统验证用户信息返回验证通过和支付成功消息Sample:Client:SaleproductItems:Listtotal:Moneyitem:SalesProductItem[foreachiteminproductItems]10.根据以下描述绘制类图,再正向工程生成Java源代码(也可生成其他面向对象语言的源代码,如C++或C#等):图形(Shape)可分为圆形(Circle)、矩形(Rectangle)、椭圆形(Ellipse)等具体图形,在Shape类中提供了一个抽象的draw()方法用于绘制图形,而在具体的图形类中实现该抽象draw()方法。
现对这两个模块进行设计,要求如下:(1)根据以上描述绘制类图,要求分析出每个类中的主要方法;(2)需要提供独立的业务逻辑类和数据访问类,考虑到数据库的移植性,需提供抽象的数据访问接口;(3)尽量使用数据传输对象(DTO)来传递参数,减少方法中参数的个数。