用例图浅谈以及OOA再到情景分析的面向对象电梯的设计(慕课东北大学)面向对象设计思维模式
上班初期还不太适应,平时学习进度也跟不上,节奏慢下来会有时间更新的了。
Diagram 这边以学生课程报名系统为例 这就是一种简单的用例图

用例图可以给读者提供的信息非常丰富,但是缺点是都是概况性的内容,因而还得细化。
为了表示细节,我们要对用例图中的每一个对象都进行细化。用用例说明来进行补充用例

另外用例还有很多关系
1.子父关系 (大学模式大四VS其他)

2.代理关系(银行与用户)
用虚线从代理请求者指向代理
3.泛化关系(银行管理系统中的跨行转账与银行内部转账流程两个用例一种转账)
两个都是转账的子用例
4.包含关系(成绩查询系统 成绩查询用例的成功完成得包括登录这个用例的成功完成)

5.拓展关系(补考用例需要在考试不及格用例的前提上进行的拓展)

用例的学习,可以让我们在设计程序框架时提供思路,绝不仅仅只有上面几种关系,在具体问题分析时我们要结合具体问题去分析。
算法很重要,语言很重要,原理很重要,方法当然也很重要,用例图就是一种方法论,灵活运用这种方法论会让我们的程序生涯受益匪浅的。
补充一个OOA电梯系统的类图(下图)和用例图状态图的结合,用bool型表示开关即可。 这些都是构思的行业规范和通用技巧


后面是这个电梯的模拟运行情况

下面是顺序图

每一个步骤都得清晰明了,逻辑思路都有有条不紊。
这几个样例的核心都是计时器。
下面是电梯的协作图

下一步工作是制作一个详细类图 职责驱动设计

核心技术点还是计时器。
详细设计如下

敲代码永远是最后一步的。每一个工作流和设计都要进行测试。
设计本身是否合理的测试和设计是否符合相关规格的测试。

采用三明治模型
对逻辑模块进行自顶向下的实现与集成
对操作模块进行自顶向上的实现与集成
然后再对两种模块的接口进行集成与测试。
优势在于:错误隔离和可重用性。
螺旋模型
螺旋模型是软件生命周期模型的一个常用模型,即在每一次开发之前,设计工作开始之前都进行风险分析,再进行下一步分析,在风险分析到风险过大无法克服时,立即终止项目,以此类推。
当然还有很多软件生命周期模型,具体要结合实际情况才能发挥模型的最大作用,必要时也要有创新模型模式,不拘一格永远是软件开发不变的主题:变是唯一的不变。
从对象的分析,用例图,到细化,到补充,再到情景模拟分析,再到情景的处理协作,继而详细类图,最后动工代码。
行云流水,一气呵成的面向对象设计思维模式,真的能让繁琐而紊乱的程序设计周期得以优化。
用例图浅谈以及OOA再到情景分析的面向对象电梯的设计(慕课东北大学)面向对象设计思维模式的更多相关文章
- 浅谈ZooKeeper基本原理与源码分析
最近一直有小伙伴私信我,问一些关于Zookeeper的知识,下边关于的Zookeeper的知识整理了一下,一起学习一下. 看完本文对于Zookeeper想深入全面了解的读者朋友们,小编这里整理了一份更 ...
- Android事件分发机制浅谈(三)--源码分析(View篇)
写事件分发源码分析的时候很纠结,网上的许多博文都是先分析的View,后分析ViewGroup.因为我一开始理解的时候是按我的流程图往下走的,感觉方向很对,单是具体分析的时候总是磕磕绊绊的,老要跳到Vi ...
- Android事件分发机制浅谈(二)--源码分析(ViewGroup篇)
上节我们大致了解了事件分发机制的内容,大概流程,这一节来分析下事件分发的源代码. 我们先来分析ViewGroup中dispatchTouchEvent()中的源码 public boolean dis ...
- 浅谈Spring框架注解的用法分析
原文出处: locality 1.@Component是Spring定义的一个通用注解,可以注解任何bean. 2.@Scope定义bean的作用域,其默认作用域是”singleton”,除此之外还有 ...
- 浅谈Nginx负载均衡和F5的区别
前言 笔者最近在负责某集团网站时,同时用到了Nginx与F5,如图所示,负载均衡器F5作为处理外界请求的第一道"墙",将请求分发到web服务器后,web服务器上的Nginx再进行处 ...
- 【转】浅谈Nginx负载均衡与F5的区别
前言 笔者最近在负责某集团网站时,同时用到了Nginx与F5,如图所示,负载均衡器F5作为处理外界请求的第一道“墙”,将请求分发到web服务器后,web服务器上的Nginx再进行处理,静态内容直接访问 ...
- 【转】Android Canvas的save(),saveLayer()和restore()浅谈
Android Canvas的save(),saveLayer()和restore()浅谈 时间:2014-12-04 19:35:22 阅读:1445 评论:0 收藏: ...
- 浅谈UML——九种图(一)
前言 学UML将近两个星期了,对UML有了一定的了解,学过的没学过的都知道UML中最最最核心的部分要数那九个图了.浅谈UML九种图. 实例 1.用例图: 什么是用例?描绘一个系统外在可见的需求情况,是 ...
- 浅谈 LayoutInflater
浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...
随机推荐
- ios 键盘弹起bug,出现的问题,光标穿透,页面无法点击
有时候使用ios输入键盘以后,直接点击页面按钮会出现事件无效. 解决方法: 1. 输入框输入后点击提交按钮后,弹窗会发现光标穿透问题 解决方法: 使用input blur()事件使input失去焦点 ...
- ajax 轮询(适合web端二维码请求)
(前几天 一直弄二维码轮询登录 想了半天 总算弄出来了 分享给大家 ^-^) 轮询: 所谓轮询 肯定需要 setInterval 但是怎么加ajax请求 需要有点小问题而且轮询成功后需要停 ...
- jmeter-控制业务比例
方式一: 多线程组 缺点:由于各事务相应时间一般不一致,故只能粗略的控制业务占比 实例:待补充
- <学会提问-批判性思维指南>运用
引子 这是我第二遍读此书,我认为并且希望这次阅读对我整个人生产生深远的影响.人一出生身上带着母体的抵抗力,大概6个月以后开始渐渐消失,靠自身的抵抗力活着.30岁前很多人会带着上天给的运气,终有一天,用 ...
- Java中常用的四种线程池
在Java中使用线程池,可以用ThreadPoolExecutor的构造函数直接创建出线程池实例,如何使用参见之前的文章Java线程池构造参数详解.不过,在Executors类中,为我们提供了常用线程 ...
- ESP8266开发之旅 基础篇② 如何安装ESP8266的Arduino开发环境
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- java中常见的字符串API
java中定义了String类来封装字符串,并提供一系列的操作字符串的方法,他们都位于java.lang包下. package Main; public class String01 { public ...
- JDK1.8 新特性详解
一 引言 现在java 10都已经出来了,而自己对java 8的一些新特性都不了解,很是惭愧,而且许多面试都有问到java8的新特性,借此博客好好学习这些新特性 二 新特性 1 default关键 ...
- java中多线程 - 如何创建多线程
线程 什么是线程: 线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源 表面上 ...
- 简述RAID 0 和RAID 1 及RAID 5
RAID 0 : 读.写速度提升 无容错能力 安全性差 最少磁盘数2.2+ 允许0块磁盘损坏 容量大 不建议企业使用 RAID 1 : 读速度提升 写速度略下降 有容错能力和安全性 允许有一块磁盘损坏 ...