zoukankan      html  css  js  c++  java
  • 《软件需求》阅读笔记NO.1

            之前的博客已经说过我的是《软件需求》,那么什么是软件需求,软件需求是干什么的,为什么要有这门课,他的意义是什么?

            总所周知,一个码农的工作寿命不可能超过40岁,因为那时,他已经没有精力去编程和思考一些算法问题了,而且公司更想要那些刚刚毕业的大学生,精力旺盛,而且工资水平不高,还能熬夜,所以,一个40岁之后的码农如何可以拜托事业的名义呢?就是上升成为产品经理,为什么产品经理的工资待遇高而且不用写代码呢?因为他们能直接和客户交流,懂得客户需求什么,客户想要的是什么,可以将用户的抽象描述用专业的术语转达给程序员,这样才能有好多软件。

            所以,你需求了解用户需要的什么,用户为什么要这样做。

            客户所定义的“需求”对开发者似乎是一个较高层次的产品概念。而开发人员所说的“需求”对用户来说又像是详细设计了。实际上,软件需求包含着多个层次,不同层次的需求从不同角度与不同程度反映着细节问题。需求是指明必须实现什么的规格说明。它描述了系统的行为、特性或属性,是在开发过程中对系统的约束。软件需求包括三个不同的层次—业务需求、用户需求和功能需求—也包括非功能需求。业务需求(business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。用户需求(user requirement) 文档描述了用户使用产品必须要完成的任务,这在使用实例(use case)文档或方案脚本(s c e n a r i o)说明中予以说明。功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。所谓特性( f e a t u r e )是指逻辑上相关的功能需求的集合,给用户提供处理能力并满足业务需求。

           开发软件系统最为困难的部分就是准确说明开发什么。最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难。每个软件产品都是为了使其用户能以某种方式改善他们的生活,于是,花在了解他们需要上的时间便是使项目成功的一种高层次的投资。这对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品是显而易见的。但是对于我们开发人员来说,并没有编写出客户认可的需求文档,我们如何知道项目于何时结束?而如果我们不知道什么对客户来说是重要的,那我们又如何能使客户感到满意呢?然而,即便并非出于商业目的的软件需求也是必须的。例如软件库、组件和工具这些供开发小组内部使用的软件。当然你可能偶尔勿需文档说明就能与其他人意见较为一致,但更常见的是出现重复返工这种不可避免的后果,而重新编制代码的代价远远超过重写一份需求文档的代价。

          上面的描述就是软件需求需要解决的问题。

       

  • 相关阅读:
    转:flash 键值对应
    (转)我叫AGAL,来自Adobe 【Part1】
    (转)as3 updateAfterEvent的作用
    (转)远程桌面连接由于网络错误而丢失
    (转)你有所不知的HTML發佈Flash的參數(三):base
    不要再吹水地球人听不懂的技术,咱来点干货!中文前端UI框架Kit(三)揭开高级事件管理的神秘面纱
    非常惊艳的Css3的桌面上散落的相片效果,以及单击放大图片的LightBox效果(独立Js非jQuery)的实现原理
    不要再吹水地球人听不懂的技术,咱来点干货!中文前端UI框架Kit(一)大致了解下Kit是啥?
    (转)JS正则表达式获取分组内容的方法
    分享一个Css3效果无比惊艳的全屏图片切换效果(Css浏览器Only)
  • 原文地址:https://www.cnblogs.com/zll20153246/p/8302322.html
Copyright © 2011-2022 走看看