首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载 | ||
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试 MPA考试 | 中科院 |
||
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT 新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语 |
||
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证 华为认证 | Java认证 |
||
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格 报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师 人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平 驾驶员 | 网络编辑 |
||
卫生资格 | 执业医师 | 执业药师 | 执业护士 | ||
会计从业资格考试(会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师 注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师 |
||
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师 质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师 设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师 城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师 |
||
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏 |
四、软件结构的优化准则
首先应学会用图形表示软件结构,软件结构图反映了整个系统的功能实现,即将来编好程序中的控制层次体系。软件结构往往用树状或网状结构的图形来表示。
请大家对照课本的解释来看软件结构图包括哪些内容。
我们已经知道了软件概要设计的主要任务就是软件结构的设计,为了提高设计的质量,可以根据下面的设计优化准则进行优化:在这些准则中,都是针对模块及模块间关系来提出的。
1、模块的划分:要做到高内聚,低耦合,保持相对独立性。
2、模块的控制:模块的作用范围要在他的控制范围内,判定所在的模块应与受其影响的模块在层次上尽量靠近)
3、形成的结构;软件结构的深度、宽度、扇出、扇入要适当
4、模块的大小: 要适中。
5、模块的接口:模块的接口要简单、清晰、含义明确,便于理解、易于实现、测试与维护)。
五、概要设计的设计方法。
(一)面向数据流的设计方法(这是需要我们熟练掌握的方法)
面向数据流的设计方法是以需求阶段产生的数据流图为基础,按一定的步骤映射成软件结构,因此又称为结构化设计(Structured Design SD)。这是目前使用最广泛的软件设计方法之一,应该熟练掌握它。
1、首先要研究数据流图(DFD)的类型,无论何种软件系统,DFD一般都可分为变换型和事务型两类。(课本第51页)
先来看变换型数据流图,顾名思义,变换就是把输入的数据处理后变成另外的数据输出,所以变换型数据的工作过程就是三步:取得数据、变换数据和输出数据。在图4-6中,可以看到两股数据流经过交换中心变成一股数据流进行输出。虚线为标出的流界。
再来看事务型数据流图,所谓事务也是一个处理,但不是数据变换,而是将输入数据流分离成许多发散的数据流,形成许多加工路径,并根据值选择其中一个路径来执行。举个例子,好比有一个邮件分发中心,把收进的邮件根据其发送地址进行分流,有的用飞机邮送,有的用汽车来运输等等。
在大型软件系统中的DFD数据流图中,这两种类型特征都有可能存在。
2、SD方法设计过程
1)精化DFD。
2)确定DFD类型并进行相应的映射。
3)分解上层模块,设计中下层模块结构
4)根据优化准则对软件结构求精。
5)描述模块功能、接口及全局数据结构
6)复查,如果有错则转向2)修改完善,否则进入详细设计。
下面我们通过例子来说明变换分析设计和事务分析设计方法。
3、变换分析设计
以课本53页图4-8为例说明变换分析设计。
根据面向数据流的设计方法,第一步是精化DFD,也就是研究分析这个数据流图,我们可以看到图中从A到H的数据流向和加工,图形比较简单。
第二步是确定DFD类型并确定加工中心,在这里已经说明为本图为变换型,在实际分析中应该根据每个相关操作来确定其类型。在图中,我们可以直观地看到中间几股数据流的汇合处是系统的变换中心。也可以通过双向寻找法来确定,左边是物理输入端,从f1沿着单向路径一直到f3,后面的f4是从C流出的,同时C还有f5流出,则可见f4,f5不能再看作是系统的输入,因此可确定f4,f5前一个数据流f3就是系统的逻辑输入,同样,我们从右边的物理输出端往左边沿数据流的反向寻找,可以发现f4,f6不能看作是整个系统的输出,因此可以确定f7,f8是逻辑输出端,然后在这两个分界处添上虚线,这样,DFD的三部份就确定了。
第三步 设计软件结构的顶层和第一层,根据变换中心可以对应得到主模块的位置,就可以画出顶层模块(即主模块,在实际应用中,这个模块的名字就是系统的名字,如销售管理系统等)。然后在这个模块下方根据划分好的三个部分画出三个功能模块,即输入、变换和输出模块,就是图中的get f3,将f3变换成f7和f8模块,put f7及put f8模块,注意,这里应当为每个输入和输出设计一个模块。然后将这些模块与顶层模块用连线连上表示所属控制。画上相应的数据传送箭头。
第四步 分解上层模块,设计中下层模块。 根据上面的方法,分解输入模块,图中的get f3模块的功能是向主模块提供数据,而在DFD中可以看到f3是数据流f2经过B操作后流出的,因此这里有两个部分,就是接收f2数据,再通过B转换流出。所以在get f3模块下画出两个子模块 get f2 和B操作模块。
就这样一一分解,可以画出所有的输入和输出子模块,直到物理输入和输出为止。
对于变换中心的下属模块,根据数据流和变换操作,以每个基本加工建立一个功能模块,可以画出CDE三个子模块。
整个过程并不复杂,画好后根据实际情况对软件结构进行优化,也就是进行必要的合并或分解。以求设计出高内聚低耦合的模块组成的、具有良好特性的软件结构。
4、事务分析设计,可以参见图4-9为例。其设计方法大同小异,首先确定DFD类型,这里已指明是事务型,然后找出DFD中的事务中心和加式路径。当DFD中时不要弄错,然后在分解子模块时在调度模块上加一个菱形符号表示判断处理。
5、综合型数据流图与分层数据流图映射成软件结构的设计
有了上面的基础,对综合型的数据流图也可以一一分开来进行设计了。
6、设计后的处理,在软件结构形成之后,我们知道,概要设计的基本任务还有文档的编写,在这个阶段就是要编写一些文档,包括:
(1)为每个模块写一份处理说明
(2)为每个模块提供一份接口说明
(3)数据结构说明
(4)给出设计约束或限制
(5)进行概要评审
(6)设计优化。
本节介绍的设计方法是本章的重点,要求熟练掌握。
(二)基于IDEF0图的设计方法
(三)表示软件结构图的另一种图形工具--HIPO图。
HIPO图清晰易读,主要用于编写概要设计文档中的说明。
本章小结:根据上面的学习,我们可以知道,软件概要设计的四个主要任务,知道评价软件结构设计质量的原理和两个标准即软件模块的耦合性及内聚性,根据这些原理提出了软件结构设计的优化准则,并且详细学习了软件结构的面向数据流图的设计方法。
相关推荐:2010年下半年软考试题及答案解析汇总北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |