软件工程期末复习汇总(非常详细)

期末复习

文章目录

  • 期末复习
    • 第1章 概论
      • 软件过程模型
        • 瀑布模型
        • 演化模型
          • 增量模型
          • 原型模型
          • 螺旋模型
        • 喷泉模型
        • 基于构件的开发模型
        • 形式方法模型
    • 第2章 系统工程
      • 可行性分析
        • 经济可行性
        • 技术可行性
        • 法律可行性
    • 第3章 需求工程
      • 需求获取
        • 软件需求包括
        • 获取需求的方法与策略
        • 需求分析、协商与建模
        • 需求规约与验证
        • 需求管理
    • 第4章 设计工程
      • 软件设计的任务
      • 软件设计原则
        • 抽象与逐步求精
        • 模块化
        • 信息隐藏
        • 功能独立
      • 软件体系结构设计
        • 软件体系结构的风格
      • 部件级设计技术
        • 结构化程序设计方法
        • 图形表示法
          • 程序流程图
          • N-S图
          • PAD
    • 第5章 结构化分析与设计
      • 数据流图(重点!)
        • 数据流图的图形表示
          • 源与宿
          • 加工与文件
          • 数据流
        • 数据流图的扩充符
        • 数据流图的层次结构
          • 数据流图的层次结构
          • 图和加工的编
        • 分层数据流图的画法
          • 1. 画出系统的输入与输出
          • 2. 画出系统内部
          • 3. 画出加工内部
        • 总结:画分层数据流图的步骤
        • 个人画法总结
        • 示例1 考务处理系统
        • 示例2 课程评价系统
        • 示例3 销售管理系统
      • 数据字典
        • 示例
          • 数据字典
          • 加工小说明
    • 第7章 面向对象方法基础
      • 面向对象的基本概念
      • 面向对象的分析和设计过程
      • UML概述
    • 第8章 面向对象建模
      • 用况建模
        • 示例1
        • 示例2
        • 示例3
      • 静态建模
        • 类图和对象图
          • 类之间的关系
            • 关联
            • 聚类、组合
            • 泛化
            • 实现
            • 依赖
          • 静态建模步骤
            • 标识候选对象
            • 筛选候选对象
            • 标识属性和操作
            • 确定类之间的关系
        • 示例1
        • 示例2
      • 动态建模
        • 状态机图
          • 画状态机图的步骤
          • 示例1
          • 示例2
          • 示例3
        • 活动图
          • 示例1
          • 示例2
        • 顺序图
          • 示例1
    • 第12章 程序设计语言和编码
      • 程序设计风格
    • 第13章 软件测试
      • 软件测试基础
        • 软件测试的目的
        • 软件测试的基本原则
        • 白盒测试和黑盒测试
      • 白盒测试
        • 逻辑覆盖测试
        • 示例1
        • 示例2
        • 示例3
      • 黑盒测试
        • 等价类划分
        • 示例1
        • 示例2
      • 测试策略
        • V模型
        • 单元测试
        • 集成测试
    • 第15章软件维护与再工程
        • V模型
        • 单元测试
        • 集成测试
    • 第15章软件维护与再工程

第1章 概论

软件的定义
软件危机的定义:在计算机软件开发和维护过程中所遇到的一系列严重问题 特点:
软件生存周期:

软件过程模型

瀑布模型

每个线性序列产生软件的一个可发布的,后一个版本是对前一版本的修改和补充

增量模型融合了的和的。

增量模型特别适用于:

  • 需求经常变化的软件开发。
  • 市场急需而开发人员和资金不能在设定的市场期限之前实现一个完善的产品的软件开发。

增量模型能有计划地管理技术风险,如早期增量版本中避免采用尚未成熟的技术。

原型模型

原型方法从软件工程师与客户的交流开始,其目的是定义软件的总体目标,标识需求。然后快速制订原型开发的计划,确定原型的目标和范围,采用快速设计的方式对其建模,并构建原型。

被开发的原型应交付给客户试用,并,这些反馈意见可在。在前一个原型需要改进,或者需要扩展其范围的时候,进入下一轮原型的迭代开发。

螺旋模型指引的软件项目开发沿着螺线,每旋转一圈,表示开发出一个的新软件版本。

喷泉模型

  • 访谈与调查

  • 观察用户操作流程

  • 组成联合小组

  • 用况(Use Case)

    是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用来获取需求的技术。,该场景说明了系统是如何和最终用户或其它系统互动,也就是谁可以用系统做什么,从而获得一个明确的业务目标。

    • 确定谁会直接使用该系统,即(Actor) 。
    • 选取其中一个执行者 。
    • 定义该执行者希望系统做什么,1
    • 对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程 。
    • 描述该用况的基本过程。

    • 数据/类设计
    • 体系结构设计
    • 接口设计
    • 部件级设计

    软件设计原则

    抽象与逐步求精

    模块化

    信息隐藏

    功能独立

    内聚:

    软件体系结构设计

    软件体系结构的风格

    • 数据为中心的体系结构
    • 数据流风格的体系结构
    • 调用和返回风格的体系结构
    • 面向对象风格的体系结构
    • 层次式风格的体系结构

    部件级设计技术

    结构化程序设计方法

    图形表示法

    程序流程图

    PAD

    实体-关系图

    数据流图

    数据流图的图形表示

    源与宿

    存在于软件系统之外的人员或组织,表示软件系统和,因此也称为和。

    • 例如,对一个考务处理系统而言:
      考生向系统提供 名单(输入数据流),所以考生是考试系统(软件)的一个
      考务处理系统要将考试成绩的统计分析表(输出数据流)传递给考试中心,所以考试中心是该系统的一个宿

    • 源或宿用相同的图形符 表示:
      当数据流从该符 流出时表示是源。
      当数据流流向该符 时表示是宿。
      当两者皆有时表示既是源又是宿。

    加工与文件
    • 加工:描述:
      每个加工用一个定义明确的名字标识。
      至少有一个输入数据流和一个输出流。
      可以有多个输入数据流和多个输出数据流。

    • 文件:。
      每个文件用一个定义明确的名字标识。
      由加工进行读写。
      DFD中称为文件,在具体实现时可以用文件系统实现,也可以用数据库系统实现

    数据流
    • 每个数据流用由,并拥有一个定义明确的名字标识。
      如:运动会管理系统中, 名单(数据流)由队名、姓名、性别、参赛项目等数据组成

    • 数据流的流向:
      从一个加工流向另一个加工。
      从加工流向文件(写文件)。
      从文件流向加工(读文件)。
      从源流向加工。
      从加工流向宿。

    数据流图的扩充符

    描述一个加工的多个数据流之间的关系:

    • 星 ():表示数据流之间存在“”关系。
      所有输入数据流同时存在时,才能进行加工处理。
      或者加工处理的结果是同时产生所有输出数据流。

    • 加 ():表示数据流之间存在“”关系。
      至少存在一个输入数据流时,才能进行加工处理。
      或者加工处理的结果至少产生一个输出数据流。

    • 异或():表示数据流之间存在“异或”()关系。
      必须存在且仅存在一个输入数据流时,才能进行加工处理。
      或者加工处理的结果产生且仅产生一个输出数据流。

    数据流图的层次结构

    根据逐层分解的思想将数据流图画成层次结构。
    每个层次画在独立的数据流图中,可大致控制在“”的范围中。

    数据流图的层次结构
    • 只有代表整个软件系统的,描述了之间的数据流。P73图5.5
    • 顶层图中的后的图称为(只有1张)。P75图5.8
    • 中间层图中至少有一个加工(也可以有多个)在下层图中分解成一张子图。
    • 处于最底层的图称为,其中所有的加工不再分解成新的子图。
    图和加工的编
    • 只有一个代表整个软件系统的,该加工。
    • 中的分别为。
    • :若分解成某一子图,则该。
    • 子图中加工的编 :若的,则。P76图5.9和图5.10

    分层数据流图的画法

    示例——资格和水平考试的考务处理系统

    • 简化的资格和水平考试的考务处理系统。
    • 分成多个级别,如初级程序员、程序员、高级程序员、系统分析员等,凡满足一定条件的考生都可参加某一级别的考试。
    • 考试的合格标准将根据每年的考试成绩由考试中心确定。
    • 考试的阅卷由阅卷站进行,因此,阅卷工作不包含在软件系统中。

    功能需求

    1. 对考生送来的 名单进行检查。
    2. 对合格的 名单编好准考证 后将准考证送给考生,并将汇总后的考生名单送给阅卷站。
    3. 对阅卷站送来的成绩清单进行检查,并根据考试中心制订的合格标准审定合格者。
    4. 制作考生通知单送给考生。
    5. 进行成绩分类统计(按地区、年龄、文化程度、职业、考试级别等分类)和试题难度分析,产生统计分析表。

    部分数据流的组成

    • 名单=地区+序 +姓名+文化程度+职业+考试级别+通信地址。
    • 正式 名单=准考证 + 名单。
    • 准考证=地区+序 +姓名+准考证 +考试级别+考场。
    • 考生名单={准考证 +考试级别}。
    • 考生名册=正式 名单。
    • 统计分析表=分类统计表+难度分析表。
    • 考生通知单=准考证 +姓名+通信地址+考试级别+考试成绩+合格标志。
    1. 画出系统的输入与输出
    1. :考生、阅卷站和考试中心。

      • 它们都既是源又是宿
    2. 顶层图:软件系统(考务处理系统)。

    3. 确定:系统的输入/输出信息:

      • 输入数据流2: 名单(来自考生)、成绩清单(来自阅卷站)、合格标准(来自考试中心)。

      • 输出数据流:准考证(送往考生)、考生名单(送往阅卷站)、考生通知书(送往考生)、统计分析表(送往考试中心)。

      • 额外的输出流(考虑系统的健壮性)3:不合格 名单(返回给考生),错误成绩清单(返回给阅卷站)。

    4. 顶层图通常没有。

    • 在父图中某加工分解而成的子图中,父图中相应加工的输入/输出数据流都是且仅是子图边界上的输入/输出数据流

    • 分解后的子加工之间应增添相应的新数据流表示加工过程中的。如:图5.8中考试 名与统计成绩间。

    • 如果某些中间数据需要保存以备后用,那么可以成为。如:图5.8中“考生名册”。

    • 同一个源或加工可以有多个数据流流向一个加工,如果它们不是一起到达和一起加工的,那么可以将它们分成若干个数据流,例如:

      注意:这里的加工进行功能的分类,之后,最后

  • 3. 画出加工内部
    • 复杂的加工可以继续分解成1张DFD子图。
    • 分解方法:
      • 将该,该加工的输入/输出数据流就是这个假设的小系统的输入/输出数据流
      • 然后,画出该加工的子图

    总结:画分层数据流图的步骤

    1. 画系统的输入和输出。

    2. 画系统内部。

    3. 画加工内部。

    4. 重复第3步,直至每个尚未分解的加工都足够简单(即不必再分解)。

    个人画法总结

    1. 识别、、进而画出
    2. 系统(加工)、、源与宿不用画出来文件可以画出,画出0层图
    3. 加工细分小加工,继承父图的数据流,画出子图
    4. 注意命名规范、源宿为了便于展示观看可以画出相同的多个

    示例1 考务处理系统

    示例2 课程评价系统

    数据字典

    数据流图与数据字典是密不可分的,两者结合起来构成软件的逻辑模型(分析模型)。
    数据字典由字典条目组成,每个条目描述DFD中的一个元素
    数据字典条目包括:。
    加工逻辑的详细说明可以用“小说明”来描述。

    面向对象的分析和设计过程

    面向对象分析的一般步骤如下:

    • 用况建模):包括标识场景(scenario)和用况(use case,也称用例),以及建造需求模型。

      • 分析出
    • 用基本的需求为指南,来(静态建模)(包括属性和操作)。

      • 类的结构主要有两种:1、 2、

      • 动态建模)。

      • 利用用况/场景来复审分析模型。

      UML概述

      基本概念:

      1. 每个是整个系统描述的一个投影,说明了系统的一个特殊侧面。
      2. 若干个不同的视图就可以完整描述所建造的系统。
      3. 视图是由若干幅组成的一种抽象。
      4. 一幅图包含了系统某个特殊方面的信息,阐明了系统的一个特定部分或方面。
      5. 一幅图由若干个组成,模型元素表示图中的概念,如:等。
      6. 用于表示模型元素之间相互连接的关系也是模型元素,如:等。

      第8章 面向对象建模

      用况建模

      创建用况模型的步骤包括

      • 1.定义系统
        • 用况图中的****
      • 2.

        • 执行者代表一种角色,而不是具体的某个人 。
          执行者可分成主执行者和副执行者
      • 3.
        • 用况总是被的(initiated),用况是一个,而不是,(scenario)
      • 4.描述用况
      • 5.
      • 6.确认模型

      示例1

      /p>

      4. 针对登录用况给出执行规约如下:

      用况名 登录
      用况描述 学生(管理员)输入用户名(邮箱)和密码进行登录
      系统返回登录的结果
      执行者 学生或者管理员
      基本路径
      (用户行为左
      对齐,系统动作
      向右缩进)
      提交登录请求
      展示登录界面
      填写登录的信息(邮箱,密码等);
      if 信息不符合填写的基本要求 then
      要求用户重新输入;
      else
      等待用户确认登录;
      end if;
      确认登录;
      获取用户名、密码;
      根据用户名查询数据库;
      if 无法查到用户名 then
      返回用户不存在;
      else
      比较查到的密码与输入是否相符;
      if 密码相符 then
      返回登录成功;
      else
      返回密码错误;
      end if
      end if;
      接收反馈信息,查看是否登录成功

      示例3

      声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年6月1日
    下一篇 2022年6月1日

    相关推荐