《软件工程》(三)软件开发

软件生命周期(3个时期)

1.软件定义问题定义阶段——>可行性研究阶段——>需求分析阶段

2.软件开发:总体设计阶段——>详细设计阶段——>编码和单元测试阶段——>综合测试阶段

3.运行维护:改正性维护、适应性维护、完善性维护、预防性维护

设计分为概要设计和详细设计

概要设计:软件需求——>数据结构和软件系统结构 ,即系统的模块划分(不涉及算法)

详细设计:细化每个模块的内部工作,得到详细的数据结构和算法

一、总体设计

1.设计过程

1.1 总体设计过程分为两个阶段:

系统设计阶段:确定系统的具体实现方案

结构设计阶段:确定软件结构

2.设计原理

2.1模块化:每个模块完成一个子功能

2.2抽象:过程抽象+数据抽象

2.3逐步求精:(自顶向下)尽量推迟对问题细节的考虑

2.4信息隐藏和局部化

2.5模块独立性:耦合和内聚

它是模块化、抽象、信息隐藏和局部化概念的结果

2.5.1耦合

非直接耦合:无直接联系

数据耦合:简单数据参数

标记耦合:一组模块通过参数表传递记录信息(某一数据结构,不是简单变量)

控制耦合:在单一接口上选择多功能模块中的某项功能

外部耦合:一组模块访问统一全局简单变量(而且不是通过参数传递)

公共耦合:一组模块访问同一个公共数据环境

内容耦合

2.5.2 内聚

偶然内聚

逻辑内聚:单接口多功能模块

时间内聚

过程内聚

通信内聚

顺序内聚

功能内聚

3.启发式规则

降低耦合提高内聚

4.图形工具

层次图

HIPO图(带结构的层次图)

结构图:模块间的隶属关系

4.面向数据流的设计方法(SD方法、结构化设计方法)

把信息映射成软件结构

5.体系结构风格

二、详细设计

根本目的:确定应该怎样具体的实现所要求的系统

包括:接口设计和过程设计

1.结构程序设计

结构化程序设计是详细设计的逻辑基础

经典定义:顺序、选择、循环三种基本控制结构,并且每个代码块只有一个入口和一个出口

扩展的:加上DO-CASE和DO-UNTIL

修正的:再加上LEAVE(或BREAK)

2.过程设计工具

2.1图形工具

程序流程图

盒图(N-S图)

PAD图

2.2表格工具

判定表:表示静态逻辑,不能称为一种通用的设计工具

2.3语言工具

判定树(PDL):伪代码

3.人机界面设计

基于计算机的系统或产品的最重要的元素

3.1黄金规则

赋予用户控制权

减少用户记忆负担

保持界面一致

3.2设计过程

用户、任务和环境分析及建模

界面设计

界面构造

界面确认

4.程序复杂程度的定量度量

McCabe方法

三、编码

四、测试

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值