软件系统设计与体系结构——实验三、UML建模2
创作时间:
作者:
@小白创作中心
软件系统设计与体系结构——实验三、UML建模2
引用
CSDN
1.
https://m.blog.csdn.net/jianguosongzi/article/details/145341871
实验目的
- 学习类图的绘制;
- 学习从系统需求中识别类,并构建相应的面向对象模型;
- 学习使用顺序图描述对象之间的交互;
- 学习使用活动图为业务流程建模;
- 学习使用Visio实现正向工程和逆向工程。
实验设备
计算机及Windows操作系统、Microsoft Visio或PlayCase软件、.NET或Java等编程IDE
软件工具的实验内容及步骤
实验内容
- 根据以下描述绘制类图,再正向工程生成Java源代码(也可生成其他面向对象语言的源代码,如C++或C#等):
- 图形(Shape)可分为圆形(Circle)、矩形(Rectangle)、椭圆形(Ellipse)等具体图形,在Shape类中提供了一个抽象的draw()方法用于绘制图形,而在具体的图形类中实现该抽象draw()方法。
- 提供一个图形工厂类(ShapeFactory),该类提供一个静态方法createShape(char type),其返回类型为Shape,参数type为所需绘制图形对应的代码,例如“c”表示圆形,“r”表示矩形,“e”表示椭圆形等,在createShape()方法中,可以使用条件语句来判断所需绘制图形的类型,并根据参数的不同返回不同的具体形状对象。【注:“创建关系”是一种特殊的“依赖关系”】
- 根据如下描述绘制顺序图:
- 在某在线订房系统中,顾客确定预订的房间,系统显示预付订金信息;顾客输入信用卡账号和密码,系统请求银行信用卡系统提供支付服务;银行信用卡系统验证用户信息并返回验证通过和支付成功消息;顾客请求系统打印预订单和收据,系统打印相关资料;预订结束。
- 根据以下描述绘制某订餐系统中顾客订餐过程的活动图(要求绘制泳道):
- (1)顾客请求查看菜单;
- (2)系统显示菜单和今日特价;
- (3)顾客选菜;
- (4)系统显示订单和价格;
- (5)顾客确认订单;
- (6)系统显示可送餐时间;
- (7)顾客指定送餐时间、地点和支付方式;
- (8)系统确认接受订单,然后发送Email给顾客以确认订餐,同时发送相关订餐信息通知给餐厅员工。
实验结果
实验一
类图:
Java源代码:
// Shape.java
abstract class Shape {
// 抽象方法,子类必须实现
public abstract void draw();
}
// Circle.java
class Circle extends Shape {
@Override
public void draw() {
System.out.println("Drawing a Circle");
}
}
// Rectangle.java
class Rectangle extends Shape {
@Override
public void draw() {
System.out.println("Drawing a Rectangle");
}
}
// Ellipse.java
class Ellipse extends Shape {
@Override
public void draw() {
System.out.println("Drawing an Ellipse");
}
}
// ShapeFactory.java
class ShapeFactory {
// 静态方法,根据参数返回相应的形状对象
public static Shape createShape(char type) {
switch (type) {
case 'c':
return new Circle();
case 'r':
return new Rectangle();
case 'e':
return new Ellipse();
default:
throw new IllegalArgumentException("Unknown shape type: " + type);
}
}
}
// Main.java
public class Main {
public static void main(String[] args) {
Shape shape1 = ShapeFactory.createShape('c');
shape1.draw(); // 输出: Drawing a Circle
Shape shape2 = ShapeFactory.createShape('r');
shape2.draw(); // 输出: Drawing a Rectangle
Shape shape3 = ShapeFactory.createShape('e');
shape3.draw(); // 输出: Drawing an Ellipse
}
}
说明:
- (1)Shape 类:
这是一个抽象类,定义了一个抽象方法 draw()。 - (2)Circle、Rectangle 和 Ellipse 类:
这些类分别继承了 Shape 类,并实现了 draw() 方法。 - (3)ShapeFactory 类:
这是一个工厂类,包含一个静态方法 createShape(char type)。
该方法根据传入的字符参数返回相应的形状对象。 - (4)Main 类:
这是一个测试类,用于演示如何使用 ShapeFactory 来创建不同的形状对象并调用它们的 draw() 方法。
实验二
顺序图:
实验三
活动图:
热门推荐
液金和硅脂的区别多大?哪个好?别光看性能
胆维丁乳补钙效果怎么样
松发股份资产重组背后:收入下滑且持续亏损或触及*ST 标的业绩承诺压力较大
大学生写论文,上演AI大模型魔法对轰
新手养什么鹦鹉比较好?适合初学者的几种推荐选择
设施蓝莓园智能监测设备有什么?附常见设备清单!
2.4万亿与1476亿:2024年分红回购规模均创历史新高,开年13天马力全开
书评 | 充满烟火气的乡村世界
第73集团军某旅开展实战化20公里战斗体能训练
健康美味全蔬菜汉堡的制作方法(自制营养丰富,口感浓郁的全蔬菜汉堡让你爱上素食)
走近数学世界 培育数学素养
银联云闪付能扫微信经营收款码,背后有深意
【家常版盐水鸭】
中秋为何要喝桂花酒?
快消品行业利润是多少?如何提升盈利能力
揭秘导弹速度之战:从低速到超高速,谁将主宰未来战场?
秋天吃什么好?10种食物养生效果好,值得一吃!
网络环境下犯罪行为的心理特征及其矫治探讨
USB3.0能插到2.0口用吗?一文详解兼容性问题
《道德经》的现代实践:成功案例的启示
新生开学季,你知道Orientation Week都要做什么吗?
GIF Example
万能卤汁配方及调制方法
国产算力与模型创新协同破解AI发展困局
如何计算寄件邮费:国内与国际邮费计算指南
初次配眼镜,应选择哪种类型的眼镜以改善近视
盐酸二甲双胍缓释片是饭前使用还是饭后使用?
财产清查结果要求的法律分析及合规操作指南
农历闰二月十九是什么日子
为什么PDF文件在某些阅读器中显示不完整?