概要设计、详细设计:概念、方法、实践步骤

时间:2024-10-01 17:45:24

完整软件开发流程:


需求分析、概要设计、详细设计


1.  概念、方法、实践步骤

设计是指根据需求开发的结果,对产品的技术实现由粗到细进行设计的过程。根据设计粒度和目的的不同可以将设计分为概要设计、详细设计等阶段以便于管理和确保质量。设计内容也要根据软件系统的实际情况进行定义,比如对于交互性要求高的系统可以有视觉设计等等。

一般来说可以将设计阶段划分为概要设计、详细设计2阶段进行管理,程序设计可以结合项目管理、作业配分、开发团队的能力以及质量要求等因素来决定是否作为单独的阶段进行管理。

n  概要设计: 定义实现需求的工作产品技功能、技术构架,定义设计准则及共通处理方针,分解划分功能模块,定义各功能模块的功能和业务处理,定义模块间的接口关系。典型的工作产品有《概要设计书》、《设计准则》及《共通处理方针》。一般包括系统技术构架,机能一览,机能迁移图,数据库逻辑设计,数据文件逻辑定义,系统各单位功能模块及接口定义,设计准则及共通处理方针(外观、操作、错误处理、日志、提示信息、异常处理、命名规约、编码规约等方针)等内容。

n  详细设计:定义各功能模块的功能单元的详细实现,包括接口的物理定义,明确数据库/数据文件的物理定义等。典型的工作产品:《详细设计书》。典型的内容包括各模块的功能单元实现的详细描述,数据库物理设计,数据文件物理定义,接口物理定义,状态码物理设计,输出信息(MSG/LOG)设计等内容。

 

程序设计:结合具体的编码语言,编码过程中对代码的设计。根据经验对于团队中有大量初学者来说,进行一定量的程序设计可以提高编码的质量和效率。

 

2.    设计阶段的主要流程

设计阶段的主要活动包括以下内容:设计阶段的计划或规划、确定设计的准则、设计以及制作设计文档、设计产物评审等。

1.设计阶段的计划或规划内容为确定设计团队的组织并授权、评估设计阶段的工作量、明确设计的工作任务(WBS分解)以及完成时间、定义设计阶段的质量标准以及效率标准。这部分活动主要是PDCA中首要步骤,除上述内容外,还需要考虑项目管理中一些共同管理规划,比如风险管理、配置管理、干系人管理、变更管理、决策分析管理等等内容。在多人或团队作业的工作,制定合理的计划和规划是首要的步骤。

2.设计不同类型的系统其设计方法、方式等有很大的区别,比如图像处理系统、监控系统和ERP等管理系统的差异是显而易见的。因此设计阶段有个关键的活动就是确定设计准则,这个活动的主要目的就是根据系统的实际情况,选择最佳的实践,用最优的方法指导设计的进行。设计准则通常要考虑的内容包括:设计的内容、方法、工具、模板、命名规约、模块划分规则(尤其设计粒度)、质量以及效率评估方式等等。

3.设计以及制作设计文档:根据设计准则以及设计规划执行设计任务并制作设计文档多数情况不是一件复杂的工作,但是对软件系统来说却是一个迭代的、消化大量时间的过程。从我们讨论设计思路、形成初步草案、充分沟通、决策优劣、再修正、评审通过都需要理解、学习、反复迭代并花费大量时间。软件系统的设计无论采用什么形式,分层、抽象、归纳、汇总是设计的主要方法。分层和抽象是最关键的步骤,也是相对比较难掌握的,无论分层和抽象都是从分类开始的,比如功能的分类、业务的分类、信息的分类、控制模式的分类等等,只要能逐层分类就很容易进行分层和抽象。另外,归纳、汇总是常见的方法,也是体力工作,只要认真细致就能很好的完成。

4.设计产物评审:针对设计设计产物进行评审以及相关的沟通是确保设计质量的主要活动。从形式上,可以采用多种方法,比如设计小组评审、P2P评审、正式会议评审等等。

设计阶段的主要活动设计阶段的计划或规划、确定设计的准则、设计以及制作设计文档、设计产物评审等是个反复迭代的过程。本质上设计是个学习迭代的过程、通过不断的评审、确认、改善达到成熟,因此设计的保证手段主要是设计准则和评审。

根据软件项目类型的不同具体流程也有一些细节差异,每个软件开发组织可以结合业务特征具体定义,下面举例介绍2种典型的流程。

例:软件外包企业,工程类的典型流程(概要设计)

主要特征:

ü  流程强调客户的参与,比如对设计的计划、设计的成果的评审。

ü  强调对关键的过程,比如系统架构的结果进行质量管控。

ü  对不同规模、技术、质量、进度要求的项目进行分级控制。

3.1制定及修改项目计划

•   项目经理根据《项目计划规程》制定概要设计计划,明确设计(式样)管理组中参与概要设计人员的工作任务和完成时间,并通知各相关者进行确认。

•   项目进行中,根据给定需求的变更和概要设计的实际进度状况的跟踪结果,及时调整或重新制定概要设计的详细进度计划。

•   根据概要设计的进展状况,必要时修正计划并与客户达成一致。

注:与客户达成一致是外包的核心,计划以及核心内容和客户达成一致非常重要。

•   项目概要设计计划并入项目计划中。

 

3.2确定系统架构和概要设计准则

•   确定系统架构

a.  对于A、B类项目

  启动DAR(参见《决策分析规程》),分析风险、成本、进度的制约、技术、质量的要求,决定是否需要购买商业组件、是否复用已有构件。如果确认需要进行采购,请参见《供应商合同管理规程》。

  根据公司人员情况、项目业务特征、性能数据量要求、可靠性要求、成本、效率、风险等方面内容提出多种系统架构进行评定,最终选定适合项目的系统架构。

  输出参见《决策分析规程》的输出。

b.  对于非A、B类项目

  设计(式样)管理组根据公司人员情况、项目业务特征、性能数据量要求、可靠性要求、成本、效率、风险等方面内容对多种系统架构进行评定,最终选定适合项目的系统架构。

如果用户有不同于一般项目的要求或者采用了公司不熟悉的架构,开发技术(环境)组需制作项目原型,以验证技术架构方案并确保其正确性。

注:根据不同工作量、技术、质量、进度要求、团队规模等识别出项目分类,并对概要设计的关键控制点(体系结构)进行不同的管控。

 

•   确定概要设计准则

  设计(式样)管理组根据项目情况,确定项目的概要设计准则,准则通常包括:项目概要设计的方法、项目概要设计所使用的工具、概要设计成果物所使用的部分模板等。

  设计(式样)管理组定义各种方针,各单位机能模块设计时应遵循已定义的各类方针。

  通常需要定义的方针包括:操作、错误处理、日志、提示信息、异常处理、命名规约等方针。

  所定义的所有的处理方针均需形成文档,进行配置管理。

  对定义的所有内容形成《概要设计准则》。

3.3设计业务机能

•   设计(式样)管理组对《系统要件定义书》中定义的业务组件使用各种方法进行细化(包括拆分、合并、分组等),并将各需求分配到这些细分的业务组件或功能模块上。

•   设计(式样)管理组根据各类处理方针,对各单位机能组件和功能模块的外观、数据项目定义、功能概要、数据处理流程、操作方法、各机能组件或功能模块的接口和参数等进行设计。

•   定义各机能组件和功能模块的接口和参数,各设计人员需验证其接口衔接上的一致性。

•   将以上的内容加入对系统架构的描述,形成《概要设计书》。

•   设计(式样)管理组将概要设计的内容按照其和需求的对应关系填入《需求追踪矩阵》。

•   数据库逻辑设计。

3.4评审系统概要设计

•   项目经理组织项目评审专家组对概要设计的成果物进行评审(参见评审规程)。评审中发现的问题需体现于《概要设计评审报告》中。评审结束后,开发经理(PJL)跟踪这些问题,直到问题得到修正。

•   评审结束后,项目评审专家组需要根据评审的结论产生《概要设计评审报告》,并上报项目经理(PM)。

3.5确认概要设计

•   概要设计评审通过后,项目经理(PM)针对《概要设计书》取得客户的认可。

注:软件外包中的概要设计结果一般还需要客户的评审,这个也是项目屏蔽风险的主要方法,但是不同的客户技术水平并不相同,还要根据实际情况来判断。

 

3.6纳入基线管理

•   概要设计评审通过后,《概要设计准则》、《概要设计书》、《需求追踪矩阵》需纳入基线管理

•   本规程所产生的所有文档均需进行配置管理(参见配置管理规程)。产生的文档通常包括:

  《概要设计准则》

  《概要设计书》

  《概要设计评审报告》

 

案例2:软件产品类的典型流程

主要特征:

ü  流程强调交互设计

ü  强调设计方针的管理。

ü  对设计内容进行的明确规范

 

 

3.1计划编制

产品研发经理根据《开发详细时间计划》细化设计工作,编制《系统设计计划》。经相关人员确认后,提交产品团队经理审核,审核通过后发布计划。

产品团队经理应将《系统设计计划》及时合并到《开发详细时间计划》中。

3.2设计准则确定

系统设计组根据项目情况,确定设计准则。准则通常包括:设计的方法、设计使用的工具、设计成果物所使用的模板等。

系统设计组制定各种设计方针,设计过程中需遵循已定义的方针。

3.2.1概要设计准则

概要设计方针通常包含:功能模块命名规约、功能模块操作、错误处理、异常处理、提示信息显示、日志记录等。

系统设计组汇总概要设计方针形成《概要设计准则》。

3.2.2详细设计准则

详细设计的方针通常包含:类和方法命名规约、方法输入参数的排列次序、方法输出参数的格式、提示信息输出格式、方法级日志输出格式等。

系统设计组汇总详细设计方针形成《详细设计准则》。

3.2.3设计准则评审

产品研发经理宜组织资源对《概要设计准则》、《详细设计准则》进行评审,评审通过后,由配置组进行配置管理。

3.3概要设计

3.3.1《概要设计书》编制

《概要设计书》应包含以下内容:

  系统架构设计

  根据产品的业务特征、性能要求、可靠性要求、成本等方面内容,针对产品使用的技术平台和软硬件架构,提出多种候选方案;

  方案的内容应包含:系统使用的软硬件技术平台及相关技术列表、系统的物理架构、物理器件类型、数据库管理系统类型、服务器类型、子系统划分及部署方式、系统的软件架构、第三方软件平台列表等;

  功能模块设计

  根据《产品规格说明书》的定义,结合产品的领域知识,通过拆分、合并、分组等方法,将产品的各项功能划分到子系统中,并细化到各机能组件和功能模块上;

  系统接口设计

  接口主要用于子系统/模块之间或内部系统与外部系统进行各种交互;

  接口设计应根据制定各种方针,结合业务特点,并使用相应的设计方法;

  接口设计的内容应包含:接口的名称、功能描述、接口的输入输出定义、接口的使用方法、接口的数据处理流程、输入输出的数据结构定义、异常处理机制、错误处理机制、日志记录方法及格式等;

  数据库设计

  根据业务的复杂程度和设计实现的需要,对核心和重要的数据生成数据字典,对于复杂的操作流程,进行适当的流程说明;

  完成核心和重要库表的逻辑设计;

3.3.2《概要设计书》评审

产品研发经理组织相关干系人对《概要设计书》进行评审。评审通过后,由配置组进行配置管理。

3.4视觉设计

  视觉设计的主要工作是根据交互设计的低保真原型进行高保真视觉效果设计;

  视觉设计主要内容为整体风格把握,包括页面颜色、元素外观、配图;

注:强调交互设计中的视觉设计,单独作为一项工作内容进行管理。

 

3.5详细设计

3.5.1《详细设计书》编制

《详细设计书》应包含以下内容:

  模块接口设计

  对用于持久化的文件进行设计,设计的内容应包含:文件的存放位置、文件名称、内容编码、内容结构、读写控制机制等;

  对持久化内存数据进行设计,设计的内容应包含数据的存储格式、数据的缓存刷新机制、数据的读写时机和方式等;

  对数据库进行物理设计。设计的内容应包含:表、视图、存储过程等;

  模块功能设计

  对模块/子模块的的命名空间进行设计。如对源代码的包结构进行设计;

  对模块/子模块的内部功能流程进行设计,将功能和职责细分到具体的类;

  对于核心的类进行属性和方法进行设计;

  对复杂的计算进行算法设计;

  共通功能设计

  对异常、错误、消息和日志进行详细的设计;

  对内存管理、线程管理等进行设计;

  对系统性能诸如:抗压性、吞吐量、响应速度、安全性等进行进行设计;

3.5.2《详细设计书》评审

产品研发经理组织相关干系人对《详细设计书》进行评审。评审通过后,由配置组进行配置管理。

3.6 前端设计

  前端设计是指根据视觉设计结果,进行CSS、HTML、JS进行编码;

  前端设计的主要工作为:超文本结构设计、样式设计、交互效果实现、浏览器兼容设计、页面性能优化;

注:强调交互设计中的视觉设计,单独作为一项工作内容进行管理。



         参考:/s/blog_5dfa359001016urn.html


不同的系统类型其概要设计的内容也不相同,通过概要设计准则我们可以根据实际情况确定概要设计的具体内容,但是一般来说,概要设计的内容可以包含系统构架、模块划分、系统接口、数据设计4个主要方面的内容。

 

1.系统构架

系统构架包含系统使用的软硬件技术平台及相关技术列表、系统的物理架构、物理器件类型、数据库管理系统类型、服务器类型、子系统划分及部署方式、系统的软件架构、第三方软件平台列表等。

例: 硬件架构

 

 

例: 软件架构:包括层次划分、子系统&模块划分

 



 

 

例: 软件技术平台

软件技术平台通常定义采用什么样的软件体系来实现具体的功能,比如采用SOA结构实现服务分散部署,用ESB解决数据通讯以及共享,采用MVC结构实现交互、业务分离,采用RIA技术支撑复杂、可视交互等等。



 

例: 子系统划分



 

 

 

2.模块划分

模块划分的主要工作是结合业务领域以及系统的要求,通过拆分、合并、分组等方法,将各功能划分到子系统和功能模块中,并细化到各机能组件和功能模块上。模块划分可以通过2步来实现,层次以及模块设计和流程设计。

 

1步层次设计,对于复杂系统需要对系统进行多层的划分,然后一层层的设计。层次划分的方法可以结合业务、部署、运用功能等因素考虑,首先进行分类,然后进行抽象分析,整理共性要素,将功能归纳到模块。制作方法方法可以采用各种表述方法,下例都是按图或表的方式制作的。

 

 

 层次、模块划分



 

例中对系统首先进行了平台的划分(省、市、终端)、各平台中的子系统(监控系统、分析系统)进行定义,同时对子系统中的各模块(服务)进行的明确的定义。

 

 层次、模块划分

按业务功能进行划分,同时对一些共性模块进行抽象后归纳。



 

 

2步进行流程划分,进行模块间的流程设计。层次、模块划分完成后,需要对整理描述各模块间的关系,这些关系可以包括时序关系、状态关系、数据关系等等。在实际设计中,可以根据情况采用不同的描述方法来制作对应的设计文档,比如以时序为主的系统可以采用时序图。

 模块切分后,切分用例、流程。采用时序图的方式进行的模块间流程设计

 

 

 

 

3.接口设计

软件系统结合业务、功能、部署等等因素将软件系统逐步分解到模块,那么模块与模块间就必须根据各模块的功能定义对应的接口。概要中的接口设计主要用于子系统/模块之间或内部系统与外部系统进行各种交互。接口设计的内容应包含:功能描述、接口的输入输出定义、错误处理等。软件系统接口的种类以及规范很多,可以有API、服务接口、文件、数据库等等,所以设计的方法也有很大的差异。但是总体来说接口设计的内容包含:通讯方法、协议、接口调用方法、功能内容、输入出参数、错误/例外机制等。从成果上来看,接口一览(表)以及详细设计资料是必须的资料。

 

.  Web Service 调用的XML格式的接口设计

 

这个接口定义了数据的格式、含义、类型等方面的内容。

 

.  API调用模式的接口设计

 

 

 

 

4.数据设计

现代的软件系统和信息数据紧密的相连,尤其信息系统主要就是处理各类数据。从本质上来说各类系统都是(信息)收集、转换、处理、再转换、传播的过程。难道不是这样吗?从人体这个系统到我们的电视、手机系统,这些本质过程有差异吗? 软件系统的数据设计,尤其信息系统,主要包含数据库设计或完成核心(库)表的设计,当然除了数据库设计还包括建立在内存、文件中各种关键的数据也是设计内容。

ü  数据库设计:数据库逻辑设计、物理设计、容量设计、数据字典、数据部署设计等等内容。

ü  数据设计:配置文件设计、临时文件设计、内存数据设计(共享数据设计、内容数据结构设计)等内容。

 数据库设计(E-R图)



 

 数据字典

补充

 

 内存设计

补充

 

 配置文件设计

补充

 

 

 

 

3.2详细设计的主要内容

详细设计的是概要设计的延续,这个延续体现在设计粒度上。一般来说,详细设计根据业务要求以及概要设计的内容,确定细化个各类组件的功能、逻辑流程、业务要求、组件接口。 从过程上基本遵循设计的4个主要活动,具体操作一般可以概括为模块组件分割、模块组件设计、设计共通功能3个步骤,其中组件分割是比较关键的。一般的信息系统,主要的组件分类可以包括画面、报表、服务、共同组件。

 

 

 

1.画面设计

画面设计是交互性设计的主要内容之一。常见的设计内容包括画面一览对应的画面迁移关系,详细的画面功能。

 

例, 画面一览

 

 

 

例,画面迁移

画面迁移主要描述画面间的动作关系、定义所有画面的出入口等内容。

 

 

 

单体画面设计

 

 

 画面的原型

 

 



 画面的动作定义

 

 

 

 画面要素、处理定义

 

 

 

 

2.服务设计

服务组件对应软件系统主要通过软件接口实现功能的模块,详细设计中服务设计主要内容包括对应程序模块(package)设计、Class设计、处理逻辑(时序关系)、内外接口、限制条件等等。

 

 处理逻辑

 

 

 Class设计

 

 

 

3.共同设计

详细设计中关键的步骤就是进行共同设计,共同设计的多少往往极大的影响后续开发的工作量。比如一个系统抽取40%的共同和只抽取10%的共同,开发、测试工作量差异很大。建议 具体项目中应尽早以及有效的管理共同设计。共同设计可以大体分为业务共同、技术共同。

ü  业务共同是同业务相关的,可以根据业务的特征识别并抽象出不同的模型进行设计,不过一些常见共同比较容易识别,比如权限管理、基础(master)数据管理、用户管理、安全管理等等。再如常见的电商系统,包括内容(CMS)管理、推荐引擎、TMOSSBI、支付、广告管理等都可以根据情况纳入到共同设计中。

ü  技术共同一般是和计算机技术相关的,比如线程管理、画面各组件、LOG管理、内存管理、文件处理、文字处理、配置管理、加解密、日志、消息、异常、错误处理等。

 

 共同设计

补充

 

 目录配置结构的设计

 

 

 

 


参考:

/s/blog_5dfa359001016urn.html

三:


1.    关键点(Know-How)、运用技巧

4.1 设计准则

制定设计准则是概要设计阶段的最主要、最关键的工作。在实际工作中往往忽略,多数项目牺牲在这个环节。制定设计准则着眼于如何更好的做设计,设计准则通常要考虑的内容包括:设计的内容、方法、工具、模板、命名规约、模块划分规则(尤其设计粒度)、质量以及效率评估方式等等。我们首先要根据系统的需求、客户能力、项目的特征(成本、规模、进度、质量)以及自身的经验确定设计的内容。对于软件外包类的工程项目,尤其一些国际外包项目,设计准则一般已经制定好了,我们的设计团队只需要学习、理解、制作并符合这些要求的。而另外一些情况,需要我们一项项的定义规则,并同客户达成共识。实际上从某种角度来说,设计准则就代表着设计能力。

 

1. 设计内容的定义

识别以及定义概要设计、详细设计的内容,在定义设计内容时需要考虑成本、质量、进度、团队能力等方面的因素,同时也要兼顾测试阶段的要求。

例:一般网站系统的设计内容

概要设计

概要设计书

1

系统架构设计

物理架构

软件架构&软件层次设计

子系统(包含共同部分\PACKAGE命名)

接口总设计

概要设计-同XXX接口设计书

若干

同各产品的分接口设计

概要设计-网站结构设计书

1

网站结构设计(目录结构划分\包含部署设计)

概要设计-数据库设计书

1

数据库物理/逻辑设计

概要设计-数据字典书

1

数据字典

详细设计

画面一览表

1

所有展示画面一览表

共同设计

1

所有程序级别的共同设计(总合并一本):日志\LOG\消息\SESSION\权限\宏定义\数据库操作规程\画面各组件\专项功能\业务共同

提示信息设计

1

日志\LOG\对外消息 所有对外提示信息总集中一起.

配置设计

1

各种配置项目总体引索

详细设计

1

通用规则设计,大多数功能统一设计

详细设计-XX功能

若干

复杂功能,单独设计.大约30%~50%

 

例:监控类系统设计内容

编号

概要设计内容

描述

1

业务方面

业务

《变电站业务层总体概要设计》

1

 

2

 

《变电站业务层站端概要设计》

1

 

 

 

…..

 

 

5

 

《画面设计一览表》

1

 

6

 

《画面演示Demo》

若干本

 

7

服务

《变电站服务层数据交换标准》

总1本

 

8

 

《变电站服务层概要设计》

总1本(也可以按服务分)

 

10

信号

《全信号一览表》

1

信号标准分类/编号/设备信息标准-通讯标准-警报标准-处理标准-性能要求 对应表

11

 

《变电站智能设备信息标准》

若干本

分设备,信号格式规范

 

 

….

 

 

16

 

《版本导入信号一览表》

1

管理用

17

数据

《数据库逻辑设计书》

1本(按站/市/省分比较好)

数据库表与字段的逻辑设计

 

 

….

 

 

21

 

《系统配置信息规范》

总合1本

内容是各种配置的说明

22

接口

《MIS系统接口设计书》

1

 

 

 

 

….

 

 

26

技术方面

 

《变电站辅助监控架构设计说明书》

1

 

27

 

《关键技术调查案》

若干

 

 

详细设计内容

 

1

业务方面

 

《画面设计》

若干本

 

2

 

《报表设计》

若干本

 

3

 

《服务层详细设计》

若干本

根据服务展开设计(状态管理/控制管理/ADP)

4

技术方面

 

《画面层详细设计》

1

画面引擎/结构原型设计

5

 

《服务层详细设计》

1

服务引擎/结构原型设计

6

 

《系统共通设计》

1

 

7

 

《业务共通设计》

1

 

8

 

辅助开发/测试工具

若干本

管理用,辅助效率开发使用

 

 

2. 设计方法以及工具

根据设计的内容以及要求考虑采用何种设计工具进行设计。比如采用ERWIN进行DB设计、Visio进行流程设计等等。另外,有些设计工具还必须对设计团队进行培训才能有效的使用。

3. 制作设计模板

将各设计书制作成对应模板,对格式、内容、图例、文字等做出具体的要求,可以使团队更有效的工作。有的时候,我们会对设计书的1-4级目录都会详细制定,以保证设计更有效的进行。

例 数据模版



 

注:对于EXCEL之类的模版,可以制作一些宏或工具更便于检索、修改等操作。另外,也可以借助wiki等系统提高设计资料的管理。

 

4命名规约、模块划分规则

命名规约可以包含很多的内容,比如设计资料文件的命名、各类术语的命名规则、编号的规则等等。其中,给任何东西都编个合适的号是个好习惯,当然也许有人认为这是属于IT的职业病。当设计资料有数十、百G时,当一个设计人员需要和不同层次的人员,比如客户、用户、业务专家、管理人员、开发人员、测试人员等等进行沟通时,有的时候还不得不用各种语言进行交流,任何人都希望有个完整的命名规约。

 

2.  质量以及效率评估方式

 

例,设定质量以及效率的目标

 

 

4.2 设计评审

补充

4.3 变更管理

补充

4.4 团队组织
补充


           参考:/s/blog_5dfa359001016urv.html





1. 设计一般来说是个学习迭代的过程、通过不断的评审&确认&改善达到成熟. 但是前提必须写出设计文档,而不能仅仅停留在脑袋里。

2. 分层、抽象、归纳、汇总 是设计的主要方法。其中分层是最最基本的,而是绝大数设计人员不能掌握的(这个有点悲剧),归纳是常见的方法。

3.交互的设计往往是人们关注的重点,所以也要特别注意、特别设计。对于画面的风格、操作等我的理解是“美的事物,任何人都觉得美”。

4. 设计的完整性、严密性、可用性是成功的主要因素。

5.设计不等同于创造和创新,但是好的设计一定包含各种创新。

6. 多看看其他的系统,功能、交互方法、实现方式等,才会有思路,有想法。比如,画面色彩、布局等可以参考日本的网站,交互参考欧美站。多看才有比较!

7.系统/产品研发就是群体学习活动,什么时候学会什么完成。需求、概要设计、详细设计中如何描述、粒度如何划分,是要在前期就要思考的,这些是研发人员的“教材”。


参考:

/s/blog_5dfa359001016urv.html