清华大学信息学院软件工程ppt04二教学提纲.ppt
《清华大学信息学院软件工程ppt04二教学提纲.ppt》由会员分享,可在线阅读,更多相关《清华大学信息学院软件工程ppt04二教学提纲.ppt(73页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、清华大学信息学院软件工程ppt04二n n软件设计是后续开发步骤及软件维软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只护工作的基础。如果没有设计,只能建立一个不稳定的系统结构能建立一个不稳定的系统结构软件设计任务软件设计任务n n从工程管理的角度来看,软件设从工程管理的角度来看,软件设计分两步完成。计分两步完成。uu 概要设计概要设计,将软件需求转化,将软件需求转化为数据结构和软件的系统结构。为数据结构和软件的系统结构。uu 详细设计详细设计,即过程设计。通,即过程设计。通过对结构表示进行细化,得到过对结构表示进行细化,得到软件的详细的数据结构和算法软件的详细的数据结构和算法。软
2、件设计过程软件设计过程1.1.制定规范制定规范n n在进入软件开发阶段之初,首先在进入软件开发阶段之初,首先应为软件开发组制定在设计时应应为软件开发组制定在设计时应该共同遵守的标准,以便协调组该共同遵守的标准,以便协调组内各成员的工作。包括内各成员的工作。包括:u 阅读和理解软件需求说明书,确阅读和理解软件需求说明书,确认用户要求能否实现,明确实现认用户要求能否实现,明确实现的条件,从而确定设计的目标,的条件,从而确定设计的目标,以及它们的优先顺序以及它们的优先顺序uu 根据目标确定最合适的设计方法根据目标确定最合适的设计方法uu 规定设计文档的编制标准规定设计文档的编制标准uu 规定编码的信
3、息形式,与硬件,规定编码的信息形式,与硬件,操作系统的接口规约,命名规则操作系统的接口规约,命名规则2.2.软件系统结构的总体设计软件系统结构的总体设计n n基于功能层次结构建立系统。基于功能层次结构建立系统。uu 采用某种设计方法,将系统按功采用某种设计方法,将系统按功能划分成模块的层次结构能划分成模块的层次结构uu 确定每个模块的功能确定每个模块的功能uu 建立与已确定的软件需求的对应建立与已确定的软件需求的对应关系关系uu 确定模块间的调用关系确定模块间的调用关系uu 确定模块间的接口确定模块间的接口uu 评估模块划分的质量评估模块划分的质量3.3.处理方式设计处理方式设计n n确定为实
4、现系统的功能需求所必需确定为实现系统的功能需求所必需的算法,评估算法的性能的算法,评估算法的性能n n确定为满足系统的性能需求所必需确定为满足系统的性能需求所必需的算法和模块间的控制方式的算法和模块间的控制方式uu 响应时间响应时间uu 吞吐量吞吐量uu 精度精度n n确定外部信号的接收发送形式确定外部信号的接收发送形式4.4.数据结构设计数据结构设计n n确定软件涉及的文件系统的结构以确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数及数据库的模式、子模式,进行数据完整性和安全性的设计据完整性和安全性的设计n n确定输入,输出文件的详细的数据确定输入,输出文件的详细的数据结构结构n
5、 n结合算法设计,确定算法所必需的结合算法设计,确定算法所必需的逻辑数据结构及其操作逻辑数据结构及其操作n n确定对逻辑数据结构所必需的那些确定对逻辑数据结构所必需的那些操作的程序模块操作的程序模块(软件包软件包)5.5.可靠性设计可靠性设计n n可靠性设计也叫做质量设计可靠性设计也叫做质量设计n n在运行过程中,为了适应环境的在运行过程中,为了适应环境的变化和用户新的要求,需经常对变化和用户新的要求,需经常对软件进行改造和修正。在软件开软件进行改造和修正。在软件开发的一开始就要确定软件可靠性发的一开始就要确定软件可靠性和其它质量指标,考虑相应措施,和其它质量指标,考虑相应措施,以使得软件易于
6、修改和易于维护以使得软件易于修改和易于维护6.6.编写概要设计阶段的文档编写概要设计阶段的文档n n概要设计阶段完成时应编写以下文档:概要设计阶段完成时应编写以下文档:uu 概要设计说明书概要设计说明书uu 数据库设计说明书数据库设计说明书uu 用户手册用户手册uu 制定初步的测试计划制定初步的测试计划7.7.概要设计评审概要设计评审n n可追溯性可追溯性:确认该设计是否复盖了所:确认该设计是否复盖了所有已确定的软件需求,软件每一成份有已确定的软件需求,软件每一成份是否可追溯到某一项需求是否可追溯到某一项需求n n接口接口:确认该软件的内部接口与外部:确认该软件的内部接口与外部接口是否已经明确
7、定义。模块是否满接口是否已经明确定义。模块是否满足高内聚和低耦合的要求。模块作用足高内聚和低耦合的要求。模块作用范围是否在其控制范围之内范围是否在其控制范围之内n n风险风险:确认该设计在现有技术条件下:确认该设计在现有技术条件下和预算范围内是否能按时实现和预算范围内是否能按时实现n n实用性实用性:确认该设计对于需求的解决:确认该设计对于需求的解决方案是否实用方案是否实用n n技术清晰度技术清晰度:确认该设计是否以一种:确认该设计是否以一种易于翻译成代码的形式表达易于翻译成代码的形式表达n n可维护性可维护性:确认该设计是否考虑了方:确认该设计是否考虑了方便未来的维护便未来的维护n n质量质
8、量:确认该设计是否表现出良好的:确认该设计是否表现出良好的质量特征质量特征n n各种选择方案各种选择方案:看是否考虑过其:看是否考虑过其它方案,比较各种选择方案的标它方案,比较各种选择方案的标准是什么准是什么n n限制限制:评估对该软件的限制是否:评估对该软件的限制是否现实,是否与需求一致现实,是否与需求一致n n其它具体问题其它具体问题:对于文档、可测:对于文档、可测试性、设计过程试性、设计过程.等进行评估等进行评估n n在详细设计过程中,需要完成的在详细设计过程中,需要完成的工作是:工作是:1.1.确定软件各个组成部分内的确定软件各个组成部分内的算法以及各部分的内部数据组织算法以及各部分的
9、内部数据组织2.2.选定某种过程的表达形式来选定某种过程的表达形式来描述各种算法。描述各种算法。3.3.进行详细设计的评审进行详细设计的评审8.详细设计详细设计软件设计基础u 自顶向下,逐步细化自顶向下,逐步细化u 软件结构软件结构u 程序结构程序结构u 结构图结构图u 模块化模块化u 抽象化抽象化u 信息隐蔽信息隐蔽自顶向下,逐步细化自顶向下,逐步细化n n将软件的体系结构按自顶向下方将软件的体系结构按自顶向下方式,对各个层次的过程细节和数式,对各个层次的过程细节和数据细节逐层细化,直到用程序设据细节逐层细化,直到用程序设计语言的语句能够实现为止,从计语言的语句能够实现为止,从而最后确立整个
10、的体系结构。而最后确立整个的体系结构。软件结构软件结构n n软件结构包括两部分。程序的模块软件结构包括两部分。程序的模块结构和数据的结构结构和数据的结构n n软件的体系结构通过一个划分过程软件的体系结构通过一个划分过程来完成。该划分过程从需求分析确来完成。该划分过程从需求分析确立的目标系统的模型出发,对整个立的目标系统的模型出发,对整个问题进行分割,使其每个部分用一问题进行分割,使其每个部分用一个或几个软件成份加以解决,整个个或几个软件成份加以解决,整个问题就解决了问题就解决了程序结构程序结构n n程序结构表明了程序各个部件程序结构表明了程序各个部件(模块模块)的组织情况,是软件的过程表示。的
11、组织情况,是软件的过程表示。结构图结构图n n结构图反映程序中模块之间的层结构图反映程序中模块之间的层次调用关系和联系:它以特定的次调用关系和联系:它以特定的符号表示模块、模块间的调用关符号表示模块、模块间的调用关系和模块间信息的传递系和模块间信息的传递 模块:模块用矩形框表示,并用模块:模块用矩形框表示,并用模块的名字标记它。模块的名字标记它。模块的调用关系和接口:模块之模块的调用关系和接口:模块之间用单向箭头联结,箭头从调用模间用单向箭头联结,箭头从调用模块指向被调用模块,表示调用模块块指向被调用模块,表示调用模块调用了被调用模块。调用了被调用模块。模块间的信息传递:当一个模块模块间的信息
12、传递:当一个模块调用另一个模块时,调用模块把数调用另一个模块时,调用模块把数据或控制信息传送给被调用模块,据或控制信息传送给被调用模块,以使被调用模块能够运行。而被调以使被调用模块能够运行。而被调用模块在执行过程中又把它产生的用模块在执行过程中又把它产生的数据或控制信息回送给调用模块数据或控制信息回送给调用模块 在模块在模块A的箭头尾部标以一个菱的箭头尾部标以一个菱形符号,表示模块形符号,表示模块A有条件地调用有条件地调用另一个模块另一个模块B。当一个在调用箭头。当一个在调用箭头尾部标以一个弧形符号,表示模块尾部标以一个弧形符号,表示模块A反复调用模块反复调用模块C和模块和模块D。程序的系统结
13、构图程序的系统结构图模块化模块化n n软件系统的模块化是指整个软件软件系统的模块化是指整个软件被划分成若干单独命名和可编址被划分成若干单独命名和可编址的部分,称之为模块。这些模块的部分,称之为模块。这些模块可以被组装起来以满足整个问题可以被组装起来以满足整个问题的需求。的需求。n n把问题子问题的分解与软件开把问题子问题的分解与软件开发中的系统子系统或系统模发中的系统子系统或系统模块对应起来,就能够把一个大而块对应起来,就能够把一个大而复杂的软件系统划分成易于理解复杂的软件系统划分成易于理解的比较单纯的模块结构。的比较单纯的模块结构。模块的独立性模块的独立性n n模块(模块(Module)“模
14、块模块”,又称,又称“组件组件”。它一般。它一般具有如下三个基本属性具有如下三个基本属性:uu功能:描述该模块实现什么功功能:描述该模块实现什么功能能uu逻辑:描述模块内部怎么做逻辑:描述模块内部怎么做uu状态:该模块使用时的环境和状态:该模块使用时的环境和条件条件n n在描述一个模块时,还必须按模块在描述一个模块时,还必须按模块的的外部特性外部特性与与内部特性内部特性分别描述分别描述n n模块的模块的外部特性外部特性uu 模块的模块名、参数表、其中的模块的模块名、参数表、其中的输入参数和输出参数,以及给程序输入参数和输出参数,以及给程序以至整个系统造成的影响以至整个系统造成的影响n n模块的
15、模块的内部特性内部特性uu 完成其功能的程序代码和仅供该完成其功能的程序代码和仅供该模块内部使用的数据模块内部使用的数据n n模块独立性模块独立性uu 模块独立性模块独立性,是指软件系统中每是指软件系统中每个模块只涉及软件要求的具体的子个模块只涉及软件要求的具体的子功能功能,而和软件系统中其它的模块而和软件系统中其它的模块的接口是简单的的接口是简单的uu 例如例如,若一个模块只具有单一的若一个模块只具有单一的功能且与其它模块没有太多的联系功能且与其它模块没有太多的联系,则称此模块具有模块独立性则称此模块具有模块独立性uu 一般采用两个准则度量模块独立一般采用两个准则度量模块独立性。即模块间性。
16、即模块间耦合耦合和模块和模块内聚内聚u 耦合耦合是模块之间的互相连接的紧是模块之间的互相连接的紧密程度的度量。密程度的度量。uu 内聚内聚是模块功能强度是模块功能强度(一个模块一个模块内部各个元素彼此结合的紧密程内部各个元素彼此结合的紧密程度度)的度量。的度量。uu 模块独立性比较强的模块应是模块独立性比较强的模块应是高高内聚低耦合内聚低耦合的模块。的模块。模块间的耦合模块间的耦合非直接耦合非直接耦合(Nondirect Coupling)如果两个模块之间没有直接关系,如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块它们之间的联系完全是通过主模块的控制和调用来的控制和调用来实现的,
17、这就是实现的,这就是非直接耦合。这非直接耦合。这种耦合的模块独种耦合的模块独立性最强。立性最强。数据耦合数据耦合(Data Coupling)如果一个模块访问另一个模块时,彼如果一个模块访问另一个模块时,彼此之间是通过此之间是通过简单数据参数简单数据参数 (不是控不是控制参数、公共数据结构或外部变量制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种来交换输入、输出信息的,则称这种耦合为数据耦合。耦合为数据耦合。标记耦合标记耦合(Stamp Coupling)如果一组模块通过参数表传递如果一组模块通过参数表传递记录信记录信息息,就是标记耦合。这个记录是某一,就是标记耦合。这个记录是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 清华大学 信息 学院 软件工程 ppt04 教学 提纲
限制150内