软件设计概述
软件设计的基本特征:目标,形态,内容
从技术角度考虑,软件设计主要包括4方面内容:
- 系统结构设计:确定软件系统的结构,即软件系统的组成,以及各组成成分(子系统或模块)之间的相互关系
- 接口设计:确定目标系统与其他软/硬件系统之间、目标系统与用户之间的交互关系及通信方式
- 数据设计:对数据结构的设计
软件体系结构的典型风格
-
主程序-子过程风格
-
层次风格
-
客户机-服务器体系结构风格
C/S结构的层次性:
从应用系统开发的角度考虑,C/S结构的应用系统通常可以由3个相对独立的部分组成,每一部分承担着不同的职责:
用户界面部分:即表示层,主要实现用户与应用系统之间的交互接口,用于接收用户输入的数据,并显示应用系统输出的数据。一般采用图形用户界面(GUI)。
应用逻辑部分:即业务逻辑层(或功能层),主要实现应用系统的各种处理功能。一般通过应用程序来实现各种功能的业务处理逻辑。
数据管理部分:即数据层,主要实现数据的存储以及对数据的存取操作任务。一般采用关系型数据库管理系统。
胖客户端结构 | 瘦客户端结构 |
---|---|
服务器端负责数据管理 | 服务器端负责应用逻辑部分和数据管理 |
客户端负责实现应用逻辑部分和用户界面部分 | 客户端负责用户界面部分 |
胖客户端的C/S系统执行效率比瘦客户端更高
浏览器/服务器(B/S)结构:
模块化设计的目标:高内聚,低耦合(即提高模块内部的联系,降低模块之间的联系)
改进方法:
1)尽可能建立功能模块;
2)消除重复功能;
3)模块的作用范围与控制范围,即当作用范围为控制范围的子集时,才能获得较低的块间联系;
4)模块的大小适当;
5)模块的扇入扇出数不宜太多。
模块化设计:
便于由多个人分工编制大型程序;软件的功能便于扩充程序;易于理解,也便于排错;只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块; 模块间的单向调用关系叫做模块的层次结构
结构图
模块:实现特定功能,有明确的输入、内部处理逻辑、输出。一般用矩形框表示,框内注明该模块的名称(常以其功能做为模块名)。
调用关系:模块之间通过“过程/函数调用”的方式建立连接。一般用自上而下的箭头连线表示两个模块之间的调用关系。
模块间的信息传递:模块调用过程中,相互传递的信息。
数据信息:模块间相互调用时所传递的业务性数据。通常是一些简单数据类型或复杂数据类型(比如,结构体);
控制信息:模块间相互调用时所传递的标志性数据。比如,“Y”/“N”、“T”/“F”、状态标志等。
结构深度:结构图中的层次总数
结构宽度:结构图中,同一层次上模块总数的最大值
模块的扇入:能直接调用某模块的模块个数
模块的扇出:某个模块直接调用的模块个数
DFD的两种特征:
-
变换型DFD
信息沿着输入路径进入系统,同时由外部形式变换为内部形式,然后经过系统内部的 “变换中心”进行处理,处理后的结果再沿着输出路径变换成外部形式离开系统。 输入部分与变换中心之间,变换中心与输出部分之间都具有较为明显的边界
从DFD图到SC图的映射规则:
(1)复审DFD图,必要时可再次进行修改或细化;
(2)鉴别DFD图所表示的软件系统的结构特征,确定它所代表的软件结构是属于变换型还是事务型。
(3)按照SD方法规定一组规则,把DFD图转换为初始的SC图;
(4)按照优化设计的指导原则改进初始的SC图,获得最终SC图。
将数据流图DFD映射为结构图SC的变换分析
逻辑输入通常是距离物理输入端最远的,但仍可以被视为系统输入的那些数据流。
变换中心的两端分别是逻辑输入和逻辑输出,其任务是把系统的逻辑输入加工处理为系统的逻辑输出
顶层结构:只有一个主模块MC ,代表整个系统,用于控制协调其它模块
第一层结构:通常包括三个模块:
输入信息处理模块MA :管理所有输入信息的接收(从物理输入到逻辑输入);
变换中心控制模块MT :管理所有对逻辑输入的操作;
输出信息处理模块ME :管理所有输出信息的产生(从逻辑输出到物理输出)。
将数据流图DFD映射为结构图SC的事务分析
在事务型DFD上区分出输入部分、事务中心和发送部分(由事务中心发射出的多条加工路径构成),并划出分界线。顶层结构只包含一个主模块。第一层结构主要包括两个分支:输入分支和发送分支
输入分支:映射方法与变换分析中映射输入分支的方法相同,即从事务中心的边界开始,将逆着输入路径中的数据加工依次映射成模块。
发送分支:包含一个调度模块,对应事务中心。由事务中心发射出的每条加工路径可根据其各自的流特征(变换型或事务型)映射成相应结构,由调度模块“选择调用”。
例题
结构图SC的优化原则:
- 通过对模块进行适当的分解或合并,力求提高内聚降低耦合
- 应尽可能减少高扇出结构:对其下属模块进行归类,并适当增加中间层的控制模块,以减少扇出
- 应随着深度增大扇入
一个良好的结构,通常上层扇出较高,中层扇出较低,底层扇入较高
SD方法中常用的过程设计描述工具
程序流程图
软件用户界面设计的基本原则:
? 置系统于用户的控制之下:允许用户与系统的交互被中断或撤销;允许用户与出现在屏幕上的任何对象进行直接交互。
? 减少用户的记忆负担:建立有意义的缺省值;定义直观的快捷方式:如快捷键
? 保持界面的一致性:一致性要求UI遵循标准和常规的方式,让用户处在一个熟悉的和可预见的环境之中
? 个性化:可以使不同的用户按照自己的习惯、爱好以及对系统的熟悉程度来设置UI元素
? 宽容性:允许用户进行实验性操作和出错,用户在出错时能够方便的从错误中恢复
? 反馈:在发生错误或程序运行时间较长时,系统应给用户提供有意义的、可视化的
反馈,以便用户了解错误性质或程序的执行进度。
? 美观性
? 可用性
? 简洁性:避免使用许多复杂的图片和动画等,造成用户操作时的分心;界面布局应当适合清晰地表达信息;具有与之匹配的导航性
软件用户界面设计的几种常见模式
- Windows标准模式
- 导航模式
- 层叠模式
- 表格模式
- 向导模式
软件用户界面设计需要考虑的若干因素
- 单界面/多界面
- 界面布局
- 界面大小
- 界面中的颜色
- 菜单设计
- 信息表示
- 使用效率
- 安全性
- 用户支持
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!