系统分析与建模1

面向对象编程的目标不是复用,而是提供了一种处理复杂性问题的方式。有了对象,我们能够通过提升抽象级别来构建更大的、更复杂的系统。

面向对象编程的困难

现实世界和对象世界的差距,即使面对简单的传统商业模式,我们仍有如下困惑:

  • 对象是怎么被抽象出来的?现实世界和对象世界看上去差别是那么大,为什么要这么抽象而不是那么抽象?(Why)
  • 对象世界由于其灵活性,可以任意组合,可是我们怎么知道某个组合就正好满足了现实世界的需求呢?什么样的组合是好的,什么样的组合是差的呢?(How)
  • 抛开现实世界,对象世界是如此的难以理解。如果只给我一个对象组合,我怎么才能理解它表达了怎样的含义呢?(What)

要想跨越这道鸿沟,我们需要:

  • 一种把现实世界映射到对象世界的方法
  • 一种从对象世界描述现实世界的方法
  • 一种验证对西那个世界行为是否正确反映了现实世界的方法

UML和UML背后的面向对象分析设计方法,架起了跨越这道鸿沟的桥梁。

1、从现实世界到业务模型

现实世界充满了杂乱无章的信息,要建立一个模型并不容易。建立模型的过程是一个抽象的过程,所以要建立模型,首先要知道如何抽象世界。如果站在很高的抽象层次,以高度归纳的视角看这个世界的运作,其本质无非是人、事、物和规则组成的。人是一切的中心,人要做事,做事就会使用一些物并产生另一些物,同时做事需要遵循一定的规则。人驱动系统,事体现过程,物记录结果,规则是控制。建立模型的关键就是弄明白有什么人,什么人做什么事,什么事产生什么物,中间有什么规则,再把人、事、物之间的关系定义出来,一个模型也就基本成型了。

  • UML采用参与者(actor)元模型代表现实世界的“人”,是模型信息来源的提供者,是整个建模过得中心,也是第一驱动者。
  • UML采用用例(use case)表示驱动者的业务目标,就是现实世界中的“事”。
  • 这件事是怎么做的,依据什么规则,则通过业务场景(business scenario)和用例场景(use case scrnario)的UML视图描绘,这些场景是现实世界中的“规则”。
  • 最后通过业务对象模型(business object model)的视图来说明在达成这些业务目标的过程中涉及到的事物,用逻辑概念来表示它们,并定义它们之间的关系。代表了现实世界中的“物”。

2、从业务模型到概念模型

现实世界被业务模型映射并记录下来,但是距离可执行代码还很遥远,UML通过概念化过程来建立适合计算机理解和实现的模型,称为分析模型。

分析模型向上映射了原始需求,向下为计算机实现规定了一种高层次的抽象,这种抽象是一种指导,也是一种约束。

分析模型最主要的元模型有:

  • 边界类(boundary):任何一件事物都分为里面和外面,外面的事物与里面的事物之间的任何交互都需要有一个边界。边界决定了外面能对里面做什么“事”。
  • 实体类(entity):实体类由业务模型中的领域模型转化而来,领域模型中业务实体映射了现实世界中参与完成业务目标时所涉及的事物,UML采用实体类来重新表达业务实体。
  • 控制类(control):表述原始需求中动态信息,即业务或用例场景中的步骤和活动,体现了现实世界中的“规则”。从UML的观点看来,边界类和实体类之间,边界类和边界类之间,实体类和实体类之间不能够直接相互访问,它们不要通过控制类来代理访问要求。

最后根据业务模型中已经描绘出来的用例场景来组合这些元素,完成从业务模型都概念模型的转化。

3、从概念模型到设计模型

概念模型使我们获得了软件的蓝图,获得了建设软件所需要的所有组成内容,以及建设软件所需要的所有必要细节。接下来的工作就是建造或者购买所需的零部件。设计模型的工作就是建造零部件和组装的过程。

在大多数情况下,实现类可以简单地从分析类映射而来。在设计模型中,概念模型中的边界类可以被转化为操作界面或者系统接口;控制类可以被转化为计算程序或控制程序,例如工作流、算法体等;实体类可以转化为数据库表、XML文档或者其他带有持久化的类。

时间: 2024-10-17 21:22:36

系统分析与建模1的相关文章

系统分析与建模7

在UML中,关系是非常重要的语义,它抽象出对象之间的联系,让对象构成某个特定的结构. 关联关系 association 关联关系是用一条直线表示.描述不同类的对象之间的结构关系.可以使用关联关系表示一个对象了解其他对象,即一个对象“知道”另一个对象的存在.例如A对象保存了B对象的ID,因此A对象“知道”B对象的存在. 如果A和B对象互相“知道”,则使用一条直线来表示关联关系:如果A知道B,而B不知道A,则使用一条带箭头的直线,由A指向B. 依赖关系 dependency 依赖关系是用一条带箭头的

系统分析与建模2

1.建模 建模的定义本身就和建模工作一眼非常抽象和难以理解.简单地说:建模包含两个问题,一个是怎么建?另一个,“模”是什么? 做需求的时候,首要目标不是弄清楚业务是如何一步一步完成的,而是要弄清楚有多少业务的参与者?每个参与者的目标是什么?参与者的目标就是你的抽象角度.与分析一个复杂的业务流程相比,单独分析参与者的一个个目的要简单得多.实际上,这就是用例!这也就是为什么用例会成为业务建模的方法的原因之一. 第二个问题“模是什么”,则依赖于确定了抽象角度下的场景模拟. 一旦决定了抽象角度,就确定了

PowerDesigner概述(系统分析与建模)

PowerDesigner是Sybase公司推出的一个集成了企业架构,UML(统一建模语言)和数据库的CASE(计算机辅助软件工程)工具.它 不仅可以用于系统设计和开发的不同阶段(即业务分析,概念模型设计,物理模型设计以及面向对象开发阶段),而且可以满足管理,系统设计,开发等相关人员的 使用.它是业界第一个同时提供业务分析,数据库设计和应用开发的建模软件. PowerDesigner 15包含项目(Project),知识库(Repository),插件(Addins&Plug-in)以及9个模型

PowerDesigner(一)-PowerDesigner概述(系统分析与建模)(转)

PowerDesigner概述 PowerDesigner是Sybase公司推出的一个集成了企业架构,UML(统一建模语言)和数据库的CASE(计算机辅助软件工程)工具.它不仅可以用于系统设计和开发的不同阶段(即业务分析,概念模型设计,物理模型设计以及面向对象开发阶段),而且可以满足管理,系统设计,开发等相关人员的使用.它是业界第一个同时提供业务分析,数据库设计和应用开发的建模软件. PowerDesigner 15包含项目(Project),知识库(Repository),插件(Addins&

.NET领域驱动设计—实践(穿过迷雾走向光明)

阅读目录 开篇介绍 1.1示例介绍 (OnlineExamination在线考试系统介绍) 1.2分析.建模 (对真实业务进行分析.模型化) 1.2.1 用例分析 (提取系统的所有功能需求) 1.3系统设计.建模 (技术化业务模型) 1.3.1 枚举类型的使用 (别让枚举类型成为数值型对象) 1.3.2 基础数据.业务数据 (显示实体和隐式过程) 1.3.3 模型在数据库中的主外键关联问题 (面向对象模型与关系模型的天然抗阻) 1.3.4 角色.类型 (区分类型与面向对象概念) 1.3.5 名词

C/S学习总结

经历了一个多月的奋战,重构的机房终于面世了.花的时间有点长了,不过从中也学到不少东西. 先说下这C/S的学习吧,C/S学习经历了软工文档.UML.C#.设计模式.VB.NET视频.三层.机房收费系统个人版.其中机房收费系统个人版是对前期学习的一个大汇总.实践了整个C/S学习过程中所学过的所有东西.对知识有了一个更加深刻的认识. 软工文档 软工文档是我们软件开发过程中必不可少的东西.使我们的软件开发都有据可依,提高开发效率.同时也提供了对软件的运行.维护的有关信息,便于管理人员.开发人员.操作人员

总会有一个是你需要的

http://www.shouce.ren/post/d/id/112300 黑客攻防实战入门与提高.pdfhttp://www.shouce.ren/post/d/id/112299 黑客入门新手特训.pdfhttp://www.shouce.ren/post/d/id/112298 黑客与设计-剖析设计之美的秘密(彩印).pdfhttp://www.shouce.ren/post/d/id/112297 鸟哥的LINUX私房菜:服务器架设篇 (第二版).pdfhttp://www.shouc

MATLAB解灰色模型

目前,灰色模型已经成为社会.经济.科教.技术等很多领域进行预测.决策.评估.规划.控制.系统分析和建模的重要方法之一.特别是它对时间序列短.统计数据少.信息不完全系统的建模与分析,具有独特的功效. 其实灰色模型很简单,具体的步骤我就不再一一赘述,我就灰色模型用MATLAB的解法与大家分享一下.我以一组简单的数据为例,如下: 例: 近几年,某种商品的价格如下表: 年份 2006 2007 2008 2009 2010 2011 2012 价格 71.1 72.4 72.4 72.1 71.4 72

浅谈微服务的来龙去脉

作者:王清培(Plen wang) 沪江 公共业务平台 应用架构师 转载至沪江技术学院微信公众号 背景介绍 最近一段时间公共业务平台在进行大面积的重构,对原来的技术栈进行迁移,逐渐往Java.Go.Node.js等开源.自由为主的技术体系中过度. 虽然这主要是替换技术框架,但也是我们应用系统进行重新设计.业务流程重新梳理的一个好机会,我们将利用这次机会来重构之前发现的一些问题. Martin Fowler大师<重构>一书中有说过一句话,大概意思就是,"每次对原有系统进行修改调整的时候