• 《构建之法》阅读笔记05


             今天阅读了《构建之法》有关需求分析和典型用户及场景分析相关的章节,有很多思考。我们做软件,必须了解用户的需求。做需求分析得有步骤有条理的进行。

             首先是引导需求。我们需要找到软件的利益相关者,了解和挖掘他们对软件的需求,引导他们表达出对软件的需求。很多时候用户并不知道自己确切的需求,或者不愿意表达完整的需求,软件团队需要设身处地,替用户着想,引导出需求。有些需求在实现之前,并没有用户明确表达具体的需求。我们还需要分析技术的发展趋势以及产业的变化、社会发展的大趋势,推测用户会产生哪些新的需求。需求还可以来自技术团队本身,团队在考虑软件的代码、架构、所依赖平台的长期演化的时候,会提出技术性的需求,包括代码的迁移、架构的演化、平台的变化,或者引入新的技术。有些需求的目的是要“更好地了解用户的行为和需求”。

             其次是分析和定义需求。这是指对从各个方面获取的需求进行规整,定义需求的内涵,从各个角度将需求量化(需求实现的最后期限,实现需求大致所需的时间和资源成本,各个不同需求的优先级,需求带来的收益,等等)。

             接着是验证需求。软件团队要跟利益相关者沟通,通过分析报告、技术原型、用户调查或演示等形式向他们验证软件团队对于这些需求的认知。

             最后需要我们在软件产品的生命周期中管理需求。在软件的生命周期中,需求在发生变化,技术在发展,团队成员的能力也在提高。原来认为重要的事情可能不再重要,有些功能原来技术上很难实现,现在出现了捷径,一些相关的法规会发生变化,外部的合作伙伴突然发生变化,这些都要求我们不断对需求进行重新审核并做出相应的调整。

             关于需求的分类,有这样几种分类方法。首先是对产品功能性的需求:要求产品必须实现某些功能。其次是对产品开发过程的需求:要求软件的开发流程必须满足某些约束条件,然后是非功能性需求:这也叫“服务质量需求”。最后是综合需求,有些需求并不是单单一个软件模块就能满足,例如,“购物网站必须在24小时内把货物发送到用户手中”,这个需求牵涉到软件系统、货物派送系统、送货部门、监控系统等不同部门的功能和执行能力。

             我的思考:我们说做需求分析的时间应该三倍于写代码的时间,可见需求分析是多么的重要。我们需要在需求阶段把很多问题定义清楚,不然写出了代码也是无效,做出的功能也是不尽人意的,从而违反了我们做软件的初衷。

  • 相关阅读:
    MySql 用户 及权限操作
    MAC 重置MySQL root 密码
    在mac系统安装Apache Tomcat的详细步骤[转]
    Maven:mirror和repository 区别
    ES6 入门系列
    转场动画CALayer (Transition)
    OC 异常处理
    Foundation 框架
    Enum枚举
    Invalid App Store Icon. The App Store Icon in the asset catalog in 'xxx.app' can’t be transparent nor contain an alpha channel.
  • 原文地址:https://www.cnblogs.com/420Rock/p/5479114.html
Copyright © 2020-2023  润新知