一、 下载office visio 2016 二、 开始安装 但是提示卸载原本的office 三、 网上找寻答案 于是按照这篇文章https://jingyan.baidu.com/article/19192ad8c1d6dae53e570735.html 将regedit products下所有 00006的都删除了安装......
2021-06-25 1 Visio,2016,与,原本,的,office,安装,冲突,最终,一,
今天尝试使用visio画了一个序列图。
话不多说,先打开visio,新建一个UML序列。

先新建几个对象生命线

加入几个激活

而后是消息,实线表示请求,虚线表示响应。

当然如果不影响理解,可以不用每个请求都配上一个响应。
此UML例子是在《UML精粹:标准对象建模语言简明指南》中拿过来的,为了更好的理解这个UML,下面使用java来实现此UML。
procuct
packagecom.simon.uml.sequenceDiagram;
/**
*CreatedbyIntelliJIDEA.
*
*@author:Simon
*@date:2019-05-09
*@time:14:50
*@description:产品
*/
publicclassProduct{
privateStringname;
privatedoubleprice;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicdoublegetPrice(){
returnprice;
}
publicdoublegetPrice(intnumber){
doubleorderLinePrice=price*number;
System.out.println("productname:"+getName()
+"\tprice:"+getPrice()
+"\tnumber:"+number
+"\torderlineprice:"+orderLinePrice
);
returnorderLinePrice;
}
publicvoidsetPrice(doubleprice){
this.price=price;
}
}
customer
packagecom.simon.uml.sequenceDiagram;
/**
*CreatedbyIntelliJIDEA.
*
*@author:Simon
*@date:2019-05-09
*@time:14:51
*@description:客户
*/
publicclassCustomer{
privatedoublediscount;
publicdoublegetDiscountedValue(Orderorder){
returndiscount*order.getBaseValue();
}
publicdoublegetDiscount(){
returndiscount;
}
publicvoidsetDiscount(doublediscount){
this.discount=discount;
}
}
order
packagecom.simon.uml.sequenceDiagram;
importjava.util.List;
/**
*CreatedbyIntelliJIDEA.
*
*@author:Simon
*@date:2019-05-09
*@time:14:50
*@description:订单
*/
publicclassOrder{
privatedoublebaseValue;
privateCustomercustomer;
privateList<OrderLine>orderLineList;
publicdoublecalculatePrice(){
doublesumOrderLinePrice=0;
for(OrderLineorderLine:orderLineList){
doubleorderLinePrice=orderLine.calculatePrice();
sumOrderLinePrice+=orderLinePrice;
}
this.setBaseValue(sumOrderLinePrice);
System.out.println("orderbaseprice:"+sumOrderLinePrice);
doublediscountedValue=getCustomer().getDiscountedValue(this);
System.out.println("orderdiscountedprice:"+discountedValue);
returndiscountedValue;
}
publicdoublegetBaseValue(){
returnbaseValue;
}
publicvoidsetBaseValue(doublebaseValue){
this.baseValue=baseValue;
}
publicList<OrderLine>getOrderLineList(){
returnorderLineList;
}
publicvoidsetOrderLineList(List<OrderLine>orderLineList){
this.orderLineList=orderLineList;
}
publicCustomergetCustomer(){
returncustomer;
}
publicvoidsetCustomer(Customercustomer){
this.customer=customer;
}
}
orderline
packagecom.simon.uml.sequenceDiagram;
/**
*CreatedbyIntelliJIDEA.
*
*@author:Simon
*@date:2019-05-09
*@time:14:50
*@description:订单明细
*/
publicclassOrderLine{
privateintnumber;
privateProductproduct;
publicOrderLine(intnumber,Productproduct){
this.number=number;
this.product=product;
}
publicdoublecalculatePrice(){
returnproduct.getPrice(number);
}
publicintgetNumber(){
returnnumber;
}
publicvoidsetNumber(intnumber){
this.number=number;
}
publicProductgetProduct(){
returnproduct;
}
publicvoidsetProduct(Productproduct){
this.product=product;
}
}
order的测试用例
packagecom.simon.uml.sequenceDiagram;
importorg.junit.Assert;
importjava.util.ArrayList;
importjava.util.List;
/**
*CreatedbyIntelliJIDEA.
*
*@author:Simon
*@date:2019-05-09
*@time:15:23
*@description:
*/
publicclassOrderTest{
@org.junit.Test
publicvoidcalculatePrice(){
//这个商品是鞋子,123块钱一双
ProductproductShoes=newProduct();
productShoes.setName("shoes");
productShoes.setPrice(123);
//这个商品是袜子,8块钱一双
ProductproductSocket=newProduct();
productSocket.setName("socket");
productSocket.setPrice(8);
//这是一个老客户,打七折
Customercustomer=newCustomer();
customer.setDiscount(0.7);
//这个客户下了一个单
Orderorder=newOrder();
order.setCustomer(customer);
//买了一双鞋子,两双袜子
OrderLineorderLineShoes=newOrderLine(1,productShoes);
OrderLineorderLineSocket=newOrderLine(2,productSocket);
List<OrderLine>orderLineList=newArrayList<OrderLine>();
orderLineList.add(orderLineShoes);
orderLineList.add(orderLineSocket);
order.setOrderLineList(orderLineList);
//算一算总共多少钱
doublepriceActual=order.calculatePrice();
Assert.assertEquals("97.3",String.valueOf(priceActual));
}
}
测试用例的输出
productname:shoesprice:123.0number:1orderlineprice:123.0
productname:socketprice:8.0number:2orderlineprice:16.0
orderbaseprice:139.0
orderdiscountedprice:97.3
标签: UML序列图
相关文章
一、 下载office visio 2016 二、 开始安装 但是提示卸载原本的office 三、 网上找寻答案 于是按照这篇文章https://jingyan.baidu.com/article/19192ad8c1d6dae53e570735.html 将regedit products下所有 00006的都删除了安装......
2021-06-25 1 Visio,2016,与,原本,的,office,安装,冲突,最终,一,
软件安装 一:链接: https://pan.baidu.com/s/10021SpYTPLbsT6WIKMEcKQ 提取码: r9dd 安装完毕打开visio可以看到产品未激活,先关闭,进行下面的破解激活。 软件破解 链接: https://pan.baidu.com/s/1aisfdMnOI6DR_BAKw......
2021-06-25 22 Visio,2013,64位,下载,安装,以及,破解,激活,完美,
下面我们详解安装最新版Visio: 首先,下载链接(百度网盘):pan.baidu.com/s/12Zd8zX_hostaz-SHdSZGcw 提取码: gxmx 下载好后,接下来就是安装了: 1、找到文件所在位置; 2、右键点击解压到当前文件......
2021-06-25 146 Visio,Pro,2019,下载及,安装,激活,破解,教程,下面,
故障树分析图 从一个可能的事故开始,自上而下、一层层的寻找顶事件的直接原因和间接原因事件,直到基本原因事件,并用逻辑图把这些事件之间的逻辑关系表达出来。 操作步骤如下: 1......
2021-06-25 535 Visio绘制故障树分析图
本文和大家重点讨论一下用Visio画UML图基本操作,画UML图有好多种工具,VISIO只是其中一种,VISIO的动作非常轻快.很多人都在用。下面就让我们一起来看一下具体介绍吧。 用Visio画UML图基本操作......
2021-06-25 614 Visio,画,UML,图,基本操作,及,技巧,解析,本文,和,