第三章 软件设计_第1页
第三章 软件设计_第2页
第三章 软件设计_第3页
第三章 软件设计_第4页
第三章 软件设计_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程软件工程第三章:软件设计第三章:软件设计2第三章第三章 软件设计软件设计3.1软件设计基本概念软件设计基本概念3.2软件设计准则软件设计准则3.3结构化设计方法结构化设计方法3.4面向对象设计方法面向对象设计方法3.5用户界面设计用户界面设计3.6软件复用软件复用3.7逆工程与再工程逆工程与再工程3.8例题例题3 软件设计是软件开发的关键步骤,直接影响软件质量。软件设计阶段要解决“如何做”的问题。一、一、软件设计阶段的任务软件设计阶段的任务 将分析阶段获得的需求说明转换为计算机中可实现的系统。包括:3.1 3.1 软件设计概述软件设计概述软件体系结构的设计用户界面的设计数据结构的设计算

2、法的设计4 即软件设计的任务是通过多项设计,构造一个高内聚低耦合的软件模型。过程设计过程设计系统结构设计系统结构设计数据设计数据设计界面设计界面设计软件设计软件设计软件设计内容软件设计内容5 从工程管理的角度来看,软件设计分两步完成,分为总体设计(概要设计)和详细设计两个阶段。 概要设计:概要设计:将软件需求转化为数据结构和软件的系统结构。 详细设计:详细设计:通过对结构表示进行细化,得到软件详细的数据结构和算法。软件设计工作流程需求需求说明书说明书复复审审软件结构软件结构可接受可接受模块描述模块描述复复审审修修 改改修修 改改总体总体设计设计详细详细设计设计二、软件设计的工作流程二、软件设计

3、的工作流程6 软件设计的目标就是构造一个高内聚高内聚、低耦合低耦合的软件模型。软件软件高可靠性高可靠性高可维高可维护性护性高可理高可理解性解性高效率高效率软件设计的目标衡量软件设计的目标的衡量软件设计的目标的准则准则: 软件实体有明显的层次结构,利于软件元素间控制。 软件实体应该是模块化的,模块具有独立功能。 设计规格说明清晰、简洁、完整和无二义性。 软件实体与环境的界面清晰。7第三章第三章 软件设计软件设计3.1软件设计基本概念软件设计基本概念3.2软件设计准则软件设计准则3.3结构化设计方法结构化设计方法3.4面向对象设计方法面向对象设计方法3.5用户界面设计用户界面设计3.6软件复用软件

4、复用3.7逆工程与再工程逆工程与再工程3.8例题例题81.软件结构的准则2. 模块化准则3.软件独立性准则3.2 3.2 软件设计准则软件设计准则 软件设计是软件开发过程的重要阶段,对保证软件系统的质量起着关键作用。但是如何保证软件设计的质量呢?有以下经过长期考验的设计准则: 这些设计准则直接影响到体系结构的设计过程的主要活动系统分解和模块分解。9 软件结构表示软件的系统结构,它是软件模块间关系的表示,均表示为层次关系。软 件 结 构 示 意 图0层层1层层2层层ABCDEFGHIJKLMN深度宽度扇入为扇入为2扇出为扇出为3扇入为扇入为3宽度深度宽度3层层4层层一、软件结构的准则一、软件结构

5、的准则10 深度:深度:表示软件结构中从顶层模块到最底层模块的层数。 宽度:宽度:表示控制的总分布。 扇出数:扇出数:指一个模块直接控制下属的模块个数。 扇入数:扇入数:指一个模块的直接上属模块个数。 一个好的软件结构的形态准则是:一个好的软件结构的形态准则是:顶部宽度小,中部宽度最大,底部宽度次之;在结构顶部有较高的扇出数,在底部有较高的扇入数。有有 关关 指指 标标11 所谓模块化就是将系统划分成若干模块,每个模块完成一个子功能,把这些模块集中起来组成一个整体,以满足所要求的整个系统的功能。 我们利用模块化来降低软件复杂度。注意选择分解的最佳模块数最佳模块数。二、二、模块化准则模块化准则

6、12三、软件独立性准则三、软件独立性准则 软件独立性的含义是指开发具有功能专一,模块之间无过多相互作用的模块。又称为模块独立性准则。 这种类型的模块可以并行开发,开发容易,能减少错误的影响,使模块容易组合、修改及测试。13 耦合性耦合性 用于描述模块之间联系的紧密程度。内聚性内聚性 用于描述模块内部联系的紧密程度。软件独立性的度量标准是两个定性指标:软件独立性的度量标准是两个定性指标:耦合性的几种类型耦合性的几种类型内容耦合内容耦合公共耦合公共耦合控制耦合控制耦合复合耦合复合耦合数据耦合数据耦合高高耦合性耦合性低低弱弱内聚性内聚性强强偶然型偶然型逻辑型逻辑型瞬时型瞬时型通信型通信型顺序型顺序型

7、功能型功能型内聚性的几种类型内聚性的几种类型14第三章第三章 软件设计软件设计3.1软件设计基本概念软件设计基本概念3.2软件设计准则软件设计准则3.3结构化设计方法结构化设计方法3.4面向对象设计方法面向对象设计方法3.5用户界面设计用户界面设计3.6软件复用软件复用3.7逆工程与再工程逆工程与再工程3.8例题例题153.3 结构化设计方法 SD(Structured Design)法与SA、SP法前后衔接,是结构化开发方法的核心。1.SD SD 法的两个阶段法的两个阶段 总体设计总体设计 解决系统的模块结构,即分解模块,确定模块功能及系统模块的层次结构。 文档:模块结构图及其模块功能说明。

8、 详细设计详细设计 对模块图中每个模块的过程进行描述,常用的描述的方式有:伪代码、流程图、N-S图、PAD图等。162.SD 2.SD 法的设计步骤法的设计步骤 从DFD图导出初始的模块结构图(SC)。 按照SD法设计总则,改进模块结构图。3.3 结构化设计方法17 一、任务 详细设计阶段的任务是开发一个可以直接转换为程序的软件表示,即对系统中每个模块的内部过程进行设计和描述。 二、常用的描述方法工具 1.流程图 2.结构化流程图(N-S图) 3.PAD图问题分析图 4.PDL 语言详细设计18第三章第三章 软件设计软件设计3.1软件设计基本概念软件设计基本概念3.2软件设计准则软件设计准则3

9、.3结构化设计方法结构化设计方法3.4面向对象设计方法面向对象设计方法3.5用户界面设计用户界面设计3.6软件复用软件复用3.7逆工程与再工程逆工程与再工程3.8例题例题19 UML概述 UML是软件界第一个统一的建模语言,该方法结合了Booch, OMT, 和OOSE方法的优点,统一了符号体系,并从其他的方法和工程实践中吸收了许多经过实际检验的概念和技术。 它是一种标准的表示,已成为国际软件界广泛承认的标准。UML是一种基于面向对象的可视化的通用(General)建模语言。为不同领域的用户提供了统一的交流标准UML图。 UML的应用领域很广泛,可用于软件开发建模的各个阶段、商业建模(Busi

10、ness Modeling), 也可用于其他类型的系统。20设计视图实现视图配置视图过程视图用例视图用例视图用例视图描述系统的外部特性、系统功能等。实现视图 表示系统的实现特征,常用构件图表示。设计视图设计视图 描述系统设计特征,包括结构模型视图和行为模型视图,前者描述系统的静态结构(类图、对象图),后者描述系统的动态行为(交互图、状态图、活动图)。过程视图过程视图 表示系统内部的控制机制。常用类图描述过程结构,用交互图描述过程行为。配置视图配置视图描述系统的物理配置特征。用配置图表示。UML常用视图21 UML语言定义了5种类型,9种不同的图,把它们有机结合起来就可以描述系统的所有视图。用例

11、图用例图( (Usecasediagram) ) 从用户角度描述系统功能,并指出各功能的操作者。静态图静态图( (Staticdiagram) ) 表示系统的静态结构。包括类图、对象图、包图。行为图行为图(Behaviordiagram)描述系统的动态模型和组成对象间的相互关系。包括状态图、活动图。 交互图交互图(Interactivediagram) 描述对象间的交互关系。包括顺序图、协作图。 实现图实现图(Implementationdiagram) 用于描述系统的物理实现。包括构件图、部件图。 图(Diagrams)22 用例建模技术,用于描述系统的功能需求。在宏观上给出模型的总体轮廓。

12、通过对典型用例的分析,使开发者能够有效地了解用户的需求。1 1 用例建模用例建模232. 2. 类图类图*1111111111111111值班护士值班护士医生医生病人病人病症监视病症监视病人病症信号病人病症信号病历病历病历库病历库病情报告病情报告报警信号报警信号中央监护系统中央监护系统标准病症信号标准病症信号1*报警报警监视监视标准病症信号库标准病症信号库1243.包图包图订单获订单获取界面取界面AWT邮件发邮件发送界面送界面邮件发邮件发送应用送应用订单获订单获取应用取应用订单订单顾客顾客用户接口包用户接口包应用层包应用层包问题域包问题域包其中其中:AWT是是Java中管理中管理GUI类的包。

13、类的包。254.状态图状态图26呼叫者呼叫者交换交换接受者接受者拿起话筒拿起话筒响拨号声响拨号声拨号码拨号码路由选择路由选择鸣响音鸣响音停音停音响铃声响铃声接电话接电话停铃声停铃声ABCDEBA1sCB10s通过网络选通过网络选择通话路径择通话路径ED5s双方通话双方通话打电话的顺序图5.顺序图顺序图276.活动图活动图287.协作图协作图298.构件图构件图30 保险单保险单 填写界面填写界面保险系统保险系统保险数据库保险数据库保险政策保险政策保险用户保险用户客户客户PCPC保险服务器保险服务器保险系统保险系统配置配置配置配置保险系统的配置图9.配置图配置图31第三章第三章 软件设计软件设计

14、3.1软件设计基本概念软件设计基本概念3.2软件设计准则软件设计准则3.3结构化设计方法结构化设计方法3.4面向对象设计方法面向对象设计方法3.5用户界面设计用户界面设计3.6软件复用软件复用3.7逆工程与再工程逆工程与再工程3.8例题例题32 随着各种应用软件的面市,作为人机接口的用户界面具有越来越重要的作用,用户界面是否友好直接影响到软件的寿命与竞争力。因此,对用户界面的设计必须予以足够的重视。3.5 3.5 用户界面设计用户界面设计 用户界面设计中的主要问题用户界面设计中的主要问题: 用户界面应具有的特性用户界面应具有的特性什么是友好的用户界面。 用户界面设计的任务用户界面设计的任务用户

15、界面设计应该完成的工作。 用户界面的基本类型用户界面的基本类型用户界面的工作模式。33用户界面设计迭代过程用户界面设计迭代过程分析和理解分析和理解用户活动用户活动在纸上设计在纸上设计原型原型与最终用户与最终用户一起评价一起评价设计原型设计原型产生动态产生动态设计原型设计原型与最终用户与最终用户一起评价一起评价实现最终的实现最终的用户界面用户界面可执行原型可执行原型341.努力保持命令、菜单、颜色等统一努力保持命令、菜单、颜色等统一(StriveforConsistency)。)。2.为频繁使用的用户提供快捷方式为频繁使用的用户提供快捷方式(EnableFrequentUserstoUseSho

16、rtCuts)。)。3.提供信息反馈提供信息反馈(OfferInformationFeedback)。)。4.提供简单的错误处理提供简单的错误处理(OfferSimpleErrorHandling)。)。5.允许方便地进行操作回滚允许方便地进行操作回滚(PermitEasyReversalofActions)。)。用户界面设计原则:用户界面设计原则:35TheoMandel创造了三条黄金原则创造了三条黄金原则:1、用户主导、用户主导PlaceUsersinControl以不强迫用户进入不必要的或不希望的动作的方式来定义交互方式,允许用户交互可以被中断和撤消,当技能级别增加时可以使交互流水化并允

17、许定制交互使用户隔离内部技术细节,设计应允许用户和出现在屏幕上的对象直接交互。2、减少用户的记忆负担、减少用户的记忆负担ReduceUsersMemoryLoad减少用户对短期记忆的要求,建立有意义的缺省,定义直觉性的捷径,快捷方式,界面的视觉布局应该基于真实世界的隐喻。3、保持界面一致、保持界面一致MaketheInterfaceConsistent用户应以一致的方式展示和获取信息,所有可视信息的组织均按照所有屏幕显示所保持的设计标准,允许用户将当前任务放入有意义的语境,在应用系列内保持一致性,如过去的交互模型已建立起了用户期望,除非有迫不得已的理由,不要改变它。用户界面设计原则:用户界面设

18、计原则:363738第三章第三章 软件设计软件设计3.1软件设计基本概念软件设计基本概念3.2软件设计准则软件设计准则3.3结构化设计方法结构化设计方法3.4面向对象设计方法面向对象设计方法3.5用户界面设计用户界面设计3.6软件复用软件复用3.7逆工程与再工程逆工程与再工程3.8例题例题393.6 3.6 软件复用的基本概念软件复用的基本概念 软件复用就是将已有的软件成分用于构造新的软件系统,以达到提高软件系统的开发质量与效率、开发成本的目的。 可复用的软件成分称为可复用构件(Reusable Component)或组件,可从旧软件中提取,也可以专门为复用而开发。软件复用不仅是对程序的复用软

19、件复用不仅是对程序的复用,它包括对软件生它包括对软件生产过程中任何活动所产生的制成品的复用。产过程中任何活动所产生的制成品的复用。如:项目计划、可行性报告、需求定义、分析模型、详细说明、源程序和测试用例等。40 复用级别越高,可得到的回报也越大,因此分析软件(Analysis Ware)和设计软件(Design Ware)的复用备受重视。软件复用的优点:软件复用的优点: (1)提高软件生产率,降低软件生产成本; (2)提高软件质量; (3)提高互操作性; (4)推动标准化; (5)支持原型开发。3.6 3.6 软件复用的基本概念软件复用的基本概念41代码的复用代码的复用设计结果的复用设计结果的

20、复用分析结果的复用分析结果的复用测试信息的复用测试信息的复用抽抽象象程程度度软件复用的级别软件复用的级别包括目标代码,也包括文本形式包括目标代码,也包括文本形式的源代码。的源代码。受实际环境影响小,可复用机会受实际环境影响小,可复用机会多,所需修改少。多,所需修改少。可被复用的分析结果是针对问题可被复用的分析结果是针对问题域的某些事物或某些问题的抽象域的某些事物或某些问题的抽象程度更高的解法。程度更高的解法。主要包括测试用例(主要包括测试用例(test casetest case)的复用和测试过程信息的复用。的复用和测试过程信息的复用。42软件复用的形式软件复用的形式一、按照重用活动所跨越的应

21、用领域的类型分一、按照重用活动所跨越的应用领域的类型分1.横向复用(横向复用(horizontal reusehorizontal reuse)也称为水平复用,是指复用活动的范围跨越了几个不同的应用领域,复用的软件产品主要包括数据结构、通用算法、人机界面等软件元素。2.纵向复用(纵向复用(vertical reusevertical reuse)也称为垂直复用,是指复用活动的范围限制在同一个应用领域或者是一类具有较多共性的应用领域内。 43二、基于软件复用的软件开发过程的角度分二、基于软件复用的软件开发过程的角度分.生产者复用生产者复用(product reuse)(product reuse

22、)指建立、获取或者重新设计可复用构件的活动。涉及的活动包括:复用的规划、领域分析、构件的开发、构件库的组织和管理。.消费者复用消费者复用(consumer reuse)(consumer reuse)指使用可复用的构件建立新的系统的活动。涉及的活动包括:应用系统的规划、构件的检索和选择、应用系统中非复用部分的开发、应用系统的组装。软件复用的形式软件复用的形式44复用具有许多明显的优点,但目前应用不广泛的主要原因是: (1)技术因素技术因素 构件与应用系统之间的差异; 构件要达到一定的规模,才能支持有效的复用; 发现复用构件的困难; 基于复用的软件开发方法和软件过程需要一些新的理论、技术及支持环

23、境。软件软件复用的困难复用的困难(2)人的因素人的因素喜欢自己创造而不喜欢使用别人的东西。45(4)教育因素教育因素软件科学技术的教育与培训中,缺乏关于软件复用的内容,缺少专门教材和课程。(3)管理因素管理因素把复用构件和一般软件构件同等看待,把复用看作可有可无的事。软件软件复用的困难复用的困难46第三章第三章 软件设计软件设计3.1软件设计基本概念软件设计基本概念3.2软件设计准则软件设计准则3.3结构化设计方法结构化设计方法3.4面向对象设计方法面向对象设计方法3.5用户界面设计用户界面设计3.6软件复用软件复用3.7逆工程与再工程逆工程与再工程3.8例题例题47软件再工程软件再工程Re-

24、EngineeringRe-Engineering 再工程是在获得软件设计信息的同时,利用这些信息修改或重构软件系统。 根据用户需求,软件开发人员可利用再工程重新实现已有的软件系统,同时增加新的功能和改进性能。 软件再工程的目的:软件再工程的目的: 在商业上要提高产品的竞争力;在技术上要提高产品的质量。但这种愿望无法靠软件的维护来实现,因为: (1)软件的可维护性可能极差,实在不值得去做; (2)即使软件的可维护性比较好,但也只是治表不治本。软件再工程干脆对已有软件进行全部或部分的改造,赋予软件新的活力。48软件的逆向工程软件的逆向工程-Reverse Engineering-Reverse

25、Engineeringn软件的逆向工程:软件的逆向工程:分析已有程序,力图与源代码相比,在更高抽象层次上建立程序的表示过程即逆向工程是设计的恢复过程。n利用逆向工程工具,可以从已存在的程序中抽取数据结构、体系结构和程序设计信息。49集成化集成化CASE环境环境ComputerAidedSoftwareEngineering分散的软件开发工具都只在软件产品的某个开发阶段起作用,它们有着不同的用户界面、不同的数据存储格式,不能够有效进行相互通信和数据共享,这些缺陷极大地限制了其最大效能的发挥。为克服以上缺陷,将多个CASE工具结合起来构成集成化的CASE环境,使得各种软件开发信息能够在不同CASE工具之间、不同开发阶段以及不同开发人员之间顺畅地传递。 50集成化的集成化的CASE环境划分层次环境划分层次工具工具B信息转换器信息转换器工具工具A专有开发专有开发信息信息专有开发专有开发信息信息彼此独立的软件工具集彼此独立的软件工具集环境中工具之间完全独立,它们之间有着不同的用户界面和信息的存储格式。借助操作系统的文件服务和数据交换服务,实现不同工具之间的数据交换和共享。集成度非常低。51(2)具有公共界面的软件工具集具有公共界面的软件工具集 提供了一致的公共用户界面和操作方式,但

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论