zoukankan      html  css  js  c++  java
  • 《构建之法》阅读笔记(4)

    《构建之法》阅读笔记(4)

    需求分析

    软件的需求主要可以通过以下步骤来获取:(1)获取和引导需求;(2)分析和定义需求;(3)验证需求;(4)在软件产品的生命周期中管理需求。

    对软件的需求,可以从不同角度来划分:(1)对产品功能性的需求;(2)对产品开发过程的需求;(3)非功能性需求;(4)综合需求。

    因为人们为了解决现实社会和生活中的各种问题,要求助于软件。人们的需求五花八门,那么软件如何才能准确而全面地找到这些需求呢?所以需求分析显得格外重要。下面这些定义是需求工程领域中常见术语的定义。软件需求包括三个不同的层次:业务需求、用户需求和功能需求(也包括非功能需求)。
    1.业务需求(business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们
    在项目视图与范围文档中予以说明。
    2.用户需求(user requirement) 文档描述了用户使用产品必须要完成的任务,这在使用实例(use
    case)文档或方案脚本说明中予以说明。
    3.功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的
    任务,从而满足了业务需求。

        开发软件系统最为困难的部分就是要准确说明开发什么。最为困难的概念性工作便是要编写出详细的技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。如果做错,这将是会最终给系统带来极大损害的一部分,并且以后再对它进行修改也极为困难。目前,国内产品的庞杂,一家企业可能有几个系统并立运行,它们之间的接口是系统开发人员最头痛的问题。对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品是显而易见的。但是对于我们开发人员来说,并没有编写出客户认可的需求文档,我们如何知道项目于何时结束?而如果我们不知道什么对客户来说是重要的,那我们又如何能使客户感到满意呢?

        举个例子来说。在中国,360的装机量是十分庞大的。为什么?究其原因,是因为其使用方便。傻瓜式的操作,比如:一键杀毒,一键清理等。这些操作难度低的软件在中国是非常受欢迎的。对于我们计算机专业的学生来说,我们从中学到了做软件,要满足顾客的内心深处真切需求。在做软件之前,我们可以进行调研,或者搞一个问卷调查,面向各个不同的阶层,从而了解顾客的真实需求。

    1.以前老师分配下来的任务,总是扎头就做,从不考虑老师为什么会这么让我们设计成这样,也不会考虑如何能够使得程序更加完善以及程序用户的需要,自己写程序的时候也不会想顾客内心深处的真切需求,就算老师要求,也只会随机应付,给出一个非常不靠谱的结果。

    2.阅读第八章有关用户需求的内容之后,我之前的做法显然是不正确的,一个不考虑用户需求的程序,是得不到推广的,也是不会得到拥获的。大化到企业、国家,更是需要在计划一个软件或者工程之前,发放用户调查等获取民意的途径,通过调查的结果来进行软件或者工程的下一步的计划。

    3.所以说,我们要想做好一个软件,把一个软件做大、做广,我们首先就必须要学会需求分析,为何要做这个软件,软件的用处在哪儿,软件用户的需求是什么,总而言之,从现在做起,开始分析需求!

  • 相关阅读:
    Codeforces Round #420 (Div. 2) A-E
    Codeforces Round #419 (Div. 2) A-E
    Bzoj4423 [AMPPZ2013]Bytehattan
    51nod1471 小S的兴趣
    Bzoj2629 binomial
    51nod1056 最长等差数列 V2
    51nod1055 最长等差数列
    51nod1110 距离之和最小 V3
    20. 有效的括号
    155.最小栈
  • 原文地址:https://www.cnblogs.com/zhangjiabei/p/6402363.html
Copyright © 2011-2022 走看看