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

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. 02jmeter-函数助手使用

    示例:__Random函数 1.打开函数助手,并按提示写入value 2.引用.复制出${__Random(1,99,gp)}放到需要引用的地方 3.请求成功后可通过debug sampler查看变量 ...

  2. 判断一字串String中是否包含某一串字符串

    String ostype = data.getString("osType").toUpperCase(); //转换为大写 if (ostype.contains(" ...

  3. Class constructor FileManager cannot be invoked without 'new'

    bug:今天项目重新安装依赖打包的时候出现错误:Class constructor FileManager cannot be invoked without 'new' 解决:尝试了很多种解决方案, ...

  4. Git 项目提交新仓库

    提示:进入项目文件操作 步骤: 1.git init   ----------初始化git仓库 2.git remote add origin 你的项目地址  ------------------如: ...

  5. 【强烈推荐】可能是最适合你的 Java 学习路线和方法

    如遇链接无法打开,建议使用 https://github.com/Snailclimb/JavaGuide/blob/master/docs/questions/java-learning-path- ...

  6. 详细解读 Spring AOP 面向切面编程(二)

    本文是<详细解读 Spring AOP 面向切面编程(一)>的续集. 在上篇中,我们从写死代码,到使用代理:从编程式 Spring AOP 到声明式 Spring AOP.一切都朝着简单实 ...

  7. 如何在Spring Boot中使用Cookies

    一. 导读 本文大纲 读取HTTP Cookie 设置HTTP Cookie 读取所有Cookie[] 为Cookie设置过期时间 Https与Cookie HttpOnly Cookie 删除Coo ...

  8. Spring Cloud alibaba网关 sentinel zuul 四 限流熔断

    spring cloud alibaba 集成了 他内部开源的 Sentinel 熔断限流框架 Sentinel 介绍 官方网址 随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentine ...

  9. IDAE 将外部jar打入本地maven仓库

    方式1:dependency 本地jar包 <dependency> <groupId>com.hope.cloud</groupId> <!--自定义--& ...

  10. Mysql常用数据类型归纳总结1

    一直在用Mysql数据库,Mysql的数据类型也最常打交道的.但关于Mysql的一些常用数据类型了解程度仅限于一知半解,仅仅能满足满足于平时一些最简单的操作.而Mysql常用数据类型的定义以及规范理解 ...