
软件工程教案-OO方法学.ppt
22页单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,单击此处编辑母版标题样式,软件工程教案,(11)面向对象的方法学引论,张海涛,10/8/2024,1,11 面向对象的方法学引论,软件工程传统方法学的问题,面向对象方法的引入,基本概念,对象模型与功能模型,高程试题分析,10/8/2024,2,0 估算的另一种方法,0-1,补充上一节的LOC法,功能点法,基于,FP,估算,的分解是集中于信息域值,而不是软件功能根据第,8,节给出的功能点计算表,项目计划者估算,CAD,软件的输入、输出、查询、文件、及外部接口为了达到这个估算目的,我们假设复杂度加权因子都是平均的10/8/2024,3,0 估算的另一种方法,10/8/2024,4,0 估算的另一种方法,10/8/2024,5,0 估算的另一种方法,0-2,FP法的公式,FPestimated=总计数值0.65+0.01Fi,FPestimated=372,使用功能点进行规范化的历史数据表明:这类系统的组织平均生产率是6.5FP/pm如果一个劳动力价格是每月8000元,则每个FP的成本约为1230元根据FP估算及历史生产率数据,总的项目成本估算是457000元,工作量估算是58个人月,10/8/2024,6,1 传统方法学的问题,1-1,问题,生产率发展缓慢,折衷方案,10/8/2024,9,2 面向对象方法的引入,如果在软件工程过程的早期和全程采用面向对象技术,则该技术将产生更多的优势。
仅仅使用面向对象程序设计(OOP)将不会产生最好的结果,软件工程师及其管理者必须考虑面向对象需求分析(OORA)、面向对象设计(OOD)、面向对象领域分析(OODA)等Edward Berard,10/8/2024,10,2 面向对象方法的引入,2-1,面向对象方法的出发点,尽可能的模拟人的思维方式去解决问题,以对象为中心:,特殊,归纳,-,一般,-,演绎,-,特殊,问题空间与解空间的矛盾,客观世界的动态特性,解空间的复杂算法,运动与实体的统一,解空间程序与数据的分离,10/8/2024,11,2 面向对象方法的引入,2-2,面向对象方法的简单概括,客观世界都是由对象组成的所有的对象都可以划分为抽象的类可以按基类和派生类的关系组成类的层次结构对象间的通信仅通过消息传送机制10/8/2024,12,2 面向对象方法的引入,2-3,Coad&Yourdon的定义(1991),Object-Oriented=,Objects,+Classfication,+Inheritance,+Communication with messages,10/8/2024,13,3 基本概念,3-1,类和对象,对象(,Object,):一个包含数据结构和施加其上的操作的封装体。
类(,Class,):对具有相同属性和行为的一个或多个对象的描述类中定义的数据,(,实体的性质,),称为,属性,(Attribute),类中的操作,(,服务,),,称为,方法,(Method),10/8/2024,14,3 基本概念,3-2,聚合关系(,Aggregation,),是“整体,部分,”,的关系,它反映了对象之间的构成关系;是类与类关联的特例相关概念,关联:对象之间相互依赖和作用的关系,举例:,汽车,发动机,电脑,显示器,10/8/2024,15,3 基本概念,3-3,继承关系(,Inheritance,),是“一般,特殊”的关系,它反映了基类与若干个互不相容的子类之间的分类关系相关概念,继承:,(广义)直接获得已有的特征和性质,而不必重新定义,(狭义)子类自动的共享基类中定义的数据与方法一种机制,举例:,汽车,轿车,电脑,笔记本电脑,10/8/2024,16,3 基本概念,3-4,练习,分析下列对象之间的关系,“家具、沙发、衣柜、电视柜、服装、衬衣,裤子、家用电器、电视、,DVD,机、组合音响、功放和音箱”,10/8/2024,17,3 基本概念,3-5,消息(,Message,),消息:对象之间通信的一种构造。
组成部分:,接收消息的对象,消息名,若干个变元,10/8/2024,18,3 基本概念,3-6,软件的复用(Reuse),是指两次或多次的不同软件的开发过程中重复使用相同的或相似的软件元素的过程软件元素有,源代码、测试用例、设计文档、设计过程等10/8/2024,19,4 对象模型和功能模型,4-1,对象模型,表示静态的、结构化的系统的“数据”性质,模拟客观世界实体的对象以及对象彼此间关系的映射,主要用于描述系统的静态结构,10/8/2024,20,4 对象模型和功能模型,4-2,功能模型,表示瞬时的、行为化的系统的“功能”性质,规定了对象的合法变化序列,直接的反映了系统的动态特性,也反映了用户对目标系统的要求,10/8/2024,21,5 高程试题分析,(1),面向对象的编程语言的出现以60年代的(A)为标志;80年代Xerox研究中心推出了(B)语言面向对象分析与设计的实质是一种(C)的技术,其实质并不是从(D)或算法方面考虑,而是从(E)上来进行分解备选答案,A、B C+,Smalltalk,SIMULA,OMT,C 系统建模 系统分解,D、E 结构 功能 方法 系统的组成,答案 32124,10/8/2024,22,。
