【软件工程】第四章

简介: 【软件工程】第四章

软件设计的目标和任务

根据用信息域表示的软件需求,以及功能和性能需求进行(数据设计、系统结构设计、过程设计

开发阶段的信息流

软件设计任务

概要设计

详细设计

概要设计和管理设计从管理观点和技术观点划分

软件设计基础

自顶向下,逐步细化

软件结构

程序结构

结构图

模块化

抽象化

信息隐藏

模块的独立性

指软件系统中每个模块只涉及软件要求的具体的子功能

两个准则度量:耦合、内聚

模块间的耦合

耦合是模块之间相互连接的紧密程度的度量。模块之间的连接越紧密,联系越多,耦合性就越高,而且模块独立性就越弱

模块内聚

指同一个模块之间,语句间联系的紧密程度

一个模块内部各个元素之间的联系越紧密,内聚性就越高,相对于其他模块之间的耦合性就会降低,而模块独立性就越强

软件模块结构的改进

模块功能的完善化

1、执行规定的功能的部分

2、出错处理的部分

3、给它的调用者返回一个结束状态标志

消除重复功能,改善软件结构

1、完全相似

2、局部相似

文件设计

1、整理必须的数据元素

2、分析数据间的关系

3、确定文件的逻辑设计

4、理解文件的特性

5、确定文件的组织方式(顺序文件、直接存取文件)

6、确定文件的存储介质

7、确定文件的记录格式

8、估算存取时间和存储容量

结构设计原则

1、显著改进软件结构提高模块独立性

2、模块规模应该适中(150行左右,不超过150行)

3、适当选择深度、宽度、扇出和扇入

4、模块的作用域应该在控制域之内

5、力争降低模块接口的复杂程度

6、设计单入口单出口的模块

7、模块功能应该可以预测

面向数据流的设计方法

程序流程图

5种控制结构

N-S图(盒图)

问题分析图(PAD)


相关文章
|
存储 固态存储 关系型数据库
下一代实时数据库:Apache Doris 【三】集群部署
下一代实时数据库:Apache Doris 【三】集群部署
421 0
|
前端开发 JavaScript
炫酷动态特效HTML实现源码【完整源码分享】
炫酷动态特效HTML实现源码【完整源码分享】
炫酷动态特效HTML实现源码【完整源码分享】
|
存储 C语言
C语言-打开与关闭文件
C语言-打开与关闭文件
259 1
|
10月前
|
机器学习/深度学习 人工智能 运维
AI赋能运维:实时警报管理的新时代
AI赋能运维:实时警报管理的新时代
260 8
|
JavaScript 前端开发 开发者
Vue的自定义指令:创建自定义指令的技术详解
【4月更文挑战第24天】Vue.js 允许开发者创建自定义指令以扩展其功能。自定义指令提供灵活性,但需根据需求和最佳实践谨慎使用。
|
算法
lingo中的一些概念解释
lingo中的一些概念解释
279 0
|
SQL 运维 监控
测试流程如何落地
线上故障处理流程:出现故障时的响应机制、线上止血、故障排查以及复盘跟进流程;
测试流程如何落地
|
运维 网络虚拟化 网络架构
《企业运维之云上网络原理与实践》——第五章 云上网络互连——云上网络互连(上)(5)
《企业运维之云上网络原理与实践》——第五章 云上网络互连——云上网络互连(上)(5)
204 0
|
弹性计算 运维 Ubuntu
阿里云服务器迁移中心SMC,支持阿里云服务器或其他服务商云服务器一键迁移
阿里云服务器上的数据支持一键迁移吗?其他云服务商的云服务器能迁移到自己阿里云服务器上午吗?目前这些功能都是可以实现的,而且操作流程也比较简单,使用阿里云的服务器迁移中心SMC,可以将其他阿里云账号或服务商云服务器一键迁移到自己当前的阿里云账号下,本文旨在帮大家快速了解SMC迁移流程。
阿里云服务器迁移中心SMC,支持阿里云服务器或其他服务商云服务器一键迁移
|
存储 编译器 C语言
深入理解《有理数》在电脑中是怎么存储的
深入理解《有理数》在电脑中是怎么存储的
深入理解《有理数》在电脑中是怎么存储的