上班初期还不太适应,平时学习进度也跟不上,节奏慢下来会有时间更新的了。

Diagram  这边以学生课程报名系统为例    这就是一种简单的用例图

用例图可以给读者提供的信息非常丰富,但是缺点是都是概况性的内容,因而还得细化。

为了表示细节,我们要对用例图中的每一个对象都进行细化。用用例说明来进行补充用例

另外用例还有很多关系

1.子父关系     (大学模式大四VS其他)

2.代理关系(银行与用户)

用虚线从代理请求者指向代理

3.泛化关系(银行管理系统中的跨行转账与银行内部转账流程两个用例一种转账)

两个都是转账的子用例

4.包含关系(成绩查询系统   成绩查询用例的成功完成得包括登录这个用例的成功完成)

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

用例的学习,可以让我们在设计程序框架时提供思路,绝不仅仅只有上面几种关系,在具体问题分析时我们要结合具体问题去分析。

算法很重要,语言很重要,原理很重要,方法当然也很重要,用例图就是一种方法论,灵活运用这种方法论会让我们的程序生涯受益匪浅的。

补充一个OOA电梯系统的类图(下图)和用例图状态图的结合,用bool型表示开关即可。     这些都是构思的行业规范和通用技巧

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

下面是顺序图

每一个步骤都得清晰明了,逻辑思路都有有条不紊。

这几个样例的核心都是计时器。

下面是电梯的协作图

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

核心技术点还是计时器。

详细设计如下

敲代码永远是最后一步的。每一个工作流和设计都要进行测试。

设计本身是否合理的测试和设计是否符合相关规格的测试。

采用三明治模型

对逻辑模块进行自顶向下的实现与集成

对操作模块进行自顶向上的实现与集成

然后再对两种模块的接口进行集成与测试。

优势在于:错误隔离和可重用性。

螺旋模型

螺旋模型是软件生命周期模型的一个常用模型,即在每一次开发之前,设计工作开始之前都进行风险分析,再进行下一步分析,在风险分析到风险过大无法克服时,立即终止项目,以此类推。

当然还有很多软件生命周期模型,具体要结合实际情况才能发挥模型的最大作用,必要时也要有创新模型模式,不拘一格永远是软件开发不变的主题:变是唯一的不变。

从对象的分析,用例图,到细化,到补充,再到情景模拟分析,再到情景的处理协作,继而详细类图,最后动工代码。

行云流水,一气呵成的面向对象设计思维模式,真的能让繁琐而紊乱的程序设计周期得以优化。

用例图浅谈以及OOA再到情景分析的面向对象电梯的设计(慕课东北大学)面向对象设计思维模式的更多相关文章

  1. 浅谈ZooKeeper基本原理与源码分析

    最近一直有小伙伴私信我,问一些关于Zookeeper的知识,下边关于的Zookeeper的知识整理了一下,一起学习一下. 看完本文对于Zookeeper想深入全面了解的读者朋友们,小编这里整理了一份更 ...

  2. Android事件分发机制浅谈(三)--源码分析(View篇)

    写事件分发源码分析的时候很纠结,网上的许多博文都是先分析的View,后分析ViewGroup.因为我一开始理解的时候是按我的流程图往下走的,感觉方向很对,单是具体分析的时候总是磕磕绊绊的,老要跳到Vi ...

  3. Android事件分发机制浅谈(二)--源码分析(ViewGroup篇)

    上节我们大致了解了事件分发机制的内容,大概流程,这一节来分析下事件分发的源代码. 我们先来分析ViewGroup中dispatchTouchEvent()中的源码 public boolean dis ...

  4. 浅谈Spring框架注解的用法分析

    原文出处: locality 1.@Component是Spring定义的一个通用注解,可以注解任何bean. 2.@Scope定义bean的作用域,其默认作用域是”singleton”,除此之外还有 ...

  5. 浅谈Nginx负载均衡和F5的区别

    前言 笔者最近在负责某集团网站时,同时用到了Nginx与F5,如图所示,负载均衡器F5作为处理外界请求的第一道"墙",将请求分发到web服务器后,web服务器上的Nginx再进行处 ...

  6. 【转】浅谈Nginx负载均衡与F5的区别

    前言 笔者最近在负责某集团网站时,同时用到了Nginx与F5,如图所示,负载均衡器F5作为处理外界请求的第一道“墙”,将请求分发到web服务器后,web服务器上的Nginx再进行处理,静态内容直接访问 ...

  7. 【转】Android Canvas的save(),saveLayer()和restore()浅谈

    Android Canvas的save(),saveLayer()和restore()浅谈 时间:2014-12-04 19:35:22      阅读:1445      评论:0      收藏: ...

  8. 浅谈UML——九种图(一)

    前言 学UML将近两个星期了,对UML有了一定的了解,学过的没学过的都知道UML中最最最核心的部分要数那九个图了.浅谈UML九种图. 实例 1.用例图: 什么是用例?描绘一个系统外在可见的需求情况,是 ...

  9. 浅谈 LayoutInflater

    浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...

随机推荐

  1. docker-compose 的使用

    1.安装docker-compose,参考官方教程:https://docs.docker.com/compose/install/ [chenjl@ipha-dev71- ~]$ sudo curl ...

  2. Robot Framework——对时间操作的datetime库常用关键字

    1.对固定日期进行操作,增加或减去单位时间或者时间段 2.对两个时间段进行操作 3.对时间格式转化,获取时间戳 4.从完整时间中取指定年月日等 5.对时间类型进行格式化 6.获取当前时间或者指定时区时 ...

  3. OptimalSolution(6)--栈和队列

    一.设计一个有getMin功能的栈 题目:实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作.pop.push.getMin操作的时间复杂度都是O(1). 思路:设计两个栈,一 ...

  4. Unity事件系统

    # 1.前言Unity中事件/委托有着广泛的应用,本文通过封装一个简易的事件的系统,来统一管理消息的传递.此功能在简易应用或者事件较少的体现不出太好的作用,但是对于事件应用较多时,可以减少脚本之间的耦 ...

  5. unity text实现鼠标光标

    由于项目需求,需要在text上实现鼠标的cursor,并且随着点击位置cursor移动.实现方法: 1)新建一个光标的prefab(简单为之,直接在image中添加一个竖线spirte),增加脚本控制 ...

  6. jquery获取dom属性方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. 面向对象的7个设计原则->开车理解->贴近生活

    设计模式在我们的开发中是不可或缺的一部分,很多人会说,我没用那些设计模式啊,我也开发的挺好的,其实不然,我们在开发中都用到了这些设计模式,只不过我们并没有在意这些,今天我就用开车的方法来解释一下我们的 ...

  8. 《大数据实时计算引擎 Flink 实战与性能优化》新专栏

    基于 Flink 1.9 讲解的专栏,涉及入门.概念.原理.实战.性能调优.系统案例的讲解. 专栏介绍 扫码下面专栏二维码可以订阅该专栏 首发地址:http://www.54tianzhisheng. ...

  9. 阿里六面,挂在hrg,我真的不甘心!

    前言最近跟一位朋友聊天,福报场-阿里是大部分程序员的梦想.这位老哥梦想进入阿里很久了,连续两年面试阿里不同bu,有几次是技术面挂,最冤的一次是技术6面了,连P10大老板都面了,但是挂在了hrg. 我以 ...

  10. EXCEL批量导入到Sqlserver数据库并进行两表间数据的批量修改

    Excel 大量数据导入到sqlserver生成临时表并将临时表某字段的数据批量更新的原表中的某个字段 1:首先要对EXCEL进行处理 列名改成英文,不要有多余的列和行(通过ctrl+shift 左或 ...