zoukankan      html  css  js  c++  java
  • 构建之法阅读笔记04

    第八章:需求分析 

    1、软件需求

    1. 获取和引导需求;(软件团队需要找到软件的利益相关者,了解和挖掘他们对软件的需求,引导他们表达出对软件的需求。)
     
    2.分析和定义需求;(对从各个方面获取的需求进行规整,定义需求的内涵,从各个角度将需求量化)
    3.验证需求;(软件团队要跟利益相关者沟通,通过分析报告、技术原型、用户调查或演示等形式向他们验证软件团队对于这些需求的认知。)
    4.在软件产品的生命周期中管理需求;
    同时也可以在下面的这几个进行分析:
    1. 对产品功能性的需求:要求产品必须实现某些功能。(例如我们小组设计的APP主要是设计给学生那些没有收入,每个月的花销量较小的,实现简单的功能,简洁的界面)
    2. 对产品开发过程的需求(分析用户需要什么,想要什么,根据设计我们的APP,这样才能受到大众的喜爱)
    3. 非功能性需求
    4. 综合需求

    2 软件产品的利益相关者

    用户:直接使用软件系统的人(取决于软件的特点,一个软件也许有多种不同的用户。)
    顾客:买这个软件或者根据合同或规定接收软件的人。这些人不一定是软件的直接用户,但是他们的利益和软件直接相关;
    软件工程师:工程师也是软件需求阶段的一个重要角色;他们根据用户和顾客所提出的要求进行软件的修改,优化;

    3、 获取用户需求——用户调查

    用户需要什么是软件工程师需要设计的东西,不可能设计用户不喜欢的东西,没有任何的意义,也没有带来效益;

    所有这就需要我们进行调查,成立调研小组:

    焦点小组:找到一群目标用户的代表,加上项目的利益相关者来讨论用户想要什么,用户对软件的评价等等;
    深入面谈:通过详细的面谈,广泛而深入地了解用户的背景、心理、需求等;
     
    卡片分类:把各种需求做成便于规整的小卡片,然后进行讨论 → 明晰定义 → 归类 → 排序这一方法可以帮助我们更好地统一大家对软件需求的认识,可以刚好的帮助我们理解用户想需求;
    用户调查问卷:这是经常背使用的一种调研方式;随机率更大,更能反映不同的人群的需求;
    用户日志研究:要求用户记录自己日常工作或生活中与所用软件相关的行为,供软件团队分析。
    人类学调查:可以解释为—和目标用户“同吃同住同劳动”。

    4、竞争性需求分析的框架

    同一类的软件有上很多很多种,我们需要分析出用户选择我们这款软件的有点,其他同类软件有什么缺点是我们需要避免的,有什么优点需要开发的时候借鉴;这样设计出来的APP才是用户真正需求的;

    1. N(Need,需求)
    2. A(Approach,做法)
    3. B(Benefit,好处)
    4. C(Competitors,竞争)
    5. D(Delivery,推广)
    同样在我们刚开始做APP的时候,老师让我们在讨论的时候写过NADBC,分析出我们的APP有什么亮点;

    5、功能的定位和优先级

    维持——以最低成本维持此功能。
    抵消——快速地达到“足够好”、“和竞争对手差不多”。
    优化——花大力气做到并保持行业最好。
    差异化——产生同类产品比不了的功能或优势(我有人无的优势,或者一个数量级以上的优势)。

    第九章

    对于pm的介绍:

    PM的M就Manager,但是P有这几种:Prod-uct Manager、Project Manager、ProgramMan-ager,在不同的行业和公司,他们的作用各不相同。
     
    开发和测试搞不定的事情:
    1. 和客户交谈,组织用户调查,发现用户需求
    2. 了解和比较竞争对手的产品
    3. 怎么让软件变得可用(Usable)、有用(Useful)
    4. 怎么改进团队的流程
    PM的出现让团队内部的互动出现了两个新特性:
    1. 负责一个功能的开发/测试人员和相关的PM密切合作,再由PM代表这一小组去和别的小组或客户代表打交道,大大降低了交流的成本;
    2. 有专人负责开发/测试之外的许多事务和项目进度的管理,让开发和测试人员专注于技术方面的工作。
    PM做开发和测试之外的所有事情,带领团队达成最重要的目标,并保持团队的平衡
    这种不用编程可以指挥程序员的pm需要下面的这几点:
    1. 观察、理解和快速学习能力PM要能够在一个新的领域中很快上手。
    2. 分析管理能力每天项目中发生的事情千头万绪,PM要能够分析出重点,找到优先级,做判断、做决定……
    3.不需要特别高的专业能力,PM的专业就是理解和表达(pm主要是与甲方打交道,要理解跟表达能力好)
    4. 自省的能力。
    pm的任务主要有
    1. 带领团队形成团队的目标/远景,把抽象的目标转化为可执行的、具体的、优美的设计;
    2. 管理软件的具体功能的生命周期(需求/设想/设计/实现/测试/修改/发布/升级/迁移/淘汰);
    3. 创建并维护软件的规格说明书,让它成为开发/测试人员及时准确的指导,而不是障碍;
    4. 代表客户和用户的利益,主动收集用户反馈,预期用户新的需求。协调并决定各种需求的优先级;
    5. 分析并带领其他成员对缺陷/变更需求形成一致意见,并确保实施;
    6. 带领其他成员确保项目保持功能/时间/资源的合理平衡,跟踪项目进展,确保团队发布令客户满意的软件;
    7. 收集团队项目管理和软件工程的各种数据,客观分析项目实施过程中的优缺点,推动项目成员持续改进,从而提振士气。
     

    第10章

    典型用户
    受欢迎的典型用户——指那些按设计者的期望使用系统的用户;
    不受欢迎的典型用户——指那些有不正当目的的用户,这些用户也许在别的系统中是受欢迎的。
     
     

    用例

    基本元素:

    标题:描述这个用例要达到的目标
    角色:和软件系统交互的角色
    主要成功场景:一系列步骤描述角色是怎样和系统交互,从而达到目标的。
    扩展场景:描述一些扩展的交互
    对于功能说明书,我们要写的清晰全面让客户一目了然需要下面的几个步骤:
    第一,定义好相关的概念。
    第二,规范好一些假设
    第三,避免一些误解,界定一些边界条件。
    第四,描述主流的用户/软件交互步骤
    第五,一些好的功能还会有副作用。
    第六,服务质量的说明。
     
  • 相关阅读:
    《Advanced Bash-scripting Guide》学习(十九):两个整数的最大公约数
    《Advanced Bash-scripting Guide》学习(十八):[[ ]]与[ ]的一些特殊情况
    《Advanced Bash-scripting Guide》学习(十七):用more来查看gzip文件
    《Advanced Bash-scripting Guide》学习(十六):一个显示输入类型的脚本
    《Advanced Bash-scripting Guide》学习(十五):测试坏的链接文件(broken link)
    《Advanced Bash-scripting Guide》学习(十四):HERE Document和cat <<EOF
    《Advanced Bash-scripting Guide》学习(十三):引用变量的两个例子
    NOIP2016 蚯蚓
    [SCOI2012]滑雪与时间胶囊
    NOIP2016 天天爱跑步 80分暴力
  • 原文地址:https://www.cnblogs.com/1234yyf/p/12775943.html
Copyright © 2011-2022 走看看