《uml大战需求分析》阅读笔记05

这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事?

一般搞清楚这件事,再画个业务流程图,就能条例清楚的表达系统的需求了。作为一个开发人员,不仅要懂得如何从用户那里获取有用的信息,还要懂得怎么清晰地描述自己的想法,给客户呈现出一个结构完整、功能全面的系统原型。那么,这些必备的画图技巧,就会帮上很大的忙。

用例图是用处非常广泛,使用频率最高的UML图,它用来描述什么角色通过某某系统能做什么事情,关注的是系统的外在表现、系统与人之间的交互、系统与其他系统之间的交互。

在一个实际项目中,可能会包含上百个用例,组织这些用例时可以使用高度概括的语言先画一个宏观的用例图,再将其分层次地分解为多个具体的用例图,必要时,还可以使用包图对众多用例图进行分类,帮助理解整个系统需求。

给用户描述系统原型时,在其能理解的基础上,可以使用精简的用例图。用客户能够听懂的语言(不应该处于开发人员的角度来描述),有侧重性地进行详述。当客户提出问题与需求时,我们需要立于客户的想法,又要高于客户的想法,不能盲目地从客户想法中导出用例,应该更多的从系统的目标、待解决的客户问题上寻找解决方案。

当然,用例图不是万能的,也不是表达需求的唯一方式。学会掌握用例图所承载的需求分析方法,能够灵活的运用才是关键。

上文提到的包图,就是一个容器,能够容纳各种UML图(包括包图自己),旨在将散乱的东西组织起来,由粗到细的解决问题,但如果已经是项目组的成员,并参加了整个需求调研过程,就没必要拐弯抹角,放弃包图了,减少不必要的阅读过程。

实际工作中,包图的使用频率比较低,但在软件设计、软件架构设计中会经常使用。

执行者的范围可以从系统的项目相关人员,用例的主执行者,被设计系统本身,用例的辅助执行者,内部执行者,在例子中公司没有注意系统的项目相关人员,导致系统没有提供完全的服务修改请求蜂拥而至。朱执行者是直接触发用例的执行者组织人或者是和该组织有关系的人,通过这些来描述用户主要场景,与我自己认知不同的是我认为用例必须用用例图来表示,不过语言文本的表示也是挺清晰的,一个编写良好的用例应该具有可读性,无论是业务人员还是软硬件开发人员还是设计人员都可以通过用例来描述需求,关接下来范围是指真正被讨论的系统是什么,主执行者谁有药实现的需求,层次指目标的高低,主成功场景一切都成功的情况下,在第一个一个人准备通过万维网购买股票的情况中这个用例应该是一次处理就能完成的目标处于用户级的目标而第二个则不能从一次中完成,需要多不的处理显然处于概要的目标。

时间: 2024-10-05 04:58:45

《uml大战需求分析》阅读笔记05的相关文章

架构之美阅读笔记01

初识架构,什么是架构,架构美在何处?不同领域的设计师对架构的理解大相径庭:软件架构师对一个好的架构的要求诸如对用户友好,响应及时,易维护,没有重大错误,易安装,可靠性高,可通过标准的方式同其他系统通信等等特点.通过进一步深入了解,更加深了对架构和架构之美的了解. "建造的艺术或科学,特别是设计和建造人类使用的建筑时的艺术或实践,同时考虑到美学因素和实用因素."架构是提供一种特定的方式来解决共同的问题,这种方式具有实用性和美学性:架构是美观.坚固.实用三个方面的平衡配合.好的系统架构展示

架构之美阅读笔记之五

今天我学习的是架构之美的第五章--面向资源的架构:在web中.这一章,作者讲述说明了,企业中聚焦信息的架构展示了雨web一样的特点:伸缩性,弹性,架构歉意策略,信息驱动和访问控制等. Web服务的目标是提供建立可复用的业务服务基础的架构,希望能在不影响客户的情况下在各个地方以不同的编程语言异步地访问所有的功能,但是为了实现这个目标所用的技术组合使人感到迷惑,而且没有真正解决实际中组织机构的架构所面临的问题,,出现了一些服务恶化的问题. 面向资源的架构的标识是向命名的资源发起逻辑请求的过程,这些请

架构之美阅读笔记之三

今天我学习的是架构之美的第三章--伸缩性架构设计.这一张也是涉及到了第二部分,企业级用用架构.首先我们要引出,伸缩性架构设计,也就是为什么要伸缩性的架构.主要原因是,我们在设计系统架构Ⅹ,要确保系统在伸缩时的弹性.为了适应使用软件架构的不同应用程序,使用该架构的程序员等,软件系统架构必须要具有伸缩性. 要是系统架构是伸缩性的,则系统应该是分布式的,并发的.就像书中讲到的Darkstar项目,由于在线人数,不同时间等的影响,游戏的负载情况也会不同,服务器的数量,连接方式,为了应对这些不同的情况,也

架构之美阅读笔记五

第十一章解释了一组非常简单的组件和一门扩展语言如何将一个不起眼的文本编辑器编程了一个操作系统,成为程序员工具箱中的瑞士军刀:第十二章展示了冲刺和统计评审这样的社区过程如何帮助软件架构从简单的骨架演变为美丽的系统. 第十一章为我们展示了GNU Emacs的故事:滋长的特性是其优势.首先我认识到了Emacs是什么.它和我们经常使用的其他文本编辑器类似,当我们用Emacs打开一个文件时,将弹出一个窗口,并显示出该文件的内容,我们可以对其内容进行修改,然后保存这些修改后退出.Emacs架构所采用的是在交

架构之美阅读笔记四

首先要确定系统的功能和约束,也就是,它必须做什么以及在什么限制条件下工作,这样也就确定了问题空间.接下来我们要了解事实,重要问题和架构的关注点.确定工作流也是一个极为重要的步骤,来自于我们对于如何划分系统的考虑. 系统架构常见的关注点有,功能性:产品向特的用户提供哪些功能?可变性:软件将来可能需要哪些改变?性能:产品将达到怎样的性能?容量:多少用户可以并发使用该系统?该系统将为用户保存多少数据?生态系统:在不是的生态环境中,该系统将于其他系统进行哪些交互?模块化:如何将编写软件的任务分解为工作指

架构之美阅读笔记六

一个好的架构的形成不仅是架构师的功劳,还有团队的集体合作,主要因素:确实进行有意为之的前端设计:设计者有很好的素质和经验:在开发过程中,保持清晰的设计观点:授权团队负责软件的整体设计:不要害怕改变设计:让合适的人加入到团队中,让团队保持健康的工作关系:在合适的时候做出决定:好的项目管理和合适的最后期限. 在后来介绍架构伸缩性的时候以常见的在线游戏的设计为例,这类软件对系统的伸缩性要求很高,要能实时伸缩,减少延时.随即提出了两种解决方案:分区和基于地理位置,每个地理区域的玩家运行在一台服务器上.

架构之美阅读笔记06

大多数系统核心的是数据,而不是算法.用户不会接触QuickSort,而是去访问一个数据仓库.数据推动了用户喜欢的产品,所以架构师围绕数据创建了其余的传统"n层"软件站.Facebook即是一个围绕数据建立架构的例子."Facebook社会关系网站"在概念上是一个标准的"n层"栈,用户的请求会从Facebook的内部库中取出数据,然后通过Facebook的逻辑进行转换,最后通过Facebook的界面输出.本章向读者展示了Facebook以一种受控的

架构之美阅读笔记02

第三章伸缩性构架设计 本章的重点是怎样确保系统在伸缩时的弹性.因为访问量的不稳定,所以伸缩性显得尤为重要.而在虚拟世界中伸缩性的问题进一步复杂化.伸缩性设计的背景就是游戏的开发和发行,玩家的交互,玩家的对电脑的要求.并发的芯片比更高时钟速度的芯片更容易开发.游戏中玩家的交互只和少部分人发生交互.所以这也适合并发. 我们的首要目标就是把一台单机运行一个单线程部署到多线程和多台计算机上应该由基础设施来考虑.游戏世界始于一个很胖的客户端(具有强大功能的pc),所有数据尽量放在客户端.服务器尽量保持简单

《掌握需求过程》阅读笔记05

<掌握需求过程>阅读笔记05 我们的产品因为其功能而为用户使用而有意义,我们的产品才会有价值.而产品的需求又分为功能性需求和非功能性需求. 功能性需求就是因为产品存在的根本原因而存在的需求.功能性需求指明了产品必须做的事情,是产品功能的规格说明书,源于产品的基本目标.为了实现存在的根本理由,产品必须执行的一些动作,这些动作就与功能性需求有关. 我们可以通过用例描述.用户场景描述等地方挖掘出我们产品的功能性需求.那些我们产品必不可少的功能.目标就是我们产品的功能性需求.但是在分析功能性需求的时候

构建之法阅读笔记05

2017.5.20 今天阅读的是<构建之法>第8章需求分析的阅读笔记,我们如果要开始做一个软件,最先要进行的就是需求分析,我们应该充分的了解我们这个软件是否具有前景,我们为用户提供的服务是不是用户所需要的,这一章详细的叙述了如何进行需求分析. 首先是获取和引导需求,我们应该找到软件的利益相关者,了解挖掘他们对软件的需求,引导他们表达出真实的需求.然后分析和定义需求,对各个方面的需求进行规整,定义需求内涵,从各个角度将需求量化,然后估计实现这些需求所需要的时间和资源,确定各个需求的优先级.紧接着