本学期我选择《软件需求模式》作为我的精读书目,以此来加强我对软件需求分析这门课的学习。

这本书的译者就在序中写到:“需求是平衡的艺术,既要对开发人员有指导意义,又要能帮助解决业务问题,如何在两者之间取得平衡,本书中的大量实例对此有自己的独特见解”。显然,需求分析就是连接客户和软件开发者,或者说,连接业务与软件的最关键的桥梁。需求是开发人员开发软件的基础,需求也是业务人员的业务目标。

首先,我们应该认识到的就是,什么是需求?需求应该是用最清晰的文字来阐明系统所必须具有的所有功能和其他能力,即需求定义了系统必须做什么和它必须完成的行为。本书中就定义了需求的一些基本原则:(1)定义问题,而不是解决方案。我们要理解问题的本质,在需求中明白问题是什么,而不是应该怎么做。(2)定义系统,而不是项目。需求所体现的是这个系统的功能,而系统就是一组目标,但是项目却是如何完成这一目标。(3)区分正式和非正式部分。我们应该从大量的需求信息中,通过背景知识、前后关系、流程以及结构来正确地认识到需求的正式组成部分,即系统必须做什么,而其他的都是非正式的。(4)避免重复。每一项信息应该只需要表达一次,重复会产生额外的工作而且加大了不一致的可能性。在认识和定义需求的同时,本书也为我们提供了一个典型的传统需求阶段的步骤:(1)准备。(2)收集信息。(3)编写需求规格草稿。(4)评审规格。(5)评审后修改。

在了解了什么是需求和需求阶段的步骤之后,我进一步学习了需求规格的内容。首先是介绍部分,系统规格的介绍部分有:系统目的、文档目的、需求格式、词汇表、参考书目以及文档历史。其实这六个主题的目的都是为了让开发者能够更清楚地认识到需求,才能更好地去开发软件。在我看来一个好的需求分析,应该让我们很清楚明白地认识到我们的系统本身的目的是什么,我们要使用更简洁明了的语言用来代替一些难懂的专业术语去描述每一个需求。所以介绍部分就是让我们更好地认识需求,才能使我们把握好开发系统的方向。其次是上下文部分,就在上课老师也让我们练习了这一部分的内容,即上下文图。在上下文图中我们需要展示组件、用户角色、范围边界、系统间的接口,在这之中,我们就需要对每一个是真的事情,清楚明确地声明为假设,同时也要把不需要的东西排除在外,最后我们要确定关键业务实体(即系统就是为了产生和操纵这些东西而开发的),然后构件基础架构(支持一个或多个需求所需的一组基础的能力)。然后就是定义系统的核心部分——功能域部分。我们需要在需求中详细地列举出系统的所有功能,将其分为大量的小节而更方便管理也更容易理解,然后需要根据功能的使用频率、发起者的相对重要性或者对业务的价值来区分不同的功能的重要性,并且从高到低依次排列。最后是主要非功能要求部分,我们需要筛选出系统功能中不重要的部分,把它们分配到规格内容的其他部分当中,而对于主题太大的不主要功能就加到“主要非功能要求”当中,并组织语言,定义最合适的标题。

通过本次的阅读,我比较清楚地认识到了需求就是阐明系统功能或者说定义系统行为的工具,而且也学习掌握了在编写需求文档时的一些规格内容,让我对软件需求在总体的分析和编写上有了大致的了解。

转载于:https://www.cnblogs.com/wxyxxx/p/5925242.html

《软件需求模式》阅读笔记01相关推荐

  1. 梦断代码阅读笔记01

    就像这本书的推荐序一样,这本书最大的的魔力是它不只是讲技术和理论,而是向我们真实的反映了一流软件开发师是如何进行软件开发的,他把真实的事,人,技术以及产品的发展过程结合在一起.我们现在没有进行开发项目 ...

  2. 梦断代码阅读笔记之一

    最近阅读了罗森伯格的<梦断代码>,算是近距离观察了十几年前软件开发的状态.这本书是作者对OSAF主持的Chandler项目进行田野调查  而写的一本书.本书是在讲一事,也是在讲百千事:是写 ...

  3. 梦断代码阅读笔记03

    经过几天的阅读,终于将这本书看完了,读完了整个故事,我进行了简单的总结,感觉不仅仅是在写代码与计算机或软件交流,更多的是做事行为. 首先是做事得有目标.无论做什么事情都要有目标和动力,这样做起事来无论 ...

  4. 梦断代码阅读笔记之二

    第5章 管束奇客和狗 管理的任务就是让人能协同工作,益其长处.弱其短处.数字只是管理的一个起点,并非终点. 用代码行数计算软件生产力不太可靠. 非正式机制总是存在,而且如果没真正理解就改变他是很危险的 ...

  5. 梦断代码阅读笔记 03

    孟子曾经曰过"鱼,我所欲也,熊掌亦我所欲也:二者不可得兼,舍鱼而取熊掌者也",这就是我们耳熟能详的"鱼与熊掌不可兼得"的由来,无独有偶,其实生活中也有很多的&q ...

  6. 梦断代码阅读笔记02

    最近读到了第四章,大体讲了: 模块化和组件化是软件人员的梦想,谁都想把几个模块插到一起就可以完美的运行并完成任务,但现实却相当残酷,可以运行的模块通常不能与自己想写的程序配合工作,好的源代码由于商业利 ...

  7. 梦断代码 ---阅读笔记02

    Agenda之魂 由于不知道Agenda的意思,所以去查了一下,它是议事日程; 待议诸事项一览表; 日常工作事项; 议程的意思.不过在本书中确实一个项目的名字,它是为解决各种信息的管理问题. 继续努力 ...

  8. 阅读笔记《梦断代码》其二

    梦断代码阅读笔记之二 读"乐高王国"的时候,真的引起了我的共鸣.因为以前我就是作者描述的那种程序猿,专注于制造螺丝和螺母这种小细节,而不屑于利用别人早就写出来不 知多少个版本的代码 ...

  9. 《梦断代码》阅读笔记01

    这几天阅读了老师推荐的<梦断代码>前几章,通过本书简介可以知道本书大概主要讲的是做软件过程中的困难. 第一章软件时间,主要讲的是从事软件制作行业的艰辛,需要没日没夜的加班工作,书中有这样一 ...

  10. 《梦断代码》阅读笔记之第8章至最后

    以下是我读了梦断代码第八章之后的读书笔记: 1.自己做的软件自己一定要用,即"吃你自己的狗食",自己的软件开发出来后自己都不会用那么还要指望别人用不成? 2.在软件开发编写代码的时 ...

最新文章

  1. 应用设计模式进行重构来消除坏味道
  2. python的用途-python“ with”语句的用途是什么?
  3. HDU2855—Fibonacci Check-up
  4. acwing2041. 干草堆(差分数组)
  5. 数据结构之并查集:并查集的介绍与Python代码实现——18
  6. QTCreator快捷键
  7. vue用户行为收集_Vue前端数据采集 埋点 追踪用户系列行为
  8. oracle如何修改字段为空的为0,Oracle中字段为空处理成0
  9. VS2017逐步配置OpenCV教程
  10. 汇编语言与微机接口——交通灯设计
  11. 前端开发IDE---VSCode前端开发环境配置
  12. laravel mews/captcha包安装图形验证后 提示验证码错误
  13. 考拉nbsp;PASCALnbsp;解题报告
  14. java高并发唯一订单号_高并发下唯一订单号生成器--雪花算法
  15. 微信小游戏世界排行榜的绘制
  16. 不要用PS啦,python+opencv代码给证件照换底色
  17. 一枚笑脸 emoji,估值 20 亿美元!这个开源项目有点强...
  18. IE hasLayout详解
  19. java对焦_Android camera摄像头对焦,zoom的通知事件回调,告诉java应用层已经对焦完成...
  20. 常说的“四层”和“七层”是什么

热门文章

  1. 设计模式使用率排行榜
  2. Maven -- group、artifact、package
  3. PyTorch基础(五)----- torch.cat()方法
  4. springboot学习笔记(八)
  5. STM32开发 -- 设置MCU运行频率
  6. 第18届浙江大学校赛 Mergeable Stack
  7. QEMU KVM 虚拟机移植之性能提高篇小结(android 虚拟机双系统方案)
  8. Introduction to Byteball — Part 4: Adoption
  9. 美团外卖骑手背后的AI技术
  10. Android Bitmap面面观