在本阶段我决定精读《软件需求十步走》这一本书,以此来加强我对软件需求分析这门课的学习。
本次是根据第一篇——原理篇进行笔记整理
该篇主要分为六章:
①第一章:对软件需求的反思
软件需求已经成为软件开发工作中的“阿克琉斯之踵”,要使软件需求做到完整、准确、清晰、变化可控等绝不是一个简单的事,需要重新定位软件需求并借助逻辑的方法才是解决之道。
首先,我们应该认识到的就是,什么是需求?需求应该是用最清晰的文字来阐明系统所必须具有的所有功能和其他能力,即需求就是定义系统需要做什么而不是怎么做。
②第二章:重新解读软件需求
新一代软件需求强调软件需求分析工作是一个全息的业务背景和一个信息系统的宏观设计的基础上展开的用户需求和系统需求分析。
在了解了什么是需求和需求阶段的步骤之后,我进一步学习了需求规格的内容。首先是介绍部分,系统规格的介绍部分有:系统目的、文档目的、需求格式、词汇表、参考书目以及文档历史。其实这六个主题的目的都是为了让开发者能够更清楚地认识到需求,才能更好地去开发软件。
③第三章:软件需求工程概论
新一代软件需求工程是由需求规划、需求开发、需求管理三个部分构成,需求规划是传统软件需求工程所没有的
④第四章:软件需求的过程改进
需求工程的过程不是一成不变的,会随着新的理论、实践中的总结、软件开发技术、软件项目规模等要求需要对过程进行适应性改造。
在上下文图中我们需要展示组件、用户角色、范围边界、系统间的接口,在这之中,我们就需要对每一个是真的事情,清楚明确地声明为假设,同时也要把不需要的东西排除在外,最后我们要确定关键业务实体(即系统就是为了产生和操纵这些东西而开发的),然后构件基础架构(支持一个或多个需求所需的一组基础的能力)。
⑤第五章:软件需求的风险管理
把软件需求风险始终放在第一位,记住凡事预则立、不预则废。软件需求的风险就是让把软件需求中的关键点提取出来加以重点关注
⑥第六章:软件工程与需求工程
“需求工程是圆心,客户业务是内核,软件工程是圆点”是需求工程和工程间关系的真实写照。
定义系统的核心部分——功能域部分。我们需要在需求中详细地列举出系统的所有功能,将其分为大量的小节而更方便管理也更容易理解,然后需要根据功能的使用频率、发起者的相对重要性或者对业务的价值来区分不同的功能的重要性,并且从高到低依次排列。通过阅读这第一篇,让我对软件工程与需求工程的关系有了更深刻的认识。