Contents
  1. 1. 第一章 软件工程概述
    1. 1.0.1. 1. 软件生命周期
    2. 1.0.2. 2. 软件生存期模型
      1. 1.0.2.1. (1) 瀑布模型
      2. 1.0.2.2. (2)(快速)原型模型
      3. 1.0.2.3. (3)增量模型
      4. 1.0.2.4. (4) 螺旋模型
    3. 1.0.3. 3. 软件危机
      1. 1.0.3.0.1. (1)软件危机的表现
      2. 1.0.3.0.2. (2)软件危机的原因
  2. 1.0.4. 4. 软件工程的概念
  • 2. 第二章 可行性研究
    1. 2.0.1. 1. 可行性研究的任务
    2. 2.0.2. 2. 成本/效益分析
    3. 2.0.3. 3. 系统流程图举例
    4. 2.0.4. 4. 例题:
    5. 2.0.5. 5. 数据字典
    6. 2.0.6. 6. 数据流图考题
      1. 2.0.6.1. 1. 顶层
      2. 2.0.6.2. 2. 中间层
      3. 2.0.6.3. 3. 底层
    7. 2.0.7. 7. 数据字典考题
  • 3. 第三章 需求分析
    1. 3.0.1. 1. 用户需求分类
    2. 3.0.2. 2. 用户需求的内容
    3. 3.0.3. 3. 教学ER图
    4. 3.0.4. 4. 加工条目
    5. 3.0.5. 5. IPO 图
  • 第一章 软件工程概述

    1. 软件生命周期

    软件有一个孕育,诞生,成长,成熟,衰亡的生存过程。这个过程为计算机软件的生存期。
    软件生命周期分为三个阶段:

    1. 计划时期
      • 问题定义(问题是什么)
      • 可行性研究(有可行的解)
    2. 开发时期
      • 需求分析 (功能)
      • 概要设计 (如何解决问题)
      • 详细设计 (怎样实现)
      • 编码和测试阶段
    3. 运行时期
      • 主要是在运行中完成各类维护

    2. 软件生存期模型

    软件生存期模型是跨越整个生存期的系统开发,运作和维护所实施的全部过程、活动和任务的结构框架

    (1) 瀑布模型

    特点:

    • 阶段间具有顺序性和依赖性
    • 推迟实现的观点
    • 质量保证的观点

    (2)(快速)原型模型

    特点:

    • 快速建立一个能反映用户需求的原型系统
    • 快速原型模型不带反馈环,产品开发基本上是线性顺序进行的

    (3)增量模型

    特点:

    • 与瀑布模型和原型模型不同(目标在一次就把一个满足是所有需求的产品提交给用户),分批逐步向用户提交产品
    • 逐步增加产品功能可以使用户有充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户带来的冲击

    (4) 螺旋模型

    特点:

    • 使用原型及其他方法来尽量降低风险,在每个阶段之前都增加了风险分析过程的快速原型模型
    • 适用于内部开发的大规模软件项目中
    • 是风险驱动的(是优点也是弱点)

    比较
    |模型 | 优点 | 缺点 |
    |–|–|–|
    | 瀑布模型 | 文档驱动 | 系统可能不满足需求|
    | 原型模型 | 关注满足需求 | 系统设计差,难于维护 |
    | 增量模型 | 及时反馈,易于维护 | 需要开放式结构,设计差 |
    | 螺旋模型 | 风险驱动 | 风险分析人员需要经验和训练|
    | 面向对象模型 | 工具丰富,自动化程度高 | 对开发人员要求较高|

    3. 软件危机

    • 软件超出预算,落后于进度表,不可靠
    • 在计算机软件的开发和维护过程中所遇到的一系列严重问题
    (1)软件危机的表现
    1. 软件开发和维护费用急剧上升
    2. 不重视文档资料
    3. 软件产品的质量不可靠
    4. 软件产品成本高于硬件产品
    5. 供需失配
      (2)软件危机的原因
    • 与软件本身的特点有关
    • 与软件开发和维护的方法不正确
      1. 忽视软件开发前期的需求分析
      2. 开发过程中没有统一、规范方法的指导
      3. 文档资料不全
      4. 忽视人与人的交流
      5. 忽视测试工作,提交给用户的软件质量差
      6. 忽视软件的维护

        4. 软件工程的概念

        基本思想是在软件开发过程中应用工程化原则,解决软件的整体质量低,最后期限和费用没有保证等问题

    第二章 可行性研究

    1. 可行性研究的任务

    了解客户的要求及现实环境,论证软件项目的可行性,编写可行性研究报告,指定初步项目开发计划

    • 技术可行性
      研究内容:
      对待开发项目的功能,性能和限制条件进行分析,确定在现有的资源条件下,项目能否实现,开发风险有多大
      考虑的问题:
      1. 开发风险
      2. 资源可用性
      3. 技术
    • 经济可行性
      研究内容:
      对项目的开发成本和预期收益进行评估,确定该项目是否值得去投资开发
      研究范围
      1. 成本–效益分析
      2. 公司长期的经营策略
      3. 开发所需要的成本和资源
      4. 潜在的市场前景
        考虑的问题:
      5. 开发成本的估算
      6. 开发效益的估算
      7. 运行成本的估算
      8. 运行效益的估算
    • 社会可行性
      研究内容:
      1. 开发项目是否存在违反法律
      2. 开发项目在用户组织内是否行得通
      3. 现有的管理体制,人员素养和操作方式是否可行
        同时可分为
    1. 操作可行性
    2. 法律可行性

    2. 成本/效益分析

    从经济指标对新系统的投资/获益情况进行评估,以便从经济角度判断该系统是否值得投资。

    1. 货币的时间价值
      采用利率的形式表示货币的时间价值
      货币的时间价值
    • i 为年利率
    • p 表示为存入的钱
    • n 表示年份
    1. 投资回收期
      积累的经济效益==最初投资所需要的时间
    2. 纯收入
      在整个软件的生存期内系统的累计经济效益与投资的差

    3. 系统流程图举例

    系统流程图

    4. 例题:

    例题

    5. 数据字典

    关于数据流程图中出现的所有名字(数据流,处理,数据存储)的定义的集合
    组成:

    1. 数据流条目
    2. 数据存储条目
    3. 处理条目
      用途:
    • 作为分析阶段的工具,与数据流图共同来完整的描述一个系统。(数据流图只是描述了系统的逻辑模型,但是没有给出数据及各个加工处理过程的具体含义,数据字典相当于是有益的补充)
    • 开发数据库的基础

    组成:
    名字,别名,描述,定义,位置

    6. 数据流图考题

    数据流图基本框架:
    在这里插入图片描述

    例题:
    在这里插入图片描述

    1. 顶层

    在这里插入图片描述

    2. 中间层

    在这里插入图片描述

    3. 底层

    在这里插入图片描述

    7. 数据字典考题

    在这里插入图片描述
    写出这个发票的数据流条目:
    在这里插入图片描述

    在这里插入图片描述

    第三章 需求分析

    1. 用户需求分类

    1. 功能性需求:定义了系统做什么
    2. 非功能性需求:定义了系统工作时的特性

    2. 用户需求的内容

    在这里插入图片描述

    3. 教学ER图

    教学ER图

    4. 加工条目

    加工类条目及数据处理描述(或称为小说明),描述实现加工的策略而不是加工的细节。
    注意:
    小说明:可认为是DD的组成部分,也可以在DD中定义只说明每个加工的组成(比如每个处理分解成多少个处理),而在小说明中详细描述它的处理逻辑。
    对于基本处理过程给出加工逻辑,也包括一些与加工有关的信息,如执行条件,优先级,出错处理等
    加工逻辑描述工具(重点)

    1. 结构化语言
      介于自然语言和形式语言之间
      特点:
      无确定语法,可分层,嵌套,各层有内外层之分等特点
    2. 判定表描述
    3. 判定输描述

    例题:
    在这里插入图片描述
    在这里插入图片描述

    5. IPO 图

    IPO

    Contents
    1. 1. 第一章 软件工程概述
      1. 1.0.1. 1. 软件生命周期
      2. 1.0.2. 2. 软件生存期模型
        1. 1.0.2.1. (1) 瀑布模型
        2. 1.0.2.2. (2)(快速)原型模型
        3. 1.0.2.3. (3)增量模型
        4. 1.0.2.4. (4) 螺旋模型
      3. 1.0.3. 3. 软件危机
        1. 1.0.3.0.1. (1)软件危机的表现
        2. 1.0.3.0.2. (2)软件危机的原因
    2. 1.0.4. 4. 软件工程的概念
  • 2. 第二章 可行性研究
    1. 2.0.1. 1. 可行性研究的任务
    2. 2.0.2. 2. 成本/效益分析
    3. 2.0.3. 3. 系统流程图举例
    4. 2.0.4. 4. 例题:
    5. 2.0.5. 5. 数据字典
    6. 2.0.6. 6. 数据流图考题
      1. 2.0.6.1. 1. 顶层
      2. 2.0.6.2. 2. 中间层
      3. 2.0.6.3. 3. 底层
    7. 2.0.7. 7. 数据字典考题
  • 3. 第三章 需求分析
    1. 3.0.1. 1. 用户需求分类
    2. 3.0.2. 2. 用户需求的内容
    3. 3.0.3. 3. 教学ER图
    4. 3.0.4. 4. 加工条目
    5. 3.0.5. 5. IPO 图