收藏 分销(赏)

大连理工大学软件工程导论复习市公开课一等奖省赛课微课金奖课件.pptx

上传人:快乐****生活 文档编号:12621105 上传时间:2025-11-12 格式:PPTX 页数:135 大小:3.94MB 下载积分:10 金币
下载 相关 举报
大连理工大学软件工程导论复习市公开课一等奖省赛课微课金奖课件.pptx_第1页
第1页 / 共135页
大连理工大学软件工程导论复习市公开课一等奖省赛课微课金奖课件.pptx_第2页
第2页 / 共135页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,大连理工大学软件学院,*,大连理工大学软件学院,软件工程复习,第1页,第1章 基础知识,2025/11/12 周三,2,大连理工大学软件学院,第2页,什么是软件,软件定义软件由三部分组成:,程序:在运行时,能提供所希望功效和性能指令集,数据:使程序能够正确运行数据,文档:描述程序研制过程、方法及使用,文档,软件处理是信息和逻辑,软件开发,绝不但仅是编写程序,软件围绕着逻辑进行,软件就是一个信息交换器,产生、管理、获取、修改、显示或传送信息,软件程序,2025/11/12 周三,3,大连理工大学软件学院,第3页,什么是软件危机,软件危机是指在计算机软件开发和维护过程中所碰到一系列严重问题。,软件工程(IEEE),1993年,提出软件工程,1)将系统化、规范化、可量化工程标准和方法,应用于软件开发、运行和维护。,2)对1)中方法理论研究。,2025/11/12 周三,4,大连理工大学软件学院,第4页,软件工程基本原理,(开发与维护指导),用分阶段生命周期计划严格管理,坚持进行阶段评审,实施严格产品控制,采取当代程序设计技术,结果应能清楚地审查,开发小组人员应该少而精,认可不停改进软件工程实践必要性,2025/11/12 周三,5,大连理工大学软件学院,第5页,软件工程方法学,把在软件生命周期全过程中使用一整套,技术集合,称为方法学,(methodology),也称范型(paradigm)。,软件工程方法学三个要素:,方法、工具和过程,。,方法是完成软件开发各项任务技术,回答“怎样做”;,工具是为方法利用提供自动或半自动软件支撑环境,回答“用什么做”;,过程是为取得高质量软件要完成一系列任务框架,要求完成各项任务步骤,回答“怎样控制、协调、确保质量”。,管理方法,2025/11/12 周三,6,大连理工大学软件学院,第6页,当前使用得最广泛软件工程方法学。,传统方法学也称为,生命周期方法学,或,结构化范型,。,当软件规模较大,或对软件需求是,含糊,或随时间,改变,时候,使用结构化范型开发软件往往不成功;,另外,使用传统方法学开发出软件,维护起来通常都很困难。,结构化静态分析,面向对象动态分析,世界万物是改变,传统方法学与面向对象方法学,2025/11/12 周三,7,大连理工大学软件学院,第7页,传统方法特点,生命周期模型,软件过程划分为若干个阶段,每个阶段有各自任务,阶段之间有某种次序性,2025/11/12 周三,8,大连理工大学软件学院,第8页,面向对象方法:,对象作为融合数据及在数据之上操作行为统一软件构件。,把全部对象都划分成,类,(Class)。每个类都定义了一组,数据,和一组,操作,。,按照父类(或称为基类)与子类(或称为派生类)关系,把若干个相关类组成一个,层次结构,系统(也称为类等级)。在类等级中,下层派生类自动拥有上层基类中定义数据和操作,称为,继承,。,对象彼此间仅能经过发送消息相互联络,封装性,。,数据:静态,操作:动态,Everything is Object.,2025/11/12 周三,9,大连理工大学软件学院,第9页,1.3 软件生命周期,软件生命周期由,软件定义、软件开发,和,运行维护,三个时期组成,每个时期又可深入划分成若干个阶段,每个阶段有各自任务。,1,软件定义,2,软件开发,3,运行维护,2025/11/12 周三,10,大连理工大学软件学院,第10页,问题定义,可行性研究,需求分析,概要设计,详细设计,编码和单元测试,综合测试,软件维护,2025/11/12 周三,11,大连理工大学软件学院,第11页,实际瀑布模型,软件过程模型(生命周期模型),2025/11/12 周三,12,大连理工大学软件学院,第12页,快速原型模型,2025/11/12 周三,13,大连理工大学软件学院,第13页,增量模型,瀑布模型:力争一次性给用户完整系统。,增量模型:逐步增加系统功效。,需要开放架构设计。,2025/11/12 周三,14,大连理工大学软件学院,第14页,完整螺旋模型,2025/11/12 周三,15,大连理工大学软件学院,第15页,喷泉模型,迭代,是OO开发过程主要特征。,喷泉模型是经典面向对象生命周期模型。,“喷泉”表达了面向对象软件开发过程,迭代和无缝,特征。,为防止喷泉模型过分无序,把一个,线性过程,作为总目标。,迭代,2025/11/12 周三,16,大连理工大学软件学院,第16页,喷泉模型,迭代:逐步求精,阶段间没有显著界限面向对象思想确保了各个阶段开发一致性。,迭代,是,OO,开发过程主要特征。,喷泉模型是经典面向对象生命周期模型。,“喷泉”表达了面向对象软件开发过程,迭代和无缝,特征。,2025/11/12 周三,17,大连理工大学软件学院,第17页,可行性与需求分析,第18页,可行性研究,不是处理问题,而是确定问题是否值得去处理,较高层次系统分析和设计过程,需求分析,发觉、求精、建模、规格说明和复审过程,重复求精屡次细化,得出对目标系统完整、准确和详细要求。,建立数据模型、功效模型和行为模型等三种模型。,还要写出准确软件需求规格说明。,。,2025/11/12 周三,19,大连理工大学软件学院,第19页,系统流程图,系统流程图,概括描绘物理系统传统工具,用图形符号,以黑盒子形式描述组成系统每个部件,程序、文档、数据库、人工过程,2025/11/12 周三,20,大连理工大学软件学院,第20页,系统流程图例子,例子,每个符号用黑盒子形式定义了组成系统一个部件。,没有部件内部详细工作过程,箭头确定经过系统逻辑路径(信息流动路径),2025/11/12 周三,21,大连理工大学软件学院,第21页,数据流图,数据流图(DFD)描绘信息流和数据从输入移动到输出过程中所经受变换。,或,或,或,符 号,含 义,数据源点或终点,数据流,数据存放,加工,(,数据处理,),2025/11/12 周三,22,大连理工大学软件学院,第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,+,T,T,2025/11/12 周三,23,大连理工大学软件学院,第23页,2025/11/12 周三,24,大连理工大学软件学院,第24页,把处理事务功效深入分解后数据流图,2025/11/12 周三,25,大连理工大学软件学院,第25页,数据字典,数据字典是关于数据信息集合,即对DFD图中包含元素定义集合。,数据字典用途是供人查阅不了解条目标解释。提供分析设计过程中关于数据描述。,数据字典与DFD相辅相成。,只有DFD和对应元素准确定义放在一起,才能组成系统规格说明。,2025/11/12 周三,26,大连理工大学软件学院,第26页,定义数据方法,意思是等价于(或定义为);,意思是和(即,连接两个分量);,意思是或(即,从方括弧内列出若干个分量中选择一个),用“”号分开供选择分量;,意思是重复(即,重复花括弧内分量);,()意思是可选(即,圆括弧里分量可有可无),。,使用上限和下限深入注释表示重复花括弧。,左边用上角标和下角标分别表明重复上限和下限;,左侧标明重复下限,在闭括弧右侧标明上限。,比如:,A和1A5 含义相同。,1,5,2025/11/12 周三,27,大连理工大学软件学院,第27页,数据字典实现,CASE工具,人工卡片,2025/11/12 周三,28,大连理工大学软件学院,第28页,实体关系图,数据模型包含三种相互关联信息:,数据对象,、描述数据对象,属性,及数据对象彼此间相互连接,关系,。,2025/11/12 周三,29,大连理工大学软件学院,第29页,某校教学管理,ER,图,2025/11/12 周三,30,大连理工大学软件学院,第30页,学生和课程之间,E-R,模型,学生和课程之间多对多联络,E-R,模型;,(b),将多对多联络转换为一对多联络,E-R,模型,选课,m,n,学号,专业,年级,课名,课号,课时,1,n,学号,专业,课名,课号,课时,学号,课号,n,1,姓名,课程,学生,姓名,课程,学分,学生,年级,选课,学分,(a),(b),2025/11/12 周三,31,大连理工大学软件学院,第31页,其它图形工具,Warnier图,2025/11/12 周三,32,大连理工大学软件学院,第32页,其它图形工具(3),IPO图,2025/11/12 周三,33,大连理工大学软件学院,第33页,其它图形工具(2),IPO图,IPO图是输入、处理、输出图简称,左边框中列出相关输入,中间框中列出主要处理,右边框中列出产生输出,处理次序暗示了执行次序,箭头指出数据通信情况,2025/11/12 周三,34,大连理工大学软件学院,第34页,总体设计,第35页,总体设计,概要设计和详细设计,。,概要设计主要任务是经过仔细分析软件规格说明,适当地对软件进行功效分解,从而把软件,划分为模块,,而且设计出完成预定功效,模块结构,。,详细设计阶段详细地设计每个模块,确定完成每个模块功效所需要,算法和数据结构,。,2025/11/12 周三,36,大连理工大学软件学院,第36页,模块化:就是把程序划分成独立命名且可独立访问模块,每个模块完成一个子功效,把这些模块集成起来组成一个整体,能够完成指定功效满足用户需求。,能够由许多程序员分工编写不一样模块,能够使软件结构清楚,便于扩展,使软件轻易测试和调试,因而有利于提升软件可靠性。,模块大小要适中,不过分细。,2025/11/12 周三,37,大连理工大学软件学院,第37页,模块独立,模块独立程度能够由两个定性标准来度量,分别称为,内聚和耦合,。,耦合:衡量不一样模块彼此间相互依赖,(连接)紧密程度;,内聚:衡量一个模块内部各个元素彼此结合紧密程度。,2025/11/12 周三,38,大连理工大学软件学院,第38页,耦合是对一个软件结构内不一样模块之间互连程度度量。,尽可能,涣散耦合,2025/11/12 周三,39,大连理工大学软件学院,第39页,数据耦合:,特征耦合:,控制耦合:,外部耦合:,公共耦合:,内容耦合:,弱,强,尽可能使用数据耦合,少用控制耦合,限制公共环境耦合范围,完全不用内容耦合。,2025/11/12 周三,40,大连理工大学软件学院,第40页,内聚:标志一个模块内各个元素彼此结合紧密程度,它是信息隐蔽和局部化概念自然扩展。,简单地说,,理想内聚模块只做一件事情,。,2025/11/12 周三,41,大连理工大学软件学院,第41页,功效内聚:,信息内聚:,通信内聚:,过程内聚:,时间内聚:,逻辑内聚:,巧合内聚:,强,弱,设计时应该力争做到,高内聚,。,2025/11/12 周三,42,大连理工大学软件学院,第42页,改进,软件结构,提升模块独立性,模块,规模,应该适中,深度、宽度、扇出和扇入,都应适当,模块,作用域,应该在,控制域,之内,力争降低,模块接口,复杂程度,设计,单入口单出口,模块,模块功效,应该能够预测,2025/11/12 周三,43,大连理工大学软件学院,第43页,描绘软件结构图形工具,层次图和HIPO图,结构图,2025/11/12 周三,44,大连理工大学软件学院,第44页,正文加工系统层次图,2025/11/12 周三,45,大连理工大学软件学院,第45页,正文加工系统,H,图,2025/11/12 周三,46,大连理工大学软件学院,第46页,结构图例子,产生最正确解普通结构,2025/11/12 周三,47,大连理工大学软件学院,第47页,软件结构设计方法,面向数据流设计方法,目标是给出设计,软件结构,一个系统化路径。,利用数据流图中“映射“,把数据流图变换成软件结构。,2025/11/12 周三,48,大连理工大学软件学院,第48页,变换流和事务流,2025/11/12 周三,49,大连理工大学软件学院,第49页,设计步骤,复查基本系统模型。,复查并精化数据流图。,确定数据流图含有变换特征还是事务特征。,确定输入流和输出流边界,从而孤立出变换中心。,完成“第一级分解”。,完成“第二级分解”。,使用设计度量和启发规则对第一次分割得到软件结构深入精化。,2025/11/12 周三,50,大连理工大学软件学院,第50页,数字仪表板系统数据流图,精化数据流图,数据流图含有变换特征还是事务特征,2025/11/12 周三,51,大连理工大学软件学院,第51页,含有边界数据流图,确定输入流和输出流边界,从而孤立出变换中心,2025/11/12 周三,52,大连理工大学软件学院,第52页,第一级分解方法,2025/11/12 周三,53,大连理工大学软件学院,第53页,数字仪表板系统第一级分解,完成“第一级分解”,2025/11/12 周三,54,大连理工大学软件学院,第54页,第二级分解方法,2025/11/12 周三,55,大连理工大学软件学院,第55页,未经精化输入结构,完成“第二级分解”,2025/11/12 周三,56,大连理工大学软件学院,第56页,精化后数字仪表板系统软件结构,软件结构深入精化,2025/11/12 周三,57,大连理工大学软件学院,第57页,事务分析映射方法,2025/11/12 周三,58,大连理工大学软件学院,第58页,详细设计,第59页,详细设计阶段主要完成界面和程序过程设计,过程设计,应该在数据设计、体系结构设计和接口设计完成之后进行,程序员将依据,过程设计,写出实际程序代码。,2025/11/12 周三,60,大连理工大学软件学院,第60页,结构程序设计,经典定义以下所述:,假如一个程序代码块仅仅经过次序、选择和循环这三种控制结构进行连接,而且每个代码块只有一个入口和一个出口,则称这个程序是结构化。,2025/11/12 周三,61,大连理工大学软件学院,第61页,过程设计工具,程序流程图,2025/11/12 周三,62,大连理工大学软件学院,第62页,盒图(N-S图),2025/11/12 周三,63,大连理工大学软件学院,第63页,PAD图,2025/11/12 周三,64,大连理工大学软件学院,第64页,判定表,2025/11/12 周三,65,大连理工大学软件学院,第65页,用判定树表示计算行李费算法,判定树,2025/11/12 周三,66,大连理工大学软件学院,第66页,伪码,2025/11/12 周三,67,大连理工大学软件学院,第67页,测试,第68页,2025/11/12 周三,69,大连理工大学软件学院,第69页,回归测试(已执行过测试用例子集),包含下述三种不一样测试用例。,检测软件全部功效代表性测试用例。,专门针对可能受修改影响软件功效附加测试。,针对被修改过软件成份测试。,2025/11/12 周三,70,大连理工大学软件学院,第70页,白盒测试技术,逻辑覆盖,是设计白盒测试方案技术。设计测试方案是测试阶段关键技术问题。,2025/11/12 周三,71,大连理工大学软件学院,第71页,语句覆盖,为暴露程序错误,最少每个语句应该执行一次。,含义是,选择足够多测试数据,使被测程序中每个语句最少执行一次。,2025/11/12 周三,72,大连理工大学软件学院,第72页,判定覆盖,又叫分支覆盖,不但每个语句必须最少执行一次,,而且每个判定每种可能结果都应该最少执行一次,也就是每个判定每个分支都最少执行一次。,条件覆盖,不但每个语句最少执行一次,而且判定表示式中每个条件都取到各,种可能结果。,2025/11/12 周三,73,大连理工大学软件学院,第73页,判定/,条件覆盖,判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖,判定,/,条件覆盖能同时满足这两种覆盖标准。,选取足够多测试数据,使得判定表示式中每个条件都取到各种可能值,而且每个判定表示式也都取到各种可能结果。,条件组合覆盖,要求选取足够多测试数据,使每个判定表示式,中条件各种可能组合都最少出现一次。,2025/11/12 周三,74,大连理工大学软件学院,第74页,路径测试,Tom McCabe,提出一个白盒测试技术。,首先计算过程设计结果逻辑复杂度,并以该复杂度为指南定义执行路径基本集合,从该基本集合导出测试用例能够确保程序中每条语句最少执行一次,而且每个条件在执行时都将分别取,true(真)和false(假)值。,2025/11/12 周三,75,大连理工大学软件学院,第75页,求平均值过程流图,使用基本路径测试技术设计测试用例步骤以下。,依据过程设计结果画出对应流图,2025/11/12 周三,76,大连理工大学软件学院,第76页,PROCEDURE average;,/*这个过程计算不超出100个在要求值域内有效数字平均值;同时计算有效数字总和及个数。*/,INTERFACE RETURNS average,total_input,total_valid;,INTERFACE ACCEPTS value,minimum,maximum;,TYPE value 1.100 IS SCALAR ARRAY;,TYPE average,total_input,total_valid,minimum,maximum,sum IS SCALAR;,2025/11/12 周三,77,大连理工大学软件学院,第77页,TYPE i IS INTEGER;,1:i1;total_inputtotal_valid0;sum0;,2:DO WHILE valuei -999,3:AND total_input 100,4:increment total_input by 1;,5:IF valuei=minimum,6:AND valuei 0,11:THEN average=sum/total_valid;,12:ELSE average=-999;,13:END IF,END average,2025/11/12 周三,79,大连理工大学软件学院,第79页,计算流图,环形复杂度,环形复杂度定量度量程序逻辑复杂性。三种方法来计算环形复杂度。,流图中区域数等于环形复杂度。,流图G环形复杂度V(G)E-N+2,其中E是流图中边条数,N是流图中节点数。,流图G环形复杂度V(G)P+1,其中P是流图中判定节点数目。,使用上述任何一个方法,都能够计算出流图环形复杂度为6。,2025/11/12 周三,80,大连理工大学软件学院,第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-,2025/11/12 周三,81,大连理工大学软件学院,第81页,设计可强制执行基本集合中每条路径测试用例,选取数据使得在测试每条路径时都适当设置好了各个判定节点条件。,路径,1测试用例:,valuek有效输入值,其中ki(i定义在下),valuei-999,其中2i100,预期结果:基于k正确平均值和总数,注意,路径1无法独立测试,必须作为路径4、5和6一部分来测试。,路径2测试用例:,value1-999,预期结果:average-999,其它都保持初始值,2025/11/12 周三,82,大连理工大学软件学院,第82页,路径4测试用例:,valuei有效输入值,其中i100,valuek minimum,其中ki,预期结果:其于k正确平均值和总数,路径5测试用例:,valuei有效输入值,其中i100,valuekmaximum,其中ki,预期结果:其于k正确平均值和总数,路径6测试用例:,valuei=有效输入值,其中i100,预期结果:正确平均值和总数,2025/11/12 周三,83,大连理工大学软件学院,第83页,黑盒测试技术,黑盒测试着重测试软件,功效需求,,让软件工程师设计出能充分检验程序全部功效需求输入条件集。,黑盒测试并不能取代白盒测试技术,它是与白盒测试互补,方法,它很可能发觉白盒测试不易发觉其它不一样类型错误。,2025/11/12 周三,84,大连理工大学软件学院,第84页,黑盒测试力图发觉下述类型错误:功效不正确或遗漏了功效;界面错误;数据结构错误或外部数据库访问错误;性能错误;初始化和终止错误。,白盒测试在测试过程早期阶段进行,而黑盒测试主要用于测试过程后期。,黑盒测试有意,不考虑程序控制结构,而把注意力集中于,信息域,。,2025/11/12 周三,85,大连理工大学软件学院,第85页,等价划分:,确定,输入数据有效等价类和无效等价类,。,边界值分析,错误推测,2025/11/12 周三,86,大连理工大学软件学院,第86页,面向对象基础,第87页,什么是对象技术,基于对象概念软件开发方法,对象包含有数据及处理数据功效函数,在分析、设计和实现整个过程中只使用一个概念对象开发方法,能够处理软件危机中大多数问题方法,对象=数据+功效,2025/11/12 周三,88,大连理工大学软件学院,第88页,对象技术优势,稳定:较小需求改变不会造成系统结构大改变,举例:某企业销售处理系统,定单,协议,出费,2025/11/12 周三,89,大连理工大学软件学院,第89页,对象技术优势,稳定:数据和功效都打包在一起,从而改进软件再重用性,软件重用能提升质量,降低因为编制新系统代码而产生成本,FileMgr,MacroEditor,MathUtilities,TextEditor,PrintUtilities,FormatEditor,Menus,StringUtilities,Spreadsheet,Word Processor,Reusable-Component Repository,2025/11/12 周三,90,大连理工大学软件学院,第90页,对象技术优势,面向对象模型愈加贴切地反应了现实世界,愈加准确地描述公共数据和过程,易于了解,尤其对于使用者,现实世界,Laser Printer,External Drive,Computer,对象图,2025/11/12 周三,91,大连理工大学软件学院,第91页,对象技术优势,面向对象方法支持大规模开发,能够严格定义各个组件之间交互,降低内部依赖关系,降低集成问题,支持并行开发,2025/11/12 周三,92,大连理工大学软件学院,第92页,对象技术优势,帮助开发多层结构,Equipment and Customer specific Code,Processes and other application code,Major abstractions,classes,etc.,Mechanisms,H/W specific code,O/S specific code general-purpose code,1,2,3,4,5,Application,Specific,Application,Independent,Less Reuse,More Reuse,2025/11/12 周三,93,大连理工大学软件学院,第93页,面向对象概念,Object 对象,Class 类,Instance 实例,State 状态,Behavior 行为,Attribute 属性,Operation 操作(Method方法),Inheritance 继承,Subclasses 子类,Superclasses 父类,Generalization 普遍化,Polymorphism 多态,2025/11/12 周三,94,大连理工大学软件学院,第94页,面向对象概念,Abstraction 抽象,Encapsulation 封装,Association 关联,Role 角色,Multiplicity 多重性,Aggregation 聚合,Dependency association 依赖,Package 包,Use Case 用例,Scenario 脚本,Actor,2025/11/12 周三,95,大连理工大学软件学院,第95页,什么是对象,一个对象代表了一个现实或虚构实体,自然实体,概念实体,软件实体,化学过程,连接显示,2025/11/12 周三,96,大连理工大学软件学院,第96页,对象属性,对象是应用中含有显著边界和含义概念、抽象或事物,一个对象有三个主要属性:,状态,行为,标识,术语“实例”是“对象”同义词,2025/11/12 周三,97,大连理工大学软件学院,第97页,对象状态,一个对象状态是它反应于现实世界一系列属性:,参数数值(也就是,与对象相关系数据),它与其它对象关系,任一时刻历史状态,可能状态:,停泊 运行,着陆 终止,班机 747,2025/11/12 周三,98,大连理工大学软件学院,第98页,对象行为,定义当其它对象发出请求时,该对象怎样反应,由为对象定义一系列操作决定,班机 747,查对出发时间,(,返回 9:27,),机票代理,2025/11/12 周三,99,大连理工大学软件学院,第99页,对象标识,每一个对象都有一个唯一标识,即使其状态有可能与其它对象一样,班机 747,on 11/10,班机 747,on 11/11,班机 747,on 11/12,2025/11/12 周三,100,大连理工大学软件学院,第100页,什么是类(Class),类是一组含有相同结构和行为对象集合,共同结构经过属性表现出来(,i.e.数据),共同行为经过操作表现出来(i.e.功效),班机 747,结构,班机号,日期,分配班机,起点,终点,状态,行为,装载设备,起飞,延迟,取消,终止,2025/11/12 周三,101,大连理工大学软件学院,第101页,类示例,Class,Employee,Structure,Name,Address,Position,Salary,Start Date,End Date,Behavior,Hire,Fire,Promote,Increase Salary,Retire,2025/11/12 周三,102,大连理工大学软件学院,第102页,类图:用来表示类,类图是一个主要图形化对象表示法,类图显示类及类之间关系,一个类经过在类图标中类名(唯一)来代表,班机,2025/11/12 周三,103,大连理工大学软件学院,第103页,属性,属性是类特征或特征,属性值是某一特定对象属性值,在类中属性名必须是唯一,每一个类实例都有为这个类定义全部属性值,比如:,银行帐户类属性,帐号,银行名称,拥有者,金额,Mary,银行帐户属性值,12345678,First National Bank,Mary Smith,$1024.48,2025/11/12 周三,104,大连理工大学软件学院,第104页,操作,对象行为是由为此对象定义一系列操作决定,操作访问或修改对象属性值,一个类可能同时存在多个实例,也可能在某一时刻没有实例,一个类全部实例都能够使用在这个类中定义操作,2025/11/12 周三,105,大连理工大学软件学院,第105页,属性和操作标识法,在类图标中描述属性和操作,通常只显示最主要属性和操作,防止图形混乱,属性显示在操作上方,操作名字后跟有(),班机,flightNumber,date,departure,time,status,release(),takeOff(),属性,操作,2025/11/12 周三,106,大连理工大学软件学院,第106页,类是生成对象模板,类是生成对象模板,类定义中包含有产生和删除对象操作属性显示在操作上方,操作名字后跟有(),一个类定义了使用哪种数据表示法来描述属性,每一个实例都采取有属性值数据表示法,一个类经过一系列操作来定义行为,这种操作能在每个实例中激活,班机,Flight 187,Flight 121,Flight 747,2025/11/12 周三,107,大连理工大学软件学院,第107页,类和对象关系,每一个对象都是某一个类实例,每一个类在某一时刻都有零个或更多实,类是静态;它们存在、语义和关系在,序执行前就已经定义好了,对象是动态;它们在程序执行时能够被,建和删除,2025/11/12 周三,108,大连理工大学软件学院,第108页,关系,全部系统都包含了大量类和对象,对象经过与其它对象协作完成系统功效行为协作经过关系来实现,几个主要关系类型:,关联,聚合,依赖,继承,2025/11/12 周三,109,大连理工大学软件学院,第109页,示例:关联,在一个工资系统中有下面两个类:,关联表示了双向关系,比如:,给出一个,Person实例,我们能够知道他属于哪家企业,给出一个 Company实例,我们能够知道在其中工作全部些人,Person,Company,2025/11/12 周三,110,大连理工大学软件学院,第110页,关联多重性,多重性是指多个实例参加一个关联,多重性经过位于关联线某一端一个表示式或符号来表示,对于每个关联关系,需要做出两个多重性决定,比如,在企业和职员关联中,每个企业能够雇用多个职员,每个职员只有一个隶属企业,2025/11/12 周三,111,大连理工大学软件学院,第111页,示例:关联多重性,多重性决定能够揭示建模过程中隐藏问题,职员会不会失业?,企业能不能没有职员?,一个职员能不能有两份工作?,职员,职员,雇主,企业,1.*,1,2025/11/12 周三,112,大连理工大学软件学院,第112页,惯用多重性表示法,多重性能处理两个问题,关联是强制(不包含零个)或随意(包含零个)?,一个实例能够连接其它实例最大数目?,惯用多重性表示法:,1只有一个,0.*零或更多,1.*一个或更多,0.1零或一个,*零或更多,3.7指定范围(3,or 4 or 5 or 6 or 7),1.3,7结合使用(1 or 2 or 3 or 7),2025/11/12 周三,113,大连理工大学软件学院,第113页,自反关联,自反关联指同一个类中对象关系,表示同一个类中多个对象协作,A course may have,many pre-requisites,A course may be a pre-requisite,for many other courses,Pre-requisite,Course,0.*,0.*,2025/11/12 周三,114,大连理工大学软件学院,第114页,聚合(包含),聚合是一个特殊关联,表达整体和部分关系,聚合是一个“has-a”或包含关系,一样能够使用多重性,Company,Department,1.*,1,2025/11/12 周三,115,大连理工大学软件学院,第115页,依 赖,依赖表示一个对象需要其它对象为其提供服务,又可称为client-supplier,关系,client 使用supplier提供服务,supplier 不需要了解 client(s),单向关系,Controller,Display Item,controls,2025/11/12 周三,116,大连理工大学软件学院,第116页,继承,继承表示一个类从其它类中取得结构和行为(子类/父类),又名普遍化,交通工具是一个父类,地面交通工具和空中交通工具是子类,Vehicle,GroundVehicle,AirVehicle,The arrow points,toward the superclass,2025/11/12 周三,117,大连理工大学软件学院,第117页,继承,继承表示子类从父类继承时抽象层次,单继承:子类只从一个父类继承,多继承:子类从多于一个父类继承,继承通常被称为“,is-a”或“kind-of”,一个子类实例也“is a”父类实例,一个子类实例是“kind-of”父类,2025/11/12 周三,118,大连理工大学软件学院,第118页,多层次,A Car is a kind of GroundVehicle which is a kind of Vehicle,Vehicle and AirVehicle are,ancestors of Airplane,AirVehicle and Airplane are,descendants of Vehicle,Vehicle,GroundVehicle,AirVehicle,Car,Truck,Airplane,Helicopter,2025/11/12 周三,119,大连理工大学软件学院,第119页,继承内容,属性,操作,关系,约束,继承平衡类之间共同之处,2025/11/12 周三,120,大连理工大学软件学院,第120页,继承属性,属性在继承结构最高一层定义,全部子类实例能够继承这些属性,每个子类能够增加或重新定义继承属性;但在修改是要加倍注意,GroundVehicle,licenseNumber,weight,Car,Truck,tonnage,A truck has three attributes:,licenseNumber,weight,tonnage,2025/11/12 周三,121,大连理工大学软件学院,第121页,继承操作,属性在继承结构最高一层定义,全部子类实例能够继承这些操作,每个子类能够增加或重新定义继承属性,GroundVehicle,licenseNumber,weight,register(),Car,Truck,tonnage,calculateTax(),A truck has three attributes:,licenseNumber,weight,tonnage,and two operations:,register,calculateTax,2025/11/12 周三,122,大连理工大学软件学院,第122页,继承关系,关系也能够继承,每个子类都能够分享继承关系,GroundVehicle,licenseNumber,weight,register(),A truck has an owner,Car,Truck,tonnage,calculateTax(),Owner,Person,1.*,and a car has an owner,1,2025/11/12 周三,123,大连理工大学软件学院,第123页,对象模型化技术OMT,对象模型化技术把分析时搜集信息结构在三类模型中,即,对象模型,、,功效模型,和,动态模型,。,这个模型化过程是一个迭代过程。,2025/11/12 周三,124,大连理工大学软件学院,第124页,基于三个模型分析过程,功效模型着重于系统内部数据传送和处理。,功效模型定义“做什么”,动态模型定义“何时做”,对象模型定义“对谁做”。,2025/11/12 周三,125,大连理工大学软件学院,第125页,UML图,用例图(use-case diagram),用例是对系统提供功效(即系统详细使用方法)描述。,用例图从,用户,角度描述系统功效,并指出各个功效操作者。,用例图定义了系统,功效需求,。,2025/11/12 周三,126,大连理工大学软件学院,第126页,静态图(static diagram),这类图描述系统静态结构,属于这类图有类图(class diagram)和对象图(object diagram)。,类图不但定义系统中类,表示类与类之间关系(比如,关联、依赖、泛化和细化等关系),也表示类内部结构(类属性和操作)。,类图描述是一个静态关系,在系统整个生命期内都是有效。,2025/1
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服