HELLO WORLD--一起加油(🍺)!|

kingwzun

园龄:3年6个月粉丝:111关注:0

2022-08-24 09:29阅读: 421评论: 0推荐: 0

面向对象软件工程 及 UML概述

软件工程

软件工程的起因: 软件危机的发生

软件生命周期: 一般划分为6个阶段

  1. 问题定义及规划
    (问题定义、可行性研究)
  2. 需求分析
  3. 软件设计
    (总体设计、详细设计)
  4. 软件实现
    (程序编码)
  5. 软件测试
  6. 运行和维护

面向对象

面向对象(Object-Oriented,OO)是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术

类和对象

对象
万物皆对象,对象分为三种:
image

  1. 客观对象
    现实世界的实体
  2. 问题对象
    抽象后的客观对象的某些属性和方法
  3. 计算机对象
    问题对象通过封装等过程,映射成计算机中的一个包含 数据和操作 的集合体。


类是对拥有共同的结构、行为和语义的一组对象的抽象

对类的四个角度的理解:

  • 类是面向对象程序中的构造单位。
  • 类是面向对象程序设计语言的基本成分。
  • 类是抽象数据类型的具体表现。
  • 类刻画了一组相似对象的共同特性。

事件和消息

事件
事件是指:
对象可以识别的由系统或者用户发出的动作。
也就是说:时间作用于对象,对象识别事件并作出响应。

事件大多由系统预先定义,用户也可以自定义。

消息
消息是指对象之间收发的信息,是对象间相互通信和相互作用的方式。

组成: 一共有5部分

  • 消息的发送对象、消息的接收对象
  • 消息传递方式
  • 消息内容(消息名及参数)
  • 消息的返回

消息传递
对象之间的消息传递是指:
对象之间需要相互沟通,沟通的途径。

面向对象技术中,最常见的消息传递是:方法调用(函数调用)

抽象 封装继承和多态

抽象 封装继承和多态 是面向对象的基本特征

抽象
对象到类的过程,就是抽象的过程,就是将具体实体抽象成概念。

抽象的方法:

  1. 将需要的事物进行简化——获取本质信息。
  2. 将事物的特征进行概括——获取通用的抽象模型。
  3. 将抽象模型组织为层次结构——分类处理。

封装
封装是把对象的状态和行为绑到一起的机制
有两个含义:

  1. 独立性,把对象的全部状态和行为结合在一起,形成一个不可分割的整体,并且它的存在不依赖于外部事物
  2. 封闭性,尽可能隐蔽对象的内部细节,控制对象状态和行为的可访问性。

继承
继承是指特殊类(子类)的对象拥有其一般类(父类)的属性和行为。
是一种类与类连接的层次模型
目的: 代码可重用性

多态
多态性是指呈现多种形态的能力。对于OOP而言,多态性是指多个方法(函数)具有相同的名称,但是根据不同的情况,具有不同的实现方式。

UML概述

统一建模语言UML(定义):
是一种通用的可视化建模语言,可以用来对软件密集型(功能多)系统的制品进行可视化、详述、构造和文档化

UML用来捕获系统静态结构和动态行为的信息。

UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具。

UML的发展历史
image

UML的目标
为建模者提供可用的、富有表达力的、可视化的建模语言,以开发和交换有意义的模型。

UML的应用范围

UML以面向对象的方式来描述系统。
最广泛的应用是对软件系统进行建模,但它同样适用于非软件系统领域的系统。
理论上来说,任何具有静态结构和动态行为的系统,都可以使用UML进行建模。

软件系统分类

  • 信息系统: 与数据库有关的系统
  • 技术系统:处理和控制技术设备(大型)
  • 嵌入式系统:以软件形式嵌入到硬件设备中,从而控制硬件设备运行(智能洗衣机等)
  • 分布式系统:分布在不同服务器上的数据库系统
  • 系统软件:操作系统和编写系统实用程序
  • 业务系统:与工作流有关的系统

不同开发阶段

  • 分析: 通过用例捕获用户需求,创建用例图来描述系统的功能要求;对现实世界进行抽象,创建简单的概念类图,以描述它们的存在和关系;创建简单的活动图,以描述系统的业务流程。
  • 设计:进一步细化类图,考虑系统中类的定义和细节;为实现用例、类之间的协作,用顺序图、通信图描述系统的动态模型。
  • 实现:用面向对象编程语言,将设计阶段的转换成实际的代码
  • 测试: 用UML 图作为测试依据,用类图指导单元测试,用组件图和通信图指导集成测试,用用例图指导系统测试。

UML建模工具

UML工具是帮助软件开发人员来使用UML的软件。

主要功能

  1. 支持各种UML模型图的输入、编辑和存储;

  2. 支持正向工程和逆向工程
    正向:模型图 -> 代码

  3. 支持项目组的协同开发

常见的工具

  1. Rational Rose(已经过期)
    美国IBM公司推出的经典的商业UML工具

  2. 一代StarUML
    韩国公司MKLab公司的免费版的UML工具
    StarUML可绘制 9种UML图,缺少对象图、包图、定时图和交互概述图等功能,但对象图和包图完全可以通过类图编辑器画出来。
    StarUML支持正反向工程,可以依据类图的内容生成Java、C++、C#代码,也能够读取Java、C++、C#代码反向生成类图。
    StarUML还可以导入Rose文件

  3. 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 中国大陆许可协议进行许可。

posted @   kingwzun  阅读(421)  评论(0编辑  收藏  举报
历史上的今天:
2021-08-24 补题*总结题21/8/24
2021-08-24 线段树
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起