软件工程复习(二)

可行性研究的任务

不是解决问题,而是确定问题是否值得去解决。

  • 分析可能的解法
  • 判定系统规模和目标是否能够实现
  • 效益是否可观

较高层次的系统分析和设计过程

  • 技术可行性:开发此系统是可行的,是有好处的
  • 经济可行性:根据系统目标衡量所需技术是否具备
  • 操作可行性:系统是否易于使用并能够创造价值
  • 法律可行性:是否存在侵犯、妨碍和责任等问题

可行性研究过程(understanding)

了解就好

  • 复查系统规模和目标

    • 改正含糊或不确切的叙述
    • 清晰地描述限制和约束
    • 确保分析员解决正确的问题
  • 研究目前正在使用的系统

    • 完成现有系统的基本功能分析
    • 解决现有系统的问题
    • 绘制高层系统数据流图
    • 掌握与其他系统的接口
  • 导出新系统的高层逻辑模型

    • 现有物理系统 → 现有系统的逻辑模型 → 目标系统逻辑模型 → 新的目标系统
    • 高层数据流图
    • 初步的数据字典
  • 进一步定义问题

    • 以数据流图和数据字典为基础
    • 复查问题定义、工程规模和目标
    • 分析员和用户
    • 重复1~4步,直至提出的逻辑模型完全符合系统目标
  • 导出和评价供选择的解法

    • 从技术角度出发,考虑解决问题的不同方案
    • 技术可行性,排除不现实的系统
    • 操作可行性,排除用户不能接受的方案
    • 经济可行性,排除利润低的方案
    • 制定进度表 (估算生命周期每个阶段的工作量)
  • 推荐行动方针(是否做?)

    • 分析员:如果值得开发,则选择最好的解法
    • 用户:成本/效益分析
  • 草拟开发计划

    • 工程进度表
    • 各类开发人员、各种资源需求情况
    • 生命周期每个阶段的成本
    • 下一个阶段详细进度表和成本估计
  • 书写文档提交审查

    • 用户、客户组织负责人、评审组审查

系统流程图 (understanding)

系统流程图概括描绘物理系统的传统工具用图形符号,以黑盒子形式描述组成系统的每个部件程序、文档、数据库、人工过程

  • 符号:
  • 栗子:

数据流图 (master)

数据流图(DFD) 描绘信息流和数据从输入移动到输出的过程中所经受的变换。

  • 数据流图的四种基本符号:
  • 加工中常见关系的符号表示:
  • 注意:
    • 信息的流动
    • 信息流不能为动词
    • 实体到实体的信息流动
    • 处理要有输入输出
    • 处理名不能为名词
    • 确保层间的一致性(确保输入输出流的量是一致的)
  • 命名:

    • 数据流的名字应代表整个数据流(数据存储、处理)的内容,而不是仅仅某些成分。
    • 不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)。
    • 处理名字最好是一个具体的及物动词。
  • 示例:出入库管理系统

    • 0级数据流图
    • 1级数据流图
    • 2级数据流图

数据字典 (master)

  • 数据字典是关于数据的信息的集合,即对设计图中包含的元素的定义。
  • 数据字典的用途是供人查阅不了解的条目的解释,提供分析设计过程中关于数据的描述。
  • 只有设计图和对应的元素的精确定义放在一起,才能构成系统完整的规格说明。
  • 定义数据的方法

    • = : 意思是等价于(或定义为);
    • + : 意思是和(即,连接两个分量);
    • [] : 意思是或(即,从方括弧内列出的若干个分量中选择一个),用“|”号分开供选择的分量;
    • {} : 意思是重复(即,重复花括弧内的分量);
    • () : 意思是可选(即,圆括弧里的分量可有可无);
    • 使用上限和下限进一步注释表示重复的花括弧。
      • 左边用上角标和下角标分别表明重复的上限和下限
      • 左侧标明重复的下限,在闭括弧的右侧标明上限
      • 例如:
  • 举个栗子:

    • 北京某高校可用的电话号码有以下几类:校内电话号码由4 位数字组成,第1位
      数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电
      话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8
      位电话号码
      (第1位不是0)。请用上述提到的定义数据的方法,定义上述的电话号码。
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      电话号码 = [ 校内电话号码 | 校外电话号码 ]
      校内电话号码 = 非零数字 + 3位数字
      校外电话号码 = [ 本市电话号码 | 外地电话号码]
      本市电话号码 = 数字零 + 8位数字
      外地电话号码 = 数字零 + 3位数字 + 8位数字
      非零数字 = [1|2|3|4|5|6|7|8|9]
      3位数字 = 3{数字}3
      数字零 = 0
      8位数字 = 非零数字 + 7位数字
      7位数字 = 7{数字}7
      数字 = [0|1|2|3|4|5|6|7|8|9]
  • 数字字典的实现

    • CASE工具
    • 人工卡片

成本效益分析(了解)

成本/效益分析是客户从经济角度判断是否继续投资项目的主要依据。

  • 成本估计

    • 代码行技术
    • 任务分解技术
  • 效益分析

    • 货币的时间价值
    • 投资回报期
    • 纯收入
    • 投资回报率(最重要的参考数据)
坚持原创技术分享,您的支持将鼓励我继续创作!