软件工程之需求分析

news/2024/7/2 21:07:28

前言:

      可行性分析的基本目的就是用较小的成本在较短的时间内确定软件是否有可行的解决方案,即软件值不值得开发的问题。一旦确定要开发软件,开发人员首要的任务是要搞清楚用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,需求分析是软件定义的最后一个阶段,它的基本任务是准确的回答“系统必须做什么”的问题。

1.需求分析的基本概念

1.1定义

      需求分析就是用户对软件各种要求的通称,也就是表达出用户希望软件做什么事情,完成什么样的功能,达到什么样的性能。对软件需求的严格定义并未统一,不同的组织和个人从不同方面对软件需求给出了不同的描述。

1.2特点

1)需求动态性。在整个软件的生命周期,软件的需求会随时间和业务有所变化。
2)问题的复杂性。
3)交流共识困难。软件需求分析过程中涉及系统分析员和用户等诸多人员,这些人员在交流中由于彼此不同的知识背景、角色和角度使得交流共识困难。

1.3目标

      软件需求分析阶段是把来自用户的信息加以提炼,形成功能和性能方面的描述。需求分析阶段所要达到的目标是以软件计划阶段确定软件工作范围为指南,导出新系统的逻辑模型,编写出软件需求规格说明书。
具体目标:1)理清数据流或数据结构。2)通过标识接口细节,深入描述功能,确定设计约束和软件有效性要求。3)构造一个完全、精细的目标系统逻辑模型。

1.4任务

      需求分析的基本任务是准确回答“系统必须做什么”的问题。它的任务不是确定系统怎样完成工作,而是确定系统必须完成哪些工作,即对目标系统实现的功能等提出完整、准确、清晰、具体的要求。
具体任务:
1)确定对系统的综合要求。主要包括功能要求、性能要求、运行要求和其他要求。
2)分析系统的数据要求。
3)导出目标系统的详细逻辑模型。
4)修改系统开发计划。
5)编写软件需求规格说明书。

1.5原则

1)需求分析方法应该容易被用户理解。2)系统分析人员要在用户和开发人员之间做好平衡。3)需求分析成果必须规范化、形成文档。4)评审需求文档和原型系统。

2.需求获取的方法

用户访谈-问卷调查-专题讨论会-快速建立软件原型

3.需求建模方法

3.1数据流图

3.1.1基本概念

      数据流图(DFD)图是一种图形化建模工具,它描绘了信息流和数据从输入移动到输出的过程中所经历的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程,是软件系统逻辑功能的图形表示。

3.1.2基本图形元素


3.1.3附加符号和关系

星号(*)表示数据流之间是“与”关系;加号(+)表示“或”关系;号表示只能从中选择一个(互斥关系)。

3.1.4绘制数据流图的的原则

(1)注意数据流图中成分的命名。1)为数据流或数据存储命名。2)为数据加工命名
   (2)注意父图和子图的平衡。
   (3掌握分解的速度。
   (4)遵守加工编号规则。

3.2数据字典

3.2.1定义

      数据流图描述了现行系统的总体框架,在数据流图的基础上,还需要对其中的每个数据流、文件和数据项加以描述,我们把这些定义所组成的集合成为数据字典。

3.2.2任务

      数据子典(DD)的任务是对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得每一 个图形元素的名字都有一个确切的解释。数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,没有数据流图数据字典也难以发挥作用。

3.2.3定义符号


*...*                                注释符                    在两个*之间的内容为词条的注释

3.3层次方框图

3.4Warnier图

3.5E-R图

3.6状态转换图

4需求验证

4.1需求验证的内容

软件需求验证的四个方面:一致性、完整性、有效性、现实性

4.2需求验证的方法

4.2.1自查法

自查法是由需求分析人员对自己完成的软件进行审查和验证,纠正需求中存在的问题。该方法又细分为3中方法:1)小组审查法;2)参照法;3)逻辑分析法。

4.2.2用户审查法

该方法是系统分析人员将需求分析文档交给用户,由用户对需求分析进行审查。

4.2.3专家审查法

4.2.4原型法

该方法通过建立原型系统对存在争议或拿不准的需求进行验证,以此来确定需求的正确性。

5需求分析的过程

5.1问题识别

5.2分析与综合

常用的分析方法:
面向数据流的结构化分析方法(SA)
面向数据结构的Jackson方法(JSD)
结构化数据系统开发方法(DSSD)
面向对象的分析方法(OOA)

5.3编制需求分析阶段的文档

软件需求说明书
数据要求说明书
初步的用户手册
改正、完善与确定软件开发计划

5.4需求分析评审

6.小结

      需求分析是软件生命周期中的一个重要阶段,它解决的是软件要“做什么”的问题。需求分析的好坏直接影响软件的设计和实现,因此系统分析人员必须准确地把握需求分析的目标和任务,遵循需求分析的原则。

http://www.niftyadmin.cn/n/4225165.html

相关文章

判断文件的更改时间是否超过24小时python脚本

判断文件的更改时间是否在24小时内: vi a1.py #!/usr/bin/python import osimport datetime dir"/root/ming.txt" now datetime.datetime.now()deltaH datetime.timedelta(seconds86400) f datetime.datetime.fromtimestamp(os.path.getmtime(dir)) if…

软考后的感受

软考结束了,下面说说这次复习时候的感觉吧。 1. 受老师讲《信息资源管理》总结思路的影响,罗列出每章不是目的,还要思考为什么软考要考这几章?每章和每章之间的关系是什么?发现这样分析它们之间的联系之后&#xff0c…

机房收费系统文档(第一次)总结

1.前言: 这段时间结合机房收费系统对文档的编写进行了学习,可能是由于之前没有接触过文档编写的相关知识,写起来感觉特别费劲,都不知道怎么去描述各部分的内容。结合文档的样本站在巨人的肩膀上一步步的“艰难的”前行。慢慢的…

Linux运维基础采集项

1. Linux运维基础采集项 做运维,不怕出问题,怕的是出了问题,抓不到现场,两眼摸黑。所以,依靠强大的监控系统,收集尽可能多的指标,意义重大。但哪些指标才是有意义的呢,本着从实践中来…

判断文件目录是否存在的SHELL API

这个功能不用自己实现MS提供了现成的函数PathFileExists 老是记不住写下来备忘 Header: Declared in Shlwapi.h. Import Library: Shlwapi.lib.

Html5使用history对象history.pushState()和history.replaceState()方法添加和修改浏览历史记录...

根据网上参考自己做个笔记:参考网址:http://javascript.ruanyifeng.com/bom/history.html history.pushState() HTML5为history对象添加了两个新方法,history.pushState()和history.replaceState(),用来在浏览历史中添加和修改记录…

基于数据访问的集合类型-领域驱动设计的又一种特定对象

企业级应用的一个显著特点是需要处理大量的数据,开发人员应该小心地从数据库中加载对象,确保只加载了供业务处理使用的必须的最小限度的对象集合。但真正做到这一点是很难的。其中一个原因就是:现实世界中,事物很少孤立存在&#…

redis list底层数据结构

redis list数据结构 redis list数据结构底层采用压缩列表ziplist或linkedlist两种数据结构进行存储,首先以ziplist进行存储,在不满足ziplist的存储要求后转换为linkedlist列表。  当列表对象同时满足以下两个条件时,列表对象使用ziplist进行…