版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、21/21山东轻工业学院教师授课教案课程名称:软件工程课程代码:0310040学 分:3课程类不:选修课开课单位:信息科学与技术学院授课班级:计科07-12授课教师:赵培英山东轻工业学院教务处制授课时刻2009年 9 月 23 日 星期 2009年 9 月 25 日 星期 2009年 10 月 9 日 星期 授课内容概要第四章 设计设计工程概述 设计的目标,设计的任务,软件设计的过程。软件设计原则 模块化,抽象与逐步求精,信息隐藏,模块独立。软件体系结构设计 各种体系结构风格。部件级设计技术结构化程序设计方法,设计的各种表示方法。人机界面设计阻碍人机界面设计的因素,涉及的模型,人机界面设计的黄
2、金规则。设计归档、确认与验证 设计文档应包含的内容,设计确认与验证的含义,设计评审的过程。目的要求了解设计的目标、任务、过程;了解结构化程序设计方法;了解设计的各种表示方法;了解人机界面设计的黄金规则;掌握软件设计原则;掌握各种体系结构风格;掌握设计评审的方法。重 点软件设计原则;各种体系结构风格;设计评审。难点耦合与内聚的概念及分类作业布置1.简述软件设计时期的任务和目标?2.软件设计有哪些原则?3.简述模块、模块化及模块化设计的概念。4.举例讲明各种类型的模块耦合和模块内聚。5.比较各种体系结构风格。6.人机界面设计的黄金规则?7.如何进行设计评审?参考书1.软件工程理论与实践(第三版影印
3、版),ShariLawrencePfleeger,高等教育出版社,2001年8月2软件工程钞票乐秋等 清华大学出版社课 型理论课学时分配复 习 5 分钟要紧教具多媒体讲 授 35 分钟教学方法多媒体课件指 导 2 分钟教学手段讲授结合实例总 结 3 分钟备注授课:每周二56,双周周五56, = 2 * ROMAN II公教JT301 答疑:每周四78节,机电C403学时分配:指本章节每节课(45分钟)的平均分配情况授 课 过 程 及 内 容:第四章 设计软件设计原则 软件体系结构设计部件级设计技术 人机界面设计设计规约与设计评审一、软件设计工程概述 软件设计的任务软件设计的目标软件设计的过程1
4、软件设计的任务 设计过程解决“如何做”的问题,把软件需求变换成软件表示的过程,要紧包含两个时期:软件体系结构设计(概要设计)部件级设计 (详细设计)依照用信息域表示的软件需求,以及功能和性能需求,产生数据/类设计体系结构设计接口设计部件级设计 1)数据/类设计 类模型=类实现(数据结构)在类和由CRC(类责任协作者)中定义的数据对象和关系以及数据字典中描述的详细数据内容提供了数据设计活动的基础2)体系结构设计 定义软件的整体结构由软件部件、外部可见的属性和它们之间的关系组成。体系结构设计表示能够从系统规约、分析模型和分析模型中定义的子系统的交互导出。 3)接口设计 描述软件内部、与协作系统之间
5、、与人之间如何通信,要紧包括三个方面:设计模块间接口设计外部接口设计人机接口 4)部件级设计 软件体系结构的结构性元素软件部件的过程性描述。在编码步骤,依照这种过程性描述,生成源程序代码,然后通过测试最终得到完整有效的软件。部件设计的基础:从类为基础的模型、流模型、行为模型中得到的信息 2软件设计的目标 1)设计必须实现分析模型中描述的所有显式需求,必须满足用户希望的所有隐式需求。2)设计必须是可读、可理解的,使得今后易于编程、易于测试、易于维护。3)设计应从实现角度动身,给出与数据、功能、行为相关的软件全貌。3软件设计的过程 1)制定规范2)体系结构和接口设计3)数据/类设计4)部件级(过程
6、)设计5)编写设计文档6)设计评审4软件设计原则(1)抽象化软件系统进行模块设计时,可有不同的抽象层次。在最高的抽象层次上,能够使用问题所处环境的语言概括地描述问题的解法。在较低的抽象层次上,则采纳过程化的方法。包括过程抽象和数据抽象1) 过程的抽象:在软件工程中,从系统定义到实现,每进展一步都能够看做是对软件解决方法的抽象化过程的一次细化。 需求分析时期,用“问题所处环境的为大伙儿所熟悉的术语”来描述软件解决方法。 从概要设计到详细设计的过程中,抽象化的层次逐次降低。 当产生源程序时到达最低抽象层次。2) 数据抽象:在不同层次上描述数据对象的细节,定义与该数据对象相关的操作。(2)逐步求精将
7、软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体系结构逐步求精与抽象是一对互补的概念(3)模块化 模块化:指整个软件被划分成若干单独命名和可编址的部分,称之为模块。这些模块能够被组装起来以满足整个问题的需求。把问题子问题的分解与软件开发中的系统子系统或系统模块对应起来,就能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。模块化的理论依照“分而治之”(P66)(4)信息隐藏 每个模块的实现细节关于其它模块来讲应该是隐蔽的。即:块中所包含的信息(包括数据和过程)不同意其它不需要这些信息的模块使用 通过信息
8、隐蔽,可使错误局部化 (5)模块独立 模块独立:是指软件系统中每个模块只涉及软件要求的具体的子功能, 而和软件系统中其它的模块的接口是简单的一般采纳两个准则度量模块独立性。即模块间耦合和模块内聚:内聚(cohesion)是一个模块内部各个元素彼此结合的紧密程度的度量 耦合(coupling)是模块之间互相连接的紧密程度的度量 模块独立性比较强的模块应是高内聚低耦合的模块。1)内聚 内聚性分七种类型 功能内聚 (Functional Cohesion):模块中各部分差不多上完成某一个体功能必不可少的组成部分。顺序内聚 (Sequential Cohesion):一个模块完成多个功能,各个功能必须
9、顺序执行。通信内聚 (Communication Cohesion):一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据。过程内聚(Procedural Cohesion):一个模块完成多个任务,这些任务必须按指定的过程进行。时刻内聚(Classical Cohesion):模块的各个功能的执行与时刻有关,通常要求所有功能必须在同一时刻段内执行。例如初始化模块和终止模块。逻辑内聚(Logical Cohesion):这种模块把几种相关的功能组合在一起,调用时,由传送给模块的判定参数来确定该模块应执行哪一种功能。巧合内聚(Coincidental Cohesion):巧合内聚又称
10、为偶然内聚。模块内各部分之间没有联系,或者即使有联系也专门松散。2)耦合 模块间的耦合方式非直接耦合(Nondirect Coupling):两个模块之间没有直接关系,它们的联系完全是通过主模块的操纵和调用来实现的。数据耦合 (Data Coupling):模块间仅通过参数表传递简单数据参数 (不是操纵参数、公共数据结构或外部变量) 交换信息。标记耦合 (Stamp Coupling):模块间通过参数表传递一个数据结构的一部分(不是简单变量。操纵耦合 (Control Coupling):假如一个模块通过传送开关、标志、名字等操纵信息,明显地操纵选择另一模块的功能,确实是操纵耦合。外部耦合(E
11、xternal Coupling):一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。公共耦合(Common Coupling):若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境能够是全局数据结构、共享的通信区、内存的公共覆盖区等。公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是两模块间有公共数据环境,则公共耦合有两种情况。松散公共耦合和紧密公共耦合。内容耦合 (Content Coupling):如发生下列情形,两个模块之间就发生了内容耦合:一个模块直接访问另一个模块的内部数据;一个模块不
12、通过正常入口转到另一模块内部;两个模块有一部分程序代码重迭(只可能出现在汇编语言中);一个模块有多个入口。二、软件体系结构设计 软件体系结构设计的一个核心问题是能否使用重复的体系结构模式,即能否达到体系结构级的软件重用软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。1软件体系结构的风格 (1)仓库风格体系结构 以数据为中心,有两种不同的构件:中央数据结构讲明当前状态,独立构件在中央数据存贮上执行,仓库与外构件间的相互作用在系统中会有大的变化例子:数据库,黑板系统(2)数据流风格的体系结构 输入数据被一系列的构件变换成输出数据。构件被称为过滤器,连接件为管道过滤器必须是独立的实体
13、,它不能与其它的过滤器共享数据,而且一个过滤器不明白它上游和下游的标识例:编译程序(3)调用和返回风格的体系结构 特不容易修改和扩充的体系结构。包含:主程序/子程序风格体系结构和远程过程调用风格的体系结构 在那个地点要了解几个概念:程序结构的深度:程序结构的层次数称为结构的深度。结构的深度在一定意义上反映了程序结构的规模和复杂程度。程序结构的宽度:层次结构中同一层模块的最大模块个数称为结构的宽度。模块的扇入和扇出:扇出表示一个模块直接调用(或操纵)的其它模块数目。扇入则定义为调用(或操纵)一个给定模块的模块个数。多扇出意味着需要操纵和协调许多下属模块。而多扇入的模块通常是公用模块。(4)面向对
14、象风格的体系结构 系统部件封装数据表示和数据操作。部件之间通过消息来交互和协调。 (5)层次式风格的体系结构 定义不同的层次,每一层为上层服务,并作为下层客户二、评估可选的体系结构 同一软件需求,不同设计方法,导出不同的软件结构。 同一问题的不同软件结构:体系结构权衡分析法(ATAM,architecture trade-off analysis method) 在进行软件体系结构设计时,能够参考如下规则: (1)改进软件结构提高模块独立性(2)模块适当的深度、宽度、扇出和扇入(3)模块推断作用范围应在其操纵作用范围内(4)力争降低模块接口的复杂度(5)设计单入口单出口的模块(6)模块功能应该
15、是能够预测的模块大小适中(7)一般一个模块包含的语句在3050条左右较好。(8)一个设计好的软件结构,通常顶层扇出比较高,中层扇出比较少,底层有高扇入。三、部件级设计技术 结构化程序设计方法1部件级设计技术 在部件级设计时期,要紧完成如下工作:为每个部件确定采纳的算法,选择某种适当的工具表达算法的过程,编写部件的详细过程性描述; 确定每一部件内部使用的数据结构; 在部件级设计结束时,应该把上述结果写入部件级设计讲明书,同时通过复审形成正式文档,作为下一时期(编码时期)的工作依据。 2结构化程序设计方法 结构化程序设计的定义:“假如一个程序的代码块仅仅通过顺序、选择和循环这三种差不多操纵结构进行
16、连结,同时每个代码块只有一个入口和一个出口,则称那个程序是结构化的”。 结构化程序设计方法自顶向下,逐步求精随着面向对象和软件复用的进展,更现实、更有效的开发途径可能是自顶向下和自底向上两种方法有机的结合。 3部件描述方式 图形表示:程序流程图 ,N-S图 ,PAD 表格表示:判定表语言表示:PDL四、人机界面设计人机界面设计中人的因素人对感知过程的认识用户的技能和行为方式用户所要求完成的整个任务以及用户对人机界面部分的专门要求2人机界面设计中涉及的模型 设计模型(design model):软件工程师创建的,整个系统设计模型包括对软件的数据结构、体系结构、界面和过程的表示。界面设计往往是设计
17、模型的附带结果。用户模型(user model):人机工程师创建的,用户模型描述系统终端用户的特点。设计前,应对用户分类,了解用户的特点,包括年龄、性不、实际能力(physical abilities)、教育、文化和种族背景、动机、目的以及个性。用户的模型(users model)或系统感受(system perception):终端用户主观想象的系统映象,描述了期望的系统能提供的操作。系统映象(system image):系统实现者创建的,包括基于计算机的系统的外在表示(界面的观感)和用来描述系统语法和语义的支撑信息(书、手册、录像带、关心文件)。3人机界面设计的黄金法则让用户拥有操纵权 减
18、少用户的经历负担 保持界面一致 五、设计规约与设计评审1设计规约的内容2设计评审 软件设计的最终目标是要取得最佳方案 “最佳”是指在所有候选方案中,就节约开发费用,降低资源消耗,缩短开发时刻的条件,选择能够赢得较高的生产率、较高的可靠性和可维护性的方案 设计评审的内容 可追溯性:即分析该软件的系统结构、子系统结构确认该软件设计是否覆盖了所有已确定的软件需求,软件每一成分是否可追溯到某一项需求。接口:即分析软件各部分之间的联系确认该软件的内部接口与外部接口是否差不多明确定义。部件是否满足高内聚和低耦合的要求。部件作用范围是否在其操纵范围之内。风险:即确认该软件设计在现有技术条件下和预算范围内是否能按时实现有用性:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食管癌、贲门癌术后吻合口瘘护理新进展
- 临夏法律职业资格2025年测评试卷
- 极端低温与罕见病心血管应激反应
- 2026年请老师指导说课稿
- 安徽省安庆市四中2026年九年级二模道德与法治试卷(含答案)
- 血液透析患者的液体管理原则
- 【试卷】吉林四平市第三中学校2025-2026学年七年级下学期期中测试语文试卷
- 本册综合说课稿2025年小学书法练习指导五年级下册人美版
- 26年胰腺癌高危随访手册
- 上海工程技术大学《安全生产与环境保护》2025-2026学年第一学期期末试卷(A卷)
- 2025年福建省福州市八年级地理生物会考真题试卷(含答案)
- 雨课堂学堂在线学堂云《人工智能导论》单元测试考核答案
- FSSC22000 V6食品安全管理体系管理手册及程序文件
- 【MOOC】英国小说-南京大学 中国大学慕课MOOC答案
- 职业访谈记录
- GB/T 9966.18-2021天然石材试验方法第18部分:岩相分析
- GB/T 21196.4-2007纺织品马丁代尔法织物耐磨性的测定第4部分:外观变化的评定
- 项目七:探究智能花卉养护系统 课件【知识精讲+备课精研+高效课堂】 沪科版(2019)高中信息技术必修2
- 锅炉除渣碎渣机检修工艺规程
- 设计-结构手算计算书
- 红色卡通风期中考表彰大会PPT模板
评论
0/150
提交评论