问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何使用visio画UML序列图

发布网友 发布时间:2024-09-06 03:34

我来回答

1个回答

热心网友 时间:2024-09-28 19:49

 今天尝试使用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;

privateListorderLineList;

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;

}

publicListgetOrderLineList(){

returnorderLineList;

}

publicvoidsetOrderLineList(ListorderLineList){

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);

ListorderLineList=newArrayList();

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

热心网友 时间:2024-09-28 19:47

 今天尝试使用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;

privateListorderLineList;

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;

}

publicListgetOrderLineList(){

returnorderLineList;

}

publicvoidsetOrderLineList(ListorderLineList){

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);

ListorderLineList=newArrayList();

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小弟刚升到80级是法师 应该怎么弄装备啊 从哪里开始弄起 还有就是网上... 门上指纹锁要多少钱 手机百度如何搜索图片来源? 如何找出图片出处 win7电脑横屏如何处理笔记本电脑桌面变成横向了怎么办 win7电脑桌面反了怎么办电脑屏幕倒过来了怎么办 win7电脑变成竖屏快捷键我电脑变成竖屏了怎么调回来 win7系统电脑怎么横屏w7系统屏幕怎么横过来 win7系统更改电脑屏幕方向电脑屏幕旋转了怎么调整过来 调成竖屏模式电脑win7我电脑变成竖屏了怎么调回来 QQ被挡访客免费查看? k4671嘉兴到南充北3号车厢103号是靠窗位置吗? 今年春节上海有到遵义的列车吗 血压高压高低压正常是怎么回事 上海南站K4671到南充北站04列车073号是靠窗吗?这个号是靠窗边吗?_百度... 患有高血压但高压高低压正常是什么原因,应如何治疗 单纯性收缩期高血压基本介绍 单纯收缩性高血压严重吗 什么是单纯收缩期高血压 什么是单纯性收缩期高血压 单纯收缩期高血压是什么 单纯收缩性高血压是什么意思 萝卜摆放好几天又出新菜是不是还能吃吗? 泼水节的风俗和寓意 云南泼水节是几月几日 汉朝语动词性结构对比与偏误分析目录 放心借官方客服电话是多少? 放心借为什么登录不进 2023年6月21日北京外国语大学雅思口语考试时间 头条的放心借是正规网贷平台吗 抖音放心借为什么借不出来钱? 手机qq怎么免费看被挡访客? 宝宝湿疹自己会恢复吗 湿疹如何治疗好 湿疹怎么才能治好 java把visio文件转为htm的方法,或者是在jsp里面显示visio内容(最好有... 恩替卡韦分散片治疗效果分析 恩替卡韦片有什么功效和作用? 湿疹不治疗能自己好吗 乙肝抗病毒药物怎么选 湿疹一般多久好 我被一个骗子骗了游戏号 只有他手机号怎么整他 他的号码是:13221620257... 怎么去盗别人的游戏账号我东西给他骗走了听说GM是不管这件事的那些... 微信被人监听了可以报警吗 真假买到挑选好蜂王浆的方法如何鉴别蜂王浆蜂王浆的还... 一般孩子才几个月离婚孩子归谁 微信号码丢失可以报警吗? 微信号被盗,怀疑被用作违法的事,可以报警吗... 根据规定2岁孩子离婚会判给谁 经济实惠的电视背景墙什么样? 哑铃飞鸟练什么部位 哑铃飞鸟怎么训练