热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

01《软件需求模式》

这本书可以帮助分析师编写出更好的需求,这些模式提供了一种方法表达关于不同类型需求的全面的结构化知识。需求开发是探险之旅,不只是简单的收集或抄写的过程。所以我选择了这本书作为十月份的阅读书籍。这

  这本书可以帮助分析师编写出更好的需求,这些模式提供了一种方法表达关于不同类型需求的全面的结构化知识。需求开发是探险之旅,不只是简单的收集或抄写的过程。所以我选择了这本书作为十月份的阅读书籍。

  这本书的目的是帮助决定和定义新的软件系统需要做什么,建议添加哪些额外的特性,使系统更好或者更卓越。这本书的主要读者是涉及决定一个新的软件系统需要什么的任何人。例如说:业务分析师、软件架构师和工程师、软件开发人员、软件测试人员、项目经理。

  阅读这本书我将能够定义更好的需求——更详细、准确以及清晰、并且更少的不确定性;更快、更省力的编写需求;认识到需求应该额外定义一些主题,进一步提高需求的质量,使需求更完善;更好的组织需求规格、编写概要部分;更容易估算构造定义的系统所需的工作量;开发和测试组会更容易理解需求;得到的系统将更好的体现组织的需要,有此可能产生相当客观的额外的投资回报;将更早地发现重大的错误、误解以及遗漏。

  第一部分的4章介绍使用需求模式的一些基础知识,第二部分是具体的需求模式介绍。

  第一章概要介绍了什么是需求,如何得到他们,这与你采用传统的方式还是敏捷方法无关。在这一部分,传统意味着在设计和开发系统前定义所有的需求;而敏捷意味着不在前期过多关注规格文档,尽早开始开发。

  第二章描述了需求规格需要包含哪些东西。它使你可以编写彻底的、合适的、完整的需求规范。

  第三章描述了需求模式扮演的角色,解释了每个模式包含的内容。

  第四章讨论了何时以及如何使用需求模式,描述了如何裁剪现有的模式产生新的需求模式或者完全从头编写新的模式。

  需求就是定义系统需要做什么而不是怎么做。需求定义了必须解决的问题:系统的目的是什么,以及为了达到目的系统需要的所有功能。需求不定义解决方案。一个需求是系统必须满足的单一的、可测量的目标。最好使用清晰的文字来表达每个需求。一个系统的需求规格是一个文档,它陈述了系统的所有需求以及任何使文档更容易阅读和理解的背景材料。它需要定义系统必须具有的所有功能和其他能力。

  需求最重要的是定义了系统必须做什么和它必须能完成的行为。这些叫做功能性需求。功能性需求吸引了大量的注意,经常导致忽视了系统必须具有的其他特性。

  需求分析的一些基本原则:一、定义问题,而不是解决方案。需求定义“做什么,而不是怎么做”意思是需求的目的不是企图定义任何的解决方案。这是重要的特点,是不可违反的规则。二、定义系统,而不是项目。需求定义了系统需要做什么:他们是一组目标。项目是在一段时间内动员一组人来完成这些目标。需求不涉及系统如何完成目标,这意味着不要涉及实现一个解决方案的项目的任何事情,而且编写每个需求规格应该是长期有效的,适用于多个系统,这些系统可能在不同的时间以不同的方式开发:需求可能被束之高阁,然后一两年后拿出来,或者几年时间内我们可能开发一个替代系统。三、区分正式和非正式部分。需求规格像一个合同,它定义了系统的供应商或开发者必须交付的东西。但是大量的合同约束声明远远不能让我们正确的理解它,它需要背景知识、前后关系、流程以及结构。这些材料都不是合同约束。它帮助把规格分为约束部分和非约束部分。需求本身由需求规格的正式部分组成,是系统必须做什么的正式定义。其他的都是非正式的。四、避免重复。如果可行,每一项信息只表述一次。重复产生了额外的工作而且加大了不一致的可能性。

  传统需求流程的步骤是准备、收集信息、编写需求规格草稿、评审规格、评审后修改。

  敏捷需求流程的原则:区分问题和解决方案是最重要的,定义需求后,一定要记录他以便别人可以找到。

  使用极限编程开发新的系统首先要求用户编写完整的用户故事,用户故事是用户希望系统为他们完成的事情的简短描述。为了使用户故事具有代表性,每一个用户领域至少有一个人员参与其中。最后的结果就是系统的主要用户功能的用户故事。


推荐阅读
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • GAMETECH腾讯云游戏行业技术沙龙成都站圆满落幕
    11月13日,由腾讯云主办、游戏茶馆协办的2020年首场GAME-TECH腾讯云游戏行业技术沙龙在成都圆满落幕。本次沙龙邀请了腾讯云游戏行业解决方案总监宋永周、腾讯云游戏行业高级解决方案架构师曾梓恩、腾讯云游戏行业高级产品架构师郑晓曦、腾讯云游戏行业高级解决方案架构师温球良和天美L1(王者荣耀)服务器技术副总监杨光,为参会同行们带来了干货满满的技术建议。本文介绍了腾讯云游戏云的优势和为不同游戏研运场景提供的服务。腾讯云在中国游戏云服务市场领跑,成为众多游戏开发者的合作伙伴。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
author-avatar
曾经沧海难为水文杰59552066
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有