软件设计与体系结构实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
福建农林大学计算机与信息学院
实验报告
课程名称:软件设计与体系结构
*名:***
系:软件工程系
专业:软件工程
年级:2007
学号:*********
指导教师:***
职称:讲师
2009年12月16日
实验项目列表
福建农林大学计算机与信息学院实验报告
学院:计算机与信息学院专业:软件工程系年级:2007 姓名:陈宇翔
学号:070481024 课程名称:软件设计与体系结构实验时间:2009-10-28 实验室田实验室312、313计算机号024 指导教师签字:成绩:
实验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 ponents |
!t1.allowShareHost -> (Forall t2 : TierNodeT in ponents | 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.