收藏 分销(赏)

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

上传人:二*** 文档编号:4581528 上传时间:2024-09-30 格式:DOC 页数:54 大小:1.58MB
下载 相关 举报
软件设计与体系结构实验指导书样本.doc_第1页
第1页 / 共54页
本文档共54页,全文阅读请下载到手机保存,查看更方便
资源描述
实验1:ACME软件体系构造描述语言应用 一、实验目 1)掌握软件体系构造描述概念 2)掌握应用ACMESTUDIO工具描述软件体系构造基本操作 二、实验学时 2学时。 三、实验环境 计算机及ACMESTUDIO。 四、实验内容 运用ACME语言定义软件体系构造风格,修改ACME代码,并进行风格测试。 五、实验操作环节 一、导入Zip文档 建立一种Acme Project,并且命名为AcmeLab2。如下图: 接着导入ZIP文档,导入完ZIP文档后显示如下图: 二、修改风格 在AcmeLab2项目中,打开families下TieredFam.acme.如下图: 修改组件外观 1. 在组件类型中,双击DataNodeT;在其右边编辑器中,将产生预览;选取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. 在对话框中,类型名称输入LogicNodeT . 3. 选取TierNodeT 为父类型. 4. 单击 [Finish]. 5. 按照修改外观环节,修改LogicNodeT外观:填充颜色为浅绿色,边框颜色为黑色,大小为2,其她默认。 产生图形如下图: 添加新属性类型 1. 选取Property Types 2. 选取New按钮 3. 在对话框中,类型名称为TierPropT 4. 类型选取enum 5. 值为:client,logic,data 6. 单击[OK]. 添加属性 1. 激活属性视图页 2. 双击TierNodeT 3. 选取Properties tab 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.Components | 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 – TieredFam. 选取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. 编辑LogicNodeT 组件外观 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.单击[Finish] Notice the palette of types on the left 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) 打开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.cs 8)双击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)右击项目,新增一种类:UptoLogEvents.cs 9)双击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. 启动 安装后来就可以启动该程序。 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,一定要包括"JAVA Porfile"这一项目;例如C#,一定要包括"C# Porfile"这一项目。 8. 保存工程 保存工程,命名为LAB3.UML 9. 创造图表 从默认就在屏幕左边“Toolbox”选取“类”图标,然后左键单击diagram窗口某处。这样就使用通用名字创造了一种新类。双击,将类改名为Circle。 10. 添加属性 右击图中目的,在弹出菜单中选取“Add”中“Attribute”(被标示为绿色),为其添加一种属性(或者域),填入盼望名字“_radius”。 l 详细数据类型,在属性面板(右下侧窗口) ,由双打字,在"类型"时段。 在窗体右下边Properties面板中,找到“Type”输入框,输入double作为_radius属性类型。 l 类内部数据(域/属性)都是私有,由于她们是严格由类内部使用。因此,在Properties面板中将_radius设立为“私有” 11. 继续进行设计 重复同样过程,添加所谓名字叫做Rectangle类和double型私有成员_width和_height。 12. 创造 IShape interface l 从toolbox中,选取“Interface”,并点击图表某处。将其改名为IShape。创立后来,选中它。 l 在顶部工具栏,选取 “Stereotype Display” 下拉按钮,将值变化为“None”。这将变化以往圆形形状,使其变为成长方形。 l 还是在顶部工具栏,取消选中" Suppress Operations "。这将使咱们可以看到接口所拥有办法。 l 向IShape 接口添加返回值为doublegetArea办法。 n 可以通过右击interface图标,在弹出菜单中点击红色“Operation”按钮,然后输入getArea。 n 设定返回值类型。在“Model Explorer”中展开IShape节点,右击你刚刚创立getArea办法,并选取“Add Parameter”。在“Properties”框中,将参数名子变为空,将“DirectionKind”变为“RETURN”,将“Type”变为dboule。 l 将IShape和getAreaIsAbstract属性框打上勾,她们在图标上名字将变为斜体。这是UML原则,表达这是接口或者其她纯虚实体。 13. 添加类和接口关系 l 可以通过从toolbox中选取表达“Realization”箭头,并从Circle拖拽向IShape,使Circle实现接口IShape。重复同样过程,为Rectangle添加实现关系。这是添加了Circle 和 Rectangle对于IShape接口实现关系。 n 如果想使连接线体现为直角方式,右击连接线,并选取" Format/Line Style/Rectilinear"菜单。你通过这种方式,使箭头重叠在一起,可以使你图看起来更整洁。 14. 添加类基于接口行为 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。 16. 为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 为_shape创立一种“获得者”办法,名字叫做getShape,返回IShape 。这就是创立一种行为,名字是getShape,返回IShape 。 17. 为pizza类添加构造函数 l 为Pizza添加构造函数,右击,在弹出“Add” 菜单中选取“Operation”。从这里,增长一种普通带有dboule型price参数和IShape类型shape参数操作 l 增长一种输入参数,就像之前增长了一种返回型输出参数同样,你指定参数名称,如价格和形状等,以及恰当数据类型。 l 为Circle增长一种带有double型radius参数构造函数。 l 为Rectangle增长一种带有double型width和height参数构造函数。 18. 添加Test_Pizza类 为了阐明UML类图更多功能,又增长了一种叫做“Test_Pizza”类,它用作测试目,并使用到Pizza和IShape类。 l 两个类之间关系有各种形式。举例来说,一种类可以实例化另一种类,而不是将其作为一种成员。又或,一类办法也许需要另一种类作为输入参数,保存一种引用仅仅是为这个办法执行。 l 通过从toolbox中选取“Dependency”箭头,从一种类拖向她因此来类,来添加不通类之间依赖关系。在这个例子中, Test_Pizza 依赖于Pizza,Circle和Rectangle类,由于它实例化了它们。 l 从Properties box选取name属性,或者双击图表上“依赖线”,可觉得依赖关系添加标签。特别是,当一类实例化另一种类,咱们会把依赖线叫做“instantiates”。 l 你可以选中并拖动依赖线标签,以达到更美观效果。 l 依赖关系不会影响代码生成。 19. 生成代码: l 依照不同语言,选取不同菜单,若JAVA,点击主菜单“Tools->Java”菜单,选取“Generate Code”;若C#,点击主菜单“Tools->C#”菜单,选取“Generate Code”。 l 从对话框中选取你模块(这里也许Model1),点击“Next”。 l 为了使你模块或者图标所有类都生成stub code,选取“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. 添加实当代码 当前就开始定义程序实际做事情,例如,为图标中类描述添加实当代码。 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里面: 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)初步理解软件体系设计基本概念 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文献,在接口里面定义一种办法: void registerInterest(Observer obs); 6)展开解决方案资源管理器,将FORM1.CS修改为Controller.CS,在弹出信息框中,单击拟定按钮,单击窗体,在窗体属性对话框中,设立Text属性为:颜色Controller。修改后效果如下图1所示 图1 7)单击图上红色圆圈图标。 8)从左边工具栏见图,拖一种GroupBox控件至窗体上,并拖动位置和设立大小效果,在属性对话框中,设立其Text属性为:颜色选取器,如图所示。 9)从工具箱拖三个radioButton控件,name属性分别设立为rbtnRed,rbtnGreen,rbtnBlue,Text属性分别设立为 “红色”,“绿色”,“蓝色”,并设立好位置,效果如图3所示。 10)切换至代码模式,添加using System.Collections引用,添加controller父接口:Subject,并添加一种私有成员,效果见图4。 图4 11)定义单击单选按钮办法,代码如图5所示。 图5 12)实现Subject接口registerInterest办法,如图6所示。 图6 13)右击项目,选取“添加->新建项”,在模板中选取“Window窗体”,名称为ViewList.cs,单击添加按钮。 14)将ViewList窗体Text属性设立为:列表视图。 15)从工具栏中拖入ListBox控件,设立Name为lbColor。 16)切换至代码模式,添加ViewList父接口:Observer。 17)实现接口办法,见图8。 图8 18)定义Init办法,见图9。 图9 19)修改ViewList构造函数,见图10。 图10 20)右击项目,选取“添加->新建项”,在模板中选取“Window窗体”,名称为ViewColor.cs,单击添加按钮。 21)将ViewColor窗体Text属性设立为:颜色视图。 22)从工具栏中拖入PictureBox控件,设立Name为pbColor,设立BackColor为ActiveCaptionText。 23)切换至代码模式,添加using System.Collections引用,添加ViewColor父接口:Observer,并定义某些私有成员,效果见图11。 图11 24)定义PictureBox绘图办法,见图12。 图12 25)定义Init办法,见图13。 图13 26)实现接口办法,见图14。 图14 27)修改ViewColor构造函数,见图15 图15 28)切换至Controller代码模式,添加Init办法,并在Controller类构造函数中调用它,见图16。 图16 实验5:产品族实践 一、实验目 1)初步理解软件产品线和产品族概念 2)应用设计模式实现产品族 二、实验学时 2学时。 三、实验环境 计算机及VS。 四、实验内容 运用抽象工厂模式实现产品族。 五、实验操作环节 内容:运用抽象工厂模式实现产品族 环节: 1)打开VS.NET,新建一种项目,项目类型选取Windows,模板选取Windows应用程序,名称为PL_IMPL,选取好位置,单击拟定。 2)右击项目,选取“添加->新建项”,在模板中选取“类”,名称为Plant.cs,单击添加按钮,并完毕如图1所示代码。 图1 3)同样办法,添加Garden.CS类,并完毕如图2所示代码。 图2 4)右击项目,选取“添加->新建项”,在模板中选取“类”,名称为VeggieGarden.cs,单击添加按钮,并完毕如图3所示代码。 图3 5)右击项目,选取“添加->新建项”,在模板中选取“类”,名称为MeatGarden.cs,单击添加按钮,并完毕如图4所示代码。 图4 6)右击项目,选取“添加->新建项”,在模板中选取“组件类”,名称为GardenPicture.cs,单击添加按钮,并完毕如图5所示代码。 图5 7)单击菜单,选取“生成->生成解决方案”,或者按F6。 8)展开解决方案资源管理器,将FORM1Text属性设立为:“农/牧场主”。 9)在工具箱中,展开项目组件(本实验是PL_IMPL组件),将组件GardenPicture拖入Form1窗体,并设立BackColor属性为:ActiveCaptionText;BorderStyle为:Fixed3D;并调节好大小,见图6。 图6 10)从工具箱中,拖放3个CheckBox和2个RadioButton,属性设立见表1,见图6。 表1 控件 Name属性 Text属性 CheckBox1 ckbCenter Center CheckBox2 ckbBorder Border CheckBox3 ckbShade Shade RadioButton1 rbtnVeggie 农场 RadioButton2 rbtnMeat 牧场 11)选中Form1.cs,单击解决方案资源管理器中“查看代码”图标。 12)在Form1类中,完毕如图7所示代码。 图7 13)切换至Form1.cs设计环境,单击rbtnVeggie(农场单选框),并输入如下代码: 14)切换至Form1.cs设计环境,单击rbtnMeat(牧场单选框),并输入如下代码: 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索引系统接受某些行,每行有若干字,每个字由若干字符构成;每行都可以循环移位。重复地把第一种字删除,然后接到行末; KWIC把所有行各种移位状况按照字母表顺序输出 1)打开VS.NET,新建一种项目,项目类型选取Windows,模板选取控制台应用程序,名称为KWIC_ADT,选取好位置,单击拟定。 2)右击项目,选取“添加->新建项”,在模板中选取“类”,名称为AbstractData.cs,单击添加按钮,并完毕如图1所示代码。 图1 3)同样办法,添加Shift.CS类,并完毕如图2所示代码。 图2 4)右击项目,选取“添加->新建项”,在模板中选取“类”,名称为Alphabetizer.cs,单击添加按钮,并完毕如图3所示代码。 图3 5)右击项目,选取“添加->新建项”,在模板中选取“类”,名称为Output.cs,单击添加按钮,并完毕如图4所示代码。 图4 6)右击项目,选取“添加->新建项”,在模板中选取“类”,名称为Input.cs,单击添加按钮,并完毕如图5所示代码。 图5 7)双击program.CS文献,完毕如图6所示代码 图6 8)在E盘创立一种kwic2.txt文献,内容如下: Hello World Today is Wednesday 9)按Ctrl+F5,并查当作果。 浮现成果是倒数输出上面值。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

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

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

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

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服