软件设计精.ppt
《软件设计精.ppt》由会员分享,可在线阅读,更多相关《软件设计精.ppt(120页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件设计软件设计第1页,本讲稿共120页1 1 n n 设计的目的,任务设计的目的,任务,原则原则n n 体系结构的设计体系结构的设计n n 结构化设计的基础结构化设计的基础模块化模块化n n 面向数据流的设计方法,设计过程面向数据流的设计方法,设计过程n n 数据库的设计数据库的设计n n 人机交互设计人机交互设计 目的目的:解决解决“怎么做怎么做”的问题的问题 内 容第2页,本讲稿共120页2 26.1 6.1 软件设计概述软件设计概述6.1.1 6.1.1 软件设计的软件设计的含义含义6.1.2 6.1.2 软件设计的软件设计的类型类型6.1.3 6.1.3 软件设计的软件设计的任务任务
2、6.1.4 6.1.4 软件设计的软件设计的原则原则第3页,本讲稿共120页3 36.1.1 6.1.1 软件设计的含义软件设计的含义 软件设计是把软件设计是把软件需求规格软件需求规格说明说明 转为软件转为软件过程过程性的表示。性的表示。解决解决“怎么做怎么做”的问题。的问题。解决问题解决问题,就需要做出就需要做出“设计决策设计决策”分离客户机分离客户机分离客户机分离客户机的用户界面的用户界面的用户界面的用户界面客户机客户机客户机客户机-服务器服务器服务器服务器胖客户胖客户胖客户胖客户瘦客户瘦客户瘦客户瘦客户用户界面用户界面用户界面用户界面不独立不独立不独立不独立用用用用JavaJavaJav
3、aJava编程编程编程编程用用用用VBVBVBVB编程编程编程编程用用用用C+C+C+C+编程编程编程编程单户单户单户单户需求知识需求知识设计知识设计知识可用技术可用技术设计原则设计原则最佳实践最佳实践成功案例成功案例优先级分析优先级分析成本效益成本效益分析分析第4页,本讲稿共120页4 4 将需求分析模型转换为软件设计模型将需求分析模型转换为软件设计模型图图 6-1 分析分析分析分析模型模型转换为设计模型转换为设计模型转换为设计模型转换为设计模型 数据数据词典词典 数数 据据 流流 图图 实实 体体关关 系系 图图 状态转换图状态转换图 加加 工工 控控 制制 规规 规规 格格 格格 说说
4、说说 明明明明 数数 据据对对 象象 描描 述述过程设计过程设计 接口设计接口设计 结构设计结构设计 数据设计数据设计 第5页,本讲稿共120页5 56.1.2 6.1.2 软件设计的类型软件设计的类型从工程管理的角度从工程管理的角度软件设计包括:软件设计包括:概要设计概要设计详细设计详细设计图图 6-2 软件设计类型软件设计类型概概 要要 设设 计计详详 细细 设设 计计第6页,本讲稿共120页6 66.1.3 6.1.3 软件设计的任务软件设计的任务(1)(1)制定规范制定规范 确定设计的目标,及优先顺序。确定设计的目标,及优先顺序。确定合适的设计方法确定合适的设计方法 规定设计文档的编制
5、标准规定设计文档的编制标准 规定编码的信息形式规定编码的信息形式 接口规约,命名规则接口规约,命名规则第7页,本讲稿共120页7 7 设计的任务设计的任务 (2)(2)软件系统的结构设计软件系统的结构设计 将系统按功能划分成模块的层次结构。将系统按功能划分成模块的层次结构。确定模块的功能,及与软件需求的对应关系。确定模块的功能,及与软件需求的对应关系。确定模块间的接口关系,调用关系。确定模块间的接口关系,调用关系。评估模块划分的质量。评估模块划分的质量。第8页,本讲稿共120页8 8设计的任务(3)(3)处理方式设计处理方式设计确定为实现系统的功能需求所必需的算法确定为实现系统的功能需求所必需
6、的算法评估算法的性能评估算法的性能确定为满足系统的性能需求所必需的算法确定为满足系统的性能需求所必需的算法模块间的控制方式模块间的控制方式n n周转时间周转时间周转时间周转时间n n响应时间响应时间响应时间响应时间n n吞吐量吞吐量吞吐量吞吐量n n精度精度精度精度确定外部信号的接收发送形式确定外部信号的接收发送形式第9页,本讲稿共120页9 9设计的任务设计的任务(4)(4)数据结构设计数据结构设计确定文件系统的结构以及数据库的模式、子模式确定文件系统的结构以及数据库的模式、子模式确定输入,输出文件的数据结构确定输入,输出文件的数据结构确定算法所必需的逻辑数据结构及其操作确定算法所必需的逻辑
7、数据结构及其操作确定对逻辑数据结构所必需的程序模块确定对逻辑数据结构所必需的程序模块限制和确定各个数据设计决策的影响范围限制和确定各个数据设计决策的影响范围确定其详细的数据结构和使用规则确定其详细的数据结构和使用规则数据的完整性、安全性、一致性、冗余性设计数据的完整性、安全性、一致性、冗余性设计(5)(5)人机交互的设计人机交互的设计第10页,本讲稿共120页1010设计的任务(6)(6)可靠性设计可靠性设计n n质量设计质量设计n n软件可靠性是在软件可靠性是在 给定的时间内,给定的时间内,程序按照规定的程序按照规定的 条件成功运行的条件成功运行的 概率。概率。容错技术、容错技术、冗余技术冗
8、余技术(7)(7)编写概要设计编写概要设计 阶段的文档阶段的文档l l设计说明设计说明设计说明设计说明l l数据库设计说明数据库设计说明数据库设计说明数据库设计说明l l 接口说明接口说明接口说明接口说明l l用户手册用户手册用户手册用户手册l l制定初步的测试计划制定初步的测试计划第11页,本讲稿共120页1111设计的任务(8)(8)制定测试计划制定测试计划(9)(9)概要设计评审概要设计评审:技术清晰度技术清晰度 质量保证质量保证 各种选择方案各种选择方案 限制限制 文档文档 可追溯性可追溯性 接口接口 风险风险 实用性实用性 可维护性可维护性 可测试性可测试性第12页,本讲稿共120页
9、1212设计的任务设计的任务(10)(10)详细设计详细设计uu 确定软件各模块的算法确定软件各模块的算法,以及内以及内 部数据组织部数据组织 uu 描述算法描述算法uu 进行详细设计的评审进行详细设计的评审第13页,本讲稿共120页1313软件设计的任务小结:n n 制定规范制定规范n n 软件系统的总体结构设计软件系统的总体结构设计n n 处理方式设计处理方式设计n n 数据结构设计数据结构设计n n 人机交互的设计人机交互的设计n n 可靠性设计可靠性设计n n 编写概要设计阶段的文档编写概要设计阶段的文档n n 制定测试计划制定测试计划n n 评审概要设计评审概要设计n n 详细设计详
10、细设计 第14页,本讲稿共120页14146.1.4 6.1.4 软件设计的原则软件设计的原则 (Davis 1995):(1)(1)(1)(1)使用基本的设计概念:抽象、逐步求精、使用基本的设计概念:抽象、逐步求精、自顶向下、模块化、信息隐蔽、封装等自顶向下、模块化、信息隐蔽、封装等.(2)(2)设计应追朔到分析模型设计应追朔到分析模型(3)(3)注重复用技术注重复用技术(4)(4)软件设计应尽量模拟问题域的结构软件设计应尽量模拟问题域的结构软件设计应尽量模拟问题域的结构软件设计应尽量模拟问题域的结构(5)(5)设计应具有一致性、集成性设计应具有一致性、集成性设计应具有一致性、集成性设计应具
11、有一致性、集成性(6)(6)设计应便于修改,适用于异常条件设计应便于修改,适用于异常条件设计应便于修改,适用于异常条件设计应便于修改,适用于异常条件(7)(7)设计不是编码设计不是编码(8)(8)注重评审注重评审第15页,本讲稿共120页1515模块模块:软件被划分成若干个独立命名,软件被划分成若干个独立命名,可编址的部分。可编址的部分。模块化模块化:程序分成若干个模块,且程序分成若干个模块,且:n n 每一个模块完成一个相对独立的子功能每一个模块完成一个相对独立的子功能 n n 每个模块定义了输入和输出的功能。每个模块定义了输入和输出的功能。n n 若干个模块集成,构成一个整体,完成若干个模
12、块集成,构成一个整体,完成 一个大功能。一个大功能。6.2 6.2 软件设计的基础软件设计的基础模块化模块化第16页,本讲稿共120页1616模 块 化把系统分解为子系统的好处把系统分解为子系统的好处l l模块化设计降低了复杂性模块化设计降低了复杂性.l l有利于软件的可维护性有利于软件的可维护性.l l系统可并发开发,简化系统实现。系统可并发开发,简化系统实现。系统可并发开发,简化系统实现。系统可并发开发,简化系统实现。l 模块特性模块特性:(1)(1)(1)(1)模块的模块的模块的模块的分解分解分解分解 (2)(2)(2)(2)模块的模块的抽象抽象 (3)(3)(3)(3)模块的模块的信息
13、隐蔽信息隐蔽信息隐蔽信息隐蔽 (4)(4)结构化的模块结构化的模块 (5)(5)模块的模块的独立性独立性独立性独立性 内聚、内聚、内聚、内聚、耦合。耦合。耦合。耦合。PAQBPABQB 非结构化非结构化的模块的模块结构化结构化的模块的模块开始开始开始开始ynynynyn图图 6-3第17页,本讲稿共120页17176.2.1 6.2.1 模块的内聚模块的内聚(Cohesion)JJ描述一个功能模块的组成成分之间的紧密描述一个功能模块的组成成分之间的紧密程度。程度。JJ模块的内聚性类型:模块的内聚性类型:低低 偶然内聚偶然内聚偶然内聚偶然内聚 弱弱弱弱(功能分散功能分散功能分散功能分散)逻辑内聚
14、逻辑内聚 时间内聚时间内聚时间内聚时间内聚 过程内聚过程内聚过程内聚过程内聚 通信内聚通信内聚通信内聚通信内聚 顺序内聚顺序内聚 高高高高 功能内聚功能内聚功能内聚功能内聚 强强强强(功能单一功能单一)模模块块独独立立性性模模块块内内聚聚性性第18页,本讲稿共120页1818(1 1)偶然)偶然(巧合巧合)内聚内聚(Coincidental)模块内各部分间无联系。例:模块内各部分间无联系。例:ABCM MOVE O TO R READ FILE F MOVE S TO T 缺点:缺点:可理解性差可理解性差,可修改性差可修改性差 图图 6-4 巧合内聚模块巧合内聚模块第19页,本讲稿共120页1
15、919(2 2)逻辑内聚)逻辑内聚 (Logical)(Logical)逻辑功能相似,且属于同一类型,但其逻辑功能相似,且属于同一类型,但其执行行为由外部模块决定。例:执行行为由外部模块决定。例:缺点:缺点:增强了耦合程度增强了耦合程度(控制耦合控制耦合)不易修改,效率低不易修改,效率低图图6-5 逻辑内聚模块逻辑内聚模块ABCDEFGAEFGDCB第20页,本讲稿共120页2020(3 3)时间内聚)时间内聚 (Temporal cohesion)(Temporal cohesion)模块的各个成分必须在同一时间段执模块的各个成分必须在同一时间段执 行行,但各个成分之间无必然的联系。但各个成
16、分之间无必然的联系。例如例如:初始化系统模块、初始化系统模块、系统结束模块、系统结束模块、紧急故障处理模块等紧急故障处理模块等 均是时间性聚合模块均是时间性聚合模块.第21页,本讲稿共120页2121(4 4)过程内聚)过程内聚 (Procedure)(Procedure)模块的各个成分处理动作不同,但受同一控制模块的各个成分处理动作不同,但受同一控制 流支配流支配(把几个依次调用过程放在一起把几个依次调用过程放在一起,但一个过但一个过但一个过但一个过 程的输出并不一定是下一个过程的输入程的输出并不一定是下一个过程的输入程的输出并不一定是下一个过程的输入程的输出并不一定是下一个过程的输入).读
17、入读入成绩单成绩单审查审查成绩单成绩单读入并审查读入并审查成绩单成绩单统计统计 成绩成绩 打印打印成绩成绩统计并打印统计并打印成绩单成绩单图图 6-6 过程内聚模块过程内聚模块例:例:第22页,本讲稿共120页2222(5 5)通信内聚)通信内聚 模块内各部分使用相同的输入数据模块内各部分使用相同的输入数据模块内各部分使用相同的输入数据模块内各部分使用相同的输入数据,或产生相同的或产生相同的 输出结果输出结果输出结果输出结果(把访问或操作某一数据的模块放在一起把访问或操作某一数据的模块放在一起把访问或操作某一数据的模块放在一起把访问或操作某一数据的模块放在一起)。例:例:读文件读文件 合并合并
18、修改修改文件文件计算计算B计算计算A打印检打印检验结果验结果读卡读卡 片文件片文件新新文文件件加工记录加工记录 使用使用A/B数数 据据A结结 果果B 结结 果果 A/B 数数 据据 A/B卡卡 片片 文件文件图图 6-7 通信内聚模块通信内聚模块(Communicational)(Communicational)第23页,本讲稿共120页2323n n 又如一个又如一个更新更新数据库的模块和一个数据库的模块和一个保存保存数数 据库修改信息的历史日志模块据库修改信息的历史日志模块,使用使用相同数相同数 据据,两个模块应放在一个高层模块或子系统两个模块应放在一个高层模块或子系统 中中,是通信内聚
19、是通信内聚.n n通信内聚优点通信内聚优点:修改数据时修改数据时,会在同一个地方找到它的所有代会在同一个地方找到它的所有代码码.n n注意注意:不能为达到通信内聚而牺牲层内聚不能为达到通信内聚而牺牲层内聚.第24页,本讲稿共120页2424(6)顺序内聚顺序内聚 (Sequential Cohesion)(Sequential Cohesion)模块完成多个功能,各功能都在同一数据结构上模块完成多个功能,各功能都在同一数据结构上 操作操作操作操作.即存在一系列过程即存在一系列过程,一个过程向下一过程了提一个过程向下一过程了提 供输入供输入供输入供输入.例如:文本识别子系统例如:文本识别子系统图
20、图 6-8 顺序内聚模块顺序内聚模块接收位图输入接收位图输入分解包含单一分解包含单一字符小块字符小块识别形状识别形状,确确定每个小块对定每个小块对应一个字符的应一个字符的概率概率确定输入确定输入流中单词流中单词的顺序的顺序第25页,本讲稿共120页2525(7 7)功能内聚)功能内聚 (Functional Cohesion)(Functional Cohesion)一个模块中各个部分都是为完成一项具体功能而一个模块中各个部分都是为完成一项具体功能而协同工作协同工作.(.(模块只执行单一的计算模块只执行单一的计算,返回结果返回结果,且无且无副作用副作用(执行前后系统状态相同执行前后系统状态相同
21、)时达到时达到功能内聚功能内聚)图图 6-9 功能内聚功能内聚模块模块 矩阵矩阵结果结果功能内聚功能内聚顺顺 序序 内内 聚聚构造构造矩阵矩阵输出输出求解求解 未知数未知数第26页,本讲稿共120页2626 计算数学函数的模块如正弦或余弦计算数学函数的模块如正弦或余弦 根据一系列方程求解未知数的模块根据一系列方程求解未知数的模块.在一工厂中在一工厂中,从不同的监控设备获取数据从不同的监控设备获取数据,并计算并计算 某一过程的产量某一过程的产量某一过程的产量某一过程的产量(占理论最大值的百分比占理论最大值的百分比占理论最大值的百分比占理论最大值的百分比)的模块的模块.n n 功能内聚模块的功能内
22、聚模块的输入输入一般包括函数的参数一般包括函数的参数,也可包也可包 括文仵或其他数据流括文仵或其他数据流.输出输出是简单的返回值是简单的返回值是简单的返回值是简单的返回值.也可是也可是也可是也可是 复杂的数据结构但只要提供相同的输入复杂的数据结构但只要提供相同的输入复杂的数据结构但只要提供相同的输入复杂的数据结构但只要提供相同的输入,该模块会产生相同该模块会产生相同该模块会产生相同该模块会产生相同的输出的输出的输出的输出.如下是功能内聚模块如下是功能内聚模块:第27页,本讲稿共120页2727n n更新数据库或创建新文件的模块更新数据库或创建新文件的模块.因为对数据库或文件系统有副作用因为对数
23、据库或文件系统有副作用.n n和用户交互的模块和用户交互的模块.向用户显示提示信息是一种输出向用户显示提示信息是一种输出,但违反但违反 了功能内聚模块的惟一输出是执行结束时的了功能内聚模块的惟一输出是执行结束时的 返回结果这一原则返回结果这一原则.如下不是功能内聚模块如下不是功能内聚模块:第28页,本讲稿共120页2828算多个地点的算多个地点的算多个地点的算多个地点的每日平均温度每日平均温度每日平均温度每日平均温度初始化求和初始化求和初始化求和初始化求和并打开文件并打开文件并打开文件并打开文件创建新的创建新的创建新的创建新的温度记录温度记录温度记录温度记录存储温存储温存储温存储温度记录度记录
24、度记录度记录关闭文件并关闭文件并关闭文件并关闭文件并打印平均温度打印平均温度打印平均温度打印平均温度功能性内聚功能性内聚功能性内聚功能性内聚 偶然内聚偶然内聚偶然内聚偶然内聚 偶然内聚偶然内聚偶然内聚偶然内聚功能性内聚功能性内聚功能性内聚功能性内聚读取地点、读取地点、读取地点、读取地点、时间和温度时间和温度时间和温度时间和温度存储特定存储特定存储特定存储特定地点温度地点温度地点温度地点温度编辑地点、时间编辑地点、时间编辑地点、时间编辑地点、时间或温度字段或温度字段或温度字段或温度字段功能性内聚功能性内聚功能性内聚功能性内聚功能性内聚功能性内聚功能性内聚功能性内聚功能性内聚功能性内聚功能性内聚功
25、能性内聚逻辑内聚逻辑内聚逻辑内聚逻辑内聚图图 6-10 每个内聚的模块互联每个内聚的模块互联每个内聚的模块互联每个内聚的模块互联例例第29页,本讲稿共120页2929 功能内聚好的原因功能内聚好的原因:n n模块的功能只是生成特定的输出模块的功能只是生成特定的输出,而没有副而没有副 作用时作用时,就就易理解易理解该模块该模块.n n因功能内聚的模块没有副作用因功能内聚的模块没有副作用,所以模块的所以模块的 可重用性高可重用性高.n n内聚的模块内聚的模块,功能单一功能单一,易修改易修改,易替换易替换,易易 维护维护 第30页,本讲稿共120页3030(8)(8)层内聚层内聚 (layer co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计
限制150内