面向对象软件工程 及 UML概述
软件工程
软件工程的起因: 软件危机的发生
软件生命周期: 一般划分为6个阶段
- 问题定义及规划
(问题定义、可行性研究) - 需求分析
- 软件设计
(总体设计、详细设计) - 软件实现
(程序编码) - 软件测试
- 运行和维护
面向对象
面向对象(Object-Oriented,OO)是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。
类和对象
对象
万物皆对象,对象分为三种:
- 客观对象
现实世界的实体 - 问题对象
抽象后的客观对象的某些属性和方法 - 计算机对象
问题对象通过封装等过程,映射成计算机中的一个包含 数据和操作 的集合体。
类
类是对拥有共同的结构、行为和语义的一组对象的抽象。
对类的四个角度的理解:
- 类是面向对象程序中的构造单位。
- 类是面向对象程序设计语言的基本成分。
- 类是抽象数据类型的具体表现。
- 类刻画了一组相似对象的共同特性。
事件和消息
事件
事件是指:
对象可以识别的由系统或者用户发出的动作。
也就是说:时间作用于对象,对象识别事件并作出响应。
事件大多由系统预先定义,用户也可以自定义。
消息
消息是指对象之间收发的信息,是对象间相互通信和相互作用的方式。
组成: 一共有5部分
- 消息的发送对象、消息的接收对象
- 消息传递方式
- 消息内容(消息名及参数)
- 消息的返回
消息传递
对象之间的消息传递是指:
对象之间需要相互沟通,沟通的途径。
面向对象技术中,最常见的消息传递是:方法调用(函数调用)
抽象 封装继承和多态
抽象 封装继承和多态 是面向对象的基本特征
抽象
从对象到类的过程,就是抽象的过程,就是将具体实体抽象成概念。
抽象的方法:
- 将需要的事物进行简化——获取本质信息。
- 将事物的特征进行概括——获取通用的抽象模型。
- 将抽象模型组织为层次结构——分类处理。
封装
封装是把对象的状态和行为绑到一起的机制。
有两个含义:
- 独立性,把对象的全部状态和行为结合在一起,形成一个不可分割的整体,并且它的存在不依赖于外部事物;
- 封闭性,尽可能隐蔽对象的内部细节,控制对象状态和行为的可访问性。
继承
继承是指特殊类(子类)的对象拥有其一般类(父类)的属性和行为。
是一种类与类连接的层次模型。
目的: 代码可重用性
多态
多态性是指呈现多种形态的能力。对于OOP而言,多态性是指多个方法(函数)具有相同的名称,但是根据不同的情况,具有不同的实现方式。
UML概述
统一建模语言UML(定义):
是一种通用的可视化建模语言,可以用来对软件密集型(功能多)系统的制品进行可视化、详述、构造和文档化。
UML用来捕获系统静态结构和动态行为的信息。
UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具。
UML的发展历史
UML的目标
为建模者提供可用的、富有表达力的、可视化的建模语言,以开发和交换有意义的模型。
UML的应用范围
UML以面向对象的方式来描述系统。
最广泛的应用是对软件系统进行建模,但它同样适用于非软件系统领域的系统。
理论上来说,任何具有静态结构和动态行为的系统,都可以使用UML进行建模。
软件系统分类
- 信息系统: 与数据库有关的系统
- 技术系统:处理和控制技术设备(大型)
- 嵌入式系统:以软件形式嵌入到硬件设备中,从而控制硬件设备运行(智能洗衣机等)
- 分布式系统:分布在不同服务器上的数据库系统
- 系统软件:操作系统和编写系统实用程序
- 业务系统:与工作流有关的系统
不同开发阶段
- 分析: 通过用例捕获用户需求,创建用例图来描述系统的功能要求;对现实世界进行抽象,创建简单的概念类图,以描述它们的存在和关系;创建简单的活动图,以描述系统的业务流程。
- 设计:进一步细化类图,考虑系统中类的定义和细节;为实现用例、类之间的协作,用顺序图、通信图描述系统的动态模型。
- 实现:用面向对象编程语言,将设计阶段的类转换成实际的代码。
- 测试: 用UML 图作为测试依据,用类图指导单元测试,用组件图和通信图指导集成测试,用用例图指导系统测试。
UML建模工具
UML工具是帮助软件开发人员来使用UML的软件。
主要功能
-
支持各种UML模型图的输入、编辑和存储;
-
支持正向工程和逆向工程;
正向:模型图 -> 代码 -
支持项目组的协同开发。
常见的工具
-
Rational Rose(已经过期)
美国IBM公司推出的经典的商业UML工具 -
一代StarUML
韩国公司MKLab公司的免费版的UML工具
StarUML可绘制 9种UML图,缺少对象图、包图、定时图和交互概述图等功能,但对象图和包图完全可以通过类图编辑器画出来。
StarUML支持正反向工程,可以依据类图的内容生成Java、C++、C#代码,也能够读取Java、C++、C#代码反向生成类图。
StarUML还可以导入Rose文件 -
StarUML 2代以后
2.0.0作为商业软件发布,StarUML 2支持11种UML图, 新增了对象图和包图。
版本3.2.2支持UML 2.2的12种图(缺少定时图和交互概述图,新增了Profile图)。
版本4.0.0支持UML 2.5的14种图
本文作者:kingwzun
本文链接:https://www.cnblogs.com/kingwz/p/16618693.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2021-08-24 补题*总结题21/8/24
2021-08-24 线段树