软件工程(1)

目录

第一章 软件工程概论

1. 软件危机的概念、产生原因、解决途径;

2. 软件工程的概念、基本原理;

3. 软件生命周期;

4. 主要的软件过程模型:瀑布模型、快速原型模型。

4.1 瀑布模型

4.2 快速原理模型:

第二章 可行性研究

1. 可行性研究的任务、可行性研究过程;

1. 1可行性研究的任务

 1.2 可行性研究过程

2. 数据流图的概念及相关符号;

 2.1 数据流图命名

2.2 处理命名

2.3 数据源点/终点

3. 数据字典定义方法

3.1 数据流的描述

3.2 数据元素描述

3.3 数据存储的描述

3.4 处理描述

4. 数据字典定义

定义符号

第三章 需求分析

1. 状态图的符号,需求验证的内容。

1.1 状态:被观察到的系统行为模式。

1.2 事件:引起状态转换的外界事件抽象。

1.3 行为:进入某状态所作动作

第四章 总体设计

1. 模块化

2. 抽象

3. 求精

4. 信息隐藏

5. 模块独立

6. 理解5种模块耦合形式

6.1 非直接耦合

6.2 数据耦合

6.3 特征耦合(控制耦合)

6.4 公共耦合

6.5 内容耦合

7. 理解7中模块内聚形式

7.1 功能内聚      

7.2 顺序内聚      

7.3 通信内聚       

7.4 过程内聚

7.5 时间内聚 

7.6 逻辑内聚

7.7 偶然内聚

8. 模块设计的启发式规则及相关概念

8.1 改进软件结构提高模块独立性    

8.2 模块规模应该适中    

8.3 参数适当(深度、宽度、扇出和扇入应适当)

8.4 模块作用域应在控制域内    

8.5 降低模块接口复杂程度    

8.6 设计单入口、单出口模块

8.7 模块功能可预测

第五章 详细设计(过程设计)

1. 过程设计任务

2. 结构化程序设计

3. 结构化程序设计工具    

3.1 程序流程图

3.2 N-S图(盒图)

3.3 PAD图

3.4 判定表

3.5 判定树

3.6 过程设计语言(PDL)

4. 程序复杂度

4.1 流图

4.2 计算流图的环形复杂度

第六章 系统实现与测试

1. 理解良好的编程风格应遵循的规则

2. 软件测试的定义

3. 软件测试准则

4. 测试步骤

4.1 单元测试

4.2 集成测试

4.3 系统测试

4.4 验收测试(确认测试)

5. 软件测试方法-黑盒测试

6. 软件测试方法-白盒测试

7. 白盒测试技术

7.1 逻辑覆盖

8. 控制结构测试

8.1 基本路径测试

8.2 循环测试

(1)简单循环

 (2)嵌套循环

(3)连锁循环 

(4)非结构化循环

9. 黑盒测试技术

9.1 等价类划分

9.2 边界值分析

9.3 错误推测法

10. 测试与调试的区别

10.1 调试步骤

10.2 调试方法   


第一章 软件工程概论

1. 软件危机的概念、产生原因、解决途径;

在计算机软件开发和维护过程中遇到的一系列严重问题。

(1)开发成本和进度估计不准

    延迟交付、取消项目

(2)用户对已交付软件不满意

开发人员对用户信息交流不充分,产品不符合用户需求

(3)软件产品质量靠不住

    软件产品保证技术(审查、复审、测试)未坚持不懈应

     用软件开发全过程

(4)软件可维护性差

    开发时未考虑,很多错误难以改正

(5)软件没有适当文档资料

   文档资料应在软件开发过程中产生,保证最新

把系统化、规范化、可度量的途径应用于软件开发、运行和维护过程中;研究其实现途径

2. 软件工程的概念、基本原理;

把系统化、规范化、可度量的途径应用于软件开发、运行和维护过程中;研究其实现途径

软件工程技术

    软件开发方法学

     软件开发过程

     软件工具和软件工程环境

软件工程管理

    软件管理学

     软件经济学

     软件心理学

3. 软件生命周期;

软件从产生、发展到成熟、直至衰亡为止

组成:

  软件定义   软件开发    软件维护

国标《计算机软件开发规范》,分8个阶段:可行性研究与计划,需求分析,总体设计,详细设计,实现(编码和单元测试),集成测试,确认测试,使用和维护

4. 主要的软件过程模型:瀑布模型、快速原型模型。

4.1 瀑布模型

特点:

  1.   1.阶段具有顺序性和依赖性
  2.         前一阶段结束后一阶段开始,前一个阶段输出文档,后一个阶段输入文档。
  3.    2.推迟实现观点
  4.         瀑布模型在编码前设置系统分析、系统设计,推迟程序物理实现,保证前期工作扎实。
  5.   3. 质量保证观点
  6.     瀑布模型每阶段坚持两个重要做法:
  7.     一是每阶段都必须完成完整、准确的文档。软件开发时人员间通信、运行时期维护的重要依据。
  8. 二是每阶段结束前对文档评审。

  • 优点:
  •     提高软件质量,降低维护成本,缓解软件危机。
  • 缺点:
  •     模型缺乏灵活性,无法解决需求不明确问题。用户不经过实践提出完整准确需求不切实际。

传统瀑布模型过于理想化,但人在工作过程中

不可能不犯错误,所以实际瀑布模型带反馈环

4.2 快速原理模型:

  • 优点:
  •       确定需求上优于瀑布模型(通过原型与用户交互);
  • 提供学习手段,通过开发原型和演示原型对开发者和使用者了解系统都有积极作用;
  •       有的软件原型可以成为最终产品的一部分。
  • 缺点:
  •      快速建立的系统结构加连续修改可能导致产品质量低下原型系统的内部结构可能不好。

第二章 可行性研究

【考核内容】

可行性研究的任务、可行性研究过程;数据流图的概念及相关符号;数据字典的概念、内容、定义方法和用途。

【考试要求】

(1)理解软件项目可行性研究的必要性;

(2)掌握数据流图及数据字典的概念及用途。

1. 可行性研究的任务、可行性研究过程;

1. 1可行性研究的任务

 1.2 可行性研究过程

2. 数据流图的概念及相关符号;

正方形(或立方体):表示数据的源点或终点 人员、部门、计算机外部设备或传感器装置

圆角矩形(圆形):代表变换数据的处理;一系列程序、单个程序或程序一个模块;人工处理过程。

开口矩形(两条平行横线):代表数据存储 文件、文件一部分、数据库元素或记录一部分,可存在磁盘、磁带、磁鼓、主存、微缩胶片任何介质上。

箭头:表示数据流,即特定数据的流动方向。在处理之间有向流动的数据项或数据集合。

 2.1 数据流图命名

(1)用名词,区别于控制流。  

(2)代表整个数据流(数据存储)内容,不仅仅 反映某些成分。  

(3)不用缺乏具体含义名字,如“数据”、“信息”。

2.2 处理命名

(1)用动宾词组,避免使用“加工”、“处理”等 笼统动词。  

(2)应反映整个处理的功能,不是一部分功能。  

(3)通常仅包括一个动词,否则分解。

2.3 数据源点/终点

不属于数据流图的核心内容,可能是人员、计算机 外部设备或传感器装置。采用它们在问题域中习惯使 用的名字(如“采购员”、“仓库管理员’等)。

3. 数据字典定义方法

对四类元素定义:数据流、数据元素、数据存储、处理

3.1 数据流的描述

数据流名:    

  • 说明:简要介绍作用即它产生的原因和结果。    
  • 数据流来源:即该数据流来自何方。    
  • 数据流去向:去向何处。    
  • 数据流组成:数据结构。    
  • 每个数据量流通量:数据量、流通量。

3.2 数据元素描述

数据元素名:    

  • 类型:数字(离散值、连续值),文字(编码类型)    
  • 长度:    
  • 取值范围:     相关的数据元素及数据结构:

3.3 数据存储的描述

数据存储名:    

  • 简述:存放的是什么数据。    
  • 输入数据:  
  • 输出数据:    
  • 数据文件组成:数据结构。    
  • 存储方式:顺序,直接,关键码。    
  • 存取频率:

3.4 处理描述

处理名:      

  • 处理编号:反映该处理的层次      
  • 简要描述:加工逻辑及功能简述      
  • 输入数据流:      
  • 输出数据流:      
  • 加工逻辑: 简述加工程序、加工顺序

4. 数据字典定义

定义数据方法:对数据自顶向下分解

由数据元素组成数据的方式:

  • 顺序: 以确定次序连接两个或多个数据元素;
  • 选择: 从两个或多个可能元素中选一个;
  • 重复: 把指定数据元素重复零次或多次;
  • 可选: 一个数据元素可有可无的。

定义符号

 

第三章 需求分析

【考核内容】

需求分析的任务;实体联系图的作用、符号意义;数据规范化三个范式的定义;状态图的符号,需求验证的内容。

【考核要求】

(1)理解软件项目需求分析的内容;

(2)能够根据陈述绘制ER图;

(3)能够根据给定条件能判断一个关系属于第几范式。

1. 状态图的符号,需求验证的内容。

软件的行为模型:状态、事件,行为。

1.1 状态:被观察到的系统行为模式。

1.2 事件:引起状态转换的外界事件抽象。

1.3 行为:进入某状态所作动作

 

第四章 总体设计

【考核内容】

总体设计的概念、设计步骤;模块化的概念、作用,模块化程度与软件开发工作量的关系; Miller法则,模块独立性的重要性,模块耦合及其分类,模块内聚及其分类,模块设计的几条启发式规则及与之相关的概念(深度、宽度、扇出、扇入、作用域);结构图的符号及其意义。

【考核要求】

(1)掌握总体设计的概念与设计步骤;

(2)理解软件总体设计中模块化的作用,模块化程度与软件开发工作量的关系;

(3)掌握Miller法则;

(4)理解5种模块耦合形式:数据耦合、控制耦合、特征耦合、公共耦合、内容耦合;

(5)理解7中模块内聚形式:功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚;

(6)掌握模块设计的启发式规则及相关概念。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值