收藏 分销(赏)

软件设计与体系结构实验指导书样本.doc

上传人:二*** 文档编号:4581528 上传时间:2024-09-30 格式:DOC 页数:54 大小:1.58MB
下载 相关 举报
软件设计与体系结构实验指导书样本.doc_第1页
第1页 / 共54页
亲,该文档总共54页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、实验1:ACME软件体系构造描述语言应用一、实验目1)掌握软件体系构造描述概念2)掌握应用ACMESTUDIO工具描述软件体系构造基本操作二、实验学时 2学时。三、实验环境计算机及ACMESTUDIO。四、实验内容运用ACME语言定义软件体系构造风格,修改ACME代码,并进行风格测试。五、实验操作环节 一、导入Zip文档建立一种Acme Project,并且命名为AcmeLab2。如下图:接着导入ZIP文档,导入完ZIP文档后显示如下图:二、修改风格在AcmeLab2项目中,打开families下TieredFam.acme.如下图:修改组件外观 1. 在组件类型中,双击DataNodeT;在

2、其右边编辑器中,将产生预览;选取Modify按钮,将打开外观编辑器对话框。 2. 一方面变化图形:找到Basic shape section,在Stock image dropdown menu中选取Repository类型.3. 在Color/Line Properties section修改填充颜色为深蓝色。 4. 在颜色对话框中选取深蓝色,并单击 OK. 5. 修改图形边框颜色为绿色 7. 单击Label tab,在Font Settings section,设立字体颜色为白色,单击OK 产生图形如下图:添加新元素类型1. 在Component Types section选取New按钮2

3、. 在对话框中,类型名称输入LogicNodeT . 3. 选取TierNodeT 为父类型. 4. 单击 Finish. 5. 按照修改外观环节,修改LogicNodeT外观:填充颜色为浅绿色,边框颜色为黑色,大小为2,其她默认。 产生图形如下图:添加新属性类型 1. 选取Property Types 2. 选取New按钮 3. 在对话框中,类型名称为TierPropT 4. 类型选取enum5. 值为:client,logic,data6. 单击OK. 添加属性 1. 激活属性视图页2. 双击TierNodeT 3. 选取Properties tab 4. 右击空白位置,或者单击图标, 选

4、取新建属性 5. 属性名为tier. 6. 类型为TierPropT(找不到,则直接输入TieredFam.TierPropT)7.单击 OK. 添加规则 1. 单击Family editor中TieredFam (Press to select). 2. 选取属性视图中规则页 3. 单击 生成新规则 4. 规则名为hostCheck,选取invariant单选项 5. 在规则框中输入(直接粘贴过去) Forall t1 :TierNodeT in self.Components | !t1.allowShareHost - (Forall t2 :TierNodeT in self.Comp

5、onents | t1 != t2 - t1.host != t2.host) 6. 单击 Parse Rule 以确认无语法错误,有错误,要重新写。 7. 在标签中输入 “Tier nodes respect host assignment.” 8. 在出错标签中输入 “Two nodes that cannot share a host must not reside on the same host.” 9. 单击OK 。若前面有语法错误,按钮是灰色 10. 保存. Acme代码编辑 1. 查看编辑器底端区域,有3个区:Overview,Acme Source and Family Ti

6、eredFam. 选取Source 2. 在代码中找到TierNodeT 3. 复制其中属性内容 4. 定位至ClientNodeT,粘贴刚才复制内容 5. 把tier属性值赋值为client. Component Type ClientNodeT extends TierNodeT with Property tier :TierPropT = client; 6. 同样把复制内容粘贴在LogicNodeT和 DataNodeT中,前者tier值为logic,后者tier值为data. 7. 单击TieredFam editor tab,若有错,将指出错误 添加可视变量1. 编辑LogicN

7、odeT 组件外观 2. 选取Variants tab. 3. 单击 New 创立新变量 4. 名为:Not logic tier. 5. 选取基于条件单选按钮 6. 下拉菜单选取allowSharedHost,条件选取=,值输入false 7. 设立填充颜色为深绿色 8. 单击 OK 测试风格 1.在NavigatorAcmeLab2中,单击右键, 在弹出式菜单中选取New Acme System. 2. 系统名为TestSystem. 4. 单击Next. 5. 在风格类型中,选取内容如下图所示。 6.单击FinishNotice the palette of types on the l

8、eft from which you can drag and drop an element to create an instance. 7.在右边palette面板中,拖入 4个 client nodes和1个logic node ,并具备4个ports ,同步拖入4个connectors ,实现客户端和逻辑层连接。 实验2:SOA实践一、实验目1)初步理解SOA体系构造2)掌握用Web service技术实现SOA二、实验学时 2学时。三、实验环境计算机及VS。四、实验内容Web service实现。六、实验操作环节内容一:Web Services实现环节:1 创立WEB服务1) 打开

9、VS.NET,新建一种网站,在对话框中选取“ASP.NET WEB服务”,选取好位置,把Website1改为“IMPLEMENTWS”,单击拟定。2)展开解决方案资源管理器,在“APP_CODE”下创立3个文献夹,依次命名为:DA,Model,Util,见下图:3)右击DA文献夹,选取添加新项,新增一种类:DataAccess.cs,按同样办法,在MODEL和UTIL文献夹中,添加入下图所示类。4)右击项目,选取添加引用(注意不是Web引用),选取浏览页,定位拷贝DLL,见下图5)完毕DATA.CS代码6)完毕DataAccess.CS代码 7)完毕ActivityIdHeader.cs8)双

10、击Service.CS文献,完毕代码9)编译,并运营,查看效果。一种WEB服务编写完毕。2 创立WINDOWS应用1)右击解决方案,选取添加-新项目2)按下图完毕:3)右击项目,选取添加引用(注意不是Web引用),选取浏览页,定位拷贝DLL,见下图4)右击项目,新建文献夹,并在其下新增一种类,并完毕代码,如下图所示5)添加Web引用,右击项目,选取添加WEB引用,在URL中输入,WEB服务地址,然后单击迈进,可以修改引用名,单击“添加引用”按钮6)双击FORM1.CS,在窗体上放置一种按钮和一种标签,其中标签命名为Result,按钮text为“get data”7)双击按钮,完毕如下代码8)右

11、击项目,新增一种类:UptoLogEvents.cs9)双击PROGRAM.CS,完毕代码10)设立APPFORWEBSERVICE为启动项目,运营,查当作果 实验3:MDA实践一、实验目1)初步理解MDA框架。2)理解PSM到CODE过程。3)掌握应用ECO实现MDA过程。二、实验学时 6学时。三、实验环境计算机及STARUML和VS。四、实验内容(1)StarUML实践五、实验操作环节实验内容一:StarUML实践1. 安装:一方面,咱们必要先安装将要使用软件。StarUML ,是一种开放源码软件, 遵循GPL合同允许(GNU公共允许证) ,并免费提供下载。 2. 启动安装后来就可以启动该

12、程序。 3. 添加新工程在New Project By Approach对话框会弹出。选取“Empty Project”并且按下拟定。4. 选取模块在右边“Model Explorer”框中选定“Untitled”模块。5. 添加模块通过“Model”主菜单,或右击选定模型,可以 Add/Model 6. 添加类图通过“Model”主菜单,或右击选定模型,可以“Add Diagram/Class Diagram”:7. 设立profile通过“Model/Profile.”菜单去设立工程所需profile。这决定了工程所使用规则和商定。依照语言,选取不同Profile,例如JAVA,一定要包括

13、JAVA Porfile这一项目;例如C#,一定要包括C# Porfile这一项目。 8. 保存工程保存工程,命名为LAB3.UML 9. 创造图表从默认就在屏幕左边“Toolbox”选取“类”图标,然后左键单击diagram窗口某处。这样就使用通用名字创造了一种新类。双击,将类改名为Circle。 10. 添加属性右击图中目的,在弹出菜单中选取“Add”中“Attribute”(被标示为绿色),为其添加一种属性(或者域),填入盼望名字“_radius”。 l 详细数据类型,在属性面板(右下侧窗口) ,由双打字,在类型时段。 在窗体右下边Properties面板中,找到“Type”输入框,输入

14、double作为_radius属性类型。l 类内部数据(域/属性)都是私有,由于她们是严格由类内部使用。因此,在Properties面板中将_radius设立为“私有”11. 继续进行设计重复同样过程,添加所谓名字叫做Rectangle类和double型私有成员_width和_height。 12. 创造 IShape interface l 从toolbox中,选取“Interface”,并点击图表某处。将其改名为IShape。创立后来,选中它。l 在顶部工具栏,选取 “Stereotype Display” 下拉按钮,将值变化为“None”。这将变化以往圆形形状,使其变为成长方形。 l 还

15、是在顶部工具栏,取消选中 Suppress Operations 。这将使咱们可以看到接口所拥有办法。 l 向IShape 接口添加返回值为doublegetArea办法。 n 可以通过右击interface图标,在弹出菜单中点击红色“Operation”按钮,然后输入getArea。n 设定返回值类型。在“Model Explorer”中展开IShape节点,右击你刚刚创立getArea办法,并选取“Add Parameter”。在“Properties”框中,将参数名子变为空,将“DirectionKind”变为“RETURN”,将“Type”变为dboule。l 将IShape和getA

16、reaIsAbstract属性框打上勾,她们在图标上名字将变为斜体。这是UML原则,表达这是接口或者其她纯虚实体。 13. 添加类和接口关系l 可以通过从toolbox中选取表达“Realization”箭头,并从Circle拖拽向IShape,使Circle实现接口IShape。重复同样过程,为Rectangle添加实现关系。这是添加了Circle 和 Rectangle对于IShape接口实现关系。 n 如果想使连接线体现为直角方式,右击连接线,并选取 Format/Line Style/Rectilinear菜单。你通过这种方式,使箭头重叠在一起,可以使你图看起来更整洁。 14. 添加类

17、基于接口行为l 由于Circle和Rectangle类都实现了IShape接口,就必要有同样行为(办法)。n 在“Model Explorer”面板中,复制getArea法(按Ctrl-C或者右键点击并选取Copy菜单),并粘贴到Circle和Rectangle类。 n 这些实现了办法在Circle和Rectangle类中都不是抽象,而是详细。这是由于她们事实上是执行某些特定行为(例如,为一种圆形和长方形分别计算面积) ,因此不要勾选IsAbstract框。 15. 添加Pizza类 l 向Pizza添加double型私有域_price。l 添加返回double类型共有操作getPrice。1

18、6. 为Pizza类添加IShape 引用l 从toolbox中选取 DirectedAssociation 箭头,点击Pizza类,并向IShape拖拽 。n 选中箭头,在右边“Properties”框上,将name一栏改为“has-a”,“End1.Aggregation” 一栏改为“AGGREGATE”(这个图示阐明Pizza和shape对象是“聚合“关系)。n 将“End2.Name”一栏改为_shape 。这样就自动为Pizza添加一种名字为_shape,使用IShape接口私有域,所谓_shape型ishape以pizza饼。 n 将“End2.Visibility”改为私有。 l

19、 为_shape创立一种“获得者”办法,名字叫做getShape,返回IShape 。这就是创立一种行为,名字是getShape,返回IShape 。 17. 为pizza类添加构造函数l 为Pizza添加构造函数,右击,在弹出“Add” 菜单中选取“Operation”。从这里,增长一种普通带有dboule型price参数和IShape类型shape参数操作 l 增长一种输入参数,就像之前增长了一种返回型输出参数同样,你指定参数名称,如价格和形状等,以及恰当数据类型。 l 为Circle增长一种带有double型radius参数构造函数。l 为Rectangle增长一种带有double型wi

20、dth和height参数构造函数。 18. 添加Test_Pizza类为了阐明UML类图更多功能,又增长了一种叫做“Test_Pizza”类,它用作测试目,并使用到Pizza和IShape类。 l 两个类之间关系有各种形式。举例来说,一种类可以实例化另一种类,而不是将其作为一种成员。又或,一类办法也许需要另一种类作为输入参数,保存一种引用仅仅是为这个办法执行。 l 通过从toolbox中选取“Dependency”箭头,从一种类拖向她因此来类,来添加不通类之间依赖关系。在这个例子中, Test_Pizza 依赖于Pizza,Circle和Rectangle类,由于它实例化了它们。 l 从Pro

21、perties box选取name属性,或者双击图表上“依赖线”,可觉得依赖关系添加标签。特别是,当一类实例化另一种类,咱们会把依赖线叫做“instantiates”。 l 你可以选中并拖动依赖线标签,以达到更美观效果。l 依赖关系不会影响代码生成。 19. 生成代码: l 依照不同语言,选取不同菜单,若JAVA,点击主菜单“Tools-Java”菜单,选取“Generate Code”;若C#,点击主菜单“Tools-C#”菜单,选取“Generate Code”。l 从对话框中选取你模块(这里也许Model1),点击“Next”。l 为了使你模块或者图标所有类都生成stub code,选取

22、“Select All”然后按“Next”。 l 选取一种有效输出目录,“Next”。 l 若C#,请务必选中“Generate the Documentation by C#Doc”,“Generate empty C#Doc”,若JAVA,请务必选中“Generate the Documentation byJAVADoc”,“Generate empty JAVADoc”,所有其她复选框不选中,“Next”。 l 当前StarUML将从你图产生代码,点击“Finish”退出对话框。 l 当前,您可以编辑生成代码,以增长应用。 20. 添加实当代码当前就开始定义程序实际做事情,例如,为图标

23、中类描述添加实当代码。 21. 逆向工程 StarUML还可以从既有Java/C#代码创立一种类图,这被称为“reverse engineering”,当想从既有代码生成图表,或者你修改了SU生成代码,并且想在图表中反映出来时候,逆向工程功能就非常有用了。l 到主菜单栏中选取“Tools/C#或Java/Reverse Engineer.”,可以将既有代码逆向工程。 l 选取C#/Java代码所在目录,并点击“Add”或“Add All”按钮,将它们涉及在逆向工程过程中,然后单击“Next” l 选取想将类加入模块,这里也许是“Model1”,然后“Next”。 l 在Option Setup

24、里面: n 确认“public”,“package”,“protected”和“private”是选中(这是默认设立)。n 同样,在默认状况下,单选按钮“Create the field to the Attribute”也是选中。 n 除非你想SU创立其她东西,例如布局很糟糕包括所有类图表,不要选中“Create Overview Diagram”框。n 当你对选项做了检查后,点击“Run”。n 点击完毕退出对话框时,就完毕了。 l SU会向模块添加导入类,但不是图表。为了将它添加到图,只需要简朴地从Model Explorer拖动它们即可。 实验4:MVC实践一、实验目1)初步理解软件体系

25、设计基本概念2)应用设计模式实现MVC二、实验学时 2学时。三、实验环境计算机及VS。四、实验内容运用Observer模式实现MVC。五、实验操作环节环节:1)打开VS.NET,新建一种项目,项目类型选取Windows,模板选取Windows应用程序,名称为MVC_IMPL,选取好位置,单击拟定。2)右击项目,选取“添加-新建项”,在模板中选取“接口”,名称为Observer.cs,单击添加按钮。3)同样办法,添加Subject.CS接口。4)双击Observer.CS文献,在接口里面定义一种办法: void sendNotify(string message);5)双击Subject.CS文

26、献,在接口里面定义一种办法: void registerInterest(Observer obs);6)展开解决方案资源管理器,将FORM1.CS修改为Controller.CS,在弹出信息框中,单击拟定按钮,单击窗体,在窗体属性对话框中,设立Text属性为:颜色Controller。修改后效果如下图1所示图17)单击图上红色圆圈图标。8)从左边工具栏见图,拖一种GroupBox控件至窗体上,并拖动位置和设立大小效果,在属性对话框中,设立其Text属性为:颜色选取器,如图所示。9)从工具箱拖三个radioButton控件,name属性分别设立为rbtnRed,rbtnGreen,rbtnBl

27、ue,Text属性分别设立为 “红色”,“绿色”,“蓝色”,并设立好位置,效果如图3所示。10)切换至代码模式,添加using System.Collections引用,添加controller父接口:Subject,并添加一种私有成员,效果见图4。图411)定义单击单选按钮办法,代码如图5所示。图512)实现Subject接口registerInterest办法,如图6所示。图613)右击项目,选取“添加-新建项”,在模板中选取“Window窗体”,名称为ViewList.cs,单击添加按钮。14)将ViewList窗体Text属性设立为:列表视图。15)从工具栏中拖入ListBox控件,设

28、立Name为lbColor。16)切换至代码模式,添加ViewList父接口:Observer。17)实现接口办法,见图8。图818)定义Init办法,见图9。图919)修改ViewList构造函数,见图10。图1020)右击项目,选取“添加-新建项”,在模板中选取“Window窗体”,名称为ViewColor.cs,单击添加按钮。21)将ViewColor窗体Text属性设立为:颜色视图。22)从工具栏中拖入PictureBox控件,设立Name为pbColor,设立BackColor为ActiveCaptionText。23)切换至代码模式,添加using System.Collectio

29、ns引用,添加ViewColor父接口:Observer,并定义某些私有成员,效果见图11。图1124)定义PictureBox绘图办法,见图12。图1225)定义Init办法,见图13。图1326)实现接口办法,见图14。图1427)修改ViewColor构造函数,见图15图1528)切换至Controller代码模式,添加Init办法,并在Controller类构造函数中调用它,见图16。图16 实验5:产品族实践一、实验目1)初步理解软件产品线和产品族概念2)应用设计模式实现产品族二、实验学时 2学时。三、实验环境计算机及VS。四、实验内容运用抽象工厂模式实现产品族。五、实验操作环节内容

30、:运用抽象工厂模式实现产品族环节:1)打开VS.NET,新建一种项目,项目类型选取Windows,模板选取Windows应用程序,名称为PL_IMPL,选取好位置,单击拟定。2)右击项目,选取“添加-新建项”,在模板中选取“类”,名称为Plant.cs,单击添加按钮,并完毕如图1所示代码。图13)同样办法,添加Garden.CS类,并完毕如图2所示代码。图24)右击项目,选取“添加-新建项”,在模板中选取“类”,名称为VeggieGarden.cs,单击添加按钮,并完毕如图3所示代码。图35)右击项目,选取“添加-新建项”,在模板中选取“类”,名称为MeatGarden.cs,单击添加按钮,并

31、完毕如图4所示代码。图46)右击项目,选取“添加-新建项”,在模板中选取“组件类”,名称为GardenPicture.cs,单击添加按钮,并完毕如图5所示代码。图57)单击菜单,选取“生成-生成解决方案”,或者按F6。8)展开解决方案资源管理器,将FORM1Text属性设立为:“农/牧场主”。9)在工具箱中,展开项目组件(本实验是PL_IMPL组件),将组件GardenPicture拖入Form1窗体,并设立BackColor属性为:ActiveCaptionText;BorderStyle为:Fixed3D;并调节好大小,见图6。图610)从工具箱中,拖放3个CheckBox和2个Radio

32、Button,属性设立见表1,见图6。表1控件Name属性Text属性CheckBox1ckbCenterCenterCheckBox2ckbBorderBorderCheckBox3ckbShadeShadeRadioButton1rbtnVeggie农场RadioButton2rbtnMeat牧场11)选中Form1.cs,单击解决方案资源管理器中“查看代码”图标。12)在Form1类中,完毕如图7所示代码。图713)切换至Form1.cs设计环境,单击rbtnVeggie(农场单选框),并输入如下代码:14)切换至Form1.cs设计环境,单击rbtnMeat(牧场单选框),并输入如下代

33、码:15)切换至Form1.cs设计环境,单击ckbCenter(Center多选框),并输入如下代码:16)切换至Form1.cs设计环境,单击ckbBorder(Border多选框),并输入如下代码:17)切换至Form1.cs设计环境,单击ckbShade(Shade多选框),并输入如下代码:18)按Ctrl+F5,查当作果。 实验6:软件体系构造风格实践一、实验目1)初步理解典型软件体系构造2)应用抽象数据类型风格实现KWIC系统二、实验学时 2学时。三、实验环境计算机及VS。四、实验内容应用抽象数据类型风格实现KWIC系统。五、实验操作环节KWIC描述:KWIC索引系统接受某些行,每

34、行有若干字,每个字由若干字符构成;每行都可以循环移位。重复地把第一种字删除,然后接到行末; KWIC把所有行各种移位状况按照字母表顺序输出1)打开VS.NET,新建一种项目,项目类型选取Windows,模板选取控制台应用程序,名称为KWIC_ADT,选取好位置,单击拟定。2)右击项目,选取“添加-新建项”,在模板中选取“类”,名称为AbstractData.cs,单击添加按钮,并完毕如图1所示代码。图13)同样办法,添加Shift.CS类,并完毕如图2所示代码。图24)右击项目,选取“添加-新建项”,在模板中选取“类”,名称为Alphabetizer.cs,单击添加按钮,并完毕如图3所示代码。图35)右击项目,选取“添加-新建项”,在模板中选取“类”,名称为Output.cs,单击添加按钮,并完毕如图4所示代码。图46)右击项目,选取“添加-新建项”,在模板中选取“类”,名称为Input.cs,单击添加按钮,并完毕如图5所示代码。 图57)双击program.CS文献,完毕如图6所示代码图68)在E盘创立一种kwic2.txt文献,内容如下:Hello WorldToday is Wednesday9)按Ctrl+F5,并查当作果。浮现成果是倒数输出上面值。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服