




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、统一建模语言(UML),第1章 面向对象技术概述,重点: 软件工程相关概念 面向对象相关概念,1.1 软件危机与软件工程,软件发展的几个时期 1946(第一台计算机)1960 “软件”雏形是简单的程序 20世纪60年代末到70年代初 “软件”成为产品 至今 软件工程时期 软件危机 软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题。 如何开发软件,以满足不断增长的、日趋复杂的要求 如何维护规模不断庞大的软件产品,软件工程,由北大西洋公约组织NATO于1968年提出 软件工程是指导计算机软件开发和维护的一门工程学科。 采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考
2、验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。,1.1 软件危机与软件工程,软件开发的现状 软件工程学科不断发展 软件危机仍然存在 中小型软件开发较为成熟,大型软件存在问题 常见软件开发方法 瀑布模型 增量模型 原型模型 螺旋模型 (风险驱动),1.1 软件危机与软件工程,1.2 软件开发的基本认识,大型软件系统的特点 开发代价高、时间长,参与人员多,软件生命周期长。 软件系统开发的两个方面 软件开发过程 软件开发中资源的协调和管理,1.2 软件开发的基本认识,软件是逻辑部件,而不是物理部件,软件产品与硬件产品的区别 表
3、现形式不同 (看不见 ,摸不着,长期运行看效果) 生产方式不同 (人与人的沟通,容易有疏忽与失误) 产品需求不同 (软件不允许有误差) 维护方式不同 (出现bug要调整,进而引发新bug),1.3 软件固有的复杂性,软件开发的复杂性与困难性是由于软件的特点造成的,软件的复杂性是固有的。 软件复杂性的原因 跟计算机体系结构相关(冯.诺依曼 硬件简单/软件复杂) 软件开发是智力活动,无法形成统一开发模式 软件系统的需求经常改变 软件元素之间的关系不确定 软件依赖硬件环境,1.4 软件工程的一般原则,分解,“分而治之”或“各个击破”,降低复杂性 抽象,抽取系统本质特征,忽略非基本特征 (Miller
4、神奇的数字7) 过程抽象 数据抽象 模块化,基本要求是高内聚、低耦合 信息隐藏,也称封装 (电话) 复用 软件自动化 软件构件组装,结构化的开发方法 SA、SD、SP 特点:面向数据流 DFD软件结构图SC优化划分模块内部算法和流程,Jackson方法(不常用) 面向数据结构 (例如,学生信息管理系统,处理各表的输入输出),面向对象的开发方法 OOA、OOD、OOP,1.5 几种基本的软件开发方法,1.6 面向对象的发展历程,196070年代 COBOL(商用语言,银行)、FORTRAN(工程计算)、C(系统开发) 结构化分析和设计技术 1980年90年代初期 Smalltalk、Ada、C+
5、、Visual Basic 早期面向对象生成(代码)方法 90年代中晚期 Java UML Unified Process,1.7 面向对象技术的优点,面向对象技术的优点 稳定性较高,需求的较小改变不会影响软件的结构 开发的系统更易于理解, 贴近现实世界(功能为基础PK对象为基础) 可靠性高 复用 结构化方法对问题进行功能分解,强调软件的结构按照功能来组织,一旦功能改变,软件结构就不稳定 OO方法按照问题域分解,能够更直接地描述现实世界 各个开发阶段之间过渡平滑 OOA与OOD阶段无鸿沟,1.8 面向对象领域的基本概念,OO技术领域存在一些基本术语和概念,需要掌握和理解。,1.8.1 对象和实
6、例,对象(Object) 有意义的一切事物都是对象 它是系统用来描述客观事物的一个实体,是构成系统的一个基本单位。 对象包括:属性(静态特征)和方法(动态特征) 对象之间对过消息进行通信。 实例(Instance) 它与对象的概念很类似,但其含义更广泛一些。,1.8.2 类,类(Class) 它是具有相同属性和方法的一组对象的集合 为某类对象提供统一的描述 类是静态概念,对象是动态的 对象是类的实例,1.8.3 封装,封装(Encapsulation) 就是把对象的属性和方法结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。 封装使对象具有2个部分:接口部分和实现部分 (硬盘) 封装提供2
7、种保护 保护对象 防止直接访问对象内部细节 保护客户 防止对象实现部分的变化影响客户对象,1.8.4 继承,继承(Inheritance) 它使子类可以继承父类的属性和方法 继承增加了软件复用的机会 单继承与多继承,override与overload,覆盖(override)在子类中增加或重新定义所继承的属性或方法。 public class A String name; public String getValue() return “Value is:” + name; public class B extends A String address; public String getVa
8、lue () return “Value is:” + address; ,重载(overload)同一个类中有多个同名方法,但它们在操作数或操作数类型上有区别。系统根据实参引用不同方法。,1.8.5 多态,多态(polymorphism) 在OO技术中,多态指使一个实体在不同上下文条件下具有不同意义或用法的能力 与多态有关的概念 继承 覆盖 动态绑定 向上转型(指派),圆柱体 锥体 立方体,1.8.6 消息,消息(Message) 是指向对象发出的服务请求 对象直接用消息的方式传递信息,而不是参数 包括:提供服务的对象的标识、服务标识、输入信息和回答信息等 对象间的消息传递是OO方法的基本原
9、则 消息包括 同步消息,请求者需要等待响应者返回 异步消息,请求者不需要等待响应者返回,发出消息后可以继续自己的后续工作(和函数调用有本质区别),1.9 面向对象分析与设计,分析模型Analysis models 描述应用领域 设计模型Design models 描述软件系统 如structure chart OO开发方法中分析模型和设计模型之间使用相同的模型和建模概念,二者之间映射方便,平滑过渡,防止不一致。,OOA 用面向对象方法分析问题域,建立基于对象、消息的业务模型,形成对客观世界和业务本身的正确认识。 生成业务对象的动、静态模型和抽象类 UML业务模型、用例图以及初步的交互图。 OOD 针对OOA给出的问题域模型,用面向对象方法设计出软件的基础架构(概要设计)和完整的类结构(详细设计),以完成业务功能。最后编码。 生成对象类的动、静态模型(解决域) UML类图、交互图(顺序图和协作图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度车辆租赁与智能停车系统合作合同范本
- 2025版商业综合体包干制物业管理服务协议
- 二零二五年度绿色环保型安置房室内装饰装修工程施工合同
- 二零二五年度环保设施安装工程一切险全面保障合同
- 2025版厂房装修及智能化安防系统建设合同
- 二零二五年政府机关安全保卫及保密工作服务协议
- 2025版高新技术产业园区厂房租赁合同范本
- 2025版汽车维修行业安全生产责任合同
- 文艺部学期工作方案
- 二零二五年度城市园林绿化工程安装承包合同
- 某地水电预留预埋施工方案机电预留预埋施工方案
- 摩托车买卖协议书电子版(2篇)
- 1输变电工程施工质量验收统一表式(线路工程)
- 专利知识产权全套流程图
- 2023年中医基础理论知识题库与答案
- 上海2022年浦发银行人力资源部社会招聘(0111)考试模拟卷3套含答案详解
- 国家重点研发计划“公共安全风险防控与应急技术装备”2023年立项项目
- 酸雾抑制剂化学品安全技术说明书
- 重点监管的危险化学品名录(完整版)
- 高等教育心理学学习提纲整理
- 个人信用报告异议申请表
评论
0/150
提交评论