软件方法(上):业务建模和需求(第2版)

软件方法(上):业务建模和需求(第2版) pdf epub mobi txt 电子书 下载 2025

潘加宇 著
图书标签:
  • 软件工程
  • 业务建模
  • 需求分析
  • UML
  • 软件开发
  • 系统分析
  • 建模方法
  • 需求工程
  • 软件方法
  • 第2版
想要找书就要到 静思书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 清华大学出版社
ISBN:9787302497820
版次:2
商品编码:12346402
包装:平装
开本:16开
出版时间:2018-03-01
用纸:胶版纸
页数:268
字数:285000

具体描述

产品特色

内容简介

在软件开发中,需求工作致力于解决“提升销售”的问题,设计工作致力于解决“降低成本”的问题,二者不能相互取代。能低成本生产某个系统,不一定能保证它好卖。系统好卖,如果生产成本太高,最终还是赚不了多少钱。

如果需求和设计不分,利润就会缩水。从需求直接映射设计,会得到大量重复代码;如果从设计出发来定义需求,会得到一堆假的“需求”。

《软件方法(上):业务建模和需求(第2版)》在主要思想不变的前提下,结合最近几年的发展,从文字到图形进行更新,每一章的内容更加细致,道理讲得更加严谨,例子和练习也更加丰富,希望能给读者提供帮助。


作者简介

潘加宇

UMLChina首席专家

从1999年起潜心研究需求和设计技能。2002年开始对外提供UML需求和设计的技术指导和训练服务。到2017年为止,已经上门为超过260家的组织提供服务,覆盖国内各个领域的领袖企业,包括通信、企业管理、电子商务、房地产、网络游戏、地理信息、物流、数码设备、医疗设备、工业控制等。


目录

目 录

第1章 建模和UML 1

1.1 粗放经营的时代已经远去 1

1.2 利润=需求-设计 2

1.3 建模工作流 4

1.4 UML简史 11

1.5 UML应用于建模工作流 14

1.6 基本共识上的沟通 16

1.7 建模和敏捷(Agile) 19

1.8 什么样的系统不需要建模 21

1.8.1 市场没有小系统 21

1.8.2 你的系统不特别 23

1.9 案例介绍 24

1.10 模型的组织 25

1.11 工具操作 28

第2章 业务建模之愿景 33

2.1 什么是愿景(Vision) 33

2.2 【步骤】定位目标组织和老大 35

2.2.1 目标组织和老大的含义 35

2.2.2 定位情况1:定位目标人群和老大 37

2.2.3 定位情况2:定位机构范围和老大 42

2.2.4 定位情况3:定位目标机构 46

2.2.5 其他一些要点 47

2.3 【步骤】提炼改进目标 53

2.3.1 改进目标不是系统功能需求 53

2.3.2 改进目标不是系统的质量需求 56

2.3.3 改进是系统带来的 57

2.3.4 改进目标应来自老大的视角 58

2.3.5 多个目标之间的权衡 59

2.4 【案例和工具操作】愿景 61

第3章业务建模之业务用例图 65

3.1 软件是组织的零件 65

3.2 【步骤】识别业务执行者 68

3.2.1 业务执行者(Business Actor) 68

3.2.2 业务工人和业务实体 68

3.2.3 识别业务执行者 71

3.3 【步骤】识别业务用例 75

3.3.1 正确理解价值 77

3.3.2 识别业务用例的思路和常犯错误 80

3.4 【案例和工具操作】业务用例图 88

第4章业务建模之业务序列图 95

4.1 描述业务流程的手段 95

4.1.1 文本 95

4.1.2 活动图 96

4.1.3 序列图 97

4.1.4 序列图和活动图比较 98

4.2 业务序列图要点 101

4.2.1 消息代表责任分配而不是数据流动 101

4.2.2 抽象级别是系统之间的协作 102

4.2.3 只画核心域相关的系统 106

4.2.4 把时间看作特殊的业务实体 107

4.2.5 为业务对象分配合适的责任 107

4.3 【步骤】现状业务序列图 109

4.3.1 错误:把想象中的改进当成现状 110

4.3.2 错误:把“现状”误解为“纯手工” 110

4.3.3 错误:把“现状”误解为“本开发团队未参与之前” 111

4.3.4 错误:把“现状”误解为“规范” 112

4.3.5 错误:“我是创新,没有现状” 112

4.3.6 错误:“我做产品,没有现状” 112

4.4 【案例和工具操作】现状业务序列图 115

4.5 【步骤】改进业务序列图 124

4.5.1 改进模式一:物流变成信息流 125

4.5.2 改进模式二:改善信息流转 126

4.5.3 改进模式三:封装领域逻辑 129

4.5.4 阿布思考法 131

4.6 【案例和工具操作】改进业务序列图 137

第5章需求之系统用例图 145

5.1 系统执行者要点 145

5.1.1 系统是能独立对外提供服务的整体 146

5.1.2 系统边界是责任的边界 147

5.1.3 系统执行者和系统有交互 149

5.1.4 交互是功能性交互 151

5.1.5 系统执行者可以是人或非人系统 152

5.2 【步骤】识别系统执行者 154

5.3 系统用例要点 158

5.3.1 价值是买卖的平衡点 158

5.3.2 价值不等于“可以这样做” 160

5.3.3 增删改查用例的根源是从设计映射需求 163

5.3.4 从设计映射需求错误二:“复用”用例 165

5.3.5 系统用例不存在层次问题 170

5.3.6 用例的命名是动宾结构 173

5.4 【步骤】识别系统用例 178

5.5 【案例和工具操作】系统用例图 181

第6章需求之系统用例规约 187

6.1 用例规约的内容 187

6.1.1 前置条件和后置条件 188

6.1.2 涉众利益 193

6.1.3 基本路径 200

6.1.4 扩展路径 211

6.1.5 补充约束 217

6.2 【案例和工具操作】系统用例规约 227

第7章需求启发 245

7.1 需求启发要点 245

7.2 需求启发手段 249

7.2.1 研究资料 249

7.2.2 问卷调查 250

7.2.3 访谈 251

7.2.4 观察 253

7.2.5 研究竞争对手 254

7.3 需求人员的素质培养 255

7.3.1 好奇心 256

7.3.2 探索力 257

7.3.3 沟通力 257

7.3.4 表达力 258

7.3.5 热情 258

书评 263


前言/序言

每当变幻时,便知时光去。

《每当变幻时》;词:卢国沾,曲:古贺政男,唱:薰妮;1985

前 言

2013年写的第一版前言,现在看来依然可以用,所以除了修改一些随年份变化的数字之外,我把第一版前言附在后面,本次版本的前言就尽量写得简短一些。

在主要思想不变的前提下,我结合最近几年的进展,几乎把整《软件方法(上):业务建模和需求(第2版)》重新写了一遍,从文字到图形基本上都换了。每一章的内容更细致,道理讲得更严谨,例子和练习也更丰富。总之,希望能给读者带来一本更有用的书。《软件方法(上):业务建模和需求(第2版)》出版之后,将继续投入未写完的《软件方法(下):分析和设计》。

18年过去,弹指一挥间。我已经在这一个狭窄的领域泡了十八年了,也许累计的时间已经超过了一些前辈。希望还能再研究十八年,和大家分享更多有价值的东西。

潘加宇

2017年10月

光阴匆匆似流水,它一去不再回。

《浪子归》;词:黄小茂,曲:崔健,唱:崔健;1985

前言(2013版)

1999年还是一名程序员时,我创建了UMLChina,从那时开始关注软件工程各方面的进展。2001年12月,阿里巴巴的吴泳铭来email询问是否有UML方面的训练,我开始准备训练材料。2002年3月,我去杭州给阿里巴巴做了这个训练。虽然与后来我给阿里集团各公司做的许多次训练相比,这第一次讲课从内容到形式都算是糟透了,但是我现在还记得当时的心情——迈出自己事业第一步的心情。

截至2013年7月,我已经上门为超过190家软件组织提供需求和设计技能的训练和咨询服务(2017年注:2017年10月的数字为超过260家)。训练结束后,学员们常会问:“潘老师,上完课后我们应该看什么书?”我总是回答:“先不用看杂七杂八的书,还是要复习我们留下的资料,那些幻灯片、练习题、模型就已经是最好的书了,按照改进指南先用一点点在具体项目上,带着出现的具体困惑和我讨论。”虽然一再这样强调,有的学员还是情不自禁地拿着一本《***UML***》之类的书来问我问题,不管书上说得对不对。看来写在正式出版物上的效果就是不一样。

其实现在出书也不难,UMLChina一直在和出版社合作推介国外优秀的软件工程书籍,目前UMLChina的标记已经出现在三十多本软件工程书籍上。不过我一直没有自己写一《软件方法(上):业务建模和需求(第2版)》,主要原因还是觉得积累不够,思考的深度也不够,对软件开发的认识还在不断变化。如果没有自己成形的东西,不能站在别人的肩膀上看得更远,只是摘抄别人的观点,这样的书有什么意义呢?

另外一个原因是,UMLChina后来采取了“隐形、关门”的策略,秉持“内外有别”的原则。我关闭了已经有4万多人的Smiling电子小组(也是为了降低某些风险),网站不再有公开的社区,在网站上也找不到“客户名单”,所有更细致的服务以非公开的方式对会员提供。在这种情况下,出一《软件方法(上):业务建模和需求(第2版)》也不是那么迫切。

现在距离第一次提供服务已经超过10年(2017年注:已经超过15年了),也有了一些积累,所以硬着头皮也要开始写书了。在这些年的服务过程中,和开发团队谈到改进时,我发现一个有趣的现象:很多开发团队(不是每个团队)或多或少都会有人(不是每个人)或明或暗地表达出这样的观点——自己团队的难处与众不同,奇特的困难降临在他们身上,偏偏别人得以幸免。

尽管UMLChina一直强调自己的服务是“聚焦最后一公里”,坚信每一个开发团队都会在细节上和其他团队有所不同,而且也应该有所不同,但很多时候,我还是感觉到,开发团队高估了自己的“个性”,低估了“共性”。《软件方法(上):业务建模和需求(第2版)》就是归纳这样一些“共性”,作为我的一家之言,供大家参考。感谢曾经选择我的服务的伙伴们。他们一次次地给我机会来实践、发展和锤炼技艺,才有了这《软件方法(上):业务建模和需求(第2版)》。

《软件方法(上):业务建模和需求(第2版)》中所讲述的技能集合也是我本人身体力行的。例如,您可能已经注意到,为《软件方法(上):业务建模和需求(第2版)》写推荐序的正是《软件方法(上):业务建模和需求(第2版)》的“老大”,他不是什么大师专家名人,而是一名经历了入职、升职和创业,不断成长的软件开发人员。

一些书籍作者喜欢在书中每一章的开头放上和该章内容相关的一幅画或一句名人名言,我也效仿一下,不过没那么“高雅”——每章的开头放上和该章内容相关的一句歌词。

书中的模型图,如果是我为了讲解知识而画的,用的建模工具是Enterprise Architect 9(2017年注:改为Enterprise Architect 13);如果是截取真实模型的图片,可能会涉及各种工具。我不像Robert C. Martin那样,女儿已经长大到可以帮画插图,所以书中的手绘插图,我都自己用Wacom 笔来画,可能丑了一些,请见谅。

潘加宇

2013年10月



软件方法(上):业务建模和需求(第2版) 内容概述 《软件方法(上):业务建模和需求(第2版)》深入探讨了软件开发生命周期中至关重要的早期阶段——业务建模和需求工程。本书并非对具体编程语言或技术框架的入门指南,而是聚焦于理解、分析和定义“做什么”的问题,为后续的软件设计和实现奠定坚实基础。它旨在帮助读者掌握从模糊的业务愿景到清晰、可执行的软件需求规范的转化过程。 全书围绕软件开发的核心挑战展开:如何确保构建的软件真正解决用户的实际问题,并为业务带来价值。作者们以清晰的逻辑和丰富的实践案例,系统地阐述了业务建模和需求分析的原理、方法和技术。读者将学习如何构建能够准确反映业务流程、组织结构和用户交互的抽象模型,并在此基础上提炼出明确、完整、一致且可验证的软件需求。 核心内容与章节解析 本书的上篇,即“业务建模和需求”部分,共分为若干章节,每个章节都围绕一个核心主题展开,并辅以大量的插图、图表和实例,力求让抽象的概念变得直观易懂。 引言与软件工程基础: 章节伊始,本书会首先界定软件工程的范畴,阐述需求在整个软件开发过程中的关键作用。它会强调,缺乏清晰的需求是导致项目失败、成本超支和用户不满的主要原因之一。通过引入各种软件开发模型(如瀑布模型、迭代模型、敏捷模型等),帮助读者理解需求在不同模型中的定位和重要性。此部分将带领读者初步认识到,成功的软件项目始于对问题域的深刻理解。 理解业务和问题域: 在进入具体的需求建模之前,本书会花费大量篇幅讲解如何深入理解业务。这包括识别项目的目标、利益相关者(stakeholders)及其各自的需求和期望。读者将学习各种访谈技巧、问卷调查方法、观察方法以及文献研究等信息收集技术,以确保能够全面、准确地把握业务的复杂性。此外,还会介绍如何构建领域模型(domain models),即对业务中核心概念、实体、关系和规则的抽象表示,为后续的需求规格说明打下基础。 用例建模(Use Case Modeling): 用例建模是本书的核心内容之一。读者将学习如何识别系统中的用户角色(actors)以及他们与系统进行交互的各种方式——即用例(use cases)。本书将详细介绍如何编写标准的用例描述,包括用例的名称、目标、前置条件、后置条件、基本流程、备选流程和异常流程。通过大量的实例,读者将掌握如何构建一套完整且具有指导意义的用例模型,这套模型能够直观地展示系统的功能边界以及用户与系统之间的交互逻辑,是沟通业务需求与技术实现的有效桥梁。 活动图(Activity Diagrams)与流程建模: 紧随用例建模之后,本书将深入讲解活动图。活动图是一种强大的工具,用于可视化业务流程或系统功能的动态行为。读者将学习如何使用活动图来描绘一系列活动、决策点、并发执行的分支以及活动之间的顺序和控制流。通过对业务流程的活动图建模,可以清晰地发现流程中的瓶颈、冗余和潜在的改进点,为优化业务流程和定义系统功能提供依据。 状态机建模(State Machine Modeling): 对于具有复杂行为或状态变化的系统,状态机建模是一种至关重要的技术。本书将介绍如何构建状态机模型,用于描述对象或系统的不同状态以及在不同事件触发下状态之间的转移。这对于理解和定义那些需要精确控制行为和状态的软件组件(如用户界面、工作流引擎等)具有重要意义。 类图(Class Diagrams)与概念建模: 虽然类图更多地被视为设计阶段的工具,但在需求分析阶段,它也扮演着重要角色,主要用于概念建模。本书将引导读者学习如何构建领域类图,以识别业务中的关键概念、它们的属性以及它们之间的关联关系。这有助于在早期就建立起对业务领域结构的共识,并为后续的面向对象设计提供坚实的概念基础。 需求规格说明(Requirements Specification): 在完成各种建模工作之后,本书将重点讲解如何将分析的结果转化为正式的需求规格说明。这包括结构化需求文档的编写,如软件需求规格说明书(SRS)。本书将介绍不同类型需求的表达方式,如功能需求(functional requirements)和非功能需求(non-functional requirements),后者包括性能、安全性、可用性、可维护性等方面的要求。同时,还会探讨需求验证(validation)和确认(verification)的重要性,确保需求准确无误地反映了用户的真实意图。 需求管理(Requirements Management): 需求是动态变化的,因此需求管理成为项目成功不可或缺的一环。本书将介绍需求变更控制、需求跟踪(traceability)以及如何管理需求之间的依赖关系。读者将了解为何要建立一个系统的需求管理流程,以应对需求变化带来的挑战,并确保项目始终沿着正确的方向前进。 本书的价值与读者对象 《软件方法(上):业务建模和需求(第2版)》并非一本浅尝辄止的书籍,它提供了一套系统化的方法论和实践指南,帮助读者在软件开发的起点就掌握主动权。 本书适合的读者群体非常广泛: 软件工程师和开发人员: 无论经验水平如何,掌握良好的需求分析能力都能显著提升工作效率和项目成功率。本书将帮助他们更好地理解业务背景,与业务分析师和客户进行有效沟通,并编写更准确的需求规格。 业务分析师(Business Analysts): 这是本书的核心目标读者。本书提供了他们所需的理论框架、方法论和工具,帮助他们系统地收集、分析、建模和沟通业务需求。 项目经理(Project Managers): 清晰的需求是项目计划、风险管理和成本估算的基础。项目经理可以通过本书深入理解需求过程,从而更好地管理项目。 产品经理(Product Managers): 理解用户需求和业务价值是产品经理的核心职责。本书将帮助他们将模糊的产品愿景转化为可落地的软件需求。 学生和教育工作者: 对于计算机科学、软件工程以及相关专业的学生而言,本书是学习软件工程基础知识的理想教材,能帮助他们建立扎实的理论基础和实践能力。 总而言之,《软件方法(上):业务建模和需求(第2版)》是一本不可多得的经典著作,它以系统、严谨且实用的方式,带领读者穿越软件开发最关键的起点,掌握构建高质量软件的基石。它强调的是“理解”和“定义”,而非“构建”本身,旨在确保我们构建的软件“做正确的事”,而非仅仅“正确地做事”。

用户评价

评分

这本书我早就听说过了,一直想找时间好好看看,总算是拿到手了,这装帧设计就挺不错的,拿在手里沉甸甸的,让人感觉很有分量。我尤其喜欢这种硬壳精装的版本,平时放在书架上显得特别大气,而且也比较耐用,翻阅的时候不容易损坏。拿到书的第一感觉就是内容一定很扎实,从封面设计到字体印刷,都透着一股严谨认真的学术气息。我之前接触过一些关于软件开发的入门书籍,但总觉得内容有些浅显,不够系统,这次入手这本《软件方法(上):业务建模和需求(第2版)》,就是希望能够更深入地理解软件开发的全貌,特别是早期阶段的业务建模和需求分析。我平时工作接触到一些项目,感觉很多时候失败的原因都在于前期需求不明确或者业务理解有偏差,所以这本书对我来说,简直是雪中送炭。我迫不及待地想翻开看看,相信它一定能给我带来很多启发和帮助,让我对软件开发过程有一个更深刻、更全面的认识。

评分

我购买这本书,主要是基于我最近在软件开发领域遇到的瓶颈。我发现自己虽然能熟练掌握一些编程技术,但在项目初期,尤其是与客户沟通、理解业务需求、进行系统设计的阶段,总是显得力不从心。我希望能通过这本书,学习到更科学、更系统的方法论,来提升我在业务建模和需求分析方面的能力。我希望这本书能够提供一些清晰的框架和实用的工具,让我能够更好地理解业务的本质,更准确地把握用户的真实需求,并将其转化为可执行的开发任务。我对手边的这本《软件方法(上):业务建模和需求(第2版)》寄予厚望,希望它能帮助我建立起一套扎实的理论基础和一套行之有效的方法论,从而在未来的工作中更加游刃有余,能够更好地与客户沟通,更准确地理解项目目标,最终交付出更优质的软件产品。

评分

一直以来,我都对软件开发过程中的“软实力”非常关注,尤其是业务建模和需求分析这两个环节。我相信,很多项目的成败,往往取决于前期这两个阶段的质量。我之前读过一些零散的文章和资料,但总感觉不够系统,缺乏一个完整的知识体系。这次入手《软件方法(上):业务建模和需求(第2版)》,就是希望能填补这一领域的知识空白。我希望这本书能够提供一种“道”的指引,让我理解为什么要做这些事情,以及背后的逻辑是什么。我更期待它能给我一套“术”的工具,让我知道具体该怎么做。我喜欢这种带有“上”和“下”区分的书名,意味着它是一个系统性的整体,而上册又专注于最核心、最基础的环节,这正是我目前最需要的。我希望能通过这本书,能够建立起对业务建模和需求分析的深刻理解,并将其应用到我的实际工作中,从而提高项目成功的概率。

评分

这本书吸引我的地方在于它的“方法”二字。我一直认为,好的软件开发不仅仅是技术的堆砌,更重要的是有条理、有章法的方法论作为支撑。我曾经参加过一些培训,学习过一些敏捷开发的方法,但感觉在业务建模和需求分析这块,总是欠缺一些系统性的指导。我希望通过阅读《软件方法(上):业务建模和需求(第2版)》,能够深入理解其中的核心概念、原则和实践。我期待这本书能够提供一套完整的流程,从业务的理解、分析,到需求的收集、定义、管理,能够有清晰的指导。我更希望书中能够包含一些实际案例,让我能够更好地理解这些方法论是如何在实际项目中应用的。我已经迫不及待地想开始阅读,希望能从中学习到实用的技巧和经验,提升自己在软件项目早期阶段的决策能力和执行力。

评分

说实话,我拿到这本书的时候,第一反应是它的厚度。这绝对是一本“大部头”,但这份厚重也让我对其中内容的丰富性和深度充满了期待。我最近在工作中遇到了一个棘手的项目,涉及到复杂的业务逻辑梳理和用户需求提取,感觉自己在这方面总是抓不住重点,经常陷入各种细节却迷失了方向。我希望通过阅读这本书,能够系统地学习到如何有效地进行业务建模,如何准确地捕捉和定义需求,以及如何避免常见的误区。我一直觉得,一个成功的软件项目,其根基在于清晰的业务理解和明确的需求定义,如果这部分出了问题,后续的开发工作就会变得异常艰难,甚至功亏一篑。这本书的书名就直接点出了核心主题,而且是“第2版”,这说明它经过了市场的检验和内容的更新迭代,应该更加成熟和完善。我已经开始想象,在未来的日子里,我将如何沉浸在这本书的海洋中,汲取知识,提升能力,期待着能为我的工作带来实质性的改变。

评分

朋友推荐的,买来看看

评分

上一次用挺好的,不用电动的了

评分

朋友推荐的,买来看看

评分

何彬和男男男男**

评分

对于需求方面讲的还挺有借鉴意义

评分

评价大于20元的物品有机会获得20个京豆,复制粘贴。够字数了

评分

何彬和男男男男**

评分

何彬和男男男男**

评分

对于需求方面讲的还挺有借鉴意义

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有