版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软软 件件 工工 程程Software Engineering 第2章:可行性研究2.1 可行性研究的任务2.2 可行性研究过程2.3 系统流程图2.4 数据流图2.5 数据字典2.6 成本/效益分析2.7 小结Y Y开始问题定义可性行研究 可行否?项目实施计划终止项目的建议结束N N问题的定义与可性行研究问题的定义与可性行研究WhoWho 为谁设计,用户是谁?为谁设计,用户是谁?WhatWhat 要解决哪些问题?要解决哪些问题?WhyWhy 为什么要解决这些问题为什么要解决这些问题 有用的软件有用的软件 3W3W第2章:可行性研究 可行性研究的目的可行性研究的目的: 用最小的代价在尽可能短的
2、时间内确定问题是否能够解决。(不是解决问题,而是确定问题是否值得去解决。) 可行性研究就是要回答可行性研究就是要回答“所定义的问题有可行的所定义的问题有可行的解决办法吗?解决办法吗?”。2.1 可行性研究的任务 可行性研究的实质: 进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。 可行性研究的内容: 1)技术可行性 使用现有的技术能否实现这个系统? 是否有胜任开发该项目的熟练技术人员? 能否按期得到开发该项目所需的软件、硬件资源? 2)经济可行性 所要考虑的问题:这个系统的经济效益能否超过它的开发成本? 这就需要对项目进行价格/利益分析
3、,即“投入/产出”分析。 3)操作可行性 操作可行性评价系统运行后会引起的各方面变化,如:对组织机构管理模式、用户工作环境等产生的影响。 4)社会可行性 主要讨论法律方面和使用方面的可行性。 例如,被开发软件的权利归属问题、软件所使用的技术是否会造成侵权等问题。可行性研究所需的时间取决于工程的规模,所需要的成本要占工程总成本的5%10%。2.2 可行性研究过程 可行性研究的步骤 1. 1.复查系统规模和目标复查系统规模和目标 确保分析员正在解决的问题确实是要求他解决的问题。2. 2.研究目前正在使用的系统研究目前正在使用的系统 1)新的目标系统必须也能完成旧系统的基本功能; 2)新系统必须能解
4、决旧系统中存在的问题; 3)新系统不能增加收入或减少使用费用,那么从经济角度看新系统不如旧系统。3. 3.导出新系统的高层逻辑模型导出新系统的高层逻辑模型 现有的物理系统现有系统的逻辑模型目标系统的逻辑 模型新的物理系统 (数据流图、数据字典)4. 4.重新定义问题;重新定义问题; 分析员和用户一起再次复查问题定义、工程规模和目标。 前4个步骤实质上构成一个循环。 5. 5.导出和评价供选择的解法(物理解决方案)导出和评价供选择的解法(物理解决方案) 1)从技术角度提出些可能的物理系统,排除不现实系统; 2)考虑操作可行性,去掉用户不能接受的方案; 3)考虑经济可行性,估计余下的每个可能的系统
5、的开发成本和运行费 用,进行成本/效益分析; 4)为每个在各方面都可行的系统制定实现进度表。6. 6.推荐行动方案推荐行动方案 根据可行性研究结果做出关键性决定:是否继续进行这项开发工程。7. 7.草拟开发计划;草拟开发计划;8. 8.书写文档提交审查。书写文档提交审查。2.3 系统流程图 系统流程图是概括地描绘物理系统的传统工具概括地描绘物理系统的传统工具。 它的基本思想是用图形符号以黑盒子形式用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。 系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程
6、序流程图的符号形式相同,但是它却是物理数据流图物理数据流图而不是程序流程图。2.3.1 符号 符号符号名称名称说明说明处理处理如:程序,处理机,人工加工如:程序,处理机,人工加工输入输入/ /输出输出连接连接换页连接换页连接数据流数据流表示输入或输出表示输入或输出同一页上图的连接同一页上图的连接不同页上图的连接不同页上图的连接指明数据流动方向指明数据流动方向图图2.1 2.1 基本符号基本符号基本符号基本符号-以概括的方式抽象地描绘一个实际系统所用符号以概括的方式抽象地描绘一个实际系统所用符号符号符号名称名称说明说明穿孔卡片穿孔卡片文档文档磁带磁带联机存储联机存储磁盘磁盘磁鼓磁鼓显示显示人工输
7、入人工输入人工操作人工操作辅助操作辅助操作通信链路通信链路穿孔卡片输入穿孔卡片输入/ /输出,或穿孔卡片文件输出,或穿孔卡片文件打印输出,或打印终端输入数据打印输出,或打印终端输入数据磁带输入磁带输入/ /输出,或表示磁带文件输出,或表示磁带文件任何种类磁盘存储,如磁盘、磁鼓等任何种类磁盘存储,如磁盘、磁鼓等磁盘输入磁盘输入/ /输出,或磁盘上文件、数据库输出,或磁盘上文件、数据库磁鼓输入磁鼓输入/ /输出,或磁鼓上文件、数据库输出,或磁鼓上文件、数据库显示器部件显示器部件人工输入数据,如填写表格人工输入数据,如填写表格人工完成的处理人工完成的处理使用辅助设备进行的脱机操作使用辅助设备进行的脱
8、机操作通过远程通信线路传送数据通过远程通信线路传送数据图图2.2 2.2 系统符号系统符号系统符号系统符号-用符号具体地描绘一个物理用符号具体地描绘一个物理系统所系统所2.3.2 例子 事务事务库存清单程序库存清单程序报告生成程序报告生成程序定货定货信息信息定货报告定货报告库存清单主库存清单主文件文件图图2.3 2.3 库存清单系统的系统流程图库存清单系统的系统流程图2.4 数据流图 数据流图(数据流图(DFD Data Flow Diagram DFD Data Flow Diagram )一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。 在数据流图中没有任何具体的物
9、理部件,它只是描绘数据在软件中流动和被处理的逻辑过程,是系统逻辑功能的图形表示。 设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能,所以它也是今后进行软件设计的很好的出发点。 数据流图的基本目的是利用它作为交流信息的工具。分析员把他对现有系统的认识或对目标系统的认识用数据流图绘制出来,供有关人员审查确认。2.4.1 绘制数据流图的符号处理或或或图2.4 (a)基本符号的含义图2.4 (b)附加符号的含义注意:注意: “处理”可表示:单个程序、一系列程序、程序的一个模块、人工处理过程等等; “数据存储”可表示:一个文件、文件的一部分、数据库记录等等; 数据存
10、储和数据流均为数据。数据存储是静止数据,而数据流是动态数据。 数据流图张忽略出错处理、打开文件、关闭文件。只描绘“做什么”,而不考虑“怎么做”仓库仓库管理员管理员采购员采购员定货系统定货系统事务事务定货报表定货报表图图2.5 定货系统的基本系统模型定货系统的基本系统模型 例子:例子: 一家工厂的采购部每天需要一张订货报表。一家工厂的采购部每天需要一张订货报表。报表按零件编号排序,表中列出了所有需要再次订报表按零件编号排序,表中列出了所有需要再次订货的零件。通过放在仓库中的货的零件。通过放在仓库中的CRT把事务报告给订把事务报告给订货系统,当某种零件库存量少于库存量临界值时就货系统,当某种零件库
11、存量少于库存量临界值时就应该再次订货。应该再次订货。2.4.2 绘制数据流图的例子 图2.6 定货系统的功能级数据流图库存清单仓库管理员采购员事务定货报表处理事务1产生报表2D1 库存清单D2 定货信息定货信息定货信息 在这个任务中主要完成两个功能:“事务处理”和“产生报表”。 事务处理需要用到“库存清单”数据(静态),同时产生“订货信息”。而事务处理和产生报表不在不同时间进行,因此,要存储“订货信息”,成为两个功能的数据流连接数据。 组成该例子的数据流图的元素组成该例子的数据流图的元素源点/终点处 理 采购员 仓库管理员 产生报表 处理事务数据流数据存储 订货报表订货报表 零件编号 零件名称
12、 订货数量 目前价格 主要供应商 次要供应商 事务事务 零件编号 事务类型 数量 订货信息订货信息 (见订货报表) 库存清单库存清单 零件编号 库存量 库存量临界值仓库管理员采购员事务定货报表图2.7 定货系统进一步分解后的数据流图更新库存清单1.2产生报表2D1 库存清单D2定货信息接收事务1.1处理定货1.3库存清单定货信息定货信息 当一个事务发生时必须首先接受它,按照事务内容修改库存清单;若库存量少于库存临界值时,就应再次订货,也就需要再次修改订货信息,这样 “事务处理”可分解为以下3个步骤: 1)为数据流(或数据存储)命名 A名字应该代表整个数据流(或数据存储)的内容; B不要使用空洞
13、的、缺乏具体含义的名字(如“数据”、“输入”); C如果为某个数据流(或数据存储)起名字时遇到困难,则很可能是因为对数据流图的分解不恰当造成的,应该试试重新分解数据流图; 2.4.3 命名 2 2)为处理命名为处理命名 A通常先为数据流命名,然后再为与之相关联的处理命名; B名字应该反映整个处理的功能; C应该尽量避免空洞笼统的动词做名字,如“处理”、“加工”; D通常用一个动词命名,如果必须用两个动词才能描述整个处理的功能,则可能要把这个处理分解成两个处理更恰当; E如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的情况,应考虑重新分解。 1)利用它作为交流信息的工具; 2)作为软件
14、分析和设计的工具。2.4.4 数据流图的用途 仓库管理员采购员事务定货报表图2.8 这种自动化边界建议以联机方式更新库存清单更新库存清单1.2产生报表2D1 库存清单D2 定货信息接收事务1.1处理定货1.3库存清单定货信息定货信息图2.8 对应的物理实现硬件方案仓库管理员采购员事务定货报表图2.9 这种自动化边界暗示以批量方式更新库存清单更新库存清单1.2产生报表2D1 库存清单D2定货信息接收事务1.1处理定货1.3库存清单定货信息定货信息D3 事务图2.9 对应的物理实现硬件方案2.5 数据字典 数据流图数据流图和和数据字典数据字典共同构成系统的逻辑模型。共同构成系统的逻辑模型。 没有数
15、据字典数据流图就不严格,没有数据流图数据字典也难于发挥作用。 数据字典DD(Data Dictionary )的任务是: 对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。 数据字典是关于数据信息的集合,是对数据流图中包含的所有元素定义的集合。 数据字典应该由对下列4元素的定义组成: 1)数据流; 2)数据元素(数据流分量); 3)数据存储; 4)处理。 2.5.1 数据字典的内容在数据字典中记录数据元素的下列信息: 一般信息一般信息(名字,别名,描述等); 定定 义义(数据类型,长度,结构等); 使用特点使用特点(值的范围,使用
16、频率, 使用方式输 入、输出、本地,条件值等); 控制信息控制信息(来源,用户,使用它的程序,改变权, 使用权等); 分组信息分组信息 (付结构,丛书结构, 物理位置记录、文件和数据库等)。2.5.2 定义数据的方法方法:对数据自顶向下分解。 数据组成方式(三种基本类型):l顺序顺序 以确定次序连接两个或多个分量;l选择选择 从两个或多个可能的元素中选取一个;l重复重复 把指定的分量重复零次或多次。附加类型:l可选可选 一个分量是可有可无的(重复零次或一次)。 符号: = 意思是等价于(或定义为); + 意思是和(连接两个分量); 意思是或(从方括弧内列出的若干个分 量中选择一个),通常用“|
17、”号隔开供选 择的分量; 意思是重复(重复花括弧内的分量);常 常使用上限和下限进一步注释表示重复的 花括弧。 ( ) 意思是可选(圆括弧里的分量可有可无)。 例1:标识符 = 字母字符 + 字母数字串字母数字串 = 0字母或数字7字母或数字 =字母字符数字字符例2:购书单=学号+姓名+书号+数量+单价+总价+书费合计学生用书表=学院编号+专业编号+年级+书号年级= 1 | 2 | 3 | 4 学号=0数字10作为分析阶段的重要工具; 分析员和用户之间的通信 开发人员或不同开发小组之间的通信每个数据元素的控制信息给出了使用该元素的所有程序(或模块);3. 有助于开发数据库,是开发数据库的第一步
18、。2.5.3 数据字典的用途实现数据字典两种方式: 1)计算机程序处理:在开发大型软件系统的过程中,数据字典的规模和复杂程度迅速增加,人工维护数据字典几乎是不可能的,必须建立数据字典,通过程序来管理。 2)卡片式人工书写:开发小型软件系统,采用卡片形式书写数据字典,每张卡片上保存描述一个数据的信息。每张卡片上主要应该包含这些信息:名字、别名、描述、定义、位置。2.5.4 数据字典的实现名字:定货报表别名:定货信息描述:每天一次送给采购员的需要定 货的零件表定义:定货报表=零件编号+零件名称 +定货数量+目前价格+主要供 应者+次要供应者位置:输出到打印机名字:零件编号别名:P01-05描述:唯
19、一地标识库存清单中一个特 定零件的关键域定义:零件编号=8字符8位置:定货报表 定货信息 库存清单名字:定货数量别名:DH08-11描述:某个零件一次定货的数量定义:定货数量=1数字5位置:定货报表 定货信息2.6 成本/效益分析 成本/效益分析的目的: 从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地作出是否投资于这项开发工程的决定。开发成本经济效益2.6.1 成本估计 软件开发成本主要表现为人力资源的消耗。成本估计不能用精确科学来估计。 1)代码行技术代码行技术 当有类似开发工程和历史数据参考时,可用下面公式计算: 软件成本 = 每行代码的平均成本估计的源代码总行
20、数 2)任务分解技术任务分解技术 将开发项目分解为若干个相对独立的任务,分别估计每个单独任务的成本:l 单独任务成本 = 任务所需人力估计值每人每月平均工资;l 软件开发项目总成本估计 = 各个单独任务成本估计值之和。 常用的办法是按开发阶段划分任务,典型环境下各个开发阶段需要使用的人力百分比大致如下:任务人力()可行性研究需求分析软件设计编码与单元测试综合测试总计5102520401003 3)自动成本估计)自动成本估计 采用自动估计成本的软件工具。这种技术需要长期搜集大量历史数据为基础和良好的数据库支持。4 4)算法模型估计)算法模型估计 建立适合资源模型。资源模型一般是由历史数据推导出来
21、的,比较客观。2.6.2 成本/效益分析方法 成本/效益分析要估计开发成本、运行费用和新系统将带来的经济效益。 运行费用:取决于系统的操作费用(操作员人数,工作时间,消耗的物资等等)和维护费用。 系统的经济效益:等于因使用新系统而增加的收入加上使用新系统可以节省的运行费用。 软件生命周期:总的效益与软件生命周期有关,时间越长,系统被废弃的可能性越大。通常开发期不能超过5年。成本/效益分析涉及的4个概念: 例:修改一个已有的库存管理系统,估计需要5000元,系统修改后由于及时订货每年可节省2500元。使用5年后,能节约多少钱?1 1)货币的时间价值)货币的时间价值 由于投资是现在的,效益是未来的,必须考虑货币的时间价值。 假设年利率为i,如果现在存入P元钱,则n年以后可以得到的钱数为: 反之,如果n年后能收入F元钱,那么这些钱现在的价值是: niPF)1(niFP)1/( 表1:将来的收入折算成现在值 年将来值(元)(1+0.12)n现在值(元)累计的现在值(元)125001.122232.142232.14225001.251992.984225.12325001.401779.456004.57425001.571588.807593.37525001.761418.579011.942 2)投资回收期)投资回收期 第一、第二年回收:4225元 第三年用于回收投
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论