切换导航
首页
技术问答
编程语言
前端开发
移动开发
开发工具
程序设计
行业应用
CMS系统
服务器
频道导航
▸ PHP
▸ Java
▸ Java SE
▸ Python
▸ C#
▸ C&C++
▸ Ruby
▸ VB
▸ asp.Net
▸ Go
▸ Perl
▸ netty
▸ Django
▸ Delphi
▸ Jsp
▸ .NET Core
▸ Spring
▸ Flask
▸ Springboot
▸ SpringMVC
▸ Lua
▸ Laravel
▸ Mybatis
▸ Asp
▸ Groovy
▸ ThinkPHP
▸ Yii
▸ swoole
▸ HTML
▸ HTML5
▸ JavaScript
▸ CSS
▸ jQuery
▸ Bootstrap
▸ Angularjs
▸ TypeScript
▸ Vue
▸ Dojo
▸ Json
▸ Electron
▸ Node.js
▸ extjs
▸ Express
▸ XML
▸ ES6
▸ Ajax
▸ Flash
▸ Unity
▸ React
▸ Flex
▸ Ant Design
▸ Web前端
▸ 微信小程序
▸ 微信公众号
▸ iOS
▸ Android
▸ Swift
▸ Hybrid
▸ Cocos2d-x
▸ Flutter
▸ Xcode
▸ Silverlight
▸ cocoa
▸ Cordova
前端之家
VB
Thinking in UML(一)从现实世界到设计模型
Thinking in UML(一)从现实世界到设计模型
2019-12-29
VB
前端之家
前端之家
收集整理的这篇文章主要介绍了
Thinking in UML(一)从现实世界到设计模型
,
前端之家
小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_
301
_0@
通过开发机房收费系统,从个人开发vb.net版到合作开发,自己对项目的认识也在一点点的积累着。当我们做过项目之后,再回头去看看那些关于关于面向对象、软件架构、面向对象分析的书的时候,那种感觉是很美妙的。接下来,我将用一个系列
文章
来讲述对UML在软件过程中的思考。
@H_
301
_0@
我们在开发项目的时候,我们首先会想到需要分析,然后呢,会想到用UML中的用例图来捕获需求;接下来呢,我们会根据自己的需求分析,然后结合自己的用例图,就开始了对类的抽象;接着是对给类
添加
方法
,接下来呢,我们最常用的会是时序图,用来表示一个个的用例实现,好象这一切都是自然而然的事,在对类进行抽象的时候,更象是一拍脑门”嗯,就是这样的!”。
@H_
301
_0@
RUP与UML
@H_
301
_0@
实际上不仅仅是RUP和UML的关系,对软件项目来说,面向对象也好,面向过程也好,UML也好,UC矩阵也好,这些都不是最重要的,软件项目真正的是软件过程,软件过程的需要才是这些工具和语言诞生的原因。因此建议大家在学习UML之前,应当先系统学习软件过程。只有掌握了软件过程,才会知识为什么要有用例,为什么要有分析模型;站在软件过程的立场,那些孤独的UML视图才会变得有生命力,才会知道在什么时候,在什么地方需要用什么样的UML图符来表达软件的观点,也才会知道什么时候,在什么地方需要用什么样的UML图符来表达软件观点,也才会知道UML的那些视图到底在软件开发过程里起到了什么作用。认识到这些,UML的元模型和视图就不会面目可憎,它们是一群有着强大能力的精灵,帮助我们在复杂的软件工程道路上搭起一座座通向光明目标的桥梁。
@H_
301
_0@
从现实世界到设计模型
@H_
301
_0@
1、从现实世界到业务模型
@H_
301
_0@
这是把现实世界映射到对象世界的第一步。UML采用用例这一关键元素捕获了现实世界的人要做的事,再通过用例场景、领域模型等视图将现实世界的人、事、物、规则这些构成现实世界的元素用UML这咱语言描述出来。面UML本身被设计成为一种不但适于现实世界理解,也适于对象世界理解的语言,所以用UML来描述现实世界这句话可以衍生换一下说法,变成:现实世界被我们用一种对象型语言描述。
@H_
301
_0@
2、从业务模型到概念模型
@H_
301
_0@
这是从对象世界来描述现实世界的
方法
。业务模型是用分析类来描述的,用例所代表的现实的业务过程,被“边界”、“控制”、“实体”以及“包”、“组件”等概述替代。面这些概念是可以被计算机理解的。现实世界千差万别的业务,都用“边界”、“控制”、“实体”这几个固定的元素来描述,也就是说,现实具体的业务被“抽象”成几个固定的概念。同时,这些概念还可以用“包”、“组件”等这些与现实世界毫不相干的纯计算机逻辑术语包装。这说明概念模型是计算机视角,或者说是对象视角的,而且这些对象视频的分析类所描述的信息是从映射了现实世界的业务模型转化而来的。
@H_
301
_0@
可以说,从业务模型到概念模型这一过程,正是我们需要的一种从对象世界来描述现实世界的
方法
。
@H_
301
_0@
3、从概念模型到设计模型
@H_
301
_0@
这是验证对象世界是否正确反映了现实世界的
方法
。“边界”、“控制”、“实体”这些对象化的概念,虽然是计算机可以理解的,但是它并不是真正的对象实例,即它们并不是可执行
代码
,概念模型只是纸上谈兵。真正的对象世界行为是由Java类、C++类、EJB、COM+等这些可执行
代码
构成的。然而,如果缺省了从概念模型到设计模型这个过程,Java类也好,C++也好,它们的行为是否正确凭什么去验证呢?
@H_
301
_0@
换句话说,荆概念模型在特定环境和条件下的“实例”化,实例化后的对象行为“执行”了概念模型描述的那些信息,因此设计模型得以通过概念模型追溯到原始需求来验证对象世界是否正确反映了现实世界。
@H_
301
_0@
这张图,可以深刻地反映出这一点
@H_
301
_0@
上一篇:机房收费系统总结(三)
下一篇:计算机中的颜色II——VB2005中的Co
猜你在找的VB相关文章
VB Format函数
Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 --------------...
作者:前端之家 时间:2020-08-07
vb6/ASP FORMAT MM/DD/YYYY
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办法, Format 或者FormatDateTi...
作者:前端之家 时间:2020-08-07
VB.net 捕获项目全局异常
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace My ‘全局错误处理,新的...
作者:前端之家 时间:2020-08-07
实现用VB.Net/(C#)开发K/3 BOS 插件的真正可行方法
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用的爽呀,这篇文章写与2011年,...
作者:前端之家 时间:2020-08-07
vb,wps,excel 分裂
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选中的单元格进行处理 Dim m...
作者:前端之家 时间:2020-08-07
VB.NET MYSQL DataGridView 增删改查(INSERT,SELECT,UPDATE,DELETE)
Imports MySql.Data.MySqlClient Public Class Form1 ‘ GLOBAL DECLARATIONS ...
作者:前端之家 时间:2020-08-07
VB.NET 使用ADODB連接資料庫滙出到EXCEL
‘導入命名空間 Imports ADODB Imports Microsoft.Office.Interop Private Sub A1() Di...
作者:前端之家 时间:2020-08-07
vb.net 多线程運用 ping
Imports System.IO Imports System.Threading Imports System.Diagnostics Public Class F...
作者:前端之家 时间:2020-08-07
VB等待进程结束
VB运行EXE程序,并等待其运行结束 参考:https://blog.csdn.net/useway/article/details/5...
作者:前端之家 时间:2020-08-07
vb中去掉string数组的一部分
今天碰到一个问题,登陆的时候,如果不需要验证手机号为空,则不去验证手机号 因为登陆的时...
作者:前端之家 时间:2020-08-07
编程分类
PHP
Java
Java SE
Python
C#
C&C++
Ruby
VB
asp.Net
Go
Perl
netty
Django
Delphi
Jsp
.NET Core
Spring
Flask
Springboot
SpringMVC
Lua
Laravel
Mybatis
Asp
Groovy
ThinkPHP
Yii
swoole
最新文章
• VB Format函数
• vb6/ASP FORMAT MM/DD/YYY
• VB.net 捕获项目全局异常
• 实现用VB.Net/(C#)开发K/3
• vb,wps,excel 分裂
• VB文件 hash 查看器
• VB.NET MYSQL DataGridVie
• VB.NET 使用ADODB連接資料
• vb.net 多线程運用 ping
• VB等待进程结束
热门标签
更多 ►
文件时间
pythonm
相等性
PHP Warning
时间问题
问题解决
pcntl_signal
采样点
wav模块
动态文本
调用频率限制
对外暴露
多个访问请求
更新数据表
模型结构
type()方法
比较速度
手写体
sobel算子
保存模型
Image类
nn.Conv2d
pytorch1.0
kaggle
DCGAN
交并比
range()用法
打印模型
反卷积
卷积