0 什么是分析和设计

分析其强调的是对问题和需求的调查研究,而不是解决方案,如需求分析、线上问题分析等。案例:1.如果需要做一个在线交易系统?那么他应该有哪些功能?如何使用它 2.现在一个系统有问题,需要梳理整理相关问题。分析可以理解为定义问题阶段。
设计(design)强调的是满足需求的概念上的解决方案,而不是具体实现,如面向对象设计、数据库设计。案例:设计一个数据库的表,设计E-R图等。设计可以理解对问题定义清楚好,开始寻找解决方案阶段。

1 什么是面向对象分析和设计

面向对象分析强调的是在问题领域内发现和描述对象的概念。例如在航班信息系统里面包含飞机(Plane)、航班(Flight)和飞行员等概念。
面向对象设计过程中,强调的是定义软件对象以及问它们如何协作以实现需求。

2 一个简单案例

骰子游戏:模拟游戏者掷两个骰子,如果总数是7则赢得游戏,否则为输。下图给从需求分析到最终软件设计整个流程。

● 定义用例
需求分析可能包括人们如何使用的系统的情节或者场景,这些情节或者场景可以被编写成用例。对于非软件开发者他们感知软件系统更多是通过功能、交互、流程、规则等
骰子游戏的用例:游戏者请求掷骰子。系统结果展示:如果骰子的总数点数是7,则游戏者赢;否则游戏者输。

● 定义模型
面向对象分析的结果可以表示为领域模型,在领域模型中展示重要的领域概念对象。值得说明是:这里的领域模型不是对软件对象的描述(在后续软件设计设计中会受到领域模型启发),它是真实世界中领域概念和想象可视化。领域模型是一种概念模型,也叫问题域模型,他是为了准确定义需要解决问题而构造的额抽象模型。
方法:从主语、宾语、定语、状语中提炼名词和形容词,对相应名词进行抽象成为领域模型,相关形容词抽象为其属性。从谓语、状语、定语中提炼动词和形容词,这些词决定了领域模型之间的关联关系。
按照这个方法分析上面用例:名词:游戏者、骰子、骰子游戏,动词:请求、掷。如下图所示可以得到如下概念对象模型,Die是骰子意思。

● 定义对象职责并绘制时序图
面向对象设计关注软件对象的定义-他的职责和协作。

● 定义设计类图
如下图所示给出类图关系,玩家依赖iceGame play方法去触发游戏,这里面DiceGame和Die是聚合关系,DiceGame有个times属性表示要掷几次骰子。

3 总结

本文中给了比较简单的案例只是为了说明软件分析和设计中一些基本流程和步骤。后续也会就各个步骤的更详细的展开和说明。

参考文献
[1]UML和模式应用

谈谈面向对象分析和设计相关推荐

  1. 面向对象分析和设计的几个关键步骤_(豁然开朗)《面向对象分析与设计》读书笔记 (4)- 分类...

    目录 分类 正确分类的重要性 分类的困难 分类的增量和迭代本质 确定类和对象 经典方法 && 现代方法 (种) 面向对象分析 (主要识别对象) 关键抽象和机制 确定关键抽象 识别机制 ...

  2. UML和模式应用学习笔记-1(面向对象分析和设计)

    大学时曾经开过<UML和模式应用>的课程,当时没有引起足够的重视,只为了应付考试并没有真正掌握书中的内容:现在工作中经常要用到UML及设计模式,决定每周花点时间重新对书中的内容进行学习:本 ...

  3. 面向对象分析与设计小结

    最近接触了下面向对象分析与设计的概念,虽说书上也许是讲的比较浅显,这里暂且做做学习笔记 当面对一个项目的时候,首先依然是需求分析,得到需求分析报告,接下来在面向对象分析过程中建立用例图,这一步是项目负 ...

  4. OOAD 面向对象分析与设计

    OOAD 面向对象分析与设计2007年06月16日 星期六 下午 04:38OOAD(Object Orient Analysis & Design,面向对象的分析和设计,面向对象分析与设计) ...

  5. UML 面向对象分析与设计

    面向对象方法以其超越传统方法的技术先进性越来越得到更多的重视,但技术的先进性不能完全代表一种新生事物的最后成功,还要看它是否能得到有效的推广.统一建模语言(UML)的产生为这种推广规定了一致的表示,诸 ...

  6. 深入浅出面向对象分析与设计

    深入浅出面向对象分析与设计书籍 下载位置:http://pan.baidu.com/s/1o7gmmuu 转载于:https://www.cnblogs.com/wlming/p/5160140.ht ...

  7. 《面向对象分析与设计》一1.4面向对象方法的主要优点

    1.4面向对象方法的主要优点 本节从认识论的角度和软件工程方法的角度看一下面向对象方法带来的益处,并把面向对象方法与传统方法进行比较,看面向对象方法有什么优点. 从认识论的角度面向对象方法改变了开发软 ...

  8. 面向对象分析与设计--遛狗玩

    这篇文章焦点并不在于继承以及多态性或者各种炫酷的设计模式上面,也不在与对未来的预测,而在于分析最基本的封装,提取类,组合 人遛狗的最简形式 public class People {public st ...

  9. 面向对象分析与设计中的基本事件处理的机制及其优缺点对比

    xjtuer最好不要抄,五次作业都是去年优秀作业,如果因为全抄被老师逮住全给0分就得不偿失了,放在这里是给大家一个思路不用再去查找很多资料,了解之后再自己总结写一写 面向对象分析与设计中的基本事件处理 ...

  10. 实验三 面向对象分析与设计

    文章目录 一.实验目的 二.实验内容 实例1:在线选课系统 实例2:试卷自动生成系统 实例3:人事信息管理系统 三.实验步骤 四.实验内容 1.问题陈述 2.用例图(Use Case View)的建模 ...

最新文章

  1. Python之%s%d%f
  2. kingadmin页面开发
  3. Android_NDK问题:APP_BUILD_SCRIPT points to an unknown file: project_path/jni/Android.mk
  4. mysql client dev_ubuntu下mysql安装(server、client、dev),开启、停止和重启,及常见错误...
  5. java里的局部变量为什么不能加static?
  6. 顽皮恶魔 牛客白月赛44
  7. 技术宝典 | ToB 业务场景下自动化测试的实践及探索
  8. java中的jsonjar_java中使用json之相关jar包介绍
  9. html.锁屏主题,锁屏HTML主题插件GroovyLock发布
  10. 云+X案例展 | 民生类:京东云突破数据中心光互联瓶颈
  11. 微信第三方扫描登录 java源代码_微信开放平台基于网站应用授权登录源码(java)...
  12. c语言数组移动k,如何将一个数组的元素循环左移?
  13. 在Word 2007中为公式编号
  14. 访问iis出现500.21错误
  15. Beta-Binomial 共轭
  16. 近些年很火的Java,就业前景到底怎么样?
  17. 关于pycharm安装出现的interpreter field is empty,无法创建项目存储位置
  18. 矩阵快速乘法---代码
  19. 计算机组成原理——基础知识
  20. UniWebView 3 使用心得

热门文章

  1. ASP.NET开发实践系列课程之Web应用的安全攻防之网页木马
  2. 《C++ 沉思录》阅读笔记——句柄类
  3. 优道在线屏幕截图控件(UUDoc Screen Capture Control)
  4. robots.txt详解
  5. 《尚学堂科技_马士兵_JAVA_系列视频教程_BBS_2007》学习
  6. IEEE802.5 令牌环网
  7. 链克价格一路高涨,简单 5 招让你快速获取链克
  8. 昂达v811v1 刷4.22d
  9. 全球及中国无线硬盘行业发展前景与投资战略规划分析报告2022-2028年
  10. 数据库设计说明书(GB8567——88) (转)