大连理工大学软件工程导论复习市公开课一等奖省赛课微课金奖课件_第1页
大连理工大学软件工程导论复习市公开课一等奖省赛课微课金奖课件_第2页
大连理工大学软件工程导论复习市公开课一等奖省赛课微课金奖课件_第3页
大连理工大学软件工程导论复习市公开课一等奖省赛课微课金奖课件_第4页
大连理工大学软件工程导论复习市公开课一等奖省赛课微课金奖课件_第5页
已阅读5页,还剩130页未读 继续免费阅读

下载本文档

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

文档简介

大连理工大学软件学院软件工程复习第1页第1章基础知识2024/5/12大连理工大学软件学院第2页什么是软件软件定义—软件由三部分组成:程序:在运行时,能提供所希望功效和性能指令集数据:使程序能够正确运行数据文档:描述程序研制过程、方法及使用文档软件处理是信息和逻辑软件开发,绝不但仅是编写程序软件围绕着逻辑进行软件就是一个信息交换器产生、管理、获取、修改、显示或传送信息软件≠程序2024/5/13大连理工大学软件学院第3页什么是软件危机软件危机是指在计算机软件开发和维护过程中所碰到一系列严重问题。软件工程(IEEE)1993年,提出软件工程1)将系统化、规范化、可量化工程标准和方法,应用于软件开发、运行和维护。2)对1)中方法理论研究。2024/5/14大连理工大学软件学院第4页软件工程基本原理(开发与维护指导)用分阶段生命周期计划严格管理坚持进行阶段评审实施严格产品控制采取当代程序设计技术结果应能清楚地审查开发小组人员应该少而精认可不停改进软件工程实践必要性2024/5/15大连理工大学软件学院第5页软件工程方法学把在软件生命周期全过程中使用一整套技术集合称为方法学(methodology),也称范型(paradigm)。软件工程方法学三个要素:方法、工具和过程。方法是完成软件开发各项任务技术,回答“怎样做”;工具是为方法利用提供自动或半自动软件支撑环境,回答“用什么做”;过程是为取得高质量软件要完成一系列任务框架,要求完成各项任务步骤,回答“怎样控制、协调、确保质量”。管理方法2024/5/16大连理工大学软件学院第6页当前使用得最广泛软件工程方法学。传统方法学也称为生命周期方法学或结构化范型。

当软件规模较大,或对软件需求是含糊或随时间改变时候,使用结构化范型开发软件往往不成功;另外,使用传统方法学开发出软件,维护起来通常都很困难。结构化-静态分析,面向对象-动态分析世界万物是改变传统方法学与面向对象方法学2024/5/17大连理工大学软件学院第7页传统方法特点生命周期模型软件过程划分为若干个阶段每个阶段有各自任务阶段之间有某种次序性2024/5/18大连理工大学软件学院第8页面向对象方法:对象作为融合数据及在数据之上操作行为统一软件构件。把全部对象都划分成类(Class)。每个类都定义了一组数据和一组操作。按照父类(或称为基类)与子类(或称为派生类)关系,把若干个相关类组成一个层次结构系统(也称为类等级)。在类等级中,下层派生类自动拥有上层基类中定义数据和操作,称为继承。对象彼此间仅能经过发送消息相互联络-封装性。数据:静态操作:动态EverythingisObject.2024/5/19大连理工大学软件学院第9页1.3软件生命周期

软件生命周期由软件定义、软件开发和运行维护三个时期组成,每个时期又可深入划分成若干个阶段,每个阶段有各自任务。1软件定义2软件开发3运行维护2024/5/110大连理工大学软件学院第10页问题定义可行性研究需求分析概要设计详细设计编码和单元测试综合测试软件维护2024/5/111大连理工大学软件学院第11页实际瀑布模型软件过程模型(生命周期模型)2024/5/112大连理工大学软件学院第12页快速原型模型2024/5/113大连理工大学软件学院第13页增量模型瀑布模型:力争一次性给用户完整系统。增量模型:逐步增加系统功效。需要开放架构设计。2024/5/114大连理工大学软件学院第14页完整螺旋模型2024/5/115大连理工大学软件学院第15页喷泉模型迭代是OO开发过程主要特征。喷泉模型是经典面向对象生命周期模型。“喷泉”表达了面向对象软件开发过程迭代和无缝特征。为防止喷泉模型过分无序,把一个线性过程作为总目标。迭代

2024/5/116大连理工大学软件学院第16页喷泉模型迭代:逐步求精阶段间没有显著界限-面向对象思想确保了各个阶段开发一致性。迭代是OO开发过程主要特征。喷泉模型是经典面向对象生命周期模型。“喷泉”表达了面向对象软件开发过程迭代和无缝特征。2024/5/117大连理工大学软件学院第17页可行性与需求分析第18页可行性研究不是处理问题,而是确定问题是否值得去处理较高层次系统分析和设计过程需求分析发觉、求精、建模、规格说明和复审过程重复求精屡次细化,得出对目标系统完整、准确和详细要求。建立数据模型、功效模型和行为模型等三种模型。还要写出准确软件需求规格说明。。2024/5/119大连理工大学软件学院第19页系统流程图系统流程图概括描绘物理系统传统工具用图形符号,以黑盒子形式描述组成系统每个部件程序、文档、数据库、人工过程2024/5/120大连理工大学软件学院第20页系统流程图例子例子每个符号用黑盒子形式定义了组成系统一个部件。没有部件内部详细工作过程箭头确定经过系统逻辑路径(信息流动路径)2024/5/121大连理工大学软件学院第21页数据流图数据流图(DFD)描绘信息流和数据从输入移动到输出过程中所经受变换。或或或符号含义数据源点或终点数据流数据存放加工(数据处理)2024/5/122大连理工大学软件学院第22页加工中常见关系符号表示符号含义由数据A和B共同变换为数据C由数据A变换为数据B和数据C由数据A或B,或者数据A和B共同变换为数据C由数据A变换为数据B或C,或者同时变换为数据B和C由数据A或B其中之一变换为数据C由数据A变换为数据B或C其中之一T*T*T+T+TT2024/5/123大连理工大学软件学院第23页2024/5/124大连理工大学软件学院第24页把处理事务功效深入分解后数据流图2024/5/125大连理工大学软件学院第25页数据字典数据字典是关于数据信息集合,即对DFD图中包含元素定义集合。数据字典用途是供人查阅不了解条目标解释。提供分析设计过程中关于数据描述。数据字典与DFD相辅相成。只有DFD和对应元素准确定义放在一起,才能组成系统规格说明。2024/5/126大连理工大学软件学院第26页定义数据方法=意思是等价于(或定义为);+意思是和(即,连接两个分量);[]意思是或(即,从方括弧内列出若干个分量中选择一个),用“|”号分开供选择分量;{}意思是重复(即,重复花括弧内分量);()意思是可选(即,圆括弧里分量可有可无)。使用上限和下限深入注释表示重复花括弧。左边用上角标和下角标分别表明重复上限和下限;左侧标明重复下限,在闭括弧右侧标明上限。比如:{A}和1{A}5含义相同。152024/5/127大连理工大学软件学院第27页数据字典实现CASE工具人工卡片2024/5/128大连理工大学软件学院第28页实体—关系图数据模型包含三种相互关联信息:数据对象、描述数据对象属性及数据对象彼此间相互连接关系。2024/5/129大连理工大学软件学院第29页某校教学管理ER图2024/5/130大连理工大学软件学院第30页学生和课程之间E-R模型学生和课程之间多对多联络E-R模型;(b)将多对多联络转换为一对多联络E-R模型选课mn学号专业年级课名课号课时1n学号专业课名课号课时学号课号n1姓名课程学生姓名课程学分学生年级选课学分(a)(b)2024/5/131大连理工大学软件学院第31页其它图形工具Warnier图2024/5/132大连理工大学软件学院第32页其它图形工具(3)IPO图2024/5/133大连理工大学软件学院第33页其它图形工具(2)IPO图IPO图是输入、处理、输出图简称左边框中列出相关输入中间框中列出主要处理右边框中列出产生输出处理次序暗示了执行次序箭头指出数据通信情况2024/5/134大连理工大学软件学院第34页总体设计第35页总体设计概要设计和详细设计。概要设计主要任务是经过仔细分析软件规格说明,适当地对软件进行功效分解,从而把软件划分为模块,而且设计出完成预定功效模块结构。详细设计阶段详细地设计每个模块,确定完成每个模块功效所需要算法和数据结构。2024/5/136大连理工大学软件学院第36页模块化:就是把程序划分成独立命名且可独立访问模块,每个模块完成一个子功效,把这些模块集成起来组成一个整体,能够完成指定功效满足用户需求。能够由许多程序员分工编写不一样模块能够使软件结构清楚,便于扩展使软件轻易测试和调试,因而有利于提升软件可靠性。模块大小要适中,不过分细。2024/5/137大连理工大学软件学院第37页模块独立模块独立程度能够由两个定性标准来度量,分别称为内聚和耦合。耦合:衡量不一样模块彼此间相互依赖(连接)紧密程度;内聚:衡量一个模块内部各个元素彼此结合紧密程度。2024/5/138大连理工大学软件学院第38页耦合是对一个软件结构内不一样模块之间互连程度度量。尽可能涣散耦合2024/5/139大连理工大学软件学院第39页数据耦合:特征耦合:控制耦合:外部耦合:公共耦合:内容耦合:弱强尽可能使用数据耦合,少用控制耦合,限制公共环境耦合范围,完全不用内容耦合。2024/5/140大连理工大学软件学院第40页内聚:标志一个模块内各个元素彼此结合紧密程度,它是信息隐蔽和局部化概念自然扩展。简单地说,理想内聚模块只做一件事情。

2024/5/141大连理工大学软件学院第41页功效内聚:信息内聚:通信内聚:过程内聚:时间内聚:逻辑内聚:巧合内聚:强弱设计时应该力争做到高内聚。2024/5/142大连理工大学软件学院第42页改进软件结构提升模块独立性模块规模应该适中深度、宽度、扇出和扇入都应适当模块作用域应该在控制域之内力争降低模块接口复杂程度设计单入口单出口模块模块功效应该能够预测2024/5/143大连理工大学软件学院第43页描绘软件结构图形工具层次图和HIPO图结构图2024/5/144大连理工大学软件学院第44页正文加工系统层次图2024/5/145大连理工大学软件学院第45页正文加工系统H图2024/5/146大连理工大学软件学院第46页结构图例子—产生最正确解普通结构2024/5/147大连理工大学软件学院第47页软件结构设计方法面向数据流设计方法目标是给出设计软件结构一个系统化路径。利用数据流图中“映射“,把数据流图变换成软件结构。2024/5/148大连理工大学软件学院第48页变换流和事务流2024/5/149大连理工大学软件学院第49页设计步骤复查基本系统模型。复查并精化数据流图。确定数据流图含有变换特征还是事务特征。确定输入流和输出流边界,从而孤立出变换中心。完成“第一级分解”。完成“第二级分解”。使用设计度量和启发规则对第一次分割得到软件结构深入精化。

2024/5/150大连理工大学软件学院第50页数字仪表板系统数据流图精化数据流图数据流图含有变换特征还是事务特征2024/5/151大连理工大学软件学院第51页含有边界数据流图确定输入流和输出流边界,从而孤立出变换中心2024/5/152大连理工大学软件学院第52页第一级分解方法2024/5/153大连理工大学软件学院第53页数字仪表板系统第一级分解完成“第一级分解”2024/5/154大连理工大学软件学院第54页第二级分解方法2024/5/155大连理工大学软件学院第55页未经精化输入结构完成“第二级分解”2024/5/156大连理工大学软件学院第56页精化后数字仪表板系统软件结构软件结构深入精化2024/5/157大连理工大学软件学院第57页事务分析映射方法2024/5/158大连理工大学软件学院第58页详细设计第59页详细设计阶段主要完成界面和程序过程设计.过程设计应该在数据设计、体系结构设计和接口设计完成之后进行.程序员将依据过程设计写出实际程序代码。2024/5/160大连理工大学软件学院第60页结构程序设计经典定义以下所述:假如一个程序代码块仅仅经过次序、选择和循环这三种控制结构进行连接,而且每个代码块只有一个入口和一个出口,则称这个程序是结构化。2024/5/161大连理工大学软件学院第61页过程设计工具程序流程图

2024/5/162大连理工大学软件学院第62页盒图(N-S图)2024/5/163大连理工大学软件学院第63页PAD图2024/5/164大连理工大学软件学院第64页判定表2024/5/165大连理工大学软件学院第65页用判定树表示计算行李费算法判定树2024/5/166大连理工大学软件学院第66页伪码2024/5/167大连理工大学软件学院第67页测试第68页2024/5/169大连理工大学软件学院第69页回归测试(已执行过测试用例子集)包含下述三种不一样测试用例。检测软件全部功效代表性测试用例。专门针对可能受修改影响软件功效附加测试。针对被修改过软件成份测试。2024/5/170大连理工大学软件学院第70页白盒测试技术逻辑覆盖是设计白盒测试方案技术。设计测试方案是测试阶段关键技术问题。2024/5/171大连理工大学软件学院第71页语句覆盖

为暴露程序错误,最少每个语句应该执行一次。含义是,选择足够多测试数据,使被测程序中每个语句最少执行一次。2024/5/172大连理工大学软件学院第72页判定覆盖

又叫分支覆盖不但每个语句必须最少执行一次,而且每个判定每种可能结果都应该最少执行一次,也就是每个判定每个分支都最少执行一次。条件覆盖

不但每个语句最少执行一次,而且判定表示式中每个条件都取到各种可能结果。2024/5/173大连理工大学软件学院第73页判定/条件覆盖

判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖,判定/条件覆盖能同时满足这两种覆盖标准。选取足够多测试数据,使得判定表示式中每个条件都取到各种可能值,而且每个判定表示式也都取到各种可能结果。条件组合覆盖

要求选取足够多测试数据,使每个判定表示式中条件各种可能组合都最少出现一次。

2024/5/174大连理工大学软件学院第74页路径测试

TomMcCabe提出一个白盒测试技术。首先计算过程设计结果逻辑复杂度,并以该复杂度为指南定义执行路径基本集合,从该基本集合导出测试用例能够确保程序中每条语句最少执行一次,而且每个条件在执行时都将分别取true(真)和false(假)值。2024/5/175大连理工大学软件学院第75页求平均值过程流图使用基本路径测试技术设计测试用例步骤以下。依据过程设计结果画出对应流图2024/5/176大连理工大学软件学院第76页PROCEDUREaverage;/*这个过程计算不超出100个在要求值域内有效数字平均值;同时计算有效数字总和及个数。*/INTERFACERETURNSaverage,total_input,total_valid;INTERFACEACCEPTSvalue,minimum,maximum;TYPEvalue[1...100]ISSCALARARRAY;TYPEaverage,total_input,total_valid,minimum,maximum,sumISSCALAR;2024/5/177大连理工大学软件学院第77页TYPEiISINTEGER;1:i=1;total_input=total_valid=0;sum=0;2:DOWHILEvalue[i]<>-9993: ANDtotal_input<1004: incrementtotal_inputby1;5: IFvalue[i]>=minimum6: ANDvalue[i]<=maximum7: THENincrementtotal_validby1; sum=sum+value[i];8: ENDIF incrementiby1;9:ENDDO2024/5/178大连理工大学软件学院第78页10:IFtotal_valid>011:THENaverage=sum/total_valid;12:ELSEaverage=-999;13:ENDIFENDaverage2024/5/179大连理工大学软件学院第79页计算流图环形复杂度

环形复杂度定量度量程序逻辑复杂性。三种方法来计算环形复杂度。流图中区域数等于环形复杂度。流图G环形复杂度V(G)=E-N+2,其中E是流图中边条数,N是流图中节点数。流图G环形复杂度V(G)=P+1,其中P是流图中判定节点数目。使用上述任何一个方法,都能够计算出流图环形复杂度为6。2024/5/180大连理工大学软件学院第80页确定线性独立路径基本集合对于所描述求平均值过程来说,因为环形复杂度为6,所以共有6条独立路径。比如,下面列出了6条独立路径:路径1:1-2-10-11-13路径2:1-2-10-12-13路径3:1-2-3-10-11-13路径4:1-2-3-4-5-8-9-2-路径5:1-2-3-4-5-6-8-9-2-路径6:1-2-3-4-5-6-7-8-9-2-

2024/5/181大连理工大学软件学院第81页设计可强制执行基本集合中每条路径测试用例选取数据使得在测试每条路径时都适当设置好了各个判定节点条件。路径1测试用例: value[k]=有效输入值,其中k<i(i定义在下) value[i]=-999,其中2≤i≤100 预期结果:基于k正确平均值和总数 注意,路径1无法独立测试,必须作为路径4、5和6一部分来测试。路径2测试用例: value[1]=-999

预期结果:average=-999,其它都保持初始值2024/5/182大连理工大学软件学院第82页路径4测试用例: value[i]=有效输入值,其中i<100 value[k]<minimum,其中k<i 预期结果:其于k正确平均值和总数路径5测试用例: value[i]=有效输入值,其中i<100 value[k]>maximum,其中k<i 预期结果:其于k正确平均值和总数路径6测试用例: value[i]=有效输入值,其中i<100 预期结果:正确平均值和总数2024/5/183大连理工大学软件学院第83页黑盒测试技术黑盒测试着重测试软件功效需求,让软件工程师设计出能充分检验程序全部功效需求输入条件集。黑盒测试并不能取代白盒测试技术,它是与白盒测试互补方法,它很可能发觉白盒测试不易发觉其它不一样类型错误。2024/5/184大连理工大学软件学院第84页黑盒测试力图发觉下述类型错误:①功效不正确或遗漏了功效;②界面错误;③数据结构错误或外部数据库访问错误;④性能错误;⑤初始化和终止错误。白盒测试在测试过程早期阶段进行,而黑盒测试主要用于测试过程后期。黑盒测试有意不考虑程序控制结构,而把注意力集中于信息域。2024/5/185大连理工大学软件学院第85页等价划分:确定输入数据有效等价类和无效等价类。边界值分析错误推测2024/5/186大连理工大学软件学院第86页面向对象基础第87页什么是对象技术基于对象概念软件开发方法对象包含有数据及处理数据功效函数在分析、设计和实现整个过程中只使用一个概念对象开发方法能够处理软件危机中大多数问题方法对象=数据+功效2024/5/188大连理工大学软件学院第88页对象技术优势稳定:较小需求改变不会造成系统结构大改变举例:某企业销售处理系统定单协议出费2024/5/189大连理工大学软件学院第89页对象技术优势

稳定:数据和功效都打包在一起,从而改进软件再重用性软件重用能提升质量,降低因为编制新系统代码而产生成本File

MgrMacro

EditorMath

UtilitiesText

EditorPrint

UtilitiesFormat

EditorMenusString

UtilitiesSpreadsheetWordProcessorReusable-ComponentRepository2024/5/190大连理工大学软件学院第90页对象技术优势面向对象模型愈加贴切地反应了现实世界愈加准确地描述公共数据和过程易于了解,尤其对于使用者现实世界LaserPrinterExternalDriveComputer对象图2024/5/191大连理工大学软件学院第91页对象技术优势面向对象方法支持大规模开发能够严格定义各个组件之间交互降低内部依赖关系降低集成问题支持并行开发2024/5/192大连理工大学软件学院第92页对象技术优势帮助开发多层结构

EquipmentandCustomerspecificCodeProcessesandotherapplicationcodeMajorabstractions,classes,etc.MechanismsH/Wspecificcode,O/Sspecificcodegeneral-purposecode12345ApplicationSpecificApplicationIndependentLessReuseMoreReuse2024/5/193大连理工大学软件学院第93页面向对象概念Object对象Class类Instance实例State状态Behavior行为Attribute属性Operation操作(Method方法)Inheritance继承Subclasses子类Superclasses父类Generalization普遍化Polymorphism多态2024/5/194大连理工大学软件学院第94页面向对象概念Abstraction抽象Encapsulation封装Association关联Role角色Multiplicity多重性Aggregation聚合Dependencyassociation依赖Package包UseCase用例Scenario脚本Actor2024/5/195大连理工大学软件学院第95页什么是对象一个对象代表了一个现实或虚构实体自然实体概念实体软件实体化学过程连接显示2024/5/196大连理工大学软件学院第96页对象属性对象是应用中含有显著边界和含义概念、抽象或事物一个对象有三个主要属性:状态行为标识术语“实例”是“对象”同义词2024/5/197大连理工大学软件学院第97页对象状态一个对象状态是它反应于现实世界一系列属性:参数数值(也就是,与对象相关系数据)它与其它对象关系任一时刻历史状态可能状态: 停泊运行 着陆终止班机7472024/5/198大连理工大学软件学院第98页对象行为定义当其它对象发出请求时,该对象怎样反应由为对象定义一系列操作决定班机747查对出发时间(返回9:27)机票代理2024/5/199大连理工大学软件学院第99页对象标识每一个对象都有一个唯一标识,即使其状态有可能与其它对象一样班机747on11/10班机747on11/11班机747on11/122024/5/1100大连理工大学软件学院第100页什么是类(Class)

类是一组含有相同结构和行为对象集合共同结构经过属性表现出来(i.e.数据)共同行为经过操作表现出来(i.e.功效)班机747结构班机号日期分配班机起点终点状态行为装载设备起飞延迟取消终止2024/5/1101大连理工大学软件学院第101页类示例ClassEmployeeStructureNameAddressPositionSalaryStartDateEndDateBehaviorHireFirePromoteIncreaseSalaryRetire2024/5/1102大连理工大学软件学院第102页类图:用来表示类类图是一个主要图形化对象表示法类图显示类及类之间关系一个类经过在类图标中类名(唯一)来代表班机2024/5/1103大连理工大学软件学院第103页属性属性是类特征或特征属性值是某一特定对象属性值在类中属性名必须是唯一每一个类实例都有为这个类定义全部属性值比如:银行帐户类属性帐号银行名称拥有者金额Mary银行帐户属性值12345678FirstNationalBankMarySmith$1024.482024/5/1104大连理工大学软件学院第104页操作对象行为是由为此对象定义一系列操作决定操作访问或修改对象属性值一个类可能同时存在多个实例,也可能在某一时刻没有实例一个类全部实例都能够使用在这个类中定义操作2024/5/1105大连理工大学软件学院第105页属性和操作标识法在类图标中描述属性和操作通常只显示最主要属性和操作,防止图形混乱属性显示在操作上方,操作名字后跟有()班机flightNumberdatedeparturetimestatusrelease()takeOff()属性操作2024/5/1106大连理工大学软件学院第106页类是生成对象模板类是生成对象模板类定义中包含有产生和删除对象操作属性显示在操作上方,操作名字后跟有()一个类定义了使用哪种数据表示法来描述属性每一个实例都采取有属性值数据表示法一个类经过一系列操作来定义行为这种操作能在每个实例中激活班机Flight187Flight121Flight7472024/5/1107大连理工大学软件学院第107页类和对象关系每一个对象都是某一个类实例每一个类在某一时刻都有零个或更多实类是静态;它们存在、语义和关系在序执行前就已经定义好了对象是动态;它们在程序执行时能够被建和删除2024/5/1108大连理工大学软件学院第108页关系全部系统都包含了大量类和对象对象经过与其它对象协作完成系统功效行为.协作经过关系来实现几个主要关系类型:关联聚合依赖继承2024/5/1109大连理工大学软件学院第109页示例:关联在一个工资系统中有下面两个类:关联表示了双向关系,比如:给出一个Person实例,我们能够知道他属于哪家企业给出一个Company实例,我们能够知道在其中工作全部些人PersonCompany2024/5/1110大连理工大学软件学院第110页关联多重性多重性是指多个实例参加一个关联多重性经过位于关联线某一端一个表示式或符号来表示对于每个关联关系,需要做出两个多重性决定比如,在企业和职员关联中每个企业能够雇用多个职员每个职员只有一个隶属企业2024/5/1111大连理工大学软件学院第111页示例:关联多重性多重性决定能够揭示建模过程中隐藏问题职员会不会失业?企业能不能没有职员?一个职员能不能有两份工作?职员职员雇主企业1..*12024/5/1112大连理工大学软件学院第112页惯用多重性表示法多重性能处理两个问题关联是强制(不包含零个)或随意(包含零个)?一个实例能够连接其它实例最大数目?惯用多重性表示法:1 只有一个0..* 零或更多1..* 一个或更多0..1 零或一个* 零或更多3..7 指定范围(3or4or5or6or7)1..3,7 结合使用(1or2or3or7)2024/5/1113大连理工大学软件学院第113页自反关联自反关联指同一个类中对象关系表示同一个类中多个对象协作Acoursemayhave manypre-requisitesAcoursemaybeapre-requisite formanyothercoursesPre-requisiteCourse0..*0..*2024/5/1114大连理工大学软件学院第114页聚合(包含)聚合是一个特殊关联,表达整体和部分关系聚合是一个“has-a”或包含关系一样能够使用多重性CompanyDepartment1..*12024/5/1115大连理工大学软件学院第115页依赖依赖表示一个对象需要其它对象为其提供服务又可称为client-supplier关系

client使用supplier提供服务supplier不需要了解client(s)单向关系ControllerDisplayItemcontrols2024/5/1116大连理工大学软件学院第116页继承继承表示一个类从其它类中取得结构和行为(子类/父类)又名普遍化交通工具是一个父类地面交通工具和空中交通工具是子类VehicleGroundVehicleAirVehicleThearrowpointstowardthesuperclass2024/5/1117大连理工大学软件学院第117页继承继承表示子类从父类继承时抽象层次单继承:子类只从一个父类继承多继承:子类从多于一个父类继承继承通常被称为“is-a”或“kind-of”一个子类实例也“isa”父类实例一个子类实例是“kind-of”父类2024/5/1118大连理工大学软件学院第118页多层次ACarisakindofGroundVehiclewhichisakindofVehicleVehicleandAirVehicleareancestorsofAirplaneAirVehicleandAirplanearedescendantsofVehicleVehicleGroundVehicleAirVehicleCarTruckAirplaneHelicopter2024/5/1119大连理工大学软件学院第119页继承内容属性操作关系约束继承平衡类之间共同之处2024/5/1120大连理工大学软件学院第120页继承属性属性在继承结构最高一层定义全部子类实例能够继承这些属性每个子类能够增加或重新定义继承属性;但在修改是要加倍注意GroundVehiclelicenseNumberweightCarTrucktonnageAtruckhasthreeattributes:licenseNumberweighttonnage2024/5/1121大连理工大学软件学院第121页继承操作属性在继承结构最高一层定义全部子类实例能够继承这些操作每个子类能够增加或重新定义继承属性GroundVehiclelicenseNumberweightregister()CarTrucktonnagecalculateTax()Atruckhasthreeattributes:licenseNumberweighttonnageandtwooperations:registercalculateTax2024/5/1122大连理工大学软件学院第122页继承关系关系也能够继承每个子类都能够分享继承关系GroundVehiclelicenseNumberweightregister()AtruckhasanownerCarTrucktonnagecalculateTax()OwnerPerson1..*andacarhasanowner12024/5/1123大连理工大学软件学院第123页对象模型化技术OMT对象模型化技术把分析时搜集信息结构在三类模型中,即对象模型、功效模型和动态模型。这个模型化过程是一个迭代过程。2024/5/1124大连理工大学软件学院第124页基于三个模型分析过程功效模型着重于系统内部数据传送和处理。

温馨提示

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

评论

0/150

提交评论