SlideShare a Scribd company logo
第 1 章重点回顾
   软件 = 程序 + 数据 + 文档
   软件危机 : 现象 , 原因 , 办法 ( 软件
    工程学 )
   软件工程 ( 学 ): 开发、运行和维护
    软件 的系统方法
   软件方法学 3 个要素:方法、工具
             个要素
    和过程。
   软件生命周期 : 定义 , 开发 , 运行维
第 2 章


可行性研究
第 2 章 可行性研究

   2.1   可行性研究的任务
   2.2   可行性研究过程
   2.3   系统流程图
   2.4   数据流图
   2.5   数据字典
   2.6   成本/效益分析
   2.7   小结
重点、难点
重点:可行性研究任务;
   数据流图基本符号、绘制过程及应
 用;
   数据字典的建立和用途
难点:数据流图的应用
问题的定义

 开始                        有用的软件

问题定义               Who    为谁设计,用户是谁?


可性行研究
                   What   要解决哪些问题?     3W
                   Why    为什么要解决这些问题
          N
 可行否?
      Y
项目实施计划 终止项目的建议

              结束
可行性研究
目的:
  用最小的代价在尽可能短的时间内
 确定问题是否能够解决。
 不是解决问题,而是确定问题是否
值得去解决。
2.1 可行性研究的任
                 务
          可行性研究的任务
   实质:一次大大压缩简化了的系统分析和设计。
   任务:
     初步确定项目的规模,目标,约束和限制。

     在澄清了问题定义之后,分析员应该导出系统

      的逻辑模型。
     从系统逻辑模型出发,探索若干种可供选择的

      主要解法 ( 即系统实现方案 ) 。
     对每种解决方法都要研究它的可行性。
2.1 可行性研究的任
                务
       主要从三方面考虑可行性

   技术可行性:使用现有的技术能实现这个系
    统吗 ?
   经济可行性:这个系统的经济效益能超过它
    的开发成本吗 ?
   操作可行性:系统的操作方式在这个用户组
    织内行得通吗 ?

   可行性研究的根本任务:对以后的行动方案
    提出建议
2.2 可行性研究过
         程
  可行性研究过程

1. 复查系统规模和目标
2. 研究目前正在使用的系统
3. 导出新系统的高层逻辑模
  型
4. 进一步定义问题
5. 导出和评价供选择的解法
6. 推荐行动方针
7. 草拟开发计划
2.2 可行性研究过
                       程
           可行性研究过程
1. 复查系统规模和目标
 访问关键人员,描述目标系统的限制和
  约束
2. 研究目前正在使用的系统:现有系统的
  问题
         现有系   新增
         统功能   功能


  注意 :     新系统效益   ?
                   >   现有系统效
2.2 可行性研究过
                      程
          可行性研究过程

3. 导出新系统的高层逻辑模型

   抽象           改进          实现

         ……            ……




旧物理系统   旧逻辑模型        新逻辑模型       新物理系统

数据流图描绘数据在系统中流动和处理的情况。
数据字典定义系统中使用的数据。
数据流图和数据字典共同定义了新系统的逻辑模型,以后
 可以从这个逻辑模型出发设计新系统。
2.2 可行性研究过
                    程
            可行性研究过程

4. 进一步定义问题

             前面的四步构成循环

定义 / 再定义问    分析问题   导出试探性的解
题
2.2 可行性研究过
                      程
          可行性研究过程
   5. 导出和评价供选择的解法

          技术上不可
          行
      技术上可行    能操 作
          用户不可
      操作上可行      合
                不
                 算
      经济上合算     进度表
2.2 可行性研究过
                     程
            可行性研究过程
                                No
                 Yes or No?          Why
6. 推荐行动方针                            ?
                       Yes

7. 草拟开发计划       Which one is the best?
                Why? (cost / benefit)
      任务分解,确定负责人
      大致进度规划
      财务预算
      风险分析及对策


8. 书写文挡提交审查
2.3 系统流程图
   系统流程图:
       是概括地描绘物理系统的传统工具
       是物理数据流图
           表示数据在各个部件之间流动的情况,不是
            描述对数据进行加工处理的过程。
           用图形符号以黑盒子形式描绘系统的各个部
            件。

   符号:
       基本符号:抽象地描绘 ( 图 2.1)
       系统符号:具体地描绘 ( 图 2.2)
基本符号
  ---- 以概括的方式抽象地描绘一
个实际系统所用符号
系 号
   ---

统
符   具
号   体
   地
   描
   绘
   一
   个
   物
   理
   系
   统
   所
   用
   符
2.3 系统流程
             二、例 子      图



   系统流程图反映信息在各部件之间流动的
    情况
   画法:使信息在图中从顶向下或从左向右
    流动

   举例:例 1. 库存清单系统
      仓       库存 库存 < 临界   定货
      库   变化 XX :

    零 库存量     清单
             — — —
                 值———      报告
             XX :
    件   临界   — — —
                …………

    值
例 1. 库存清单系统流程图      2.3 系统流程
                    图
     事务    即库存
           量变化
  库存清单程序           库存清单
                   主文件
    定货
    信息
            注意 :
  报告生成程序    系统流程图 ≠ 程序流程
            图
   定货报告     符号 = 系统部件
一、 D F D ( D a ta F lo w2.4 数据流图m
                                  D ia g ra
                       简介
   数据流图是一种图形化技术,描绘信息流和数据从
    输入移动到输出的过程中所经受的变换
       描述数据流和变换:系统接受输入的数据,经过一系列
        的变换,最后输出结果数据;
       图形表示,容易理解。是分析员与用户之间极好的通信
        工具。
   描绘系统的逻辑模型 ,只考虑必须完成的逻辑功能
    (“ 做什么 ” ), 而不考虑如何实现这些功能 (“ 怎么做
    ” )。
       是软件设计的出发点

   数据流图有四种成分:
2.4 数据流图
         二、符 号( 图 2 . 4 )
   数据流:表示数据及其流向;           Data flow
   变换或加工:表示对数据进行处理的单元,它
    接受一定的输入数据,对其进行处理,并产生
    输出数据;
                              function
   源点 / 终点:是位于问题范围之外的信息生产者
    和消费者;
                        input/output
   数据存储:是为变换提供数据源或数据存储服
    务的缓冲区、文件或数据库;
                            Data storage
2.4 数据流图
数据流图几种附加符号
2.4 数据流图
             二、符 号

几种附加符号:

   星号( * ): 表示数据流之间是 “ 与 ” 关系

   加号( + ): 表示数据流之间是 “ 或 ” 关系

    带圈加号( ⊕ ) :表示数据流之间是互斥
    关系
2.4 数据流图
  注意:
1. 数据流与程序流程图中用箭头表示的控制流有
  本质不同,千万不要混淆。
2. 在数据流图中应该描绘所有可能的数据流向,
  而不应该描绘出现某个数据流的条件。
3. 处理并不一定是一个程序。一个处理框可以代
  表一系列程序、单个程序或者程序的一个模块
  ;它甚至可以代表用穿孔机穿孔或目视检查数
  据正确性等人工处理过程。
4. 一个数据存储也并不等同于一个文件,它可以
  表示一个文件、文件的一部分、数据库的元素
  或记录的一部分等;数据可以存储在磁盘、磁
  带、磁鼓、主存、微缩胶片、穿孔卡片及其他
  任何介质上 ( 包括人脑 ) 。
2.4 数据流图

注意

5. 数据存储和数据流都是数据,仅仅所处的
  状态不同。数据存储是处于静止状态的数
  据,数据流是处于运动中的数据。
6. 通常在数据流图中忽略出错处理,也不包
  括诸如打开或关闭文件之类的内务处理。
  数据流图的基本要点是描绘 “ 做什么 ” 而不
  考虑 “ 怎样做 ” 。
7. 有时数据的源点和终点相同
2.4 数据流图
 三、举 例
 例 1 仓库定货系统的数据流图
假设一家工厂的采购部每天需要一张定货报表,
报表按零件编号排序,表中列出所有需要再次定
货的零件。对于每个需要定货的零件应该列出下
述数据:零件编号,零件名称,定货数量,目前
价格,主要供应者,次要供应者。零件入库或出
库称为事务。仓库管理员通过放在仓库中的 C RT
终端把事务报告给定货系统。当某种零件的库存
数量少于库存量临界值时就应该再次定货。
2.4 数据流图
         分析
   两个数据流 :定货报表; 事务。
       系统把定货报表送给采购部,因此定货报表是一个数据
        流;
       事务需要从仓库送到系统中。
   采购员是数据终点,仓库管理员是数据源点。
       “ 采购部每天需要一张定货报表 ” ,
       “ 仓库管理员通过仓库中的 C RT 终端把事务报告给定货
        系统 ”
   两个处理 : 处理事务;产生报表
       事务的后果是改变零件库存量。(隐式)
       “ 采购部需要订货报表 ”
   数据存储 : 库存清单;定货信息
       每当有一个事务发生时立即处理它 , 需要库存清单
    
2.4 数据流图




图 2.5 定货系统的基本系统模型
2.4 数据流图




图 2.6 定货系统的功能级数据流图
2.4 数据流图
        三、举 例

数据流图分层细化时必须保持信息连续性




 图 2.7 把处理事务的功能进一步分解后的数据流图
2.4 数据流图

               四、命名
可理解性。
1. 为数据流 ( 或数据存储 ) 命名
( 1) 名字应代表整个数据流 ( 或数据存储 )
   的内容,而不是仅仅反映它的某些成分。
( 2) 不要使用空洞的、缺乏具体含义的名字
   ( 如 “ 数据 ” 、 “ 信息 ” 、 “ 输入 ” 之类 ) 。
( 3 )起名时遇到了困难,则很可能是因为对
   数据流图分解不恰当造成的,应该试试重
   新分解。
2.4 数据流图

             四、命名
2. 为处理命名
( 1 )通常先为数据流命名,然后再为与之相关联
   的处理命名。
( 2) 名字应该反映整个处理的功能,而不是它的一
   部分功能。
( 3) 尽量避免使用 “ 加工 ” 、 “ 处理 ” 等空洞的词。
( 4) 通常名字中仅包括一个动词,如果必须用两个
   动词,则把这个处理再分解成两个处理可能更恰
   当。
( 5) 如果在为某个处理命名时遇到困难,则很可能
2.4 数据流图

           四、命名

3. 数据源点 / 终点
  ( 1 ) 不需在开发系统的过程中设计和实
  现。它并不属于数据流图的核心内容,只
  不过是目标系统的外围环境部分 ( 可能是
  人员、计算机外部设备或传感器装置 ) 。
  ( 2 ) 通常,命名时采用它们在问题域中习
  惯使用的名字 ( 如 “ 采购员 ” 、 “ 仓库管理员
  ”等 ) 。
2.4 数据流图

                五、用途
   画数据流图的基本目的 : 交流信息的工具 .
       分析员把他对现有系统的认识或对目标系统的设想用
        数据流图描绘出来,供有关人员审查确认。
       仅仅使用 4 种基本符号,而且不包含任何有关物理实
        现的细节,因此,绝大多数用户都可以理解和评价它
        。
   另一个主要用途 : 分析和设计的工具。
       用系统流程图描绘一个系统时,系统的功能和实现每
        个功能的具体方案是混在一起的。
       数据流图描绘系统所完成的功能而不是其物理实现方
        案。
       当用数据流图辅助物理系统的设计时,能够在数据流
一、 D D ( D a ta D ic tio na ry)
                                 2.5 数据字典

                     简介

   数据字典是关于数据的信息的集合,也就是
    对数据流图中包含的所有元素的定义的集合
    。
       数据字典与数据流图共同构成系统的逻辑模型
        。
   包括四类元素的定义:
       数据流
       数据流分量(数据元素)
       数据存储
            [ 上面三类都是 “ 对数据的定义 ” ,用 DD 描述 ]
2.5 数据字典
          一、 D D (D ata D ic tio n ary) 简介
   在数据字典中记录数据元素的下列信息:
       一般信息 ( 名字,别名,描述等等 ) ,
       定义 ( 数据类型,长度,结构等等 ) ,
       使用特点 ( 值的范围,使用频率,使用方式——输入、
        输出、本地,条件值等等 ) ,
       控制信息 ( 来源,用户,使用它的程序,改变权,使用
        权等等 )
       分组信息 ( 父结构,从属结构,物理位置——记录、文
        件和数据库等等 ) 。
2.5 数据字典

         二、定义数据的方法

符号 数据组成结构            说明
  =    定义         等价于(定义为)
  +   顺序结构    以确定的次序连接两个或多个元素
[ | ] 选择结构    在两个以上的数据元素中选取一个
 { } 重复 ( 循环结 使指定的数据元素重复零次到多次
 ( ) 可选构任选 ) 使指定的数据元素出现零次到一次
         ( )
m..n   范围          界域(范围)

将数据元素用这些符号连接后再用等号与数据名相连即成为数据字典。
2.5 数据字典
      二、定义数据的方法

例 1 :某程序设计语言的 标识符 是长度不超
 过 8 个字符的字符串,其中第一个字符必须
 是字母字符,随后的字符可以是字母也可以
 是数字。

     标识符 = 字母字符 + 字母数字串
     字母数字串 =0{ 字母或数字 }7
     字母或数字 =[ 字母字符 | 数字字符 ]
2.5 数据字典
        二、定义数据的方法
例 2 :学生证数据 = 姓名 + 性别 + 系别 + 专业 + 年
 龄+
     { 学期注册 } ,其中:性别 =[ 男 | 女 ] 。
        试指出其他尚可分解的元素及其分解后
 的结构。


   分解数据的原则:
     分解到 无需进一步定义而相关人员都能明白
    其含义 为止
2.5 数据字典
        二、定义数据的方法
例 3 :存折 (注:户名最少 2 个字母、最多 24 个字母
 ;
所号 3 位数,帐号 8 位数, 6 种性质的存折,印密可选且
 不在存折显示,存取记录行最多 50 个,其摘要可选)
2.5 数据字典
            二、定义数据的方法
   存折=户名+所号+帐号+开户日+性质+ ( 印密 )
          + 1{ 存取记录行 }50
   户名= 2{ 字母 }24
   所号=“ 001”..“999”
   帐号=“ 00000001”..“99999999”
   开户日=年+月+日
   性质=“ 1”..“6” 注:“ 1” 表示普通户,“ 5” 表示工资户
    等
   印密=“ 0” 注:表示印密在存折上不显示
   存取记录行=日期+(摘要)+支出+存入+余额
                +操作+复核
2.5 数据字典

            三、数据字典的用途
   作为分析阶段的工具
       有助于分析员和用户之间的通信;不同开发人
        员之间的通信
   描述了对数据的控制
       当开发中需要改变数据时,很容易判断哪些程
        序处理部分也要相应地改变
   是开发数据库的第一步
2.5 数据字典
             四、数据字典的实现
   通常作为 CASE“ 结构化分析与设计工具
    ” 的一部分来实现
   若开发小型软件时暂时没有 DD 处理程序
    ,可用卡片形式来描述 DD ,每张卡片主
    要包含:
       名字,别名,描述,定义,位置
       例:
         仓库定货系统中涉及的几个数据元素的 DD
        卡片
2.5 数据字典
四、数据字典的实现
2.6 成本 / 效益分
              一、成 本 估   计析
   成本 / 效益分析:
       帮助客户决定是否投资这个软件

   成本:
       开发成本
           主要为 “ 人力消耗 ” ;
            估计不精确、需要用多种估计技术以互相校验
       运行费用
           操作费用(操作人数 、工作时间、消耗的物资等
            )
           维护费用
2.6 成本 / 效益分
             一、成 本 估     计析
   代码行技术:源代码行数 × 每行代码的平均成本
        代码行数:根据经验和历史数据估计
       每行代码的平均成本:软件复杂程度和工资水平
    可按多种方法分类估算,如按功能、语言种类、程序员的熟练程度等
        。


   任务分解技术:人力 × 工资
       将任务分解为多个相对简单的子任务,分别估算出各子
        任务所需的人力及其平均工资,最后计算得到总成本。
    分解方法:按开发阶段划和功能分解


   自动估计成本技术:历史数据、数据库系统
       减轻人的劳动,且更客观
       必须有长期搜集的大量历史数据
2.6 成本 / 效益分
                         析
      一、成 本 估 计
一个典型的按功能分类的代码行技术估算
         表

 功能      生产率 估计行数 每行成本 成本              人力
获得实时数据    920    840    2.2    1848     0.91
 更新数据库   1500   1210   1.33   1609.3   0.806
  脱机分析   1340    600   1.49     894     0.44
  产生报告   1450    450   1.38     621     0.31
  实时控制    980   1100   2.04    2244     1.12
   合计                         7216.3   4.506
2.6 成本 / 效益分
           一个典型的任务分解估算表
                    析
 人力            任务         编码与
    (   人月    需求 设                综合      合
           )              单元
 功能           分析 计                测试      计
                          测试
 用户接口控制         1     2     0.5    3.5     7
 二维图形分析         2    10     4.5    9.5    26
 三维图形分析        2.5   12      6     11    31.5
 数据结构管理         2     6      3      4     15
   图形显示        1.5   11      4    10.5    27
 外部设备控制        1.5    6     3.5     5     16
   设计分析         4    14      5      7     30
 合计(人月)       14.5   61    26.5 50.5 152.5
平均工资 ( 元 / 人
              5200 4800 4250 4500
月)
   成本 ( 元 )  75400 292800 112625 227250 708075
2.6 成本 / 效益分
        二、成本         析
               / 效益分析的方法
   新系统带来的经济效益 =
    因使用新系统而 增加的收入 + 减少的运
    行费用

   软件的运行时间 ( 生命周期 ) 一般 为: 5
    年
2.6 成本 / 效益分
           二、成本               析
                        / 效益分析的方法
1. 货币的时间价值
   依照经济分析方法预测:投资成本回收的时间。
   若以年利率 i 投资 P 元,则 n 年后的数值为:


F = P (1 + i )   n
                     其中P为初始投资, i 为年利率,
                     F为第n年底P的值
     意即在 n 年后得到的 F 元钱将等价于现在
    的 P 元。
2.6 成本 / 效益分
       二、成本         析
              / 效益分析的方法

衡量工程价值的经济指标

   2. 投资回收期:就是使累计的经济效益等于最
    初的投资费用所需的时间。
2.6 成本 / 效益分
          二、成本            析
                    / 效益分析的方法
   例:设某系统的开发投资为 3000 元,投入使用后每
    年可产生 1000 元的经济效益,年利率 12 %。不考
    虑开发所花费的时间,试计算该系统投入使用后收
    回投资的时间。
   解:将来第 n 年的收益 / (1+0.12)n = 此收益在现在
       第 n 年的
    的值收益 ( 元              现在值 ( 元 )
    年          (1+0.12) n
                                    累计现在值
                             P
         )F
     1  1000     1.12      892.86     892.86
     2  1000     1.25       800      1692.86
     3  1000     1.40      714.29    2407.15
     4  1000     1.57      636.94    3044.09
     5  1000     1.76      568.18    3617.27
第 n 年的
年               (1+0.12)n   现在值 ( 元 ) 累计现在值
     收益 ( 元 )
 1    1000        1.12       892.86     892.86
 2    1000        1.25        800      1692.86
 3    1000        1.40       714.29    2407.15
 4    1000        1.57       636.94    3044.09
 5    1000        1.76       568.18    3617.27


收回投资的时间应在: 3 到 4 年之间。
 按经济统计学的投资分析测算公式,精确回收时间
 为:

3 + (3000-2407.15) / (3044.09-2407.15) ≈3.93 年
2.6 成本 / 效益分
      二、成本             析
                 / 效益分析的方法
   3. 纯收入:
           整个生存周期之内的累计经济
    效益
           折成现在值− 投资。
投资为n3000 元
   第 年的
                       现在值 ( 元
年 收益 ( 元   (1+0.12)n           累计现在值
                          )
      )
 1  1000     1.12       892.86   892.86
 2  1000     1.25        800    1692.86
 3  1000     1.40       714.29  2407.15
 4  1000     1.57       636.94  3044.09
 5  1000     1.76       568.18  3617.27
2.6 成本 / 效益分
         二、成本                        析
                               / 效益分析的方法
4. 投资回收率:
已知:
   现在的投资额 P 和估算出的将来每年的收
 益 Fi
    假设系统的使用寿命为 n 年
求:投资回收率 j
解如下高阶方程
       F1 F2 F3 Fn 
    P=      +           +            + ... +
       1 + j (1 + j ) 2
                           (1 + j ) 3
                                              (1 + j ) n 
                                                         

      ⇒ j≈?


比较 j 与银行年利率, 若 j 大则值得投资
2.6 成本 / 效益分
                  三、举 例       析



例:假设某软件生命周期为 5 年。现在投资 20 万元
 ,
       投资贷款年利率 3% 。从第一年起,每年年底
 收入 = 20 万 4.2 万 4.2 万 4.2 万 4.2 万 4.2 万
     P
   4.2 万元,问该项目是否值得投资?
        0     1    2     3    4      5



到第 5 年底结算时:
投资额 = 200000×(1+3%)5 ≈ 231855( 元 )
2.6 成本 / 效益分
                     三、举 例           析


  衡量工程价值的经济指标有:
  ⑴ 纯收入 = 折合现价的总收入 - 当前投资额
           1      1      1     1      1 
  42000 ×     5
                 +   4
                       +    3
                              +   2
                                    +      − 200000
          1.03 1.03 1.03 1.03 1.03 
≈ −7652(元)
  ⑵ 投资回收期 :
                                1
  第 6 年底可收回            42000 ×    6
                                    ≈ 35174(元)
                              1.03
            7652
                 ≈ 0.22(年) ⇒ 回收期 ≈ 5.22年
           35174
2.6 成本 / 效益分
                       三、举 例            析




 ⑶ 投资回收率:设为 j


               1         1        1        1        1 
200000 = 42000      +          +        +        +
               1 + j (1 + j ) (1 + j ) (1 + j ) (1 + j )5 
                              2        3        4
                                                           

  ⇒ j ≈ 1.65% < 年利率 3%
第 2 章小结


2.1 可行性研究的任务 : 技术 , 经济 , 操作 ,
社会 , 抉择
2.2 可行性研究过程 : 8 步骤
2.3 系统流程图 : 数据在系统 ( 人,软,硬 ) 各
部件之间流动
2.4 数据流图 : 源点或终点,处理,数据存储
和数据流
2.5 数据字典 : 流,元素,存储,处理
2.6 成本 / 效益分析:估计, ROI ,货币的时间
价值
第二章 可行性研究思考题
为方便储户,某银行拟开发计算机储蓄系统。
 储户填写存款单或取款单输入系统。如果是存
 款,系统记录信息并打印出存款单给储户;如
 果是取款,系统核对取款密码,如密码正确则
 计算利息,打印出利息清单及取款单给储户。

要求:对以上问题画出数据流图。

More Related Content

Viewers also liked

Se2009 ch8
Se2009 ch8 Se2009 ch8
Se2009 ch8 浒 刘
 
软件工程 第四章
软件工程 第四章软件工程 第四章
软件工程 第四章浒 刘
 
Jardunbide egokien gidaliburua
Jardunbide egokien gidaliburuaJardunbide egokien gidaliburua
Jardunbide egokien gidaliburua
kutxutxo
 
A report on industrial visit to honda motors dilip
A report on industrial visit to honda motors   dilipA report on industrial visit to honda motors   dilip
A report on industrial visit to honda motors dilipDilip Kumar
 
Autismoa ppt
Autismoa pptAutismoa ppt
Autismoa ppt
kutxutxo
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deployment
Martijn van der Kamp
 
Dl docência
Dl docênciaDl docência
Dl docência
Isabel Cascão
 
A report on industrial visit to honda motors dilip
A report on industrial visit to honda motors   dilipA report on industrial visit to honda motors   dilip
A report on industrial visit to honda motors dilipDilip Kumar
 

Viewers also liked (10)

Se2009 ch8
Se2009 ch8 Se2009 ch8
Se2009 ch8
 
Woman[1]
Woman[1]Woman[1]
Woman[1]
 
软件工程 第四章
软件工程 第四章软件工程 第四章
软件工程 第四章
 
Jardunbide egokien gidaliburua
Jardunbide egokien gidaliburuaJardunbide egokien gidaliburua
Jardunbide egokien gidaliburua
 
A report on industrial visit to honda motors dilip
A report on industrial visit to honda motors   dilipA report on industrial visit to honda motors   dilip
A report on industrial visit to honda motors dilip
 
Autismoa ppt
Autismoa pptAutismoa ppt
Autismoa ppt
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deployment
 
Dl docência
Dl docênciaDl docência
Dl docência
 
Honda report
Honda reportHonda report
Honda report
 
A report on industrial visit to honda motors dilip
A report on industrial visit to honda motors   dilipA report on industrial visit to honda motors   dilip
A report on industrial visit to honda motors dilip
 

Similar to 软件工程 第二章

香港六合彩
香港六合彩香港六合彩
香港六合彩
香港六合彩 六合彩
 
软件工程 第三章
软件工程 第三章软件工程 第三章
软件工程 第三章浒 刘
 
软件设计原则、模式与应用
软件设计原则、模式与应用软件设计原则、模式与应用
软件设计原则、模式与应用yiditushe
 
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
pingjiang
 
Powerdesigner使用教程(1)
Powerdesigner使用教程(1)Powerdesigner使用教程(1)
Powerdesigner使用教程(1)zhq3051
 
淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)
vanadies10
 
腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析topgeek
 
腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析areyouok
 
CBAP商業分析讀書會 20140218 CH13
CBAP商業分析讀書會 20140218 CH13CBAP商業分析讀書會 20140218 CH13
CBAP商業分析讀書會 20140218 CH13
moris lee
 
Mdx解决方案(第二版)笔记
Mdx解决方案(第二版)笔记Mdx解决方案(第二版)笔记
Mdx解决方案(第二版)笔记
zhejiang university
 
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
corlin chen
 
腾讯大讲堂39 数据运营规划理念及方法概要介绍
腾讯大讲堂39 数据运营规划理念及方法概要介绍腾讯大讲堂39 数据运营规划理念及方法概要介绍
腾讯大讲堂39 数据运营规划理念及方法概要介绍George Ang
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统
klandor
 
云计算 系统实例与研究现状
云计算 系统实例与研究现状云计算 系统实例与研究现状
云计算 系统实例与研究现状Danny AJ Lin
 
Sql2005 reporting services報表設計
Sql2005 reporting services報表設計Sql2005 reporting services報表設計
Sql2005 reporting services報表設計
iamhrm
 
管理信息系统
管理信息系统管理信息系统
管理信息系统
avatarism
 
数据分析架构实例与安全的云挖掘
数据分析架构实例与安全的云挖掘数据分析架构实例与安全的云挖掘
数据分析架构实例与安全的云挖掘
mysqlops
 
QM-024-QC改善工具
QM-024-QC改善工具QM-024-QC改善工具
QM-024-QC改善工具handbook
 
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境drewz lin
 
How to build data warehouse
How to build data warehouseHow to build data warehouse
How to build data warehousejasonfuoo
 

Similar to 软件工程 第二章 (20)

香港六合彩
香港六合彩香港六合彩
香港六合彩
 
软件工程 第三章
软件工程 第三章软件工程 第三章
软件工程 第三章
 
软件设计原则、模式与应用
软件设计原则、模式与应用软件设计原则、模式与应用
软件设计原则、模式与应用
 
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
数据结构(用面向对象方法与C++语言描述第二版)殷人昆编著清华大学出版社
 
Powerdesigner使用教程(1)
Powerdesigner使用教程(1)Powerdesigner使用教程(1)
Powerdesigner使用教程(1)
 
淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)
 
腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析
 
腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析腾讯大讲堂48 数据库查询优化浅析
腾讯大讲堂48 数据库查询优化浅析
 
CBAP商業分析讀書會 20140218 CH13
CBAP商業分析讀書會 20140218 CH13CBAP商業分析讀書會 20140218 CH13
CBAP商業分析讀書會 20140218 CH13
 
Mdx解决方案(第二版)笔记
Mdx解决方案(第二版)笔记Mdx解决方案(第二版)笔记
Mdx解决方案(第二版)笔记
 
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
 
腾讯大讲堂39 数据运营规划理念及方法概要介绍
腾讯大讲堂39 数据运营规划理念及方法概要介绍腾讯大讲堂39 数据运营规划理念及方法概要介绍
腾讯大讲堂39 数据运营规划理念及方法概要介绍
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统
 
云计算 系统实例与研究现状
云计算 系统实例与研究现状云计算 系统实例与研究现状
云计算 系统实例与研究现状
 
Sql2005 reporting services報表設計
Sql2005 reporting services報表設計Sql2005 reporting services報表設計
Sql2005 reporting services報表設計
 
管理信息系统
管理信息系统管理信息系统
管理信息系统
 
数据分析架构实例与安全的云挖掘
数据分析架构实例与安全的云挖掘数据分析架构实例与安全的云挖掘
数据分析架构实例与安全的云挖掘
 
QM-024-QC改善工具
QM-024-QC改善工具QM-024-QC改善工具
QM-024-QC改善工具
 
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
 
How to build data warehouse
How to build data warehouseHow to build data warehouse
How to build data warehouse
 

软件工程 第二章

  • 1. 第 1 章重点回顾  软件 = 程序 + 数据 + 文档  软件危机 : 现象 , 原因 , 办法 ( 软件 工程学 )  软件工程 ( 学 ): 开发、运行和维护 软件 的系统方法  软件方法学 3 个要素:方法、工具 个要素 和过程。  软件生命周期 : 定义 , 开发 , 运行维
  • 3. 第 2 章 可行性研究  2.1 可行性研究的任务  2.2 可行性研究过程  2.3 系统流程图  2.4 数据流图  2.5 数据字典  2.6 成本/效益分析  2.7 小结
  • 5. 问题的定义 开始 有用的软件 问题定义 Who 为谁设计,用户是谁? 可性行研究 What 要解决哪些问题? 3W Why 为什么要解决这些问题 N 可行否? Y 项目实施计划 终止项目的建议 结束
  • 6. 可行性研究 目的: 用最小的代价在尽可能短的时间内 确定问题是否能够解决。 不是解决问题,而是确定问题是否 值得去解决。
  • 7. 2.1 可行性研究的任 务 可行性研究的任务  实质:一次大大压缩简化了的系统分析和设计。  任务:  初步确定项目的规模,目标,约束和限制。  在澄清了问题定义之后,分析员应该导出系统 的逻辑模型。  从系统逻辑模型出发,探索若干种可供选择的 主要解法 ( 即系统实现方案 ) 。  对每种解决方法都要研究它的可行性。
  • 8. 2.1 可行性研究的任 务 主要从三方面考虑可行性  技术可行性:使用现有的技术能实现这个系 统吗 ?  经济可行性:这个系统的经济效益能超过它 的开发成本吗 ?  操作可行性:系统的操作方式在这个用户组 织内行得通吗 ?  可行性研究的根本任务:对以后的行动方案 提出建议
  • 9. 2.2 可行性研究过 程 可行性研究过程 1. 复查系统规模和目标 2. 研究目前正在使用的系统 3. 导出新系统的高层逻辑模 型 4. 进一步定义问题 5. 导出和评价供选择的解法 6. 推荐行动方针 7. 草拟开发计划
  • 10. 2.2 可行性研究过 程 可行性研究过程 1. 复查系统规模和目标  访问关键人员,描述目标系统的限制和 约束 2. 研究目前正在使用的系统:现有系统的 问题 现有系 新增 统功能 功能 注意 : 新系统效益 ? > 现有系统效
  • 11. 2.2 可行性研究过 程 可行性研究过程 3. 导出新系统的高层逻辑模型 抽象 改进 实现 …… …… 旧物理系统 旧逻辑模型 新逻辑模型 新物理系统 数据流图描绘数据在系统中流动和处理的情况。 数据字典定义系统中使用的数据。 数据流图和数据字典共同定义了新系统的逻辑模型,以后 可以从这个逻辑模型出发设计新系统。
  • 12. 2.2 可行性研究过 程 可行性研究过程 4. 进一步定义问题 前面的四步构成循环 定义 / 再定义问 分析问题 导出试探性的解 题
  • 13. 2.2 可行性研究过 程 可行性研究过程  5. 导出和评价供选择的解法 技术上不可 行 技术上可行 能操 作 用户不可 操作上可行 合 不 算 经济上合算 进度表
  • 14. 2.2 可行性研究过 程 可行性研究过程 No Yes or No? Why 6. 推荐行动方针 ? Yes 7. 草拟开发计划 Which one is the best? Why? (cost / benefit)  任务分解,确定负责人  大致进度规划  财务预算  风险分析及对策 8. 书写文挡提交审查
  • 15. 2.3 系统流程图  系统流程图:  是概括地描绘物理系统的传统工具  是物理数据流图  表示数据在各个部件之间流动的情况,不是 描述对数据进行加工处理的过程。  用图形符号以黑盒子形式描绘系统的各个部 件。  符号:  基本符号:抽象地描绘 ( 图 2.1)  系统符号:具体地描绘 ( 图 2.2)
  • 16. 基本符号 ---- 以概括的方式抽象地描绘一 个实际系统所用符号
  • 17. 系 号 --- 统 符 具 号 体 地 描 绘 一 个 物 理 系 统 所 用 符
  • 18. 2.3 系统流程 二、例 子 图  系统流程图反映信息在各部件之间流动的 情况  画法:使信息在图中从顶向下或从左向右 流动  举例:例 1. 库存清单系统 仓 库存 库存 < 临界 定货 库 变化 XX : 零 库存量 清单 — — — 值——— 报告 XX : 件 临界 — — — ………… 值
  • 19. 例 1. 库存清单系统流程图 2.3 系统流程 图 事务 即库存 量变化 库存清单程序 库存清单 主文件 定货 信息 注意 : 报告生成程序 系统流程图 ≠ 程序流程 图 定货报告 符号 = 系统部件
  • 20. 一、 D F D ( D a ta F lo w2.4 数据流图m D ia g ra 简介  数据流图是一种图形化技术,描绘信息流和数据从 输入移动到输出的过程中所经受的变换  描述数据流和变换:系统接受输入的数据,经过一系列 的变换,最后输出结果数据;  图形表示,容易理解。是分析员与用户之间极好的通信 工具。  描绘系统的逻辑模型 ,只考虑必须完成的逻辑功能 (“ 做什么 ” ), 而不考虑如何实现这些功能 (“ 怎么做 ” )。  是软件设计的出发点  数据流图有四种成分:
  • 21. 2.4 数据流图 二、符 号( 图 2 . 4 )  数据流:表示数据及其流向; Data flow  变换或加工:表示对数据进行处理的单元,它 接受一定的输入数据,对其进行处理,并产生 输出数据; function  源点 / 终点:是位于问题范围之外的信息生产者 和消费者; input/output  数据存储:是为变换提供数据源或数据存储服 务的缓冲区、文件或数据库; Data storage
  • 23. 2.4 数据流图 二、符 号 几种附加符号:  星号( * ): 表示数据流之间是 “ 与 ” 关系  加号( + ): 表示数据流之间是 “ 或 ” 关系  带圈加号( ⊕ ) :表示数据流之间是互斥 关系
  • 24. 2.4 数据流图 注意: 1. 数据流与程序流程图中用箭头表示的控制流有 本质不同,千万不要混淆。 2. 在数据流图中应该描绘所有可能的数据流向, 而不应该描绘出现某个数据流的条件。 3. 处理并不一定是一个程序。一个处理框可以代 表一系列程序、单个程序或者程序的一个模块 ;它甚至可以代表用穿孔机穿孔或目视检查数 据正确性等人工处理过程。 4. 一个数据存储也并不等同于一个文件,它可以 表示一个文件、文件的一部分、数据库的元素 或记录的一部分等;数据可以存储在磁盘、磁 带、磁鼓、主存、微缩胶片、穿孔卡片及其他 任何介质上 ( 包括人脑 ) 。
  • 25. 2.4 数据流图 注意 5. 数据存储和数据流都是数据,仅仅所处的 状态不同。数据存储是处于静止状态的数 据,数据流是处于运动中的数据。 6. 通常在数据流图中忽略出错处理,也不包 括诸如打开或关闭文件之类的内务处理。 数据流图的基本要点是描绘 “ 做什么 ” 而不 考虑 “ 怎样做 ” 。 7. 有时数据的源点和终点相同
  • 26. 2.4 数据流图 三、举 例 例 1 仓库定货系统的数据流图 假设一家工厂的采购部每天需要一张定货报表, 报表按零件编号排序,表中列出所有需要再次定 货的零件。对于每个需要定货的零件应该列出下 述数据:零件编号,零件名称,定货数量,目前 价格,主要供应者,次要供应者。零件入库或出 库称为事务。仓库管理员通过放在仓库中的 C RT 终端把事务报告给定货系统。当某种零件的库存 数量少于库存量临界值时就应该再次定货。
  • 27. 2.4 数据流图 分析  两个数据流 :定货报表; 事务。  系统把定货报表送给采购部,因此定货报表是一个数据 流;  事务需要从仓库送到系统中。  采购员是数据终点,仓库管理员是数据源点。  “ 采购部每天需要一张定货报表 ” ,  “ 仓库管理员通过仓库中的 C RT 终端把事务报告给定货 系统 ”  两个处理 : 处理事务;产生报表  事务的后果是改变零件库存量。(隐式)  “ 采购部需要订货报表 ”  数据存储 : 库存清单;定货信息  每当有一个事务发生时立即处理它 , 需要库存清单 
  • 28. 2.4 数据流图 图 2.5 定货系统的基本系统模型
  • 29. 2.4 数据流图 图 2.6 定货系统的功能级数据流图
  • 30. 2.4 数据流图 三、举 例 数据流图分层细化时必须保持信息连续性 图 2.7 把处理事务的功能进一步分解后的数据流图
  • 31. 2.4 数据流图 四、命名 可理解性。 1. 为数据流 ( 或数据存储 ) 命名 ( 1) 名字应代表整个数据流 ( 或数据存储 ) 的内容,而不是仅仅反映它的某些成分。 ( 2) 不要使用空洞的、缺乏具体含义的名字 ( 如 “ 数据 ” 、 “ 信息 ” 、 “ 输入 ” 之类 ) 。 ( 3 )起名时遇到了困难,则很可能是因为对 数据流图分解不恰当造成的,应该试试重 新分解。
  • 32. 2.4 数据流图 四、命名 2. 为处理命名 ( 1 )通常先为数据流命名,然后再为与之相关联 的处理命名。 ( 2) 名字应该反映整个处理的功能,而不是它的一 部分功能。 ( 3) 尽量避免使用 “ 加工 ” 、 “ 处理 ” 等空洞的词。 ( 4) 通常名字中仅包括一个动词,如果必须用两个 动词,则把这个处理再分解成两个处理可能更恰 当。 ( 5) 如果在为某个处理命名时遇到困难,则很可能
  • 33. 2.4 数据流图 四、命名 3. 数据源点 / 终点   ( 1 ) 不需在开发系统的过程中设计和实 现。它并不属于数据流图的核心内容,只 不过是目标系统的外围环境部分 ( 可能是 人员、计算机外部设备或传感器装置 ) 。 ( 2 ) 通常,命名时采用它们在问题域中习 惯使用的名字 ( 如 “ 采购员 ” 、 “ 仓库管理员 ”等 ) 。
  • 34. 2.4 数据流图 五、用途  画数据流图的基本目的 : 交流信息的工具 .  分析员把他对现有系统的认识或对目标系统的设想用 数据流图描绘出来,供有关人员审查确认。  仅仅使用 4 种基本符号,而且不包含任何有关物理实 现的细节,因此,绝大多数用户都可以理解和评价它 。  另一个主要用途 : 分析和设计的工具。  用系统流程图描绘一个系统时,系统的功能和实现每 个功能的具体方案是混在一起的。  数据流图描绘系统所完成的功能而不是其物理实现方 案。  当用数据流图辅助物理系统的设计时,能够在数据流
  • 35. 一、 D D ( D a ta D ic tio na ry) 2.5 数据字典 简介  数据字典是关于数据的信息的集合,也就是 对数据流图中包含的所有元素的定义的集合 。  数据字典与数据流图共同构成系统的逻辑模型 。  包括四类元素的定义:  数据流  数据流分量(数据元素)  数据存储 [ 上面三类都是 “ 对数据的定义 ” ,用 DD 描述 ]
  • 36. 2.5 数据字典 一、 D D (D ata D ic tio n ary) 简介  在数据字典中记录数据元素的下列信息:  一般信息 ( 名字,别名,描述等等 ) ,  定义 ( 数据类型,长度,结构等等 ) ,  使用特点 ( 值的范围,使用频率,使用方式——输入、 输出、本地,条件值等等 ) ,  控制信息 ( 来源,用户,使用它的程序,改变权,使用 权等等 )  分组信息 ( 父结构,从属结构,物理位置——记录、文 件和数据库等等 ) 。
  • 37. 2.5 数据字典 二、定义数据的方法 符号 数据组成结构 说明 = 定义 等价于(定义为) + 顺序结构 以确定的次序连接两个或多个元素 [ | ] 选择结构 在两个以上的数据元素中选取一个 { } 重复 ( 循环结 使指定的数据元素重复零次到多次 ( ) 可选构任选 ) 使指定的数据元素出现零次到一次 ( ) m..n 范围 界域(范围) 将数据元素用这些符号连接后再用等号与数据名相连即成为数据字典。
  • 38. 2.5 数据字典 二、定义数据的方法 例 1 :某程序设计语言的 标识符 是长度不超 过 8 个字符的字符串,其中第一个字符必须 是字母字符,随后的字符可以是字母也可以 是数字。 标识符 = 字母字符 + 字母数字串 字母数字串 =0{ 字母或数字 }7 字母或数字 =[ 字母字符 | 数字字符 ]
  • 39. 2.5 数据字典 二、定义数据的方法 例 2 :学生证数据 = 姓名 + 性别 + 系别 + 专业 + 年 龄+ { 学期注册 } ,其中:性别 =[ 男 | 女 ] 。 试指出其他尚可分解的元素及其分解后 的结构。  分解数据的原则: 分解到 无需进一步定义而相关人员都能明白 其含义 为止
  • 40. 2.5 数据字典 二、定义数据的方法 例 3 :存折 (注:户名最少 2 个字母、最多 24 个字母 ; 所号 3 位数,帐号 8 位数, 6 种性质的存折,印密可选且 不在存折显示,存取记录行最多 50 个,其摘要可选)
  • 41. 2.5 数据字典 二、定义数据的方法  存折=户名+所号+帐号+开户日+性质+ ( 印密 ) + 1{ 存取记录行 }50  户名= 2{ 字母 }24  所号=“ 001”..“999”  帐号=“ 00000001”..“99999999”  开户日=年+月+日  性质=“ 1”..“6” 注:“ 1” 表示普通户,“ 5” 表示工资户 等  印密=“ 0” 注:表示印密在存折上不显示  存取记录行=日期+(摘要)+支出+存入+余额 +操作+复核
  • 42. 2.5 数据字典 三、数据字典的用途  作为分析阶段的工具  有助于分析员和用户之间的通信;不同开发人 员之间的通信  描述了对数据的控制  当开发中需要改变数据时,很容易判断哪些程 序处理部分也要相应地改变  是开发数据库的第一步
  • 43. 2.5 数据字典 四、数据字典的实现  通常作为 CASE“ 结构化分析与设计工具 ” 的一部分来实现  若开发小型软件时暂时没有 DD 处理程序 ,可用卡片形式来描述 DD ,每张卡片主 要包含:  名字,别名,描述,定义,位置  例: 仓库定货系统中涉及的几个数据元素的 DD 卡片
  • 45. 2.6 成本 / 效益分 一、成 本 估 计析  成本 / 效益分析:  帮助客户决定是否投资这个软件  成本:  开发成本  主要为 “ 人力消耗 ” ;  估计不精确、需要用多种估计技术以互相校验  运行费用  操作费用(操作人数 、工作时间、消耗的物资等 )  维护费用
  • 46. 2.6 成本 / 效益分 一、成 本 估 计析  代码行技术:源代码行数 × 每行代码的平均成本  代码行数:根据经验和历史数据估计  每行代码的平均成本:软件复杂程度和工资水平 可按多种方法分类估算,如按功能、语言种类、程序员的熟练程度等 。  任务分解技术:人力 × 工资  将任务分解为多个相对简单的子任务,分别估算出各子 任务所需的人力及其平均工资,最后计算得到总成本。 分解方法:按开发阶段划和功能分解  自动估计成本技术:历史数据、数据库系统  减轻人的劳动,且更客观  必须有长期搜集的大量历史数据
  • 47. 2.6 成本 / 效益分 析 一、成 本 估 计 一个典型的按功能分类的代码行技术估算 表 功能 生产率 估计行数 每行成本 成本 人力 获得实时数据 920 840 2.2 1848 0.91 更新数据库 1500 1210 1.33 1609.3 0.806 脱机分析 1340 600 1.49 894 0.44 产生报告 1450 450 1.38 621 0.31 实时控制 980 1100 2.04 2244 1.12 合计 7216.3 4.506
  • 48. 2.6 成本 / 效益分 一个典型的任务分解估算表 析 人力 任务 编码与 ( 人月 需求 设 综合 合 ) 单元 功能 分析 计 测试 计 测试 用户接口控制 1 2 0.5 3.5 7 二维图形分析 2 10 4.5 9.5 26 三维图形分析 2.5 12 6 11 31.5 数据结构管理 2 6 3 4 15 图形显示 1.5 11 4 10.5 27 外部设备控制 1.5 6 3.5 5 16 设计分析 4 14 5 7 30 合计(人月) 14.5 61 26.5 50.5 152.5 平均工资 ( 元 / 人 5200 4800 4250 4500 月) 成本 ( 元 ) 75400 292800 112625 227250 708075
  • 49. 2.6 成本 / 效益分 二、成本 析 / 效益分析的方法  新系统带来的经济效益 = 因使用新系统而 增加的收入 + 减少的运 行费用  软件的运行时间 ( 生命周期 ) 一般 为: 5 年
  • 50. 2.6 成本 / 效益分 二、成本 析 / 效益分析的方法 1. 货币的时间价值  依照经济分析方法预测:投资成本回收的时间。  若以年利率 i 投资 P 元,则 n 年后的数值为: F = P (1 + i ) n 其中P为初始投资, i 为年利率, F为第n年底P的值 意即在 n 年后得到的 F 元钱将等价于现在 的 P 元。
  • 51. 2.6 成本 / 效益分 二、成本 析 / 效益分析的方法 衡量工程价值的经济指标  2. 投资回收期:就是使累计的经济效益等于最 初的投资费用所需的时间。
  • 52. 2.6 成本 / 效益分 二、成本 析 / 效益分析的方法  例:设某系统的开发投资为 3000 元,投入使用后每 年可产生 1000 元的经济效益,年利率 12 %。不考 虑开发所花费的时间,试计算该系统投入使用后收 回投资的时间。  解:将来第 n 年的收益 / (1+0.12)n = 此收益在现在 第 n 年的 的值收益 ( 元 现在值 ( 元 ) 年 (1+0.12) n 累计现在值 P )F 1 1000 1.12 892.86 892.86 2 1000 1.25 800 1692.86 3 1000 1.40 714.29 2407.15 4 1000 1.57 636.94 3044.09 5 1000 1.76 568.18 3617.27
  • 53. 第 n 年的 年 (1+0.12)n 现在值 ( 元 ) 累计现在值 收益 ( 元 ) 1 1000 1.12 892.86 892.86 2 1000 1.25 800 1692.86 3 1000 1.40 714.29 2407.15 4 1000 1.57 636.94 3044.09 5 1000 1.76 568.18 3617.27 收回投资的时间应在: 3 到 4 年之间。 按经济统计学的投资分析测算公式,精确回收时间 为: 3 + (3000-2407.15) / (3044.09-2407.15) ≈3.93 年
  • 54. 2.6 成本 / 效益分 二、成本 析 / 效益分析的方法  3. 纯收入: 整个生存周期之内的累计经济 效益 折成现在值− 投资。 投资为n3000 元 第 年的 现在值 ( 元 年 收益 ( 元 (1+0.12)n 累计现在值 ) ) 1 1000 1.12 892.86 892.86 2 1000 1.25 800 1692.86 3 1000 1.40 714.29 2407.15 4 1000 1.57 636.94 3044.09 5 1000 1.76 568.18 3617.27
  • 55. 2.6 成本 / 效益分 二、成本 析 / 效益分析的方法 4. 投资回收率: 已知: 现在的投资额 P 和估算出的将来每年的收 益 Fi 假设系统的使用寿命为 n 年 求:投资回收率 j 解如下高阶方程  F1 F2 F3 Fn  P= + + + ... +  1 + j (1 + j ) 2 (1 + j ) 3 (1 + j ) n   ⇒ j≈? 比较 j 与银行年利率, 若 j 大则值得投资
  • 56. 2.6 成本 / 效益分 三、举 例 析 例:假设某软件生命周期为 5 年。现在投资 20 万元 , 投资贷款年利率 3% 。从第一年起,每年年底 收入 = 20 万 4.2 万 4.2 万 4.2 万 4.2 万 4.2 万 P 4.2 万元,问该项目是否值得投资? 0 1 2 3 4 5 到第 5 年底结算时: 投资额 = 200000×(1+3%)5 ≈ 231855( 元 )
  • 57. 2.6 成本 / 效益分 三、举 例 析 衡量工程价值的经济指标有: ⑴ 纯收入 = 折合现价的总收入 - 当前投资额  1 1 1 1 1  42000 ×  5 + 4 + 3 + 2 +  − 200000 1.03 1.03 1.03 1.03 1.03  ≈ −7652(元) ⑵ 投资回收期 : 1 第 6 年底可收回 42000 × 6 ≈ 35174(元) 1.03 7652 ≈ 0.22(年) ⇒ 回收期 ≈ 5.22年 35174
  • 58. 2.6 成本 / 效益分 三、举 例 析 ⑶ 投资回收率:设为 j  1 1 1 1 1  200000 = 42000 + + + +  1 + j (1 + j ) (1 + j ) (1 + j ) (1 + j )5  2 3 4  ⇒ j ≈ 1.65% < 年利率 3%
  • 59. 第 2 章小结 2.1 可行性研究的任务 : 技术 , 经济 , 操作 , 社会 , 抉择 2.2 可行性研究过程 : 8 步骤 2.3 系统流程图 : 数据在系统 ( 人,软,硬 ) 各 部件之间流动 2.4 数据流图 : 源点或终点,处理,数据存储 和数据流 2.5 数据字典 : 流,元素,存储,处理 2.6 成本 / 效益分析:估计, ROI ,货币的时间 价值
  • 60. 第二章 可行性研究思考题 为方便储户,某银行拟开发计算机储蓄系统。 储户填写存款单或取款单输入系统。如果是存 款,系统记录信息并打印出存款单给储户;如 果是取款,系统核对取款密码,如密码正确则 计算利息,打印出利息清单及取款单给储户。 要求:对以上问题画出数据流图。

Editor's Notes

  1. 本章力图对计算机软件工程学作一个简短的概述。首先通过回顾计算机系统发展简史,说明开发软件的一些错误方法和观念是怎样形成的。然后列举了这些错误方法带来的严重弊病 ( 软件危机 ) ,澄清了一些糊涂观念。为了计算机系统的进一步发展,需要认真研究开发和维护软件的科学技术。应总结计算机软件的历史经验教训,借鉴其他工程领域的管理技术,逐步使软件工程这门新学科发展和完善起来。
  2. 可行性研究的目的不是解决问题,而是确定问题是否值得去解决。 可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决 可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以比较抽象的方式进行的系统分析和设计的过程。
  3. 可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。
  4. 运行使用旧系统所需要的费用是一个重要的经济指标,如果新系统不能增加收入或减少使用费用,那么从经济角度看新系统就不如旧系统。
  5. 旧物理系统 - 〉旧逻辑模型 -- 〉新逻辑模型 -- 〉新物理系统
  6. 5. 从技术角度比较各种方案:在数据流图上划分不同的边界,从而导出不同的物理实现的方案。
  7. 5. 从技术角度比较各种方案:在数据流图上划分不同的边界,从而导出不同的物理实现的方案。
  8. 从逻辑模型 到 物理系统
  9. P30
  10. 事务:输入 报表:输出
  11. 别名:不同的用户;不同的分析员;同一分析员在不同的时期; 可能会给同一个数据起不同的名字
  12. 将 数据元素 用上表所列符号连接后再用等号与 数据名 相连即成为数据字典。
  13. 例1:系别=学院名+系名;  年龄= 10..50
  14. 例1:系别=学院名+系名;  年龄= 10..50
  15. 人力 = 估计行数 / 生产率 实时控制    (Concurrent Control) 以直接监督工作方式、在工作进行中便执行控制,同时修正行动,改正问题偏差,例如飞机的订位系统。
  16. 三维图形 仿真在机器人控制 系统 中的运用
  17. 将来第 n 年的收益 《 F 》 / (1+0.12) n = 此收益在现在的值《 P 》
  18. 元 / (元 / 年)
  19. 系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件 ( 程序,文档,数据库,人工过程等 ) 。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。 数据流图 (DFD) 是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。 (1) 数据流 (2) 数据流分量 ( 即数据元素 ) (3) 数据存储 (4) 处理