软件工程复习(4——6章)

软件需求分析

软件生存周期由三个时期组成:软件定义、软件开发和软件维护
软件定义分为三个阶段:问题定义、可行性研究和需求分析阶段。

4.1需求分析

**基本任务:**回答“系统必须做什么”
结束: 提交详细的 数据流图、数据字典和算法描述
特点:

  1. 需求易变性
  2. 问题复杂性
  3. 交流障碍
  4. 不完备性和不一致性

原则:

  1. 可以把一个复杂问题按功能进行分解并可逐层细化。
  2. 必须能够表达和理解问题的数据域和功能域。
  3. 建立模型

任务
建立系统逻辑模型并撰写软件规格说明
1、问题明确定义

  1. 功能需求
  2. 性能需求
  3. 环境需求
  4. 用户界面需求
  5. 系统的可靠性、安全性、可移植性和可维护性等方面的需求。

2、导出软件的逻辑模型

3、编写文档

需求分析方法

  1. 功能分解方法
    功能分解=功能+子功能+功能接口
  2. 结构化分析方法
    结构化分析=数据流+数据处理(加工)+数据存储+端点+处理说明+数据字典
  3. 信息建模方法
    信息建模=实体(对象)+属性+关系+父类型/子类型+关联对象
  4. 面向对象的分析
    面向对象=对象、类+结构与连接+继承+封装+消息通信

4.2结构化(SA)分析

基本思想: 指导思想是 自顶向上和逐步求精 基本原则是 抽象与分解

特点

  1. 最早的开发方法,使用时间也最长
  2. 它应用最广,特别适合数据处理
  3. 相应的支持工具多,发展较为成熟

优点
(1)简单、实用。
(2)适合于瀑布模型。
(3)成功率较高。
(4)特别适合于数据处理领域中的应用。

存在问题

  1. 对于规模大的项目、特别复杂的应用不太适应。
  2. 难以解决软件重用的问题。
  3. 难以适应需求的变化。
  4. 难以解决维护问题。

步骤
1、建立物理模型
2、抽象出现系统的逻辑模型
3、建立目标系统的逻辑模型
4、进一步补充和优化

4.3系统流程图

描绘系统物理模型

4.4数据流图(Data Flow Diagram,DFD)

数据流图是结构化分析最基本的工具。
表达系统内部数据运行情况的基本工具
数据流图反映系统 “做什么”
每个加工至少有 一个输出流及一个输入流
顶层数据流图主要描述系统的输入与输出

基本图形符号

  1. 数据流(有名字有方向)
  2. 加工(至少需要 一个输出流及一个输入流
  3. 数据存储
  4. 数据源点和终点

画数据流图

  1. 画系统的输入/输出
  2. 画系统内部

4.5数据字典(Data Dictionary,DD)

数据字典是关于数据的信息得集合,是对数据流图中包含所有元素的定义的集合。
数据流图定义了数据流图中的数据的加工。

5总体设计

5.1重要地位:

软件设计处于软件工程过程中的技术核心地位

5.2设计过程:

软件设计是一个把需求转化为软件表达式的过程。
着重在 开发模块化程序模块 所需要的准则,以及按照 自顶向下 的方式逐步细化软件体系结构上。接着设计定义过程方面逐渐发展成为一种叫做结构化编程 的原则。

5.3软件总体设计
需求分析阶段 所形成的 数据流图 是软件总体设计的基础。
软件总体设计的概要是回答系统应该如何实现
任务:

  1. 软件系统结构设计
  2. 数据结构及数据库设计(E-R模型)
  3. 网络系统设计(制定网络拓扑图——集中式、分布式等)
  4. 软件总体设计文档
  5. 评审

设计基本原理

  1. 抽象——过程抽象和数据抽象

  2. 细化 逐步细化是自顶向下的策略

  3. 模块化(所有的软件结构设计技术都是以模块化为基础的)
    基本属性
    1、接口
    2、功能
    3、逻辑
    4、状态

  4. 软件体系结构
    (1)过程构件(模块)的层次结构
    (2 )数据结构

  5. 程序结构

  6. 数据结构

  7. 软件过程

体系结构设计

三部分:过程构件、连接构件、数据构件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值