软件体系结构实验二

合集下载

UML-软件体系结构-实验2-中南大学-软件学院

UML-软件体系结构-实验2-中南大学-软件学院

实验2 UML实验(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(char type),其返回类型为Shape,参数type为所需绘制图形对应的代码,例如“c”表示圆形,“r”表示矩形,“e”表示椭圆形等,在createShape()方法中,可以使用条件语句来判断所需绘制图形的类型,并根据参数的不同返回不同的具体形状对象。

【注:“创建关系”是一种特殊的“依赖关系”】2. 根据以下描述绘制类图:某商场会员管理系统包含一个会员类(Member),会员的基本信息包括会员编号、会员姓名、联系电话、电子邮箱、地址等,会员可分为金卡会员(GoldMember)和银卡会员(SilverMember)两种,不同类型的会员在购物时可以享受不同的折扣;每个会员可以拥有一个或多个订单(Order),每一个订单又可以包含至少一条商品销售信息(ProductItem),商品销售信息包括订单编号、商品编号、商品数量、商品单价和折扣等;每一条商品销售信息对应一类商品(Product),商品信息包括商品编号、商品名称、商品单价、商品库存量、商品产地等。

1 软件体系结构风格---KWIC实验

1 软件体系结构风格---KWIC实验

实验:软件体系结构风格---KWIC实验一、实验目的通过KWIC 实例分析,理解和掌握软件体系结构风格设计与实现。

二、实验内容KWIC描述:KWIC索引系统接受一些行,每行有若干字,每个字由若干字符组成;每行都可以循环移位。

重复地把第一个字删除,然后接到行末; KWIC 把所有行的各种移位情况按照字母表顺序输出。

实验要求:1.采用主/子程序体系结构风格实现KWIC 关键词索引系统2.采用面向对象体系架构风格实现KWIC 关键词索引系统3.采用管道过滤体系架构风格实现KWIC 关键词索引系统三、实验要求与实验环境熟练掌握基于主/子程序体系结构风格的 KWIC 关键词索引系统,在此基础上,完成基于面向对象体系架构风格的 KWIC 关键词索引系统设计与实现;选做基于管道过滤体系架构风格的 KWIC 关键词索引系统。

实验课前完成实验报告的实验目的、实验环境、实验内容、实验操作过程等内容;实验课中独立操作完成实验报告的实验操作、实验结果及结论等内容;所需软件Eclipse、JDK8.0 等。

具体要求:在工程Exp3_KWIC_OO_Part中:1)CircularShiftImpl类中,补全setup方法,实现循环移位功能;2)AlphabetizerImpl类中,补全alph方法,实现字母序排序功能;3)OO_Kwic类中,补全调用代码。

选做:管道过滤器实现KWIC。

在工程Exp3_KWIC_PF_Part项目中:1)在CircularShift、Alphabetizer、Output三个类中,分别实现transform 方法,分别实现循环移位、排序、输出(写入文件)功能。

四、实验操作1、采用主/子程序体系结构风格实现KWIC 关键词索引系统主程序/子程序风格(Main Program/Subroutine Style)将系统组织成层次结构,包括一个主程序和一系列子程序。

主程序是系统的控制器,负责调度各子程序的执行。

软件体系结构课程设计

软件体系结构课程设计

《软件体系结构》课程设计设计题目:实验室设备管理系统姓名:李欣张丹唐蔚霖学号: k0308413(07+13+17)同组组长:李欣同组其他成员:张丹唐蔚霖实验指导教师:李超实验地点: 9B505完成日期: 2011-6-10湖北民族学院信息工程学院目录一、概述(目的、任务、开发环境、参考资料)二、采用的主要方法与技术三、需求分析四、设计五、实现过程与步骤六、遇到的困难与获得的主要成果七、测试与运行记录八、完成结果分析与总结九、附录(软件配置、个人完成的程序模块和文档清单)一、概述(目的、任务、开发环境、参考资料)21世纪以来,人类经济高速发展,人们发生了日新月异的变化。

随着时代的发展,教育越来越需要实验,让学生从实验中得到更多,更扎实的知识。

因此学校也需要对实验室的实验设备进行更多的投入,而投入之后就带来了管理方面的问题。

我们做的这个系统主要是对设备的购买、维修、报废等方面进行了一定的管理,可以让设备进行有序、有效的管理,为管理人员节约一些因为管理混乱而浪费的时间。

不过系统的功能还不够完善,性能也还不够稳定,有待于以后不断的进行完善。

实现的功能如下:(1)对于已彻底损坏的做报废处理,同时详细记录有关信息。

(2)对于由严重问题(故障)的要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。

(3)对于急需修改但又缺少的设备,需以“申请表”的形式送交上级领导请求批准购买。

新设备购入后要立即进行设备登记(包括类别、设备名、编号、型号、规格、单价、数量、购置日期、生产厂家、保质期和经办人等信息),同时更新申请表的内容。

(4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段等查询。

参考文献:谭浩强主编.Visual Basic程序设计(二)教程.清华大学出版社柳青等编. Visual Basic 程序设计教程.高等教育出版社范立南. SQL Server2000 实用教程.北京:清华大学出版社孙燕等编.Visual Basic 程序设计.高等教育出版社萨师煊王珊编.数据库系统概论.北京:高等教育出版社杨志强.Visual Basic 程序设计教程.北京:高等教育出版社.二、采用的主要方法与技术软件工程是一门从技术和组织管理两个角度研究如何用系统化、规范化和数量化等工程原理与方法去进行软件开发和维护的学科。

【精品实验报告】软件体系结构设计模式实验报告

【精品实验报告】软件体系结构设计模式实验报告

【精品实验报告】软件体系结构设计模式实验报告软件体系结构设计模式实验报告学生姓名: 所在学院: 学生学号: 学生班级: 指导老师: 完成日期:一、实验目的熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括组合模式、外观模式、代理模式、观察者模式和策略模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。

二、实验内容使用PowerDesigner和任意一种面向对象编程语言实现组合模式、外观模式、代理模式、观察者模式和策略模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。

(1) 组合模式使用组合模式设计一个杀毒软件(AntiVirus)的框架,该软件既可以对某个文件夹(Folder)杀毒,也可以对某个指定的文件(File)进行杀毒,文件种类包括文本文件TextFile、图片文件ImageFile、视频文件VideoFile。

绘制类图并编程模拟实现。

(2) 组合模式某教育机构组织结构如下图所示:北京总部教务办公室湖南分校行政办公室教务办公室长沙教学点湘潭教学点行政办公室教务办公室行政办公室教务办公室行政办公室在该教育机构的OA系统中可以给各级办公室下发公文,现采用组合模式设计该机构的组织结构,绘制相应的类图并编程模拟实现,在客户端代码中模拟下发公文。

(注:可以定义一个办公室类为抽象叶子构件类,再将教务办公室和行政办公室作为其子类;可以定义一个教学机构类为抽象容器构件类,将总部、分校和教学点作为其子类。

)(3) 外观模式某系统需要提供一个文件加密模块,加密流程包括三个操作,分别是读取源文件、加密、保存加密之后的文件。

读取文件和保存文件使用流来实现,这三个操作相对独立,其业务代码封装在三个不同的类中。

现在需要提供一个统一的加密外观类,用户可以直接使用该加密外观类完成文件的读取、加密和保存三个操作,而不需要与每一个类进行交互,使用外观模式设计该加密模块,要求编程模拟实现。

软件工程——理论与实践 实验二 系统总体设计

软件工程——理论与实践 实验二  系统总体设计

实验二系统总体设计
一、实验目的
1、掌握将数据流图映射成软件体系结构的原理
2、掌握变换流分析
3、掌握事务流分析
二、实验仪器
安装visio 2013软件的计算机一台,或使用在线processOn平台。

三、实验内容
1、将下列数据流图转换成SC软件结构图。

2、按照下列环境描述,完成系统结构化分析和设计部分工作。

要求:根据要求画出该系统的数据流图,并将其转换为软件结构图。

高考录取统分子系统有如下功能:
(1)计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件。

(2)计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。

3、将下列数据流图转换成SC软件结构图。

(事务流)
4、将下列数据流图转换成SC软件结构图。

(事务流)
四、实验步骤
1、
2、
数据流图:
结构图:
3、步骤:
五、实验报告要求
1.整理实验结果。

2.小结实验心得体会。

软件设计模式与体系结构

软件设计模式与体系结构

软件设计模式与体系结构计算机科学与技术学院《软件设计模式与体系结构》课程作业(一)(2016/2017学年第二学期)学生姓名:雷君学生专业:软件工程学生班级:142601学生学号:201426170108指导教师:王飞目录实验一1工厂方法模式——汽车保险1抽象工厂方法模式——房屋信息3实验二7组合模式——空军指挥系统7适配器模式——客户信息验证9实验三14桥接模式——几何立体体积14访问者模式——计算机部件销售软件20实验四24策略模式——整数排序24状态模式——交通信号灯错误!未定义书签。

实验五2 MVC软件体系结构2实验一工厂方法模式——汽车保险【实验内容】在例的汽车保险管理应用程序实例上添加一个名为LuxuryCarInsurance的类,并且,该类要与其他的类一样能执行相应的功能。

【添加代码】1、添加LuxuryCarInsurance类:public class LuxuryCarInsurance implements AutoInsurance{private String description;public String getInsuranceDescription(){description = " LuxuryCarInsurance: \n\nLuxuryCarInsurance coverage paysfor medical bills" +" lost wages, rehabilitation, treatment and/or" +" funeral costs for anyone injured or killed " +" by your car. Such coverage will also pay for" +" pain and suffering damages when a third " +" party successfully sues. ";return description;}}2、添加LuxuryCarPolicyProducer类:public class LuxuryCarPolicyProducer implements PolicyProducer{public AutoInsurance getPolicyObj() //Fruit factory(){return new LuxuryCarInsurance();}}3、添加GUI:(1)public static final String LUXURYCAR = "LuxuryCar Insurance";(2)cmbInsuranceType.addItem(LUXURYCAR); (3)if (type.equals(LUXURYCAR)) {pp=new LuxuryCarPolicyProducer();}【实验结果】【实验小结】使用工厂方法访问并且初始化合适的类的对象,简化了应用程序,应用程序本身不再含有大量的条件语句判定何时选取哪个类。

体系结构实验报告

体系结构实验报告

|课程实验报告软件系统结构?\]专业软件工程学生姓名刘辉软件151班级|学号17指导老师孙莉*实验一C/S结构应用设计(1)一、实验目的设计并实现一个基于多层C/S结构的数据库应用,熟悉多层C/S体系结构及其基本处理流程,了解多层结构表现层、业务逻辑层(功能层)、数据访问层所完成的功能,掌握多层C/S结构的数据库应用设计方法,对这三层进行明确分割,并在逻辑上使其独立。

学生通过本实验的训练能够熟练掌握对小型数据库应用系统三层结构层次划分方法及系统实现技术。

本次实验目的:(1)熟悉并掌握二层C/S软件体系结构的相关知识;(2)掌握二层C/S结构应用系统的分析和设计;(3)掌握一种开发二层C/S结构应用系统的技术线路;:(4)实际开发出一个简单的基于二层C/S结构的应用实例——个人通讯录管理系统。

要求:(1)需要预先掌握SQL server 2000数据库基本操作、(用C#语言)编程技术和多层C/S软件体系结构的概念;(2)进行二层C/S结构应用系统的分析和设计,在实验报告中写出个人通讯录管理系统的设计方案;(3)在SQL server 2000数据库系统中建立数据库并输入数据;(4)在中用C#语言编写表现层(UI)程序;(5)在中用C#语言编写业务逻辑层(BLL)程序;:(6)完成系统调试,得出正确的实验结果;(7)做完实验后写出本实验的实验报告。

二、实验环境奔腾以上计算机,装有SQL Server 2000数据库系统和Visual Studio 2000软件。

三、实验内容1、分别采用二层C/S结构和多层C/S结构实现个人通讯录系统。

该系统的设计目标是能够轻松地管理个人的联系人信息,包括添加、修改和删除操作。

联系人信息包括姓名、住址、电话。

整个系统的功能图如下图所示:分析系统需求,完成软件体系结构设计及模块划分、数据库设计,采用Visual C#实现系统功能!四、实验操作过程在电脑上安装好Microsoft Visual Studio 2010 用于系统的开发需要实际设计开发出一个简单的基于两层C/S结构的应用系统——个人通讯录管理系统,主要步骤和内容如下:1、在SQL Server 2000中建立数据库Contact,建立表friend。

中南大学设计模式实验2

中南大学设计模式实验2

中南大学设计模式实验2实验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)在使用该图形库时发现存在如下问题:①由于在创建窗口时每次只需要使用图形库中的一种图形,因此在更换图形时需要修改客户类源代码;②在图形库中增加并使用新的图形时需要修改客户类源代码;③客户类在每次使用图形对象之前需要先创建图形对象,有些图形的创建过程较为复杂,导致客户类代码冗长且难以维护。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京邮电大学
《软件体系结构》实验报告
实验题目软件体系结构风格之应用
姓名xxx
学号xxx
院系计算机、软件学院
指导老师周国强
2013年12月18日
一、实验目的和要求
实验目的:
通过KWIC实例分析,理解和掌握软件体系结构风格设计与实现。

实验要求:
熟练掌握基于主/子程序体系结构风格的KWIC关键词索引系统,在此基础上,完成基于面向对象体系架构风格的KWIC关键词索引系统设计与实现。

选做基于管道过滤体系架构风格的KWIC关键词索引系统;选做基于事件过程调用体系架构风格的KWIC关键词索引系统。

实验课前完成实验报告的实验目的、实验环境、实验内容、实验操作过程等内容;实验课中独立/团队操作完成实验报告的实验操作、实验结果及结论等内容;每人一台PC机,所需软件Win2003/XP、UML工具(EclipseUML/ Rose/Visio/StartUML/)、Eclipse/MyEclipse、JDK6.0等。

实验课后完成实验报告的心得体会内容,并及时提交实验报告。

二、实验课时:2
三、实验内容及操作步骤
多种软件风格设计与实现之KWIC实例:
1.采用主/子程序体系结构风格实现KWIC关键词索引系统
public static void input(String inputFile){
fr=null;
try {
fr=new (inputFile);
} catch ( e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BufferedReader br=new BufferedReader(fr);
textLines=new ArrayList<String>();
try {
while(br.ready()){
textLines.add(br.readLine());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void circularShift(){
shiftedLineIndexes=new ArrayList<String>();
for(int i=0;i<textLines.size();i++){
String orinLine=textLines.get(i);
String sarray[]=orinLine.split(" ");
for(int j=0;j<sarray.length;j++){
String newLine=sarray[j];
if(sarray.length>1){
if(j==sarray.length-1){
for(int k=0;k<(sarray.length-1);k++){
newLine=newLine+" "+sarray[k];
}
}
else{
for(int k=j+1;k<sarray.length;k++){
newLine=newLine+" "+sarray[k];
}
for(int m=0;m<j;m++){
newLine=newLine+" "+sarray[m];
}
}
}
shiftedLineIndexes.add(newLine);
}
}
public static void alphabetize(){
String[] tmpArray = new String[shiftedLineIndexes.size()];
shiftedLineIndexes.toArray(tmpArray);
Arrays.sort(tmpArray);
sortedLineIndexes=tmpArray;
}
public static void Output(String outputAddress){
fw = null;
try {
fw = new (outputAddress);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BufferedWriter bw=new BufferedWriter(fw);
for(int i=0;i<sortedLineIndexes.length;i++){
try {
bw.write(sortedLineIndexes[i]);
bw.newLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
2.采用面向对象体系架构风格实现KWIC关键词索引系统public void shift(){
ArrayList<String> shiftedLineIndexes=new ArrayList<String>();
for(int i=0;i<ls.size();i++){
String orinLine=ls.get(i);
String sarray[]=orinLine.split(" ");
for(int j=0;j<sarray.length;j++){
String newLine=sarray[j];
if(sarray.length>1){
if(j==sarray.length-1){
for(int k=0;k<(sarray.length-1);k++){
newLine=newLine+" "+sarray[k];
}
}
else{
for(int k=j+1;k<sarray.length;k++){
newLine=newLine+" "+sarray[k];
}
for(int m=0;m<j;m++){
newLine=newLine+" "+sarray[m];
}
}
}
shiftedLineIndexes.add(newLine);
}
}
ls=shiftedLineIndexes;
}
(详细代码于附件)
四、实验环境(实验设备)
Windows 7
Microsoft Office visio 2007
五.实验小结
通过本次实验,首先对软件体系结构有了更真切的了解,尤
其是对管道过滤器结构,主程序、子程序结构,抽象数据类型结构,隐式调用这四种结构的理解更加透彻了。

同时还对KWIC 有个一个认知的过程。

在实现的上述两种结构的过程中,对增强了数据结构的掌握,以及对面向对象概念的进一步理解。

编程时,遇到了各种大大小小的问题,尤其是数据结构定义方面的,深刻体会到了数据结构的重要性,同时发现了自己编写的代码移植性以及编码风格都不是很好,希望老师给予指点。

相关文档
最新文档