软件工程学概述:可行性研究_第1页
软件工程学概述:可行性研究_第2页
软件工程学概述:可行性研究_第3页
软件工程学概述:可行性研究_第4页
软件工程学概述:可行性研究_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、第第2章章 可行性研究可行性研究(Feasibility Study) 本章主要介绍可行性研究阶段的任务、过程、本章主要介绍可行性研究阶段的任务、过程、使用工具以及成本效益的分析。使用工具以及成本效益的分析。 问题定义是软件定义时期的第一个阶段。问题定义是软件定义时期的第一个阶段。 问题定义阶段的问题定义阶段的目的目的是:弄清用户需要计算机解决的是:弄清用户需要计算机解决的问题,以及所需的资源和经费。问题,以及所需的资源和经费。 问题定义阶段的问题定义阶段的任务任务是:在用户沟通的基础上,编写是:在用户沟通的基础上,编写系统目标与范围说明书系统目标与范围说明书的文档,经用户确认后作为的文档,经

2、用户确认后作为可行性研究阶段的依据。可行性研究阶段的依据。 首先首先对问题定义进行概要的分析研究,初步确定项目对问题定义进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,把它们清楚地的规模和目标,确定项目的约束和限制,把它们清楚地列举出来。列举出来。然后然后进行简要的需求分析,抽象出该项目的进行简要的需求分析,抽象出该项目的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,的设计,探索探索出若干种可供选择的主要解决方案,对每出若干种可供选择的主要解决方案,对每一种方案都要研究其可行性。一种方案都要研究其可行性。1. 任任

3、务务 必须分析各种候选解决方案的利弊,从而判断原定的必须分析各种候选解决方案的利弊,从而判断原定的系统目标和规模系统目标和规模是否现实是否现实,系统完成后所能带来的,系统完成后所能带来的效益效益是否大到值得投资开发是否大到值得投资开发这个系统的程度。这个系统的程度。2. 可行性研究过程可行性研究过程1、复查系统规模和目标、复查系统规模和目标 解决老系统问题解决老系统问题老系统老系统功功 能能新增新增功能功能 新系统效益新系统效益 老系统效益老系统效益 ? ?注意注意: 只了解老系统做什么,而不只了解老系统做什么,而不管怎样做;管怎样做; 注意了解与其它系统的接口;注意了解与其它系统的接口; 用

4、高层系统流程图描述现有用高层系统流程图描述现有系统。系统。 可行性研究实质上是在较高层次上以较抽象的方式进可行性研究实质上是在较高层次上以较抽象的方式进行的系统分析和系统设计的过程。行的系统分析和系统设计的过程。? ?复查定义,明确限制约束。我们认为用户要的复查定义,明确限制约束。我们认为用户要的 用户要的用户要的2、研究目前正在使用的系统、研究目前正在使用的系统2. 过过 程程3、导出新系统的高层逻辑模型、导出新系统的高层逻辑模型(conceptual design)抽象抽象实现实现改进改进老系统老系统模型模型新模型新模型新系统新系统数据流图数据流图和和数据字典数据字典共同定义新系统的逻辑模

5、型。共同定义新系统的逻辑模型。应该告诉用户应该告诉用户“What” ,而不是,而不是“How” 逻辑模型逻辑模型重新定义重新定义 复查定义复查定义4、进一步定义问题、进一步定义问题 注意注意: 分析员与用户一起再次复查问题定义、工程规模和目标;分析员与用户一起再次复查问题定义、工程规模和目标; 前前4个步骤实质上构成一个循环;个步骤实质上构成一个循环; 此时合同未签,应考虑成本,不宜反复太多次。此时合同未签,应考虑成本,不宜反复太多次。5、导出和评价供选择的解法、导出和评价供选择的解法2. 过过 程程进度表(工作量)进度表(工作量)经济上合算经济上合算技术上可行技术上可行操作上可行操作上可行技

6、术上不可行技术上不可行用户用户不不可可能能操操作作不合算不合算若干物理解法若干物理解法 分析员从建议的逻辑模型出发,从技术角度,通过分析员从建议的逻辑模型出发,从技术角度,通过自动化边界的划分或组合的方法,导出若干个较高层次自动化边界的划分或组合的方法,导出若干个较高层次的物理解法。的物理解法。6、推荐行动方针、推荐行动方针Yes or No?NoYesWhy?Which one is the best?Why? (cost / benefit) 任务分解,确定负责人任务分解,确定负责人 大致进度规划大致进度规划 财务预算财务预算 风险分析及对策风险分析及对策8、文档的审查、存档、文档的审查、

7、存档7、草拟开发计划(粗略)、草拟开发计划(粗略)2. 过过 程程 形成清晰的文档,供用户审查和决策形成清晰的文档,供用户审查和决策3. 系统流程图系统流程图( (System Flow Diagram) ) 系统流程图是描绘物理系统的传统工具。用图形符系统流程图是描绘物理系统的传统工具。用图形符号描绘系统中每个部件,反映信息在各部分间号描绘系统中每个部件,反映信息在各部分间流动流动的情的情况,不同于程序流程图(不反映控制、处理信息)。况,不同于程序流程图(不反映控制、处理信息)。变化变化仓库仓库零零 库存量库存量件件 临界值临界值库存清单库存清单XX : XX : 库存库存 临临界值界值定货

8、报告定货报告2. 例子:例子:P.401. 符号:符号:P.39注注:符号:符号 = 系统部件系统部件 箭头箭头 = 信息流动路径信息流动路径 对复杂的系统,通常采用对复杂的系统,通常采用分层思想分层思想事务事务库存清单程序库存清单程序库存清单库存清单主文件主文件定货定货信息信息报告生成程序报告生成程序定货报告定货报告即库存量变化即库存量变化3. 系统流程图系统流程图4. 数据流图数据流图(Data Flow Diagram)1、符号:、符号:P. 41input /outputdata storagefunctiondata flow 数据流图是系统逻辑功能的图形表示,是一种图形化技术。数据

9、流图是系统逻辑功能的图形表示,是一种图形化技术。它以图形的方式描绘数据在系统中流动和被处理的逻辑过程,它以图形的方式描绘数据在系统中流动和被处理的逻辑过程,反映的是系统必须完成的逻辑功能,不考虑具体实现。反映的是系统必须完成的逻辑功能,不考虑具体实现。 附加:附加: * and + or mutex说明说明:u DFD与程序流程图的区别,如箭头(数据流、控制流)与程序流程图的区别,如箭头(数据流、控制流)u 数据流和数据存储都表示数据(动态和静态)数据流和数据存储都表示数据(动态和静态)u 数据存储并不等同于一个数据文件,可以是文件或部分文件或数数据存储并不等同于一个数据文件,可以是文件或部分

10、文件或数据库等据库等u 加工处理并不一定是一个程序,可以是系列程序、一个程序、或加工处理并不一定是一个程序,可以是系列程序、一个程序、或一个程序中的模块等一个程序中的模块等u 在在DFD中,数据源点和终点可能相同,为清晰画成两个,数据存中,数据源点和终点可能相同,为清晰画成两个,数据存储与加工处理之间可以用双向箭头表示读写,应把所有可能的数储与加工处理之间可以用双向箭头表示读写,应把所有可能的数据流画出,数据存储和加工处理应加上编号,便于识别、引用。据流画出,数据存储和加工处理应加上编号,便于识别、引用。4. 数据流图数据流图4. 数据流图数据流图2、DFD的画法:的画法: 画画DFD的的方法

11、方法是:从系统的基本模型(把整个系是:从系统的基本模型(把整个系统看作一个加工处理)开始,逐层地对系统进行分解统看作一个加工处理)开始,逐层地对系统进行分解(将复杂问题划分为较小问题),每分解一次,系统(将复杂问题划分为较小问题),每分解一次,系统的加工处理数量就多一些,每个加工的功能更具体一的加工处理数量就多一些,每个加工的功能更具体一些,重复这种分解,直到所有的加工都足够简单,不些,重复这种分解,直到所有的加工都足够简单,不必再分解(复杂性降低到可以掌握的程度)为止。必再分解(复杂性降低到可以掌握的程度)为止。4. 数据流图数据流图画画DFD的的步骤步骤:(1)从问题描述中提取)从问题描述

12、中提取DFD的的4种成分种成分数据源点和终点、加工处理、数据存储、数据流数据源点和终点、加工处理、数据存储、数据流(2)画顶层)画顶层DFD 画系统的基本输入输出,即基本系统模型。画系统的基本输入输出,即基本系统模型。(3)画系统内部,即画下层)画系统内部,即画下层DFD 采用自顶向下、由外向内的原则。画第二层时,一般根据当采用自顶向下、由外向内的原则。画第二层时,一般根据当前系统工作分组情况,并根据外部功能分解成若干子系统;再下前系统工作分组情况,并根据外部功能分解成若干子系统;再下一层一般沿着数据流方向,根据数据流组成及值的变化情况进行一层一般沿着数据流方向,根据数据流组成及值的变化情况进

13、行分解。分解。4. 数据流图数据流图画画DFD的例子:的例子:(1)从问题描述中提取)从问题描述中提取DFD的的4种成分种成分从描述问题的信息中提取数据源点和终点、加工处理、数据从描述问题的信息中提取数据源点和终点、加工处理、数据存储、数据流存储、数据流4. 数据流图数据流图画画DFD的例子:的例子:(2)画顶层)画顶层DFD任何计算机系统实质上都是信息处理系统,本质上都是把输任何计算机系统实质上都是信息处理系统,本质上都是把输入数据变换成输出数据,其基本系统模型都是由若干个数据源点入数据变换成输出数据,其基本系统模型都是由若干个数据源点/终点及一个加工处理组成。终点及一个加工处理组成。 基本

14、系统模型(顶层基本系统模型(顶层DFD)4. 数据流图数据流图画画DFD的例子:的例子:(3)画系统内部,即画下层)画系统内部,即画下层DFD 从基本系统模型出发,细化分解加工处理,直到进一步分解从基本系统模型出发,细化分解加工处理,直到进一步分解将涉及如何具体地实现一个功能时就不再分解。将涉及如何具体地实现一个功能时就不再分解。 第二层第二层DFD 第三层第三层DFDExample : 摘自摘自Fundamentals of Software Engineering Information System of a Public Library IF user requests a book

15、(title, author, users name) THEN Get a book book, and users list of books borrowed; IF user searches a book by topics THEN Search by topics list of book titles referring to the topic.4. 数据流图数据流图4. 数据流图数据流图Title and author of requested book; name of userBook title;user nameList of titlesreferring to

16、the topicTopicTopicTitleBookTopic request by the userShelvesList of AuthorsList of titlesList of topicsGet a bookSearch by topicsBook request by the userList of books borrowedAuthorTitleBookBook statusBook receptionDisplay of list of titlesRefinement: Book request = Find book position + Get a book注注

17、:与程序流程图不同,:与程序流程图不同,DFD不描述流动条件,忽略出错处理;不描述流动条件,忽略出错处理;命名尽可能清楚、具体。命名尽可能清楚、具体。4. 数据流图数据流图Book title;user nameBookShelvesList of AuthorsList of titlesGet a bookFind book positionList of books borrowedAuthorTitleBook Title and authorof requested book;name of the userBook requestedby the userBook receptio

18、n4. 数据流图数据流图3、数据流图的用途、数据流图的用途(1)分层)分层DFD的优点的优点 便于实现便于实现 便于使用便于使用(2)画)画DFD的目的的目的 表达软件系统模型,是分析、设计的基础表达软件系统模型,是分析、设计的基础 作为分析员与用户、分析员与设计员之间的交流工具作为分析员与用户、分析员与设计员之间的交流工具(3)DFD的用途的用途 DFD表述分析员对现有系统的认识及目标系统的设想表述分析员对现有系统的认识及目标系统的设想 用户通过用户通过DFD来评价分析员是否理解了用户需求来评价分析员是否理解了用户需求 DFD作为软件进一步分析、设计的工具作为软件进一步分析、设计的工具5.

19、数据数据df字典字典(Data Dictionary) 数据字典是关于数据信息的集合,即对数据字典是关于数据信息的集合,即对DFD中包含的中包含的元素的定义的集合,其作用是在软件分析和设计的过程中元素的定义的集合,其作用是在软件分析和设计的过程中提供关于数据的描述信息。提供关于数据的描述信息。 DD与与DFD结合,构成系统的逻辑模型。结合,构成系统的逻辑模型。 DD定义数据的方法是对数据自顶向下地分解,当分解到不需定义数据的方法是对数据自顶向下地分解,当分解到不需要进一步定义,每个和工程有关的人员都清楚其含义时,分解过要进一步定义,每个和工程有关的人员都清楚其含义时,分解过程就结束。程就结束。

20、1、DD的内容的内容DD由由DFD中对应中对应4类元素的定义组成:类元素的定义组成: 数据流数据流 数据项(数据分量)数据项(数据分量) 数据存储数据存储 加工处理加工处理对加工处理的定义用对加工处理的定义用IPO或或PDL等专用工具来描述。等专用工具来描述。DD具体定义某一数据应包括以下内容:具体定义某一数据应包括以下内容: 一般信息:名称、别名、有关描述等一般信息:名称、别名、有关描述等 定义:数据类型、长度、结构、取值等定义:数据类型、长度、结构、取值等 使用特点:使用范围、方式、条件等使用特点:使用范围、方式、条件等 控制特点:使用数据权限等控制特点:使用数据权限等 分组信息:结构组成

21、、物理位置分组信息:结构组成、物理位置记录文件、数据库等记录文件、数据库等5. 数据字典数据字典5. 数据字典数据字典2、定义数据的方法、定义数据的方法 = 等价于(定义为)等价于(定义为) + 顺序:以确定的顺序连接两个或多个分量(成分)顺序:以确定的顺序连接两个或多个分量(成分) | 选择:从两个或多个可能的元素(成分)中选取一个选择:从两个或多个可能的元素(成分)中选取一个 重复:对指定的分量(成分)重复零次或多次重复:对指定的分量(成分)重复零次或多次()可选:指定的分量(成分)是可有可无的()可选:指定的分量(成分)是可有可无的数据成分组成数据的方式由以下四种关系组成(符号):数据成

22、分组成数据的方式由以下四种关系组成(符号):例如例如:标示符:标示符 = 字母字符字母字符 + 字母数字串字母数字串 字母数字串字母数字串 = 0 字母或数字字母或数字 7 字母或数字字母或数字 = 字母字符字母字符 | 数字字符数字字符 3、例子:、例子:名字:定货报表名字:定货报表别名:定货信息别名:定货信息描述:每天一次送检采购员描述:每天一次送检采购员 的需要定货的零件表的需要定货的零件表定义:定义:定货报表定货报表=零件编号零件编号+零件名称零件名称 +定货数量定货数量+目前价格目前价格 +主要供应者主要供应者 +次要供应者次要供应者位置:输出到打印机位置:输出到打印机数据数据结构结

23、构struct 定货报表定货报表 char 零件编号零件编号; char 零件名称零件名称; int 定货数量定货数量; float 目前价格目前价格; struct supplier 主要供应者主要供应者; struct supplier 次要供应者次要供应者;5. 数据字典数据字典名字:零件编号名字:零件编号别名:别名:描述:唯一地标识库存清单中描述:唯一地标识库存清单中 一个特定零件的关键域一个特定零件的关键域定义:零件编号定义:零件编号 = 8 字符字符 8位置:定货报表位置:定货报表 定货信息定货信息 库存清单库存清单若修改若修改“零件编号零件编号”的定义,则受到影响的定义,则受到影

24、响的数据均列于此的数据均列于此5. 数据字典数据字典4、DD的实现的实现 全人工过程全人工过程 全自动化过程全自动化过程 混合过程混合过程5、DD的用途的用途 DD与与DFD共同构成系统的规格说明;共同构成系统的规格说明; DD是分析阶段的工具,消除用户、开发人员间的误解,增进开发是分析阶段的工具,消除用户、开发人员间的误解,增进开发人员间的通讯;人员间的通讯; DD中的数据信息给出了该数据元素适用的程序(模块),因而易中的数据信息给出了该数据元素适用的程序(模块),因而易估计对它的改变带来的影响;估计对它的改变带来的影响; DD是软件系统中开发数据库和设计数据结构的基础。是软件系统中开发数据

25、库和设计数据结构的基础。6 成本成本/效益分析效益分析(Cost/Benefit) 成本成本/ /效益分析的效益分析的目的目的是:从经济的角度分析开发一个是:从经济的角度分析开发一个特定的新系统是否划算,从而帮助用户正确地作出是否投特定的新系统是否划算,从而帮助用户正确地作出是否投资于这项开发工程的决定。资于这项开发工程的决定。 代码行技术代码行技术 软件开发成本软件开发成本 = 源代码行数源代码行数 每行代码的平均成本每行代码的平均成本1、成本估计、成本估计(Cost Estimation) 任务分解技术任务分解技术 任务成本任务成本 = 完成任务所需的人力完成任务所需的人力(人月人月) 每人每月平均工资每人每月平均工资 经验公式及软件经验公式及软件 Size of the system CostantCost factors,adjustment multiplier.见常常公公式式形形如如其其中中 cT12nCost (abS ) m(x)S, a,b,c, x(x , x , x ) m 软件:软件:Boehms Cons

温馨提示

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

评论

0/150

提交评论