第2章-可行性研究与需求分析课件_第1页
第2章-可行性研究与需求分析课件_第2页
第2章-可行性研究与需求分析课件_第3页
第2章-可行性研究与需求分析课件_第4页
第2章-可行性研究与需求分析课件_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章-可行性研究与需求分析,1,第2章 可行性研究与需求分析,学习目标 : 了解可行性研究的定义、任务、步骤及工具 掌握软件需求分析的任务与目标及Warnier图的使用,熟悉需求规格说明书的基本结构 掌握软件需求分析的过程 掌握结构化分析方法和快速原型方法 掌握数据流图与数据字典的基本元素与应用,第2章-可行性研究与需求分析,2,第2章 可行性研究与需求分析,教学内容 2.1 问题的定义与可行性研究 2.2 需求分析的任务 2.3 需求获取的常用方法 2.4 结构化分析方法 2.5 需求分析评审 本章小结,第2章-可行性研究与需求分析,3,2.1 问题的定义与可行性研究,主要教学内容: 2.

2、1.1 问题的定义 2.1.2 可行性研究的任务 2.1.3 可行性研究的过程 2.1.4 成本/效益分析,第2章-可行性研究与需求分析,4,2.1 问题的定义与可行性研究,2.1.1 问题的定义 问题定义(Problem Definition)是软件定义的第一个阶段,该阶段主要明确“该软件开发项目要解决什么问题”。 系统分析过程的第一步要明确用户的需求。为此,系统分析员在对用户的需求进行分析时,必须明确以下问题: 软件系统要完成的总体目标是什么? 要开发的软件的功能和性能是什么? 软件系统在可靠性和质量上有何具体要求? 开发该软件系统是否具备可行的技术? 当前市场和竞争对手的情况怎样? 开发

3、该软件系统是否有成本和进度约束? 该软件系统将来可能进行哪些扩充?,第2章-可行性研究与需求分析,5,2.1 问题的定义与可行性研究,2.1.2 可行性研究的任务 可行性研究的主要目的是用极少的代价在最短的时间内决定被开发的软件是否能开发成功。 (1)经济可行性:通过对被开发软件系统的成本效益的分析,估算系统的开发成本,估计系统可能取得的效益,确定待开发系统是否值得投资开发。 (2)技术可行性:从问题定义规格说明书提出的系统功能、性能以及实际系统的各种约束来分析,确定当前的技术及条件是否能实现整个系统。,第2章-可行性研究与需求分析,6,2.1 问题的定义与可行性研究,(3)法律可行性:分析在

4、系统开发的全部过程中可能出现和涉及的法律问题,如合同、责任、知识产权、专利等问题。 (4)运行可行性:判断新系统的运行方式是否可行。 总之,可行性研究就是判断问题定义文档中提出的问题在经济、技术、法律等方面是否具有可行性,并探求若干种有效的解决方案,写出可行性报告。,第2章-可行性研究与需求分析,7,2.1 问题的定义与可行性研究,2.1.3 可行性研究的过程 1可行性研究的步骤 (1)确定系统的规模和目标 (2)分析现有系统,设计新系统的高层系统模型 (3)评审系统模型 (4)设计和评价新系统的实现方案 (5)制定行动方案 (6)拟定开发计划 (7)编制可行性报告,第2章-可行性研究与需求分

5、析,8,2.1 问题的定义与可行性研究,2可行性研究的工具 在进行可行性研究时,使用的主要工具为系统流程图。 系统流程图是描绘物理系统的传统工具。系统流程图的基本思想是:用图形符号以黑盒方式描述系统各部件(如人工处理、程序、数据库、图表等),它只描述了信息在系统各部件中的流动情况,不对信息在系统中的加工细节进行描述,所以它不同于程序流程图。,第2章-可行性研究与需求分析,9,2.1 问题的定义与可行性研究,2.1.4 成本/效益分析 软件开发的一个重要目的是为了获得更大的经济利益。成本/效益分析的目的是从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地作出是否投资于某项

6、软件系统开发的决定。,第2章-可行性研究与需求分析,10,2.1 问题的定义与可行性研究,1. 成本估计 下面介绍3种常用的成本估计技术: (1)代码行技术 (2)任务分解技术 (3)自动估计成本技术,第2章-可行性研究与需求分析,11,2.1 问题的定义与可行性研究,2. 成本/效益分析的方法 成本/效益分析的第一步是估计开发成本、运行费用和新系统将带来的经济效益。 运行费用取决于系统的操作费用和维护费用。 效益包括有形的和无形的。有形的效益主要是指经济效益,无形的效益主要是指社会效益。 系统的经济效益等于因使用新系统而增加的收入加上使用新系统可节省的运行费用。,第2章-可行性研究与需求分析

7、,12,2.1 问题的定义与可行性研究,2. 成本/效益分析的方法 (1)货币的时间价值 (2)投资回收期 (3)纯收入 (4)投资回收率,第2章-可行性研究与需求分析,13,2.2 需求分析的任务,主要教学内容: 2.2.1 确定对系统的综合要求 2.2.2 分析系统的数据要求 2.2.3 导出系统的逻辑模型 2.2.4 修正系统开发计划,第2章-可行性研究与需求分析,14,2.2 需求分析的任务,2.2.1 确定对系统的综合要求 软件需求分析的目标是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求。 需求分析的基本任务是软件人员和用户一起

8、完全弄清用户对系统的确切要求,通俗地说就是要解决“系统做什么”的问题,但不包括“怎么做”的问题。,第2章-可行性研究与需求分析,15,2.2 需求分析的任务,需求分析阶段应考虑以下几个方面的综合要求: (1)功能需求。 (2)运行环境要求。 (3)系统的性能要求。 (4)可靠性和可用性需求。 (5)出错处理需求。 (6)接口需求。 (7)约束。 (8)逆向需求。 (9)将来可能提出的要求。,第2章-可行性研究与需求分析,16,2.2 需求分析的任务,2.2.2 分析系统的数据要求 软件系统本质上都是一个信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌。因此,必须

9、分析系统的数据要求,这是软件分析的一重要任务。 数据要求。需要哪些数据、数据间联系、数据性质、结构等。 数据处理要求。包括处理的类型、处理的逻辑功能等。,第2章-可行性研究与需求分析,17,2.2 需求分析的任务,2.2.3 导出系统的逻辑模型 根据上述两项分析结果,导出目标系统的逻辑模型。 2.2.4 修正系统开发计划 通过需求分析,修正以前制定的开发计划。,第2章-可行性研究与需求分析,18,2.3 需求获取的常用方法,需求获取的目的: 清楚地理解所要解决的问题、完整地获取用户需求。 2.3.1 常用的需求获取方法 (1) 访谈和会议 (2) 市场调查 (3) 访问用户和用户领域的专家 (

10、4) 考察现场,跟踪现场业务流程 (5) 开发人员和用户共同组成联合小组,第2章-可行性研究与需求分析,19,2.3.2 快速原型方法 在软件工程中,原型是软件的一个早期可运行的版本,它能反映最终系统的一部分重要特性。如果在获得一组基本需求说明后,通过快速分析构造出一个小型的软件系统,满足用户的基本要求。使得用户可在试用原型系统的过程中得到亲身感受和受到启发,做出反应和评价。 然后开发者根据用户的意见对原型加以改进。随着不断试验、纠错、使用、评价和修改,获得新的原型版本,如此周而复始,逐步减少分析和交流中的误解,弥补不足之处,进一步确定各种需求细节,适应需求的变更,从而提高最终产品的质量。,2

11、.3 需求获取的常用方法,第2章-可行性研究与需求分析,20,2.3 需求获取的常用方法,2.3.2 快速原型方法 原型系统主要可以解决软件需求分析中固有的几个问题: 用户对系统所满足的功能要求有局限,可能会出现多次反复; 在用户和开发者之间的理解误差总是存在的 用户需要一个看得见摸得着的系统模型,以便获得实践经验。,第2章-可行性研究与需求分析,21,1原型的分类 (1)废弃型 先构造一个功能简单而且质量要求不高的原型系统,针对这个原型系统反复进行分析修改,形成比较好的设计思想,据此设计出更加完整、准确、一致、可靠的最终系统。系统构造完成后,原来的原型系统就被废弃不用。 (2)追加型或演化型

12、 先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心,然后通过不断地扩充修改,逐步追加新要求,最后发展成为最终系统。,2.3 需求获取的常用方法,第2章-可行性研究与需求分析,22,2原型类型的选择 选择方法参看P32表2.4。 3快速原型开发模型 原型的开发和使用过程叫做原型生存期,下面分别介绍原型生存期中的各步骤: (1)快速分析 在分析员和用户的紧密配合下,快速确定软件系统的基本要求。 (2)构造原型 在快速分析基础上,根据基本需求,尽快实现一个可运行的系统。,2.3 需求获取的常用方法,第2章-可行性研究与需求分析,23,(3)运行和评价原型 用户在开发者指导下试用原型,

13、在试用的过程中考核评价原型的特性,分析其运行结果是否满足规格说明的要求,以及规格说明是否满足用户愿望。 (4)修正和改进 根据用户反馈的意见修改原型。,2.3 需求获取的常用方法,第2章-可行性研究与需求分析,24,(5)判定原型是否完成 经过修改或改进的原型,得到参与者的一致认可,则原型开发的迭代过程可以结束。为此,应判断有关应用的实质是否已经掌握,迭代周期是否可以结束等。 (6)判断原型细节是否说明 (7)原型细节的说明 (8)判定原型效果 (9)整理原型和提供文档。,2.3 需求获取的常用方法,第2章-可行性研究与需求分析,25,第2章-可行性研究与需求分析,26,2.4 结构化分析方法

14、,主要教学内容: 2.4.1 结构化分析的过程 2.4.2 实体-联系图 2.4.3 数据规范化 2.4.4 数据流图 2.4.5 数据字典 2.4.6 状态转换图 2.4.7 其他图形工具,第2章-可行性研究与需求分析,27,2.4 结构化分析方法,SA(Structured Analysis,结构化分析方法)是20世纪70年代中期由EYourdon等人倡导的一种面向数据流的分析方法。 结构化分析方法是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构化分析方法是一种建模的活动,主要是根据软件内部的数据传递和变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。 它有

15、结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。,第2章-可行性研究与需求分析,28,2.4 结构化分析方法,SA方法的描述工具:SA方法利用图形等半形式化的描述方式表达需求,简明易懂,用它们形成需求说明书中的主要部分。描述工具是:(1)数据流图:描述系统由哪几部分组成,各部分之间有什么联系等等。(2)数据字典:定义了数据流图中每一个图形元素。(3)描述加工逻辑的结构化语言、判定表、判定树:详细描述数据流图中不能被再分解的每一个加工。,第2章-可行性研究与需求分析,29,2.4 结构化分析方法,2.4.1 结构化分析的过程 理解当前的现实环境,获得当前系统的具体模型(物理

16、模型) 从当前系统的具体模型抽象出当前系统的逻辑模型 分析目标系统与当前系统逻辑上的差别,建立目标系统的逻辑模型 为目标系统的逻辑模型作补充,第2章-可行性研究与需求分析,30,2.4 结构化分析方法,使用结构化分析方法应遵守以下准则: (1)必须理解并描述问题的信息域,根据这条准则应该建立数据模型。 (2)必须定义软件应完成的功能,这条准则要求建立功能模型。 (3)必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。 (4)必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。,第2章-可行性研究与需求分析,31,2.4 结构化分析方法,图 结构化分析模型的结构,结构化分

17、析模型 结构化分析模型的组成结构如下图所示。,第2章-可行性研究与需求分析,32,2.4 结构化分析方法,其中: (1)实体-关系图(ERD) 描述数据对象与数据对象之间的关系,代表软件的数据模型。 (2)数据流图(DFD) 描述数据在系统中如何被传送或转换,以及描述如何对数据流进行转换的功能。 (3)状态-迁移图(STD) 描述系统对外部事件如何响应、如何动作,它表明系统的各种状态及各种状态间的变迁。,第2章-可行性研究与需求分析,33,2.4 结构化分析方法,2.4.2 实体-联系图 通常使用实体-联系图(Entity-Relationship Diagram)来建立数据模型。 1. 数据

18、对象 表示目标系统中各种信息。 2. 属性 定义了数据对象的特征。可用来: 为数据对象的实例命名 描述这个实例 建立对另一个数据对象的另一个实例的引用。,第2章-可行性研究与需求分析,34,2.4 结构化分析方法,3. 联系 各个数据对象彼此之间相互连接的方式。 联系可分为以下3种类型: 一对一(1:1) 一对多(1:m) 多对多(n:m) 如:班级对班长;教师与课程;学生与课程。,第2章-可行性研究与需求分析,35,2.4 结构化分析方法,2.4.3 数据规范化 1. 规范化的3个条件 (1)表格中每个信息项必须是一个不可分割的数据项,不可是组项。 (2)表格中每一列中所有信息项必须是同一类

19、型,各列的名字互异,列的次序任意。 (3)表格中各行互不相同,行的次序任意。,第2章-可行性研究与需求分析,36,2.4 结构化分析方法,2.4.3 数据规范化 2. 规范化的目的 主要是消除冗余、消除多义性、使关系单纯化、方便操作、使关系模式灵活。 3. 关键字 是记录中的一个或一组字段,能唯一地标识一个记录。,第2章-可行性研究与需求分析,37,2.4 结构化分析方法,2.4.3 数据规范化 4. 判断规范化程度的条件(3个范式) (1)第一范式:关系中的所有属性都是“单纯域”,即不出现“表中有表”。 (2)第二范式:满足第一范式且非主属性完全依赖于关键字。 (3)第三范式:满足第二范式且

20、非主属性完全独立,即任何非主属性间不存在函数依赖。,第2章-可行性研究与需求分析,38,2.4 结构化分析方法,2.4.4 数据流图 数据流图(Data Flow Diagram,简称DFD)是用来描绘软件系统逻辑模型的图形工具,用于描绘信息在系统中流动和处理情况。设计DFD只需考虑软件系统必须完成的基本逻辑功能,完全不需考虑如何具体地实现这些功能,即只考虑软件“做什么”,而不必考虑“怎么做”。 1. 数据流图的图形符号 在数据流图中常用的有4种基本符号,如表2.5所示。,第2章-可行性研究与需求分析,39,2.4 结构化分析方法,表2.5 数据流图基本符号的意义,第2章-可行性研究与需求分析

21、,40,2.4 结构化分析方法,2. 使用数据流图的注意事项 在使用数据流图时,要注意以下几点: 数据处理不一定是一个程序。 一个数据存储不一定是一个文件。 数据存储和数据流都是数据,而它们所处的状态不同,数据存储是静止状态的数据,数据流是运动状态的数据。 同一数据流图中,加工的个数不要太多(59个) 数据流图细化原则。如果数据流图过于复杂,可画出分层数据流图。,第2章-可行性研究与需求分析,41,2.4 结构化分析方法,在对数据流图进行分层时,容易出现以下几种错误,应特别注意: 父图与子图不平衡 分解的速度太快 不遵守加工编号规则,第2章-可行性研究与需求分析,42,2.4 结构化分析方法,

22、3. 数据流图中各成分的命名方法 为数据流或数据存储命名 数据流或数据存储的名字应代表整个数据流或数据存储的内容,而不是仅仅反映它的某些成分,命名时不要使用空洞的、缺乏具体含义的名字。 为处理命名 一般应首先对数据流命名,然后再对与之相关联的处理命名。命名应该反映整个处理的功能。名字最好由一个具体的及物动词,加上一个具体的宾语组成。 为数据源点/终点命名 为数据源点/终点命名时采用它们在问题域中习惯使用的名字。,第2章-可行性研究与需求分析,43,2.4 结构化分析方法,4. 数据流图的绘制 结构化分析方法实现的步骤是:自顶向下对系统进行功能分解,画出分层DFD图;由后向前定义系统的数据和加工

23、,编制DD和PSPEC;最后写出SRS。 具体过程如下: (1)画顶层数据流图。 (2)画第二层数据流图。 (3)画第三层数据流图。,第2章-可行性研究与需求分析,44,4. 数据流图的绘制 (1)画顶层数据流图,图2.5 学生成绩管理系统的顶层DFD,2.4 结构化分析方法,第2章-可行性研究与需求分析,45,4. 数据流图的绘制 (2)画第二层数据流图,图2.6 学生成绩管理系统的分层DFD,2.4 结构化分析方法,第2章-可行性研究与需求分析,46,图2.7 查询细化DFD,2.4 结构化分析方法,4. 数据流图的绘制 (3)画第三层数据流图,第2章-可行性研究与需求分析,47,图2.8

24、 编辑细化DFD,2.4 结构化分析方法,第2章-可行性研究与需求分析,48,图2.9 统计细化DFD,2.4 结构化分析方法,第2章-可行性研究与需求分析,49,2.4 结构化分析方法,2.4.5 数据字典 数据字典(Data Dictionary,DD)是结构化分析方法的另一种有力工具。 数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。,第2章-可行性研究与需求分析,50,2.4 结构化分析方法,1. 数据字典的内容 一般来说,数据字典应该由下列四类元素的 定义组成: 数据流 数据流分量(数据元素) 数据存储 处理,第2章-可行性研究与需求分析,51,2.4

25、结构化分析方法,数据流词条描述 数据流名、说明、数据流来源、数据流去向、数据流组成。 数据项词条描述 数据元素名、类型、长度、取值范围、相关的数据元素及数据结构。 数据文件词条描述 数据文件名、简述、输入/输出数据、数据文件组成、存储方式。,第2章-可行性研究与需求分析,52,2.4 结构化分析方法,加工逻辑词条描述 加工名、加工编号、简要描述、输入/输出数据流、加工逻辑 源点及汇(终)点词条描述 名称、简要描述、有关数据流、数目,第2章-可行性研究与需求分析,53,2.4 结构化分析方法,2. 数据字典的数据定义方法 在对数据进行定义时,可以使用数据各成分的组合来表示该数据,这些组合又由更底

26、层的成分组合进行定义。因此,对数据的定义可以理解为对数据进行自顶向下的分解,直到参与系统开发的人员都能理解所分解出来的成分或元素的意义,不再需要进行任何的解释。数据字典就是按照这样的方法,自顶向下逐级给出定义式,直到最后出现无需定义的基本数据元素。必要时,有些定义式可能需要增加一些解释行。,第2章-可行性研究与需求分析,54,2.4 结构化分析方法,在数据字典的定义式中出现的符号如表2.6所示: 数据流图和数据字典共同构成系统的逻辑模型,没有数据字典,数据流图就不严格,然而没有数据流图,数据字典也难于发挥作用。总之,数据字典与数据流图应相辅相成、互相配合,并应遵守以下约定: 有关数据的流向在数

27、据流图中描述; 有关数据的组成在数据字典中描述; 有关数据的加工细节在数据字典中描述;,第2章-可行性研究与需求分析,55,2.4 结构化分析方法,编写数据字典时不能有遗漏和重复,即遵循不重不漏的原则; 数据字典小的条目的排列要有一定规律,要能通过名字方便地查阅条目的内容,如按英文字母表顺序或按汉字笔划顺序排列或按功能分类等; 数据字典的编写要易于更新修改。,第2章-可行性研究与需求分析,56,2.4 结构化分析方法,数据字典的用途 数据字典最重要的用途是作为分析阶段的工具。在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户之间的通信,因此将消除许多可能的误解。 数据字典是开发数据库

28、的第一步,而且是很有价值的一步。,第2章-可行性研究与需求分析,57,2.4 结构化分析方法,数据字典的实现 目前实现数据字典有三种常见的途径: 全人工过程,全自动化过程和混合过程。 不论使用哪种途径实现的数据字典都应该具有下述特点: (1)通过名字能方便地查阅数据的定义 (2)没有冗余 (3)尽量不重复在规格说明的其他组成部分中已经出现的信息 (4)容易更新和修改 (5)能单独处理描述每个数据元素的信息 (6)定义的书写方法简单方便而且严格,第2章-可行性研究与需求分析,58,2.4 结构化分析方法,2.4.6 状态转换图 状态转换图是通过描绘系统的状态及引起系统状态转换的事件来表示系统的行

29、为。 1. 状态 状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。 在状态中定义的状态主要有:初态、终态和中间状态。在一张图中只能有一个初态,而终态则可以有0至多个。,第2章-可行性研究与需求分析,59,2.4 结构化分析方法,2.4.6 状态转换图 2. 事件 事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。,第2章-可行性研究与需求分析,60,2.4 结构化分析方法,2.4.6 状态转换图 3. 符号 状态图中所用的符号含义如下: 椭圆(或圆角矩形): 表示对象的一种状态,椭圆内部填写状态名。 箭头: 表示从箭头

30、出发的状态可以转换到箭头指向的状态。 事件: 箭头上方可标引起状态转换的事件名。 实心圆: 表示初始状态。 内部实心的同心圆: 表示最终状态。,第2章-可行性研究与需求分析,61,2.4 结构化分析方法,2.4.6 状态转换图 4.画状态转换图的步骤: (1)找出实体的所有状态。 (2)分析在不同状态下,对象的行为准则有无差别,若无差别应将它们合并为一种状态。 (3)分析从一种状态可以转换到哪几种状态,对象的什么行为能引起这种转换,有无状态转换的限制条件。,第2章-可行性研究与需求分析,62,2.4 结构化分析方法,2.4.6 状态转换图 5. 状态转换图实例,第2章-可行性研究与需求分析,6

31、3,2.4 结构化分析方法,2.4.7 其他图形工具 1. 层次方框图 层次方框图是用树形结构的一系列多层次的矩形框描绘数据(或程序)的层次结构。,第2章-可行性研究与需求分析,64,2.4 结构化分析方法,2.4.7 其他图形工具 2. Warnier图(瓦尔尼耶图) Warnier图是专门表示层次信息结构的一种紧凑和直观的工具,使用简单、方便,很容易被人接受。 Warnier图使用树形结构描述信息,既可以描述数据的结构也可用来表示程序结构。它可以表示信息出现的条件和重复次数,而重复和条件约束是说明软件处理过程的基础,所以经常把Warnier图作为软件分析和设计的工具。,第2章-可行性研究与需求分析,65,2. Warnier图,下图2.13给出了Warnier图表示的报纸的信息层次

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论