期末复习 软件工程背诵版

大家觉得写还可以,可以点赞、收藏、关注一下吧!
也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn


概述

软件与软件危机

  1. 在这里插入图片描述
  2. 在这里插入图片描述
  3. 软件工程来源于软件危机

  4. 在这里插入图片描述

软件生命周期

  1. 在这里插入图片描述

软件开发模型

瀑布模型

在这里插入图片描述
  1. 特点
    在这里插入图片描述

  2. 在这里插入图片描述

  3. 缺点:在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整,缺乏灵活性。

快速原型模型

在这里插入图片描述
  1. 快速建立可运行的程序,他完成的功能往往是最终产品功能的一个子集
  2. 在这里插入图片描述

增量模型

在这里插入图片描述
在这里插入图片描述

螺旋模型

  1. 在这里插入图片描述
  2. 在这里插入图片描述

可行性研究

目的

  1. 目的:可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决
  2. 实质:在这里插入图片描述
  3. 四个主要方面的可行性
    1. 经济可行性
    2. 技术可行性
    3. 操作可行性
    4. 法律可行性

可行性研究的步骤

  1. 复查并确定系统规模和目标
  2. 研究正在使用的系统
  3. 建立新系统高层逻辑模型
  4. 导出和评价各种方案
  5. 推荐可行性方案
  6. 草拟初步等到开发计划
  7. 编写可行性研究报告提交审查

系统流程图

  1. 定义在这里插入图片描述
  2. 常用符号
    在这里插入图片描述

成本-效益分析

  1. 目的:是从经济角度评价开发一个新的软件项目是否可行,帮助使用部门正确做出是否投资的决定
  2. 系统成本
    1. 开发成本
    2. 运行维护成本
  3. 系统效益
    1. 有形的经济效益
    2. 无形的社会效益
  4. 成本估计
    1. 代码行技术
    2. 任务分解技术
  5. 成本/效益分析的方法
    1. 货币的时间价值:F = P(1+i)
    2. 投资回收期
    3. 纯收入
    4. 投资回收率

软件需求分析

需求分析任务

  1. 确定对系统的综合要求
    1. 功能需求
    2. 性能需求
    3. 可靠性和可用性需求
    4. 出错处理需求
    5. 接口需求
    6. 约束
    7. 逆向需求
    8. 将来可能提出要求
  2. 分析系统的数据要求
  3. 建立软件的逻辑模型
  4. 编写软件需求规格说明书
  5. 需求分析评审

需求分析的步骤

  1. 需求获取:调查研究
  2. 需求提炼:分析建模
  3. 需求描述:编写SRS
  4. 需求验证

获取需求的常用方法

  1. 客户访谈
  2. 建立联合分析小组
  3. 问题分析与确认

需求验证

  1. 一致性:保证需求之间不能相互矛盾
  2. 完整性:能够描述用户需要的每一个功能或者性能
  3. 现实性:通过现有软件、硬件技术能够实现所定义的需求
  4. 有效性:证明确实能够解决用户面对的问题

分析建模

在这里插入图片描述

实体联系图

即ER图

状态转换图

在这里插入图片描述

层次方框图

在这里插入图片描述

维纳图

在这里插入图片描述

IPO图

在这里插入图片描述

数据流图

  1. 定义在这里插入图片描述
  2. 常用符号在这里插入图片描述

数据字典

  1. 定义:是关于数据的信息集合,即对数据流图中包含的所有元素定义的集合
  2. 内容:数据流、数据流分量(数据元素)、数据存储、处理
  3. 定义数据的方法:
    1. 由数据元素组成数据的方式:顺序、选择、重复、可选
    2. 在这里插入图片描述
  4. 用途:在软件分析和设计的过程中给人提供关于数据的描述信息
    1. 作为分析阶段的工具
    2. 估计改变一个数据将产生的影响
    3. 是数据库开发的第一步

判定表

在这里插入图片描述
通常由四部分组成。

  • 条件列表:所有相关条件
  • 动作列表:操作的定义。
  • 条件组合:各条件的取值组合。
  • 对应的动作:在各条件取值组合下所执行的操作。

示例
“职务津贴计算”判定表
在这里插入图片描述

判定树

  • 判定树是判定表的图形表示
  • 与判定表的作用大致相同,但比判定表更加直观,易于理解和掌握。
  • 示例
  • 在这里插入图片描述

软件总体设计

数据库设计

  1. 从实用角度看,数据规范化在大多数场合选用第3范式

软件详细设计

任务和目的

  1. 根本目的:确定应该怎样具体实现所要求的系统
  2. 任务:设计出程序的“蓝图”,程序员根据这个蓝图进行编码

详细设计工具

程序流程图

盒图(N-S图)

基本控制结构:

  1. 顺序
  2. 选择
  3. 循环

缺点:

  1. 过早考虑控制流程而不去考虑程序的整体结构
  2. 容易造成非结构化的程序结构
  3. 不易表示数据结构和层次结构

问题分析图(PAD图)

过程设计语言(PDL)

面向对象的方法学

面向对象模型

用面向对象方法开发软件,通常需要建立
对象模型、动态模型和功能模型三种模型。

  • 对象模型:描述系统的数据结构,是目标系统中最关键、最基本、最核心的模型;
  • 动态模型:描述系统的控制结构;
  • 功能模型:描述系统的功能。

习题

  1. 完整的软件结构通常用HIPO图来表示
  2. 白盒法技术设计中,语句是最弱的覆盖标准
  3. 软件开发中常采用结构化生命周期方法,由于其特征而一般称其为瀑布模型
  4. 程序的三种基本控制结构的共同特点是:只能有一个出口和一个入口
  5. 软件测试过程中的确认测试主要是为了发现需求分析阶段的错误
  6. 软件维护工作最主要的部分是完善性维护
  7. 软件生命周期中所花费最多的阶段是软件维护阶段
  8. 详细设计的基本任务是确定每个模块的算法设计
  9. 结构化分析方法是面向数据流进行需求分析的方法。结构化分析方法使用数据流图DFD和数据字典DD来描述。
  10. 大型软件测试包括单元测试、集成测试、确认测试、系统测试四个步骤。
  11. 在这里插入图片描述
  12. 数据流图的基本四种成分:源点和终点、加工、数据流、数据存储文件。

END

该文档用于期末复习!不作系统阐述!

2021年7月5日更

大家觉得写还可以,可以点赞、收藏、关注一下吧!
也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn


猜你喜欢

转载自blog.csdn.net/CrazyMooo/article/details/118462756