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

前一阵子,继续读了《需求工程——软件建模与分析》。之前了解了需求工程的概论和需求的捕获,分别讲了需求捕获中的困难。获取信息的方法和来源;学会分析项目的前景;确定系统边界;涉众分析与硬数据采集;在需求捕获时的方法:面谈,问卷调查,头脑风暴,原型,观察与文档审查;

这次读的主要是介绍需求分析和需求文档化和验证。其中介绍了需求分析技术,需求分析方法等;建模(过程建模,数据建模,面向对象建模);需求规格说明;需求验证。

经过这次读书,我发现需求获取的根本任务是:1、建立分析模型,达成开发者和用户对需求信息的共同理解。2、依据共同的理解,发挥创造性,创建软件系统解决方案。在长期的研究与发展中,产生了很多的需求分析技术,常见的有上下文图,数据流图,实体联系图,功能实体矩阵,过程依赖图,用例图,类图,交互图,活动图,对象约束语言,微规格说明,数据字典,状态图等等。需求分析阶段的任务是确定软件系统功能。软件需求分析是研究用户需求得到的东西,完全理解用户对软件需求的完整功能,确认用户软件功能需求,建立可确认的、可验证的一个基本依据。软件需求分析是一个项目的开端,也是项目实施最重要的关键点。据有关的机构分析结果表明,我们设计的软件产品存在不完整性、不正确性等问题80%以上是需求分析错误所导致的,而且由于需求分析错误造成根本性的功能问题尤为突出。因此,一个项目的成功软件需求分析是关键的一步。为了保证项目的正常实施,并且能够顺利的完成,我们必须加强项目管理和重视项目分析工作。我们只有从实际出发,切切实实地把握用户需求,把握用户需求目标,把握用户将来功能界定,保证我们开发工作正确性方向。三种需求分析的方法:结构化分析方法、面向对象的分析方法、面向问题域的分析方法。需求分析活动的一个重要任务是进行需求细化,明确用户需求的隐含信息,展开为明确的对软件系统的行为期望,即系统需求。这些细化后的系统需求从软件和技术的角度,以可度量的方式定义了软件系统的验收标准。对问题域以及需求信息的建模工作能够能够帮助揭示问题世界中的隐含因素,系统模型就是将各种隐含因素加以明确后的抽象知识模型。因此,需求细化是在系统模型的基础之上进行的。一方面,它要明确用户需求的隐含因素,为软件系统的建立和实现提供充分的信息支持;另一方面,它要将从问题域和业务的角度表述的用户需求等价的转化为从软件和技术的角度表述的系统需求,以帮助软件开发者对需求形成恰当和准确的理解。

在需求的文档化和验证方面,我了解了编写需求规格说明文档的原因:一方面,清晰、明确、结构化的文档可以将软件系统的需求信息和解决方案更好的传递给所有的开发者。另一方面,文档可以拓展人们知识记忆能力。需求规格说明文档存在不同的类型,表现在:文档的名称、内容、组织方式、表达方式、用途和作用不同。其中优秀的需求规格说明文档具备的特征:正确性、无歧义、完备性、一致性、根据重要性和稳定性分级、可验证性、可修性、可跟踪。需求文档的规范书写可以让软件在以后的开法中少走弯路,能根据文档开发出客户所提的需求,能让软件的开发更加顺利。在需求分析中文档的编写是其中的重要一步,其重要性在于文档的好坏能直接影响到该项目的开发速度及开发出软件的质量。所以在文档编写时我们一定要规范书写,规范的需求文档能体现一个开发人员的素质,好的开发习惯。而需求验证的活动是为了确定以下几方面的内容: 软件需求规格说明正确描述了预期的系统行为和特征,系统需求或其它来源中得到软件需求,需求是完整的和高质量的,有对需求的看法是一致的,需求为继续进行产品设计、构造和测试提供了足够的基础。正式技术评审的最好类型叫作审查,对需求文档的审查是可利用的最高级软件质量技术。要深入的了解验证和确诊的实质意义,就有必要在整个软件工程的框架下来理解系统验证意义。在需求分析的过程中,需要我们不断地整理、分析,注重每一个细节,确定好系统的边界。

时间: 2024-07-30 13:21:22

《需求工程——软件建模与分析》读书笔记二的相关文章

Android深度探索HAL读书笔记9

看了本书第九章,我学习到了: HAL(抽象硬件层)是建立在linux驱动之上的一套程序库,这套程序库是属于内核层之上的应用层——系统运行库层. Linux驱动代码类型:访问硬件寄存器的代码和业务逻辑代码. Linux内核采用GPL协议,该协议要求源代码必须开源,即linux驱动必须开源. Android增加HAL的目的:①避免应用程序直接访问linux驱动②保护私人财产,满足不想开源的linux驱动作者的要求,带HAL的linux驱动相当于将数据从HAL传到寄存器,即从寄存器传到HAL的“数据二

Android深度探索HAL读书笔记8

看了本书第八章,我学习到了: 蜂鸣器是开发板自带的一个硬件设备,控制蜂鸣器发声是通过向寄存器写入特定的值实现的.PWM驱动不同于LED 驱动,其由多个文件组成,在编译时将这些文件进行联合编译. 蜂鸣器也称为PWM(脉冲宽度调制),基本原理是通过脉冲来控制蜂鸣器的打开和停止. PWM连接到了TOUT1端口,使用端口F的GPFCON寄存器进行控制.宏S3C64XX_GPFCON表示寄存器GPFCON的虚拟地址.仅用最高两位(30.31位)控制PWM.最高两位为 10时,打开PWM:为00时停止PWM

《Android深度探索》读书笔记10

看了本书第十章,我学习到了: 1.printk函数:运行在内核空间,linux驱动只能用printk来打印内核调试信息.函数原型:asmlikage int printk(const char *fmt).第一个参数表示格式字符串,后面是可变参数,第一个参数若为KERN_DEBUG和KERN_WARNING,值分别为<7>.<4>,数字表示输出的日志级别,默认为KERN_WARNING.该函数既可以将日志信息写入到日志文件,也可将日志信息写到控制台.Printk文件输出日志信息的输

《Android深度探索卷一》第一章Android系统移植与驱动开发概述。

<Android深度探索>第一章讲的是Android系统移植与驱动开发概述.这一章节将对Android以及Linux驱动做一个总体的介绍. Android是一个非常优秀的的嵌入式操作系统.经过几年的发展和演进,Android已经形成了非常完善的系统架构.Android的系统架构分为四层,如下图 Android移植可分为两部分:应用移植和系统移植. Android系统移植是指让Android操作系统在某一个特定硬件平台上运行.使一个操作系统在特定硬件平台上运行的一个首要条件就是该操作系统支持硬件

《Android深度探索卷一》读书笔记二

开发,测试和调用Linux驱动,HAL程序库需要的工具: JDK6或以上版本: Eclipse3.4或以上版本: ADT(用于开发Android应用程序): CDT(用于开发AndroidNDK程序): Android SDK: Android NDK: 交叉编译环境: Linux内核源代码: Android源代码: 用于调试开发板的串口工具:minicom; 一.安装JDK 下载JDK压缩包并解压到任意目录,在Linux终端输入“getdit /etc/profile”打开profile文件,

《Android深度探索卷一》读书笔记一

一.Android系统架构 Android系统架构分为4层: 第一层:Linux内核 Android是基于Linux内核的,因此,Android内核和标准Linux2.6的内核结构基本相同,细微差异在Android在Linux内核中增加的主要是一些Android专用驱动和Android使用的设备驱动,这些驱动程序在Android不同版本中可能并不通用. 第二层:C/C++代码库 是使用C/C++编写的代码库也就是Linux下的.so文件,还有Android运行时环境(AndroidRuntime

《Android深度探索卷一》读书笔记四

下载,编译和测试Android源代码 1.配置Android源代码下载环境 下载之前必须先在Linux终端执行一些命令配置环境. 创建存放脚本文件的目录“mkdir ~/bin””PATH=~/bin:$PATH”:下载repo脚本文件“curl 地址 > ~/bin/repo””chmod a+x ~/bin/repo”;创建存放Android源代码的目录“mkdir android_source”“cd android_source”;初始化“repo init -u 地址”: 2.开始下载

《Android深度探索卷一》读书笔记五

下载和编译Linux内核源代码 Android源代码不包含Linux源代码,必须单独下载.不能直接在www.kernel.org下载Linux内核,应在Google提供的网站下载Android中使用的Linux内核. 1.下载“git clone https://android.googlesource.com/kernel/common.git”,进入common目录,“git branch -a”查看当前有的远程版本,之后导出 到导出所需版本“git checkout -b android-

探索需求读书笔记二

第2章陈述需求中的含混性        攻击含混性是因为含混性需要成本.        尽可能早地攻击含混性,因为即使你最终消除了它,在产品开发的早先阶段改正所需要的成本要比以后改正的成本少很多很多.        如何攻击含混性是全书的主题.但首先,一定要记住用一种非常有趣的方法来使用你的智慧-探索应该是一种乐趣.        探索的基本步骤:1.向某个方向移动:2.看看在那里发现了什么:3.记录所发现的东西:4.有目的地分析所发现的东西:5.通过对所发现东西的分析和记录选择下一个方向:6.

Android深度探索(卷一):HAL与驱动开发第一章节读书笔记

在课下我学习了Android深度探索(卷一)这本书.该课本的第一章节,详细介绍了如何搭建和使用Ubuntn Linux12.04 LTS.Android模拟器和S3C6410开发板. 首先,我知道了Android是一个非常优秀的嵌入式操作系统.Android的系统架构分为四层:Linux内核.c/c++代码库.Android SDK API和应用程序. 其次,是Android系统的移植.Android移植分为两部分:应用移植和系统移植.应用移植是指将应用程序层的应用程序移植到某一个特定的硬件平台