《软件体系结构》实验指导书(程细柱)
- 格式:doc
- 大小:2.52 MB
- 文档页数:56
实验3 创建型设计模式实验实验学时: 2每组人数: 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)在使用该图形库时发现存在如下问题:①由于在创建窗口时每次只需要使用图形库中的一种图形,因此在更换图形时需要修改客户类源代码;②在图形库中增加并使用新的图形时需要修改客户类源代码;③客户类在每次使用图形对象之前需要先创建图形对象,有些图形的创建过程较为复杂,导致客户类代码冗长且难以维护。
一、实验目的1. 理解软件体系结构的基本概念和原理。
2. 掌握两种常见的软件体系结构风格:顺序批处理和管道-过滤器。
3. 通过实际操作,加深对软件体系结构设计方法和实践的理解。
二、实验内容1. 实验题目:软件体系结构实验2. 实验目的:(1)理解软件体系结构的基本概念和原理。
(2)掌握顺序批处理和管道-过滤器两种软件体系结构风格。
(3)通过实际操作,加深对软件体系结构设计方法和实践的理解。
3. 实验要求:(1)熟悉Java编程语言。
(2)了解面向对象编程思想。
(3)掌握软件体系结构设计的基本原则和方法。
4. 实验器材:(1)计算机一台。
(2)Java开发环境。
(3)实验指导书。
三、实验步骤1. 创建实验项目,并设置项目属性。
2. 设计顺序批处理风格的软件体系结构。
(1)创建一个数据流问题,例如计算10000个数的平均值。
(2)将数据流问题分解为多个处理步骤,如读取数据、计算平均值、输出结果等。
(3)为每个处理步骤创建相应的类,实现具体功能。
(4)编写主程序,将数据流问题传递给各个处理步骤,实现整个数据流处理过程。
3. 设计管道-过滤器风格的软件体系结构。
(1)创建一个数据流问题,例如过滤并输出指定范围内的偶数。
(2)将数据流问题分解为多个处理步骤,如读取数据、过滤数据、输出结果等。
(3)为每个处理步骤创建相应的类,实现具体功能。
(4)通过接口连接各个处理步骤,实现数据流的传递和处理。
4. 编写实验报告,总结实验过程和心得体会。
四、实验结果分析1. 批处理风格与管道-过滤器风格的比较:(1)批处理风格:数据以整体的形式传输,数据总量有限;处理过程之间互不调用。
(2)管道-过滤器风格:数据以数据流的形式传输,数据量可以无限制;处理过程之间通过接口连接,实现数据流的传递和处理。
2. 实验过程中遇到的问题及解决方法:(1)问题:如何设计合理的处理步骤?解决方法:根据数据流问题,将问题分解为多个处理步骤,并确保每个步骤的功能单一、易于实现。
《软件体系结构》教学大纲一、课程概述《软件体系结构》是根植于软件工程发展起来的一门新兴学科,目前已经成为软件工程研究和实践的主要领域。
体系结构在软件开发中为不同的人员提供了共同交流的语言,体现并尝试了系统早期的设计决策,并作为相同设计的抽象,为实现框架和构件的重用、基于体系结构的软件开发提供了有力的支持。
作为计算机科学与技术专业软件工程方向的重要专业课程,本课程主要系统地介绍软件体系结构的基本原理、方法和实践,全面反映软件体系结构研究和应用的最新进展。
既讨论软件体系结构的基本理论知识,又介绍软件体系结构的设计和工业界应用实例,强调理论与实践相结合。
本课程的先修课程为“软件工程”。
二、课程目标1.知道《软件体系结构》这门学科的性质、地位、研究范围、学科进展和未来方向等。
2.理解该门学科的主要概念、基本原理和策略等。
3.掌握软件体系结构的建模方法、描述方法,通过对不同软件体系结构风格的掌握,能够采用正确的基于体系结构的软件开发。
4.能够把所学的原理应用到具体的实践中去,培养学生发现、分析和解决问题的能力等。
三、课程内容与教学要求这门学科的知识与技能要求分为知道、理解、掌握、学会四个层次。
这四个层次的一般涵义表述如下:知道———是指对这门学科和教学现象的认知。
理解———是指对这门学科涉及到的概念、原理、策略与技术的说明和解释,能提示所涉及到的教学现象演变过程的特征、形成原因以及教学要素之间的相互关系。
掌握———是指运用已理解的教学概念和原理说明、解释、类推同类教学事件和现象。
学会———是指能模仿或在教师指导下独立地完成某些教学知识和技能的操作任务,或能识别操作中的一般差错。
教学内容和要求表中的“√”号表示教学知识和技能的教学要求层次。
本标准中打“*”号的内容可作为自学,教师可根据实际情况确定要求或不布置要求。
教学内容及教学要求表四、课程实施《软件体系结构》是计算机软件专业类必选课。
一般情况下周课时为3课时,共54课时。
《软件体系结构》课程标准一、课程概述《软件体系结构》是根植于软件工程发展起来的一门新兴学科,目前已经成为软件工程研究和实践的主要领域。
体系结构在软件开发中为不同的人员提供了共同交流的语言,体现并尝试了系统早期的设计决策,并作为相同设计的抽象,为实现框架和构件的重用、基于体系结构的软件开发提供了有力的支持。
作为计算机科学与技术专业软件工程方向的重要专业课程,本课程主要系统地介绍软件体系结构的基本原理、方法和实践,全面反映软件体系结构研究和应用的最新进展。
既讨论软件体系结构的基本理论知识,又介绍软件体系结构的设计和工业界应用实例,强调理论与实践相结合。
本课程的先修课程为“软件工程”。
二、课程目标1.知道《软件体系结构》这门学科的性质、地位、研究范围、学科进展和未来方向等。
2.理解该门学科的主要概念、基本原理和策略等。
3.掌握软件体系结构的建模方法、描述方法,通过对不同软件体系结构风格的掌握,能够采用正确的基于体系结构的软件开发。
4.能够把所学的原理应用到具体的实践中去,培养学生发现、分析和解决问题的能力等。
三、课程内容与教学要求这门学科的知识与技能要求分为知道、理解、掌握、学会四个层次。
这四个层次的一般涵义表述如下:知道———是指对这门学科和教学现象的认知。
理解———是指对这门学科涉及到的概念、原理、策略与技术的说明和解释,能提示所涉及到的教学现象演变过程的特征、形成原因以及教学要素之间的相互关系。
掌握———是指运用已理解的教学概念和原理说明、解释、类推同类教学事件和现象。
学会———是指能模仿或在教师指导下独立地完成某些教学知识和技能的操作任务,或能识别操作中的一般差错。
教学内容和要求表中的“√”号表示教学知识和技能的教学要求层次。
本标准中打“*”号的内容可作为自学,教师可根据实际情况确定要求或不布置要求。
教学内容及教学要求表四、课程实施《软件体系结构》是计算机软件专业类必选课。
一般情况下周课时为3课时,共54课时。
《软件设计与体系结构》课程实验指导书本书是《软件设计与体系结构》(谢兄编著,出版社出版)的配套用书。
该部分包括4个实验,共10个学时。
实验1掌握Factory设计模式的意图及其代码实现。
实验2掌握Composite设计模式的意图及其代码实现。
实验3掌握Observer设计模式的意图及其代码实现。
适应4利用Observer、单件等设计模式开发实现一个小的系统。
以上每个实验都分为实验目的、实验内容、实验要求、实验步骤及实验总结5个单元,以帮组读者深刻体会设计模式的用处和好处,加深读者对设计模式的理解和感悟。
读者如果能够按照适应的要求,在编程实践中仔细学习体会这4个设计模式,认真感悟面向对象设计的思想和原则,必定会获益匪浅。
《软件设计与体系结构》课程实验教学大纲课程编号:一、实验教学的目的《软件设计与体系结构》课程是为计算机科学与技术、软件工程专业本科三年级学生开设的专业实验课。
通过本课程的实验,掌握有关软件设计的目标、基本原则、基本理论、基本知识、基本设计模式,和主要的软件体系结构方面的基本知识和基本技能。
培养学生理论联系实际和创新的精神,提高学生软件设计、编程的能力,增强学生的实践经验,为将来从事软件分析、设计等工作打下必要的实践基础。
使他们任职后能对软件开发过程中的具体问题有较强的分析和解决的能力。
二、实验教学的任务通过本实验课程的实践训练,使学生能够较好地掌握各种设计模式的具体使用方法及现代软件体系结构的内容和方法,理解各设计模式的用途及软件体系结构模型,熟悉各设计模式的结构组成,掌握在软件设计模式及体系结构理论指导下软件开发的基本过程。
三、实验项目名称、学时分配、适用专业及实验性质四、单项实验的内容、要求1. Factory设计模式实验内容:Factory设计模式实例分析实验要求:根据给定的Factory设计模式实例进行分析,体会设计模式的具体使用方法。
2. Composite设计模式实验内容:Composite设计模式实例分析实验要求:根据给定的Composite设计模式实例进行分析,体会设计模式的具体使用方法。
《软件体系结构》实验指导书主讲教师:程细柱韶关学院计算机应用教研室前言软件体系结构课程是计算机科学与技术本科专业的一门重要的专业课.通过本课程的学习,使学生在已有的计算机软硬件基础知识、程序设计知识、数据库和网络通信知识的基础上系统掌握面向对象系统分析与设计的基本方法和技术,并具有针对特定环境下的应用问题进行信息系统开发(包括系统分析,设计与实现)的能力。
通过学习本课程学生可以理解和掌握软件体系结构的分析和设计方法,掌握面向对象系统分析和设计的建模标准UML语言,能够利用Rational Rose(或Microsoft Viso)软件以某一信息系统为例进行系统分析和设计。
本课程主要介绍系统原理的基本概念、系统开发过程RUP、对面向对象分析和面向对象设计的方法、对面向对象分析和设计的建模标准UML等内容。
通过本课程的学习,学生掌握的知识、内容及掌握的程度要求为:1. 使学生理解面向对象的信息系统的开发过程、系统分析和设计的原则和方法;2. 使学生掌握UML语言的基础知识,以及UML在面向对象的软件系统分析和设计中的应用,并能使用UML工具建立系统模型;3. 使学生掌握在UML系统模型下应用高级语言建立应用系统的方法;4. 通过案例教学和实验,提高学生在应用面向对象技术开发软件方面的动手能力和解决问题的能力,并鼓励创新。
本实验所要求的建模工具为Rational Rose 2003。
实验要求计算机软件建模技术现在越来越广泛的应用于软件工程、软件体系结构中。
本课程实验的目的是为了使学生在课程理论学习的同时,通过在一个实践的环境下,实际学习软件统一建模语言,对软件建模技术有一个初步的了解及认识。
通过本指导书中的各个实验,学习掌握对一般面向对象系统建模的方法与技术。
总之,通过上述实验环节,使学生加深了解和更好地掌握《软件体系结构》课程教学大纲要求的内容。
在《软件体系结构》的课程实验过程中,要求学生做到:(1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出现的情况提前作出思考和分析。
中南大学软件体系结构实验报告题目系统的用例模型+类模型+状态建模指导老师李祖德学生姓名孙毅学生学号 0906140106 学院信息科学与工程学院专业班级信安1401班完成时间 2016年11月30日目录实验一系统的用例模型 (1)一、实验目的 (1)二、实验器材 (1)三、实验内容 (1)四、实验步骤 (1)五、实验心得体会 (4)实验二系统的类模型 (6)一、实验目的 (6)二、实验器材 (6)三、实验内容 (6)四、实验步骤 (6)五、实验心得体会 (17)实验三系统的状态建模 (18)一、实验目的 (18)二、实验器材 (18)三、实验内容 (18)四、实验步骤 (18)五、实验心得体会 (22)实验一系统的用例模型实验名称:系统的用例模型实验类型: 设计性实验一、实验目的1.熟悉用例图的基本功能和使用方法。
2.锻炼结合给定题目,进行有效需求分析的能力。
3.掌握如何使用建模工具绘制用例图的方法。
二、实验器材1.计算机一台。
2.UML建模工具,StarUML。
三、实验内容在理解用例图的基本功能和使用方法的基础上,结合具体问题,完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程。
用Rational Rose 或StarUML工具软件绘制系统的用例图。
下文以Rational Rose为例讲解基本步骤。
四、实验步骤(1)在图中的工具栏选取Actor图标,在右边的图中添加一个Actor,并输入名称:administrator,如图1.1所示。
图1.1(2)在左边的工具栏中,选取用例的图标,在右边的图中画出一个用例,并输入用例的名称:login , 如图1.2所示。
图1.2(3)按照(2), 在右边的图中画出另外两个用例,并输入用例的名称:search,delete。
如图1.3所示。
(4) 在绘出了用例后,接下来的是绘制参与者与用例实现,如图1.4所示。
图1.4(5) 根据步骤(4),同时完成如图1.5和图1.6。
《软件体系结构》实验指导书主讲教师:程细柱韶关学院计算机应用教研室前言软件体系结构课程是计算机科学与技术本科专业的一门重要的专业课.通过本课程的学习,使学生在已有的计算机软硬件基础知识、程序设计知识、数据库和网络通信知识的基础上系统掌握面向对象系统分析与设计的基本方法和技术,并具有针对特定环境下的应用问题进行信息系统开发(包括系统分析,设计与实现)的能力。
通过学习本课程学生可以理解和掌握软件体系结构的分析和设计方法,掌握面向对象系统分析和设计的建模标准UML语言,能够利用Rational Rose(或Microsoft Viso)软件以某一信息系统为例进行系统分析和设计。
本课程主要介绍系统原理的基本概念、系统开发过程RUP、对面向对象分析和面向对象设计的方法、对面向对象分析和设计的建模标准UML等内容。
通过本课程的学习,学生掌握的知识、内容及掌握的程度要求为:1. 使学生理解面向对象的信息系统的开发过程、系统分析和设计的原则和方法;2. 使学生掌握UML语言的基础知识,以及UML在面向对象的软件系统分析和设计中的应用,并能使用UML工具建立系统模型;3. 使学生掌握在UML系统模型下应用高级语言建立应用系统的方法;4. 通过案例教学和实验,提高学生在应用面向对象技术开发软件方面的动手能力和解决问题的能力,并鼓励创新。
本实验所要求的建模工具为Rational Rose 2003。
实验要求计算机软件建模技术现在越来越广泛的应用于软件工程、软件体系结构中。
本课程实验的目的是为了使学生在课程理论学习的同时,通过在一个实践的环境下,实际学习软件统一建模语言,对软件建模技术有一个初步的了解及认识。
通过本指导书中的各个实验,学习掌握对一般面向对象系统建模的方法与技术。
总之,通过上述实验环节,使学生加深了解和更好地掌握《软件体系结构》课程教学大纲要求的内容。
在《软件体系结构》的课程实验过程中,要求学生做到:(1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出现的情况提前作出思考和分析。
(2)仔细观察上机时出现的各种现象,记录主要情况,作出必要说明和分析。
(3)认真书写实验报告。
实验报告包括实验目的和要求,实验情况及其分析。
对需编程的实验,写出程序设计说明,给出源程序框图和清单。
(4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。
(5)实验课程不迟到。
如有事不能出席,所缺实验一般不补。
实验的验收将分为两个部分。
第一部分是上机操作,包括检查程序运行和即时提问。
第二部分是提交书面的实验报告。
此外,针对以前教学中出现的问题,本实验将采用阶段检查方式,每个实验都将应当在规定的时间内完成并检查通过,过期视为未完成该实验,不计成绩。
以避免期末集中检查方式产生的诸多不良问题,希望同学们抓紧时间,合理安排,认真完成。
目录实验一用例图及进度安排 (5)实验二活动图 (10)实验三状态图 (18)实验四类 (24)实验五类的关系 (31)实验六交互图 (35)实验七对象图和包 (43)实验八组件图和配置图 (45)实验九正向工程 (52)实验一用例图及进度安排一、实验目的1.熟悉用例图的基本功能和使用方法。
2.掌握如何使用建模工具绘制用例图方法。
3.学习使用Microsoft Project对题目进行进度安排。
二、实验器材1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容根据实例,如“图书馆管理系统”开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程,现系统分析部指派您完成该项任务。
要求:对其中主要功能的用例书写书面用例。
四、实验步骤书写“删除读者信息”用例的书面用例。
一般应包含以下信息:(1)管理员在录入界面,输入待删除的读者名;(2)“业务逻辑”组件在数据库中,查找待删除的读者名;(3)如果不存在,则显示出错信息,返回步骤(1),如果存在则继续;(4)“业务逻辑”组件判断“待删除的读者”是否可以删除;(5)如果不可以,则显示出错信息,返回步骤(8),如果可以则继续;(6)在数据库中,删除相关信息;(7)显示删除成功信息;(8)结束。
分析:在图书管理系统中,管理员首先登录系统,系统验证通过后,管理方可向系统查询数据,在查询后,系统会给出提示,有没有找到相关的数据,管理员根据系统查询的返回结果,进行下一步的操作,就是删除读者,在删除的过程中,系统会对查询得到的结果判断该记录是否可以删除,若可以删除,则给删除提示,若不能删除,也给相关的提示信息。
绘图步骤:(1)在用例图上双击main,出现如图1.1所示,为绘制用例图做好准备。
图1.1(2)在图中的工具栏选取Actor图标,在右边的图中添加一个Actor,并输入名称:administrator,如图1.2所示。
(3)在左边的工具栏中,选取用例的图标,在右边的图中画出一个用例,并输入用例的名称:login 。
图1.2(4)按照步骤(3),绘制出如图1.4和图1.5的两个用例。
图1.3图1.4(5)在绘出了用例后,接下来的是绘制参与者与用例实现,如图1.6所示。
图1.6(6)根据步骤(5),同时完成如图1.7和图1.8。
此时,删除读者用例图就到此完成。
其系统查询读者信息等其他的功能会在时序图和活动图中描绘。
(7)根据分析情况,进一步添加或细化用例图。
图1.7图1.8五、实验报告要求1.整理实验结果。
2.小结实验心得体会。
实验二活动图一、实验目的1.熟悉活动图的基本功能和使用方法。
2.掌握如何使用建模工具绘制活动图方法。
二、实验器材1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容根据实例,如“图书馆管理系统”开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程,现系统分析部指派您完成该项任务。
要求:用活动图来描述系统中已知用例的业务过程:1.描述删除读者用例。
四、实验步骤绘制“删除读者信息”用例的活动图。
删除读者信息一般按照以下步骤进行:(1)管理员在录入界面,输入待删除的读者名;(2)“业务逻辑”组件在数据库中,查找待删除的读者名;(3)如果不存在,则显示出错信息,返回步骤(1),如果存在则继续;(4)“业务逻辑”组件判断“待删除的读者”是否可以删除;(5)如果不可以,则显示出错信息,返回步骤(8),如果可以则继续;(6)在数据库中,删除相关信息;(7)显示删除成功信息;(8)结束。
绘图步骤:(1)在用例图中,找到删除的用例,如图2.1所示,在删除用例上单击右键,在弹出的快捷菜单中选“New”,Rose工具也会弹出一个菜单,选”Activity Diagram”,选中后单击,便可以新建好一个活动图。
如图2.2所示。
图 2.1图2.2(2)新建好活动图后,双击删除的活动图,得到如图2.3所示,然后把在左边的工具栏内点击“Swinlane“,在右边的图添加一个泳道,如图2.4所示,并命名为administrator.按照此步骤,再添加另一个泳道,并命名为SystemTool,得到图2.5。
图2.3(3)接着在左边的工具上选取开始点,并在administrator的泳道上添加,如图2.6所示;添加完开始结点后,再来为此活动图添加活动,图2.7所示,在左边的工具栏上选中Activity 这个图标,在administrator这边的泳道上添加一个活动,命名为登录(login),再在开始结点和活动登录(login)之间添加活动关系,如图2.8所示。
图2.4图2.5图2.6图2.7图2.8(3)完成步骤(2)后,登录输入需要对输入的信息进行验证,则在图中添加一个验证框,如图2.9所示:添加验证框后,验证的内容,如果通过,则允许管理员进行查询操作,如图2.10所示;如不能通过,则结束,如图2.11所示。
图2.9图2.10图2.11(4)验证后,下一步的操作是查询需要删除的记录,添加一个活动,命名为delete,如图2.12和图2.13所示。
图2.12图2.13(5)最后,在删除后,系统会返回操作结果给操作者,图2.14所示;删除成功或删除失败系统都会有信息返回给操作者。
(7)根据分析设计情况,进一步添加或细化活动图。
图2.14五、实验报告要求1.整理实验结果。
2.小结实验心得体会。
实验三状态图一、实验目的1.熟悉状态图的基本功能和使用方法。
2.掌握如何使用建模工具绘制状态图方法。
二、实验器材1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容通过前面内容的学习,完成了对“图书馆管理系统”的需求的初步分析,得出系统的用例图和相应的活动态。
通过这两类图我们可以初步了解系统的业务处理过程,但对业务处理过程的处理状态间转换了解仍不够,这不利于设计人员对系统业务的进一步理解,而状态图能从对象的动态行为的角度去描述系统的业务活动。
因此,指派你运用本节所学的状态图,完成如下任务:1. 完成图书业务模块中还书用例的状态图。
四、实验步骤1.业务分析:由前面章节对图书馆管理系统中的还书主要业务的描述和分析可知,还书业务的动态行为是由:空闲(idle)、图书查找(finding)、还书(reversion)、失败(Failure)、归还成功(Success)5种状态及激活相互转换的事件。
2.绘制状态图:请您根据分析运用UML绘制还书用例的状态图。
分析:还书的状态图,还书的主要业务都是由管理员来完成,首先管理员必须先登录系统,并通过验证后,便可以进行下一步的操作,查找该书的相关信息,如存在,则进行还书操作,如不存在该信息,则给出提示信息;绘图步骤:(1)在用例图中的还书(revesion)用例,单击右键,如图3.1所示,新建一个状态图,命名为revesion状态图,图3.2所示。
图3.1图3.2(2)双击“receivesion”状态图,展开后,在左边的工具栏上选取一个实心圆点,此结点为开始结点,图3.3所示;当还书的时候,操作者先要询问系统的状态,如果系统忙,操作者则必需等待,因此,得到系统的两种状态,如图3.5所示。
图3.3图3.4图3.5(3)操作者在询问系统和状态后,得到的图3.6所示两种状态,如果系统忙,操作者必需要等待、结束,如图3.7和图3.8所示,重返步骤(1)。
图3.6图3.7图3.8(4)如系统空闲,则进行对还书的信息进行查询操作,图3.9所示;查询也有两种结果,一是查询得到该书的相关信息,二查询不到该书的相关信息;则此时有两种状态,需要建立两种状态,如图3.10所示。
图3.9图3.10(5)最后,操作者进行了操作后,系统会给出操作的结果给操作者;操作成功或失败,都会有提示信息给出。