开发因需求而来,需求开发以需求规划的成果为主要依据。软件需求开发首先要做的是获取需求,得到目标、系统关联情况以及用例的分析;其次是需求分析,软件系统的可行性、用户接口、系统功能、数据、优先级等这些都在需求分析之列;然后汇总成需求分析规格说明书;最后在进行需求测评,制定具体的开发方案。
需求获取是确定和理解不同用户类的需求和约束的工作活动,是需求开发工作中最困难、最关键、最容易出错的地方,只有需求架构师和开发人员的紧密结合才能保证工作高质量地完成。需求架构师收集了客户的法律法规、工作总结、业务规划和信息化建设指导等文件,在梳理的基础上对这些材料进行全面细致的分析,通过向客户高层和各级职能部门人员讲述其业务并听取他们的反馈意见,在对梳理结果进行修正。
编辑项目视图和范围的文档应站在技术的角度,需求规划中的问题和目标的描述应站在业务角度。编制项目视图和范围的文档一定要将需求规划的成果作为参照物。项目视图和范围的描述为待开发的系统的范围作了一个界定。
用例分析是基于需求规划的部分成果和系统关联关系分析整理出系统使用主体、用例条目,在采用用例图或用例规约对用例进行描述。用力分析和描述分为三步:整理系统使用者、对系统使用主体期望的用例条目进行提炼、通过用例图和用例描述进行规范化的描述。写实法和演绎法是用例条目提炼是综合运用的手段。
需求获取是对业务事项的综合分析,而需求分析的一个主要工作是对软件系统做归类分析。需求分析是在需求规划、需求获取的基础上展开的。功能需求分析是需求分析的核心工作面向对像的功能需要求分析是一种功能的概念设计和初步的逻辑设计,概念设计得出这个系统的组成部分的名称及作用,逻辑初设是将系统器件看成一个灰盒,能看清内部元件构成,只是不知道元件材质是什么。在这里作者多次提到了白盒和黑盒,不同的阶段将系统比作不同的盒子,很形象的表现出了在不同阶段我们能看到的系统的程度。
需求的可行性分析是很重要的,它可以告诉我们一个系统的成功的概率,可能遇到的风险,包括性能风险、安全风险、过程风险、技术风险等。需求优先级不是减范围,而是定出开发的重点和先后次序。
功能需求分析是需求分析的核心工作,由逻辑功能定义、逻辑功能初设和面向用例的重构三部分工作构成。
需求管理工作是保障各阶段目标的质量及各阶段工作的衔接,确保需求工程全过程的质量、成本和进度是需求管理的目标。需求管理工作的思路是抓规范建设,抓阶段工作成果的检验,以促进规范在过程中的落地。管理活动包括:用于控制各种需求文档和单个需求的版本的工具、技术和习惯做法,制定需求基线,将使用的需求状态记录允许做出变更的负责人,
需求状态跟踪和报告过程,分析已建议变动的影响应遵循的步骤。管理工作是让务虚工作和务实工作达到有机结合,就可以实现“无为而治”这一管理的最高境界。
版本控制是需求管理一个必要的方面,也是容易忽视和出错的地方。需求变更被视为突发事件,一个变更事项会引发一连串与其相关事项的变动,先判断变更的真伪,在判断变更带来的工作事项的完整性,变更控制需要与变更相关的各方共同参与,群策群力。
需求跟踪包括编制每个需求同系统元素之间的联系方式,需求跟踪可以通过追溯机制找到问题的根源,减少不必要的浪费并且迅速得到问题的原因,方便更快的解决。
需求分析的完成更是不能缺少一个好的组织,一个好的组织可以提供给客户有价值的服务。