




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象的系统分析与设计宋呦宋呦唐山学院计算机科学与技术系唐山学院计算机科学与技术系一、系统建模与面向对象1.1 软件的概念、特点和分类n现代软件的概念和特点q软件规模大q软件开发规范并趋于标准化q软件开发方法多,有大量的软件工具支持q注重软件开发的管理q软件维护相对过去容易得多软件的分类n(1)按软件的功能划分q系统软件q支撑软件q应用软件n(2)按软件的规模划分q微型软件q小型软件q中型软件q大型甚至超大型软件n(3)按软件工作方式划分q实时处理软件q分时软件q交互式软件q批处理软件软件的分类n(4)按软件服务对象的范围划分q项目软件q产品软件。n(5)按使用的频度划分q一次性使用软件q使
2、用频度较高的软件n(6)按软件失效的影响程度划分q一般性软件q关键性软件1.2 软件的发展与软件工程n软件工程的指导性原则:q变动的软件需求q稳妥的设计方法q高效的软件开发支持技术q有效的过程管理n软件工程具有里程碑意义的进展:q结构化软件开发方法的工具q计算机辅助软件工程(CASE)q面向对象语言和方法成为主流的软件开发技术1.3 软件开发模型的演变和生存周期n1.3.1 软件开发过程与模型的演变n1. 瀑布模型(waterfall model)q(1)慎重使用瀑布模型的情况:n不能充分理解客户需求或客户需求有可能迅速发生化;n系统太大太复杂,不能一次做完所有的事;n事先拟采用的技术迅速发生
3、变化;n提供的资源有限;n无法利用各开发阶段的某一中间产品q(2)使用瀑布模型的情况:n系统所有的功能、性能要求客户可以一次性准确交付时;n必须是首次开发的新系统并且淘汰全部老系统时。1.3 软件开发模型的演变和生存周期n2. 渐增模型(incremental model)n(1)慎重考虑使用渐增模型的情况:n不能充分理解客户需求或客户需求有可能迅速发生变化;n事先拟采用的技术迅速发生变化;n客户突然提出一些新的功能需求;n长时期内仅有有限的资源保证(开发人员和资金)。使用渐增模型的情况:使用渐增模型的情况:n需要在尽短的时间内得到系统基本功能的演示或使用;需要在尽短的时间内得到系统基本功能的
4、演示或使用;n各版本都有中间阶段产品可提供使用;各版本都有中间阶段产品可提供使用;n系统可以被自然地分割成渐增的模式;系统可以被自然地分割成渐增的模式;n开发人员与资金可以逐步增加。开发人员与资金可以逐步增加。1.3 软件开发模型的演变和生存周期n3. 演化模型(evolutionary model)q演化模型也称为原型(prototype)法模型。n使用演化模型时应注意:q演化模型也是通过系统各个可执行的中间版本以渐增的形式来开发系统的,但是客户需求可以分步逐渐了解,不用在初始时就确定。q在模型中,可以预先定义一部分客户需求,然后在每个后继的中间版本中再逐步增加需求,一点点完善。q在开发每个
5、中间版本时,开发过程中的活动和任务可以顺序地或部分重叠平行地被加入到这些中间版本中。4. 螺旋模型(spiral model)螺旋模型的四类活动:n制定计划;n风险分析;n实施开发;n客户评估。5 . 智能模型(intelligent model)1.3.2 软件开发模型的选择n要综合考虑以下几个因素:q(1)软件规模q(2)软件类型 n系统软件的开发。n实时软件的开发。n商业应用软件的开发。n嵌入式软件的开发。n人工智能软件的开发。1.3.2 软件开发模型的选择q(3)软件质量要求q(4)交付工期q(5)客户需求明确度q(6)投资q(7)可复用性q(8)开发者掌握的资源1.3.3 软件生存周
6、期1.4 软件开发方法简介n1. 结构化程序设计方法q其控制结构仅由顺序、选择与重复等有限的基本控制结构表示。n2. 模块化程序设计方法q模块之间的接口应尽可能简明清晰:n单独模块的修改不影响其它模块的功能;n模块化应具有可修改性、易读性和可验证性。n3. 面向对象程序设计方法1.4.1 结构化软件开发方法n结构化分析的步骤q构造数据流模型;q构建控制流模型;q生成数据字典(DD);q生成可选方案,建立需求规约。1.4.1 结构化软件开发方法n结构化设计步骤q首先研究、分析和审查数据流图。从软件的需求规格说明中弄清数据流加工的过程。q然后根据数据流图决定问题的类型。q由数据流图推导出系统的初始
7、结构图。q优化软件结构。q描述模块接口。q修改和补充数据词典。q制定测试计划。1.4.2 模块化软件开发方法n(1)模块可分解性。n(2)模块可组装性。n(3)模块可理解性。n(4)模块连续性。n(5)模块保护。1.4.3 面向数据结构软件开发方法n1建立JSD的系统进程模型n2JSD方法的步骤q(1)JSD需求分析步骤n标识系统中的实体与相应动作;n生成实体结构图;n初建系统模型。q(2)JSD系统设计步骤n扩充功能过程;n系统定时;n系统实现。1.4.3 面向数据结构软件开发方法n面向数据结构的开发方法的特点:q将分析结果作为设计基础,无明显分界;q都必须标识关键实体和动作;q信息具有层次
8、性;q提供一组将层次化的数据结构映射到程序结构的步骤;q数据结构由顺序、选择和重复3种构造成分表示。1.4.4 面向对象软件开发方法n面向对象方法的意义:q(1)一种新的思考方式;q(2)将数据和行为结合成为对象;q(3)核心是封装;q(4)面向对象方法建立的基础是:n软件工程概念;n计算机科学概念;n工程管理;n数据库信息模型;n传统软件开发方法。面向对象方法有几十种,综合起来,面向对象方法有几十种,综合起来,其基本观点如下:其基本观点如下:n现实客观世界由对象组成。现实客观世界由对象组成。n相同的对象归并为类。相同的对象归并为类。n类可以继承。类可以继承。n对象之间通过消息进行联系。对象之
9、间通过消息进行联系。面向对象面向对象 = = 对象对象 + + 类类 + + 继承继承 + + 通信通信1.4.5 软件开发方法的评价与选择n综合考虑以下几方面因素:q人员素质。q时间进度。q掌握资源。q可行性。q领域知识。n从四个方面评价:q技术特征。q使用特征。q管理特征。q经济特征。面向对象的世界观对对象模型的通俗理解建立面向对象的世界观建模就是认识现实世界客观世界世界主观世界认识世界改造世界世界是什么样的呢?不同类型的人有不同的世界观E=MC2事物,运动矛盾,变化,发展X+Y=Z1+1=?类,关联,对象持不同的世界观就会得到对现实世界的不同认识建立不同的世界模型。只存在同一个现实世界所
10、以,模型没有对错、只有符合建模人目的多少之分。软件人的目的现代目的:在计算机中模拟现实世界的物和事。传统目的:控制计算机运行。站在六个角度来看待事物nA.这里面有什么东东?nB.每个东东看上去是什么样的?nC.每个东东能做点什么用?nD.这些东东都呆在什么地方?nE.这些东东之间有什么关系?nF.这些东东是怎么成事的?FACEBD举例说明“昨天我的一个朋友结婚了”n这里面有什么东东?q月老,小伙,姑娘,恋人,玫瑰花。n每个东东看上去是什么样的?q月老,看上去有些年纪了,挺热心的。q小伙,看上去很强壮,很实诚的。q姑娘,看上去好漂亮,还很温柔。q恋人,看上去很黏糊,当然就结婚了。q玫瑰花,火红火
11、红的,难怪姑娘动情了。每个东东能做点什么用?n月老:牵线搭桥,介绍认识。n小伙:追求献花,表达爱意。n姑娘:仰慕倾情,以身相许。n恋人:拍拖结婚。n玫瑰花:令姑娘头晕,传情示爱。这些东东都呆在什么地方?n月老:婚介所,交友网站,亲戚家等。n小伙:软件公司,住家。n姑娘:人民医院,住宿舍。n恋人:饭店,电影院,n玫瑰花:花店里,小伙手中,姑娘手中。这些东东之间有什么关系?关系关系月老月老小伙小伙姑娘姑娘恋人恋人玫瑰玫瑰月老月老干妈舅妈撮合者没关系小伙小伙干儿子男友老公男主角买送主姑娘姑娘外甥女女友太太女主角受主恋人恋人作品组合组合使用者玫瑰玫瑰没关系信物接受者 信物这些东东是怎么成事的?n月老牵
12、线搭桥,介绍小伙和姑娘认识;n姑娘和小伙一见钟情,成为一对恋人;n一对恋人开始拍拖;n小伙追求献花,表达对姑娘的爱意;n姑娘收到999火红玫瑰,激动得头晕目眩;n小伙真心求婚,姑娘以身相许;n一对恋人终于走入婚姻殿堂。用面向对象世界观看事物的答案A.这里面有些什么东东?n答:这里面有的都是事物。qObjectq对象q台湾人的翻译就非常准确,叫做“物件”。n如上例,q有月老,小伙,姑娘,恋人,玫瑰等事物(对象)B.每个事物看上去是什么样的?n每个事物看上去都有自己的属性,在每个属性上都有一个特征值。n如上例中:q月老,有属性:年纪,特征值:较大;q小伙,有属性:体格,特征值:强壮;q姑娘,有属性
13、:性情,特征值:温柔;q恋人,有属性:关系,特征值:黏糊;q玫瑰花,有属性:颜色,特征值:火红。C.每个事物能做点什么用?n每个事物都具备某种能力;n这些事物有什么用,就要看它有什么能力了。qMethodq方法n如上例中:q月老有牵线搭桥,介绍认识的能力(方法);q小伙有“追求”的能力,姑娘有“嫁人”的能力;q恋人有“拍拖”的能力,玫瑰有“示爱”的能力。D.这些事物都呆在什么地方?n每个事物都会有它合理的或者必须的空间位置和逻辑位置。尤其当这些位置对事物的行为造成重要影响的时候,表明他们的位置是极其重要的。n面向对象的世界观中叫事物的部署。n上例列出的位置对故事主要情节没有太大的影响,本来是可
14、以不列出来的。E.这些事物之间有什么关系?n事物之间的关系非常多,面向对象的观点一般分为主要的三类:q整体-部分关系,甲是乙的一个组成部分。n如恋人和小伙,恋人和姑娘的关系。q笼统-具体关系,甲是乙的一个特例。n如人和小伙,人和月老,人和姑娘的关系。q伙伴关系,甲会对乙做点什么。n如月老和小伙、姑娘,小伙和玫瑰,小伙和姑娘的关系。F.这些事物是怎么成事的?n每个事物都会尽量利用伙伴的能力;n整体事物的能力依靠部分事物的能力;n笼统事物的属性和能力就是具体事物的属性和能力;具体事物除了有笼统事物的属性和能力外,还可以有自己特殊的。n事物分工协作,互通信息,共同完成整体的目标。俗语对术语的映射俗语
15、俗语术语术语例子例子出了什么事?用例我的一个朋友结了婚。具体事物对象我的一个朋友,他未婚妻事物类型类小伙,姑娘,玫瑰,月老属性属性年龄,体格,性情能力方法牵线,追求,结婚位置部署单位,电影院整-部关系聚集关系恋人-小伙,恋人-姑娘笼-具关系继承关系人-小伙,人-姑娘伙伴关系关联关系小伙-姑娘,小伙-玫瑰成事过程用例实现相识,相恋,结婚面向对象的原理与实现面向对象的软件开发方法n为了解决结构化程序设计的这些问题,面向对象的技术应运而生。n它是一种非常强有力的软件开发方法q它将数据和对数据的操作作为一个相互依赖、不可分割的整体,采用数据抽象和信息隐蔽技术,力图使对现实世界问题的求解简单化q它符合人
16、们的思维习惯,同时有助于控制软件的复杂性,提高软件的生产效率,从而得到了广泛的应用n面向对象的技术是目前最为流行的一种软件开发方法面向对象n现实世界中所有的事物都是对象n对象都具有某些特征,并展现某些行为面向对象示例n公司中的不同部门都是对象面向对象示例n按照实体在现实世界中的表现来实现n将活动和属性与每一实体相关联 数据数据员工详细资料工资结算表票据凭证收据活动活动计算工资支付工资支付帐单记帐银行交易面向对象的基本概念n面向对象=对象+类+继承+通信n如果一个软件系统是使用这样四个概念来设计和实现的,我们认为这个软件系统是面向对象的n相关概念q对象q类q抽象q继承q封装q可重用性q多态性对象
17、n 对象是客观世界中具体的或抽象的事物。n 在计算机领域中,对象可视为是由一组数据(信息)和施加于该组数据上的一组操作(行为)组成的集合体。n 例如,现实世界中的人、树、房子、汽车等关于对象n现实对象q存在于客观世界的实体n物理对象q一辆汽车、一个人、一本书n概念实体q一种语言、一个图形、一种管理方式n程序对象q构成程序的实体n对象的用途q帮助理解现实世界q为计算机应用提供实践基础现实对象程序对象n计算机用户环境中的元素q窗口q菜单n数据集合q机器零件清单q员工档案n用户自定义的数据类型q时间q角度q复数对象的实质n对象是一个拟人化的客观存在的实体,该实体是由其结构特征和行为特征来描述的。n例
18、如,人是一个自主的实体,人由许多器官组成,表现为人的结构特征。一个具体的人,每时每刻都具有一个状态,该状态是由构成身体的各个器官的状态组成的。一个人,对自己的行为具有支配能力,其它人不能根据自己的意志支配他的行为,也就是说,人的状态是由人自身的行为来改变的。对象的实质n描述对象状态的数据或信息只能由对象自身所具备的操作或行为来改变,而触发对象某种操作或行为的激励来自对象之外的某种消息。这一特征体现了对象信息隐藏的基本思想。n例如,引起人的某种行为发生是由于人受到某种刺激或由人以外的其它人或事物对该人施加某种影响发生的。这实际上是对象之间发生相互联系的唯一途径。对象的特征n(1)有一个标识符,如
19、同人的身份证一样,该标识符在问题空间中必须是唯一的,用以区别于其它对象。n(2)有一个状态,由一组数据或由数据与其它对象的组合来描述,该组数据称为对象的属性。n(3)有一组操作,每一个操作决定对象的一种行为n(4)对象的状态只能由自身的行为来改变对象的特征n(5)对象之间是通过消息相互通信的,当一个对象要求另一个对象执行某种操作时,就向它发送一个消息。n(6)一个对象的状态可以由多个其它对象的状态构成,如果一个对象的状态由其它对象表示,则称构成它的状态的那些对象是它的属性。对象的特征n例如,一个名为张三的人,他的状态为:例如,一个名为张三的人,他的状态为:性别:男;性别:男;身高:身高:180
20、cm180cm;体重:体重:68kg68kg。n他的操作是:他的操作是:回答身高:回答身高:(how-tall);(how-tall);回答体重:回答体重:(how-heavy);(how-heavy);n 其它对象向张三发送一条消息其它对象向张三发送一条消息how-tallhow-tall,张三将执行他的操,张三将执行他的操作作how-tallhow-tall,如果其它对象向张三发送一条消息,如果其它对象向张三发送一条消息whatwhats your s your namename,张三则不会采取任何行动,因为他不具有该操作,因而,张三则不会采取任何行动,因为他不具有该操作,因而不理解这条消
21、息。不理解这条消息。对象的特征状态操作消息关于类n类是一组具有相同数据结构和相同操作的对象的集合;所有这些对象都是类的实例。一个类的不同实例,必定具有:q(1)相同的操作(或行为)的集合;q(2)相同的信息结构或属性定义,但可以有不同的属性值;q(3)不同的对象标识。关于类n类建立了现实对象到程序对象的桥梁q类是对一系列具有相同性质的现实对象的抽象,是对现实对象共同特征的描述q程序对象都是类的实例,同一类的实例对象具有n相同数据结构,但有不同的值n相同操作n类中的数据结构叫属性n类中的操作叫方法类的实质n类是表现对象结构共性和行为共性的一种定义类是表现对象结构共性和行为共性的一种定义或模板或机
22、制。类中至少包含了以下两方面的或模板或机制。类中至少包含了以下两方面的描述:描述:q(1 1)本类所有实例的属性定义或结构的定义;)本类所有实例的属性定义或结构的定义;q(2 2)本类所有实例的操作)本类所有实例的操作( (或行为或行为) )的定义。的定义。类的实例 姓名 年龄 身高 体重 回答身高 回答体重类:人类:人对象:张三对象:张三对象:李四对象:李四对象:王五对象:王五从现实对象到类多边形对象多边形对象多边形类多边形类属性属性顶点边的颜色填充颜色方法方法绘制擦除移动抽象为属性 1方法 1属性 3方法 2抽象 1n考察特定应用程序相关问题的某些方面的过程抽象 2n数据抽象是识别特定实体
23、的属性和方法的过程属性属性方法方法类抽象 3n抽象分为两类q数据抽象n识别与特定的应用程序相关的属性q过程抽象n将注意力集中在过程的参数和返回值,而不是实现继承n如果存在类A和类B,并且:q(1)类A的所有属性和方法均包含在类B中q(2)类B中可以有类A没有的属性或方法n那么,类B继承类A,同时称类B为类A的子类、类A为类B的父类。继承n利用继承的机制,可以将多个类之间的共性用一个类来描述,以便其它有关类继承。也就是说,可以重用类之间的共性。因此,继承性是实现软件重用的核心思想。继承性 姓名 年龄 身高 体重 回答身高 回答体重类:人类:教师类:学生 所教课程 回答所教课程 年 级 回答几年级
24、关于继承n继承重用现有类生成新类n可重用性通过继承来实现动物昆虫哺乳动物爬行动物人类非人类继承的双方n超类是有其他类继承其行为的类n继承其他类的类称为子类动物动物继承的特点n使系统的修改或维护局部化。例如,当我们修改人的属性或操作后,这种修改将自动被继承到教师类和学生类中,在教师类和学生类中无须作任何工作。n可以有效地避免系统结构的冗余,有利于简化系统描述。例如,由于人描述了教师类和学生类的共性,使得教师类和学生类的描述大为简化。而只须描述其个性,如教师所教课程或学生的年级等。封装性n对象的封装性体现在两个方面:q(1)对象将状态和操作集中起来,成为一个整体;q(2)对象的状态只能由其自身的操
25、作或行为来改变。n封装是一种信息隐藏,对象的封装性是实现信息隐藏的一种机制。关于封装n信息隐藏的过程n有选择的数据隐藏n防止意外的数据破坏n更易于隔离和修复错误封装的有选择地隐藏n封装是允许有选择地隐藏类中的属性和方法的过程在类的外部不能访问在类的外部可以访问类可重用性n程序可以分解为可重用的对象n现有类可以和附加功能一起使用可重用性示例猫科动物猫科动物发出声音进食/饮水捕食猎物喵喵叫喝牛奶捕食老鼠吼叫吃肉捕食大型猎物多态性n多态性是指同一对象接收到不同消息采用不同的行为方式;同一消息可以根据发送消息对象的不同采用多种不同的行为方式。n多态性是面向对象系统中的又一重要特性,有利于简化系统结构,
26、提高系统的适应性。多态性n同样的函数在不同的类上有不同的行为类 艺术家艺术家舞蹈家舞蹈家诗人诗人雕刻家雕刻家对各个子类实现的方法 将产生不同的结果多态性示例子类子类术语的图形符号对象名用术语来建模n还是问上述六个问题;n可以打乱顺序问,同时问;n顺着知道答案的问题问下去;n把答案用术语的图形记下来。站在六个角度来看待事物nA.这里面有什么东东?nB.每个东东看上去是什么样的?nC.每个东东能做点什么用?nD.这些东东都呆在什么地方?nE.这些东东之间有什么关系?nF.这些东东是怎么成事的?FACEBD“我的一个朋友结婚了”nA.这里面有什么东东?我我的朋友我朋友的妻子故事与“我”无关,去掉“我”,我的朋友是小伙,他妻子是姑娘,于是得到两个类:他们怎么就成了?n他们已经拍拖两年了,如胶似漆,你情我愿,不就成了。n拍拖必须是一对恋人所为,于是出来:他们是怎么拍起拖来的?n两年前,姑娘的舅妈介绍他俩认识,他俩一见钟情,于是便拍起拖来了。n舅妈是月老,可能撮合了好多对恋人,我朋友他们只不过是其中一对,于是得到:促成 1.*11他们都喜欢对方什么?n姑娘喜欢小伙年轻,健壮,实诚;n小伙喜欢姑娘年轻,漂亮,温柔。n姑娘小伙都感谢月老的老到和热心肠。发现共性.他们都是普通人n月老,小伙,姑娘有共同的属性“年纪”和“性
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护士选调考试试题及答案
- 农业电商用户忠诚度提升试题及答案
- 农业电商可持续发展问题试题及答案
- 乐理考试的和声组织与音色选择研究试题及答案
- 具设计中的人体工学考量试题及答案
- 教师在教学研究中的反思角色试题及答案
- 数字人民币跨境支付技术挑战与跨境支付风险管理策略动态报告
- 大学化学在技术转移中的作用试题及答案
- 心理学试题及答案
- 建筑施工安全管理中应注意的事项试题及答案
- 四年级下册数学口算练习题
- 《超重康复之道》课件
- 建筑图纸识图培训
- 飞行员劳动合同模板及条款
- 第中西艺术时空对话 课件 2024-2025学年岭南美版(2024) 初中美术七年级下册
- 高氧潜水考试题及答案
- 2025年二级建造师之二建矿业工程实务通关考试题库带答案解析
- (四调)武汉市2025届高中毕业生四月调研考试 物理试卷(含答案)
- 盲医考试题及答案
- 上海市宝山区2022-2023学年五年级下学期期中调研语文试题(有答案)
- 教科版科学三年级下册期中测试卷
评论
0/150
提交评论