软件方法札记之建模和UML

前言:软件方法第一章主要讲解建模和UML,书中提出了很多新颖的概念,对于建模-需求-分析-设计之间的关系,让我耳目一新。虽然很多概念我知晓的很混乱,但是我仍然坚持写到读书札记中,因为我相信,阅读者早晚会给我启发,而我通过反复阅读我自己的感悟,终究会探寻出我想要的答案。

利润=需求(能卖)-设计(低成本)

需求致力于解决“产品好卖”的问题,设计致力于解决“产品成本”的问题,我在作者的标题中加上了能卖和低成本两个概念,这样可能就更加直观。先来了解需求和设计是什么样的概念,以及其相关概念应该是什么?

  1. 业务建模

    • 组织要解决什么问题
    • 以软件模型方式描述企业管理和业务所涉及到的对象、要素,以及他们的属性、行为和彼此关系
    • 非常苦涩,拿手机来按照我自己的意向来表述一下,在没有手机之前,我假设我要创造一个产品XX,手机当然也是为了解决人们之间的及时通信,那么它和电话有什么区别呢,XX要解决电话带给我们的什么问题呢,当然就是更加便利,人们不再通过电话机进行通信,you can say hello to someone anywhere。
  2. 需求
    • 详细描述系统要卖出去所必须提供的功能和性能
    • 继续拿XX来说,XX只所以不要同于电话,必须要没有电话线,也就是说最主要先解决掉电话线的麻烦,这时我们就可以拿着一个不需要电话线的电话到处和其他人通信,然而这还不能使XX卖得更好,XX还需要有一个便捷的电话号码输入方式,还需要方便的接听和对话,还需要能够续航,那这些功能和性能就是XX所要的需求
  3. 分析
    • 提炼系统内需要封装的核心领域机制
    • 对于XX产品,需求有了很多很多,那么就需要分析,为了提供这些功能,要解决什么样的核心问题,我们都知道,必须是先解决电话线的问题,手机之所以称之为移动电话,核心就是要先解决电话线的核心领域
  4. 设计
    • 将核心域知识和非核心域知识结合,最终实现系统
    • 代码也是设计

看完书中介绍,我们当前敏捷开发的确存在很大弊端,我们使用禅道,禅道里面虽然有需求池、迭代、单元测试,但是真正的需求、单元测试都没有其真正应担负的职责,我们把代码作为设计,把客户想要什么作为需求,我们把这些称谓我们的财富,冷静下来想想,这会成为我们进步的障碍。

工具操作

CSDN上提供了enterprise architect的下载,下载完成后,可用。

时间: 2024-10-08 04:27:29

软件方法札记之建模和UML的相关文章

软件方法阅读笔记(一)

<软件方法>讲的是用UML语言来辅助我们进行软件的从0到1的过程.这个过程的结果并不是最终运行在电脑屏幕上的那个界面,而是一堆图纸,可视化的图纸.是的,确实是图纸.建筑行业有设计和施工图纸,电工行业有设计和实施图纸,城市规划有图纸··· ···任何你看得到的工程都有图纸,你要写的软件居然没有.“图纸在我脑子里呢”,我也曾经说过.直到看到这本书.这本书的直接受众应该有两类人:1.程序员这类人一般的工作思路就是提功能的人说要做什么,嗯嗯哦哦之后,迫不及待的打开编辑器开始写代码,调试,然后发现做完的

软件设计师必备——软件工程&#183;建模

由来 Why Modeling ??? 我们由一个小的例子引入建模这个话题! 建造一个狗窝不需要太多的考虑,因为狗的需求是简单的,直接去建就可以满足他们的所有需求. 建造一座房子或者一座高层建筑就需要深思熟虑了.一个家庭或者客房的需求不那么不那么简单,因此即使为了满足客户最起码的需求,也不能直接去建造,而是必须建立以资额模型.不同的人员会从不同的角度宜不同的目的来看待问题,所以对于复杂的建筑物,你必须作平面图设计.立体图设计.暖气/冷气设计.电气设计.管道设计.甚至网络设计.没有任何一个模型能够

复杂软件驱动系统的UCM与UML

复杂软件驱动系统的UCM与UML 复杂软件驱动系统有许多类型,包括面向对象.基于代理.实时和分布式系统.它们具有许多属性,例如大规模.协同性.分散控制.及时性.可靠性.变化多端及特色丰富的功能.运行时组织的流畅性,以及系统的升级需求等,这些属性使得它们无论从技术还是从管理复杂性的角度来看都是难以理解的.这些复杂系统经常被用于电信.防卫.宇航和工业控制等领域. UML(统一建模语言)是一种通用目的建模语言,它可用于详细说明和构造软件系统(特别是面向对象和基于组件的系统)工件并使其可视化与文档化,也

《软件方法》潘加宇 读书笔记

设计源于需求却高于需求. <软件方法>上册(五章)所表述的逻辑: 愿景 ------ 业务建模 ------ 需求 ------ 分析 ------ 设计 1. 愿景: 明白软件的意义是什么,帮助或者提高了现有系统的那些方面,减少了那些成本. 利润 = 需求 - 设计 这个公式成立的前提是需求都已经实现,不同的设计会花费不同的成本.但看完上篇,我觉得应该改一改:  利润 = 业务 - 设计.  整个软件制作的过程中,真正的价值和输出是业务,对业务有什么帮助.提高或者减少业务成本.从业务的分析.

统一建模语言UML整理之开篇

引言: 这段时间将致力于写UML方面的博客,由于个人能力的有限,如果博客中出现错误的地方还请广大博友批评指正.为了更好地了解一个过程或者事物,人们通常根据所研究对象的某些特征(形状.结构.或行为等)建立相关的模型(Model).模型是从一个特定的视点对系统进行的抽象,它可以是实物模型,例如建筑模型,教学模型.玩具等,也可以是抽象数字或图示模型,例如数学公式或图形等.模型建立的目的不是复制真实的原物,而是帮助人们更好的理解复杂的事物本质,反应过程或事物内部各种因素执念的相互关系.下面就让我们进入U

《软件方法》随笔

计算机系统不只是简单地把纸上的东西往电脑里搬. 客户的需求从来就没有变过,只是我们一开始就没有揣摩出来! 利润 = 需求 - 设计,需求致力于解决"产品好卖“的问题,设计致力于解决”降低成本“的问题.代码和设计得到最大程度的复用,从而缩短开发周期,降低开发成本. 从需求直接映射设计,会导致功能分解,得到重复代码.如果从设计出发来定义需求,会得到一大堆假的需求. 如果能学会通过业务建模去推导新系统的需求,而不是拍脑袋得出需求,假的”需求变更“会大大减少. 有的开发人员的”十年工作经验“实际上是”一

对比其它软件方法评估敏捷和Scrum

一般来说,选择一种软件开发方法,更像是加入一个邪教组织,而不像是做出了一个技术决策.许多公司甚至从未试图去评估这些方法,而仅仅是盲目采用最流行的方法,这就造成了如今五花八门的各种敏捷方法.因此本文将使用包括功能点.缺陷移除率(DRE).质量成本(COQ)以及总拥有成本(TCO)在内的一些标准的度量指标,对现代软件开发方法的样本进行比较. 目前有约55种已命名的软件开发方法正在使用,还有更大数量的混合方法.这些开发方法中包括传统的瀑布方法.各种花样的敏捷.Rational统一过程(RUP).团队软

必知必会的目录和文件的作用、安装软件方法、运行级别

作者:Georgekai 归档:学习笔记 2017/12/28 目  录 第1章 ctrl+1 1 1.2  /etc/目录 1 1.2.1                   网卡配置文件和DNS配置文件 1.2.2                更改本机hosts文件 1.2.3                修改主机名 1.2.4                开机自动挂载的设备与目录的对应关系 1.2.5                开机自动运行的软件和命令存放位置 1.2.6    

C# IL DASM 使用-破解c#软件方法

C# IL DASM 使用-破解c#软件方法 2018-02-23 14:58 by halberts, 115 阅读, 0 评论, 收藏, 编辑 IL DASM反编译工具 使用C#的猿人或多或少都会对微软的IL反编译工具(ildasm.exe)有所认识.我最早接触到这工具是公司同事使用他反编译exe程序,进行研读和修改.感觉他还是很强大. IL是微软平台上的一门中间语言,我们常写的C#代码在编译器中都会自动转换成IL,然后在由即时编译器(JIT Compiler)转化机器码,最后被CPU执行.