think in UmL(三)
在实践中思考!
在这一部分中,书中作者用实际的案例讲述了从一个个实际项目的可行性分析阶段倒是现阶段的整个过程,让我们奖赏部分学到的UML知识点在实践中的得到学习。
当我们拿到一个项目的时候首先要做的就是“准备工作”。(1)了解问题领域:软件是一种工具,是用来辅助人们解决某一问题的。软件的价值就在于它能够符合问题领域的需要,并达到人们解决问题的期望。(2)做好涉众分析:在了解业务概况和业务目标以后,系统分析员最先要做的事情不是去了解业务的细节,而是发现与这个目标相关的人和物,在课堂上我们已经学习了上下文图,将系统看作一个黑匣子,列出与系统相关的人物、甚至是时间地点、其他系统等,其中的人即是系统的利益相关者。(3)规划业务范围:这是一个很重要的部分,必须要考虑到人力物力财力。(4)整理好你的思路(5)客户访谈技巧:获取需求困难的一大原因是沟通,当与客户沟通是最好是携带一个笔记本,随时记下客户的需求,必须要有反馈与确认的过程,以免造成不必要的损失。
获取需求。(1)定义边界:如果不能决定好系统的业务范围,你的系统将无限制的扩大。(2)发现主角:只有那些直接与系统交互的涉众才能被成为主角,业务主角区别于参与者,不应当被过分的抽象化和虚拟化。(3)获取业务用例:对于系统来说,每一件事便是一个用例,每个业务用例都体现了业务主角的一个系统期望,而所有的这些期望则完成边界所代表的业务目标。(4)业务建模(5)领域建模(6)提炼业务规则:全局规则、内禀规则、分类业务规则、(7)获取非功能性需求:系统必须具有满足客户的工作所需的功能,要有一定的可靠性、安全性和可维护性,要保持可扩展的接口,要能与各种各样的旧系统、外部系统、易购系统打交道,客户总希望自己的系统是业界领先的不论是在技术上还是内容上,个性化。不过实际上,非功能需求也正是围绕着后四层次中提到的那些需求展开的。
需求分析:关键建模分析、业务架构、系统原型。
系统分析:确定系统用例、分析业务规则、用力实现、软件架构和框架、分析模型、组建模型、部署模型。
系统设计:系统分析与系统设计的差别、护色剂模型、接口设计、包设计。如果系统中的许多功能具备相似的实现模式,则没有必要逐一的建立设计模型,一个经典的设计模型就可以起到知道开发的作用。而对于复杂的、特殊的功能,则应当建立设计模型。这样做的好处是借由分解模型高于实现的稳定性,大大节省了维护量。同时给程序以学习和提高的机会。
自顶向下原则避免平行化无层次分包;职能集中原则是尽量将于一组业务功能有关的类分在同一个包里,否则就会出现职责不清的问题;互不交叉原则就是包与包之间尽量独立,不要让他们产生相互依赖关系。
开发:生成代码、分工策略。纵向分工策略是指一位开发人员负责将某项业务功能从软件架构层次的最高层一直实现到最底层的分工策略,实际上是以拥立为基础的分工策略,开发人员每人负责几个系统用例的实现。软件过程清晰自然,有利于开发计划制定,工作效率相对较高,不利于软件长期演进战略实施,培训成本高,对软件框架和规范的要求高,资源利用率底。横向分工策略是指我们获得基于用例的工作量估计以后,并不是以用例为工作包进行计划编制和资源指派,而是以软件架构层次为基础,重新估算每个软件构架层次上的工作量,并将开发资源指派到每个层次上去。适合于软件的长期演进,培训成本较小,资源利用率较高,失去用例驱动的清晰性,项目计划制定相对困难,项目沟通压力大。
测试:质量保证——新世界需要稳健运行、设计和开发测试例。
好的程序不仅好用还好维护,可塑性好,这就需要我们做好每一步。
think in UmL(三)的更多相关文章
- UML简介
Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型 ...
- UML基础知识点
UML : unified Modeling Language 统一建模语言 1.对系统问题进行分析和建模 2.非专利的第三代建模和规约语言 3.UML是一种开放的方法.用于说明.可视化.构 ...
- JAVA学习笔记之与C#对比
最近在学习java,刚学完入门课程...下面说一下入门课程中相对印象深刻的知识点 JAVA-C#差异 1. for循环 C# string [] strarr=new string[5]; forea ...
- j2EE经典面试题
1. hibernate中离线查询去除重复项怎么加条件? dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); 2. http协议及端口,sm ...
- Mix 导航
Mix 导航 一.程序员必备技能 Markdonw 使用 Git 常用命令 二.分析设计 UML 三.其他 博客园代码样式修改
- 北航OO课程完结总结
什么是OO? 面向对象,是一种编程的思想方法,但是在这门课程中,我们实际学习到的是将理论运用到具体实践上,将自己的想法付诸实践,不断去探索和优化的这一体验. 后两次作业架构总结 本单元两次作业,我们面 ...
- <三>面向对象分析之UML核心元素之参与者
一:版型 --->在UML里有一个概念叫版型.有些书里也称类型,构造型. --->这个概念是对一个UML元素基础定义的扩展.在同一个元素基础定义的基础上赋予特别 ...
- 产品需求文档写作方法(三)用例文档(UML用例图、流程图)
在产品和技术领域里都有UML的技能知识,而对于产品人员的UML则更多的是指用例图,也就是我所称呼的用户流程图.在讲PRD文档写作的第二篇文章里,我提到了用户流程图的制作,实际上用户流程图是我在产品规则 ...
- UML类图三
2. 依赖关系 依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系.大多数情况下,依赖关系体现在某个类的 ...
随机推荐
- 浅析Java虚拟机结构与机制[转]
本文旨在给所有希望了解JVM(Java Virtual Machine)的同学一个概念性的入门,主要介绍了JVM的组成部分以及它们内部工作的机制和原理.当然本文只是一个简单的入门,不会涉及过多繁杂的参 ...
- 性能问题案例01——sybase数据库内存问题
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/xuepiaohan2006/article/details/30064399 近期现场反馈问 ...
- gcd以及exgcd入门讲解
gcd就是最大公约数,gcd(x, y)一般用(x, y)表示.与此相对的是lcm,最小公倍数,lcm(x, y)一般用[x, y]表示. 人人都知道:lcm(x, y) = x * y / gcd( ...
- 【转】如何打开注册表编辑器中存储用户信息的SAM文件?
sam文件怎么打开 (Security Accounts Manager安全帐户管理器)负责SAM数据库的控制和维护.SAM数据库位于注册表HKLM\SAM\SAM下,受到ACL保护,可以使用rege ...
- 【转】Tomcat连接器:Coyote框架
不论Tomcat的容器设计得如何精妙,本质上Tomcat就是个http服务器,需要从socket中获得HTTP数据流:另一方面,容器只能处理封装好的org.apache.coyote.Request ...
- apache不能启动LoadModule php5_module modules/ph
apache不能启动LoadModule php5_module modules/php5apache2.dll的问题 主要是版本问题!!有点不爽!! apache不能启动 加入下面两行,apache ...
- metamask-iframe-stream,没成功
https://github.com/kumavis/iframe-stream/blob/master/test/rebundle.js iframe-stream-其实就是将iframe打包成流 ...
- Linux核心-hc课堂笔记
windows系统:分区 linux系统:树形结构 <鸟哥的私房菜>关于分区.linux命令.基础篇 服务器篇 关于文件夹: /boot 引导分区,操作系统启动时要到该目录下 ...
- Java继承访问权限
JAVA 子类重写继承的方法时,不可以降低方法的访问权限,子类继承父类的访问修饰符要比父类的更大,也就是更加开放,假如我父类是protected修饰的,其子类只能是protected或者public, ...
- OpenCV——字符提取并保存
截取图中上方数码管中的数字 基本思路: 1.将图像转化为灰度图 2.截取ROI区域 3.二值化 4.循环遍历每一行和每一列,得到字符的坐标 5.截取并保存 #include <opencv2/o ...