在老师推荐的几本书里面,我选择了阅读《需求工程——软件建模与分析》一书,感觉受益颇多,刚开始接触软件觉得最难得是代码,关键是代码,其他都没必要,随着学习的渐渐深入,越来越理解老师说的,在一个项目中最轻松地才是代码。

  软件生产中产生需求问题的最大原因在于对应用型软件的模拟特性理解不透彻或应用不坚决,它会导致软件开发者产生轻视需求的态度问题,但除此之外,还有一些技术原因也会导致需求问题的产生。一般有非技术性和社会性因素重视不足;传统需求分析方法的缺陷;软件规模的日益扩大;需求问题的高代价性等。IEEE对需求定义为:①用户为了解决问题或达到某些目标所需要的条件或能力。②系统或系统部件为了满足合同、标准、规范或其他正式文档所规定的要求而需要具备的条件或能力。③对①或②中的一个条件或一种能力的一种文档化表述。通过这个定义了解了需求并不是用户想要的,想实现的,了解了需求本质的内涵。

需求又分为:

功能需求:是软件系统需求中最常见、最主要和最重要的需求,同时也是最为复杂的需求。功能需求通常体现为三个层次:业务需求、用户需求、系统需求。

业务需求:描述了组织为什么要开发系统,满足用户的业务需求。业务需求是用户需要在业务上使自己更加方便的开展工作的需求。

用户需求:表达了用户对系统的期望,但是要透彻和全面地了解用户的真正意图,仅仅拥有期望是不够的,还需要期望的背景知识。因此,对所有的用户需求,都应该有充分的问题域知识作为背景支持。而在实际工作中,用户表达自己的期望时,通常不会提及需求所涉及问题域知识,所以需求工程需要根据用户的需求整理完整的问题域知识

  那么什么是需求工程?需求工程是所有需求处理活动的综合,它收集信息、分析问题、整合挂点、记录需求并验证其正确性,最终反应软件被应用后与其环境互动形成的期望效应。需求工程是为了在软件开发前需要软件工程师们去了解并去设计出一套解决方案。因为软件工程师并不是了解所有领域。所以更加需要更用户沟通。需求工程十分重要。虽然人们很早就认识到这一点,但是在时间、人力、物力、财力的投入上却并没有那么重要。事后必然会导致需求分析水平低,软件开发质量低,用户抱怨多的问题出现。

系统需求是用户对系统行为的期望,一系列的需求联系在一起可以帮助用户完成任务,达到用户需求,进而满足业务需求。需求工程可以直接映射为系统行为,定义了系统中需要实现的功能,描述了开发人员需要实现什么。

将用户需求转化为系统需求的过程,在该过程中,首先需要分析问题领域的特性,从中发现问题域和计算机系统的共享知识,建立系统的知识模型。然后将用户需求部署到系统模型中,即定义系列的系统行为,让它们联合起来实现用户需求,每一个系统行为即为一个系统需求。

  提起需求,不同背景的人会有不同的看法,IEEE对需求的定义为:用户为了解决问题或达到某些目标所需要的条件;系统或系统部件为了满足合同、标准、规范或其他正式文档所规定的要求而需要具备的条件或能力;对前两条中的一个条件或一种能力的一种文档化表述。

  需求中总是遇到一些困难,因为用户和开发人员的背景不同,立场不同,所以知识理解困难,心中所想的东西也不一样。普通用户缺乏概况性和综合性的表述能力,  所以很难理解对方心中所想。用户还总是提出各种需求,固执的坚持某些特性和功能。用户并不了解软件的设计情况,所以需要这些困难需要需求工程师们一一解决。

书中对需求工程的执行的路线有着详细的描述:问题分析:明确问题;定义业务需求;制定解决方案及系统特性。需求获取 需求分析  文档化和验证。需求工程的执行路线简明地展示了一个需求工程如何运行的流程,也了解了需求工程的整个过程。

书中也列举了常见的需求定义错误,更好地解释了之前需求的定义,也更加让我们了解了需求的定义,以及产生需求定义错误的原因,通过分析原因可以让我们在实际过程中注意到并且避免。也可以有更好的方法来避免这些错误。

  需求是获取的主要对象,是系统期望达到的目标。它主要来源于用户、客户、领域专家等相关涉众,在湖区中体现为射中的问题、期望、观点、看法和态度等。常见的获取信息的方法有问卷调查、面谈、文档分析、文档检查、需求剥离等。也有头脑风暴、专题讨论、JAD、JRP等。需求获取是从人、文档或者环境中获取需求的过程。在需求获取中,需求工程师需要执行的任务包括:收集背景资料;定义项目前景和范围;选择信息的来源;选择获取方法,执行获取;记录获取结果。需求分析的主要工作室通过建模来整合各种信息,从而使人们更好地理解问题。在需求分析阶段,需求工程师主要的任务包括:背景分析;确定系统边界;需求建模;需求细化;确定优先级;需求协商。

需求规格说明:获取的需求需要被编写成文档,其中项目前景和范围文档记录记录业务需求、用户需求分析记录用户需求、系统需求被写入需求规格说明记录系统需求。需求工程师在这个阶段的主要工作包括:1.定制文档模板;2.编写文档

需求验证:为了保证以上标准的,满足,需求规格说明文档,尤其是最终定稿的需求规格说明文档,在传递给相关人员之前要进行严格的验证。需求验证阶段的主要任务包括:1.执行验证;2.问题修正

需求管理:需求管理会进行变更控制,纳入和实现合理的变更请求,拒绝不合理的变更请求,控制变更的成本和影响范围。需求管理阶段的主要任务包括:1.建立和维护需求基线集;2.建立需求跟踪信息;3.进行变更控制

这次阅读大概阅读了三分之一,这一部分详细介绍了需求的定义及分类,需求过程的活动,使我们了解了需求工程的作用和意义,明确了软件需求的来源和去向。还针对需求工程中理论与实践并重的现状,对理论、技术和实践方法进行了融合。让我对剩下的内容充满了期待。

转载于:https://www.cnblogs.com/zchenjian/p/4949020.html

《需求工程——软件建模与分析》阅读笔记之一相关推荐

  1. 需求工程——软件建模与分析阅读笔记04

    本部分是阅读完需求工程--软件建模与分析(第二版)骆斌主编的第四部分的一点收获总结: 这部分主要从需求规格说明书的书写,与需求验证两部分组成. 一.首先我们应当明白为什么要编写需求规格说明书: 1)需 ...

  2. 需求工程软件建模与分析阅读笔记01

    需求工程--------软件建模与分析(第二版)主编骆斌 编著丁二玉 第一次阅读这本书,首先我从这本书的整体结构目录阅读,大致了解这本书的主体内容. 本书分为5部分:第一部分绪论,第二部分需求获取,第 ...

  3. 01需求工程-软件建模与分析阅读笔记

    绪论阅读笔记 绪论这一部分讲的很多,把这本书的框架给讲了一个大概,让我对这本书有了一个大致的了解. 软件的发展经历了以"机器"为中心,以"应用"为中心,以&qu ...

  4. 04需求工程软件建模与分析阅读笔记之四

    此次阅读了解到了获取信息的方法. 1.传统方法:传统应用开发使用的很多数据收集机制都属于此类,它们在现在的需求获取中仍然起着非常基础的作用.常见的有问卷调查,面谈,文档分析,需求剥离等. 2.集体获取 ...

  5. 05需求工程软件建模与分析阅读笔记之五

    此次阅读了解到了常见的问题框架. 大致分为六种: 1.需求行为控制系统:存在物理世界的某个部分,其行为须要收到控制,以使得他们满足特定的条件,问题是要建立一个系统,系统将施加所须要的控制. 2.命令行 ...

  6. 《需求工程--软件建模与分析》笔记

    第一部分:绪论 软件的发展经历了以"机器""应用""企业"为中心的三个阶段.这也是软件从一开始的新型项目到逐渐完整的一个制作体系形成的过程. ...

  7. 《需求工程——软件建模与分析》阅读笔记5

    在需求的文档化和验证中主要分两个部分讲述,分别是需求规格说明和需求验证,在需求规格说明文档中讲到需求规格说明文档是需求规格说明活动的一个核心元素,要理解需求规格说明活动,就需要明确文档的编写规格说明文 ...

  8. 《需求工程-软件建模与分析之读书笔记之三》

    <需求工程-软件建模与分析之读书笔记之三> 第14章<面向对象建模>采用了面向对象方法学的世界观,将系统看作是一系列对象的集合,每个对象具有独立的职责,完成独立的任务,对象之间 ...

  9. 《需求工程——软件建模与分析》读书笔记

    <需求工程--软件建模与分析>,整体来说这本书内容还是挺多的.我先从目录看起,看看这本书的知识框架是怎样的,整个需求分析会涉及到哪些知识. 该书共分为5个部分:绪论,需求获取,需求分析,需 ...

最新文章

  1. ITK:追加两个3D体积
  2. 训练FCN时遇到的问题总结
  3. String和enum的互相转换
  4. python __init__ 构造函数
  5. Elasticsearch java api 基本搜索部分详解
  6. Effective C++学习第五天
  7. linux php不能写文件内容,php 在linux系统下写出文件问题
  8. 总结-Linux基础指令
  9. android 服务设置在哪里,如何在Android中为我的服务设置“控制面板”?
  10. ftp 501错误_分享,HTTP协议错误代码大全
  11. scala设计模式_Scala中的工厂设计模式
  12. ubuntu 17.10.1 安装 virtual box 增强工具
  13. 20.docker events
  14. 数据--第44课 - 最小连通网
  15. 3 | 复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?
  16. [python]上传文件验证
  17. timestamp显示毫秒_TimeStamp 毫秒和纳秒
  18. Tenda腾达 W311U无线网卡驱动1.0版For WinXP/Vista/Win7下载-腾达无线网卡驱动-ZOL中关村在线...
  19. 七大软件设计原则之一 | 开闭原则
  20. 虚拟机(vmware)添加新硬盘

热门文章

  1. DataSet与DataReader的区别
  2. Reporting Services 4: Web Service
  3. 联邦知识蒸馏概述与思考(续)
  4. 免费使用3天!52CV GPU云大促,疫情期间做深度学习的首选!
  5. mysql 插入毫秒数据_【转载】怎样在mybatis里向mysql中插入毫秒数的时间?
  6. 计算机视觉论文-2021-06-21
  7. 深度学习(三十八)卷积神经网络入门学习(2.0)
  8. 非局部均值(Nonlocal-Mean)
  9. ros::spin() 和 ros::spinOnce()
  10. kettle使用数据库来生成序列_kettle专题5:数据转换