主要知识:实战中的软件工程 需求分析
MSF基本原则:
-
推动信息共享与沟通,(信息保留并公开)
-
为共同的远景而工作,
-
充分授权和信任,(平等协作,充分授权给团队和成员)
-
各司其职,对项目共同负责,(每个人都要明确Who谁负责,What做什么,具体的执行方案,什么叫做“做好了”,When:什么时候开始,什么时候结束,Why为什么是这样安排(和项目的远景是否吻合),在什么情况下可以变更)
-
交付增量的价值,
-
保持敏捷,预期和适应变化
-
投资质量
-
学习所有的经验
-
与顾客合作
无论软件工程的理论有多么先进,适合自己的才是最好的,将程序语言熟练使用,在团队中发挥应有的作用才是最终目的。
软件团队通过如下几个步骤准确而全面地找到需求:
1、获取和引导需求(Elicitation)软件团队需要找到软件的利益相关者,了解和挖掘他们对软件的需求,引导他们表达出真正的需求;2、分析和定义需求(Analysis&Specification)3、验证需求(Validation)4、在软件产品的生命周期中管理需求(Management)。
对于软件的需求,也可以从以下不同角度划分,1对产品功能性的需求,2对产品开发过程的需求(开发过程必须产生某种文档,必须在某个时间点达到某个状态)3.非功能性需求(也叫服务质量需求)4.综合需求(涉及不同部门的功能和执行能力)。
软件产品的利益相关者有用户、顾客又称客户(购买这个软件或根据合同或规定接收软件的人,这些人不一定是软件的直接用户,但他们的利益和软件直接相关)、市场分析者(代表“典型用户”的需求,他们或者是市场部门的成员,或是独立的市场分析人士)、监管机构、系统/应用集成商、软件团队、软件工程师。
获取用户需求-用户调研,以下有几种常用的用户调研方法:1、焦点小组2、深入面谈(可用在某一特定领域,例如软件的用户可用性和用户界面,也叫软件可用性研究)3、卡片分类(反复进行以下活动:讨论->明晰定义->归类->排序)4、用户调查问卷5、用户日志研究6、人类学调查7、眼动跟踪研究8、快速原型调研9、A/B测试。这些方法表示在态度、行为、定性、定量上研究。
竞争性需求分析框架,NABCD模型:解决用户痛点的方案,需要有技术或商业模式上的招数,好处,竞争(明确我方优势及劣势),推广。
功能的定位和优先级,杀手功能为第一象限,外围功能为第二象限,必要功能为第三象限,辅助需求为第四象限。资源有限,对于不同功能有以下办法:维持、抵消、优化、差异化、不做。
通过阅读,对于软件团队及需求有个系统的了解,形成了较为整体的系统,并在课程作业中,实现了软件需求的部分要求,对软件需求有了较为清楚的了解。