• 《软件工程》总结——第六章


    本章的主要内容是面向对象基础

          软件工程学家 Codd 和 Yourdon 认为:面向对象 = 对象 + 类 + 继承 + 通信;

    面向对象方法概述

          面向对象技术的发展历史

                1. 初始阶段:20 世纪 60 年代末到 20 世纪 80 年代;2. 发展阶段:20 世纪 80 年代中期到 90 年代;3. 成熟阶段:20 世纪 90 年代以后。

          面向对象的软件工程方法

                1. 面向对象分析;2. 面向对象设计;3. 面向对象编程;4. 面向对象测试;5. 面向对象维护。

    面对对象基本概念

          对象:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和对这组属性进行操作的一组服务组成。属性和服务是构成对象的两个基本要素。

          类:类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内容包括属性和服务两个主要部分。

          封装:封装是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。

          继承:继承是指子类可以自动拥有父类的全部属性和服务。

          消息:消息是对象发出的服务请求,一般包含提供服务的对象标识、服务标识、输入信息和应答信息等信息。

          关联:管线是对象属性之间的静态联系,它通过对象的属性来表示对象之间的依赖关系。

          聚和:聚合是对象之间的组合关系,即一个(或一些)对象是另一个对象的组成和部分。聚合是一种特殊的关联,表示对象之间整体与部分的关系。

          多态性:多态性是指在父类中定义的属性或服务被子类继承后,可以具有不同的数据类型或表现出不同的行为。

    软件建模概念

          系统、模型和视图

                1. 系统是为特定目的而设计的由相互关联的若干部分组成的集合,其中各个组成部分又可以看作是一个更简单的系统,成为子系统;2. 模型是对系统的抽象表示;3. 视图是从某一个侧面对系统模型的关注。

          软件建模的重要性

                1. 软件系统越来越大,如 Window NT5.0 具有4千万行代码,任何个人都不可能单独关系这些代码;2. 没有参加开发的人员无法直接理解程序代码;3. 人们需要一种描述复杂系统的简单的方法。

    统一建模语言 UML

                1. UML 是一种语言;2. UML 是一种可视化的建模语言;3. UML 是一种可用于详细描述的语言;4. UML 是一种构造语言;5. UML 是一种文档化语言。

          UML 的发展历史

                面向对象的建模方法开始于 20 世纪 80 年代初期,大量有决定意义的思想形成与 20 世纪 90 年代中期,1998 年开始,国际上每年召开一次专门的 UML 会议,推进 UML 语言的不断发展和广泛应用。

          UML 的概念模型

                1. 视图;2. 图;3. 模型元素;4. 语义规则;5. 公共机制;6. 扩展机制。

          UML 建模实例

          UML 应用

                UML 语言是一种强有力的系统建模语言,具有创建系统的静态结构和动态行为等多种模型的能力,其应用范围十分广泛,即可以应用于商业建模和软件开发建模的咯咯阶段,也可以应用于其他类型的应用系统。UML 主要应用适合于大型复杂系统的开发,具体要求如下:1. 支持用例驱动;2. 以体系结构为中心;3. 迭代的或增量的开发过程。

    常用的 UML 图

          用例图:用例图是从用户的观点描述系统的功能,它由一组用例、参与者以及它们之间的关系组成。

          类图:类图描述系统的静态结构,表示系统中的类、类与类之间的关系以及类的属性和操作。

          顺序图:顺序图描述了一组交互对象之间的交互方式,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。

          状态图:状态图是由状态机图扩展而开的,用来描述对象所经过的对外部事件作出响应的状态序列。

  • 相关阅读:
    spring boot拦截器中获取request post请求中的参数
    netty与spring学习
    拦截器,过滤器,监听器
    CA 根证书不在“受信任的根证书颁发机构”存储区
    SpringBoot整合Shiro
    远程服务接口聚合带来的性能提升
    常见软件安全性漏洞及处理
    Mybatis中的CDATA标签
    idea运行固定多个模块项目
    理解Node.js事件驱动编程
  • 原文地址:https://www.cnblogs.com/zchenjian/p/4296680.html
Copyright © 2020-2023  润新知