导图社区 软件工程
总体设计
一篇关于数据结构思维导图,数据结构的基本概念、算法与算法评价等。希望对你有所帮助!
这是一篇关于运算符和表达式思维导图,包含C语言运算符、基本算数运算、逻辑运算、自增自减运算等。感兴趣的小伙伴可以关注点赞收藏哦~~
这是一篇关于数据的表现形式及其运算的思维导图,数据的表现形式和运算方式是计算机科学中的重要概念,它们是计算机进行数据处理和计算的基础。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
总体设计(概要设计)
目标
回答:“概括的说,系统应该如何实现?”
任务
1.划分出组成系统的物理元素-程序、文件、数据库、人工过程、文档等
2.确定系统中每个程序是由哪些模块组成,每个模块的功能以及模块和模块之间的接口
阶段
1.软件体系结构设计
(1)体系结构是对复杂事物的一种抽象
(2)体系结构在一定的时间内保持稳定
(3)良好的体系结构意味着普通、高效和稳定
2.软件模块设计
(1)降低模块之间的耦合性,提高模块的内聚性
(2)模块结构的深度、宽度、扇入和扇出应适当
顶层扇出高,中层扇出较少,底层高扇入
深度表示软件结构中控制的层数
宽度表示同一层次上模块的最大值
扇入表示有多少个上级模块直接调用它
扇出表示一个模块直接调用的模块数
(3)模块的作用范围应该在控制范围之内
(4)模块接口设计要简单,以便降低复杂度和冗余度
(5)设计功能可预测并能够得到验证的模块
(6)适当划分模块规模,以保持其独立性
李爱萍
设计原理
1.模块
定义
模块是软件结构的基础,是软件元素,是能够单独命名,独立完成一定功能的程序语句的集合
特征
抽象
抽象就是抽出事物的本质特征而暂时不考虑它们的细节
优点
(1)简化了软件的设计和实现
(2)提高了软件的可理解性和可测试性
(3)使得软件更容易维护
信息隐蔽
原理
使得一个模块内部包含的信息(主要是实现细节)对于不需要这些信息的模块来说,是不能访问的
2.模块化
模块化就是把软件程序划分成独立命名且可独立访问的模块
李爱萍:模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程
目的
降低软件的复杂度
(1)使软件结构清晰,不仅容易设计也容易阅读和理解
(2)使软件容易测试和调试,有助于提高软件的可靠性
(3)提高软件的可修改性
(4)有助于软件开发工程的组织管理
3.局部化
指把一些关系密切的软件元素物理地放得彼此靠近
4.逐步求精
为了集中精力去解决主要问题而尽量推迟对问题细节的考虑
(1)逐步求精是一种自顶向下的设计策略
(2)求精实际上是细化的过程
5.模块独立性
模块独立性的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果
模块独立性是开发具有单一功能与其他模块没有太多交互作用的模块来达到的
度量标准
耦合
软件结构内模块之间的联系程度
(1)无直接耦合
不传递任何信息,无直接联系
(2)数据耦合
调用关系,传递的参数是简单数据
(3)标记耦合
调用关系,传递的参数是数据结构
(4)控制耦合
调用关系,传递的信息控制了该模块的功能
外部耦合(两本教材中均无此项说明)
(5)公共环境耦合
多个模块调用共同的数据环境,例如全局变量
(6)内容耦合
直接访问另一个模块的内部数据
内聚
模块内部各个元素之间联系的紧密程度
(1)偶然内聚
没有任何联系,仅为了节省内存放在一个模块中
(2)逻辑内聚
逻辑上相同或相似的一类任务放在一个模块中
(3)时间内聚
需要同时执行的动作组合放在一起
(4)通信内聚
使用相同的输入或产生相同的输出
(5)顺序内聚
紧密相关,必须顺序执行
(6)功能内聚
属于一个整体,共同完成一个单一功能
设计准则
设计软件尽量满足“高内聚,低耦合”
数据库设计
1.数据库系统的三级模式
(1)内模式(存储模式)
一个数据库只有一个内模式
数据物理结构和存储方式的描述
(2)模式(逻辑模式)
一个数据库只有一个模式
数据全体逻辑结构和特征的描述
(3)外模式(子模式或用户模式)
一个数据库可以有多个外模式
用户能够看到的局部数据的逻辑结构和特征的描述
2.关系数据库规范化
(1)满足最低要求的叫第一范(每个属性值都是不可分解的数据项)1NF
(2)大多可以达到第三范式3NF
软件结构设计的图形工具
1.软件结构图(SC)
作用
表达软件的组成模块及其调用关系
内容
(1)模块
用方框表示,方框中写上模块的名字
(2)调用关系
用单向箭头或直线连接
(3)辅助符号
弧形箭头表示循环关系、菱形表示选择或有条件调用
2.层次图
描绘软件的层次结构
符号
矩形框表示
用直线表示模块间的调用关系
3.HIPO图(层次图+IPO图)
层次图中,除了最高层的方框外,每个方框都加了编号
结构化设计方法
结构化设计方法是一种把在需求分析阶段得到的数据流图如何映射为软件结构图的一种基于数据流的设计方法
数据流类型
(1)变换流
变换型数据流图基本呈线性形状的结构,由输入、输出、变换3部分组成
步骤
①确定逻辑输入和逻辑输出的边界,找出变换中心
②设计软件结构的顶层和第一层
③设计中下层模块
④对初始结构图优化
(2)事务流
事务型数据流图常呈辐射状,当数据项到达处理某个模块时,将有多个动作之一
与变换型数据流图相似
(1)复审数据流图
(2)确定数据流图类型
(3)分解上层模块、设计中下层模块结构
(4)根据软件结构设计准则对软件结构求精并改进
(5)导出接口描述和全程数据
(6)复审,如果有错,修改完善,否则进入详细设计阶段