• 第一章 面向对象软件工程与UML


    这个OOAD讲的都是很抽象的东西!老师说这个在现在的学习中用到的不是很多,但是以后出去工作的时候就会常用到的。

    首先来了解OOAD是讲什么的。

    OOAD:Object Oriented Analysis Design,面向对象的分析和设计;

    什么是面向对象?

    1. 面向对象(Object-Orientation, 简称OO)是一种系统建模技术。
    2. 面向对象编程(Object-Orientation Programming,简称OOP)是按照OO的方法学来开发程序的过程。
    3. 通过分析系统内对象的交互来描述或建模一个系统。
    4. 交互的对象最终以类的形式组织。
    5. OO的方法由三部分组成:过程,标识,规则。

    对象

    1. 是一个客观存在的、唯一的实体。
    2. 是面向对象编程过程中分析与解决问题的出发点与基础。
    3. 拥有自己的标识、数据与行为。
    4. 可以简单或复杂。
    5. 可以抽象或具体。
    6. 在OOP中是一个类的动态实例。
    7. 如Student—id,name,age(attribute)

    --setName,getName,countScore(methods)

    --new Student()

    1. 类是对象的模板。
    2. 对象通过类实例化产生。
    3. 一个类可以创建多个对象
     
       

    OOAD

    OOAD(Object Oriented Analysis and Design),面向对象的分析与设计。

    OOAD是根据OO的方法学,对软件系统进行分析与设计的过程。

    --OOA  分析阶段

    --OOD  设计阶段

    定义OOA阶段

    1. 分析阶段主要解决以下问题

    -- 建立针对业务问题域的清晰视图。

    -- 列出系统必须完成的核心任务。

    -- 针对问题域建立公共词汇表。

    -- 列出针对此问题的最佳解决方案。

    2.此阶段要解决的核心问题是“What to do?”

    定义OOD阶段

    1.设计阶段主要解决以下问题

       -- 如何解决具体的业务问题。

       -- 引入系统工作所需的支持元素。

       -- 定义系统的实现策略

    2. 此阶段要解决的核心问题是“How to do?”

    (一)软件工程基本概念

     1 软件危机    软件的功能、规模及复杂性与日俱增,软件的复杂性达到了它的开发者难以控制的程度

    2 解决软件危机  用工程学的方法进行软件的开发与维护,并对软件生成过程进行工程化的管理

    3 软件工程的定义  指导计算机软件开发和维护的一门工程学科。

    4 软件工程的内容   针对软件生命周期全过程及其每个具体阶段的工程方法、技术细则、文档规范、技术支持、管理制度、人员组织以及质量保证体系等。

    5 软件工程三要素:

       方法:完成软件开发的各项任务的技术方法,为软件开发提供 “如何做” 的技术  (面向对象方法)

       工具:为运用方法而提供的自动的或半自动的软件工程的支撑环境(EA)

       过程:为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤,如何将软件工程方法与软件工具相结合,合理、及时地进行软件开发  (基于原型的增量迭代软件开发过程)

    6 软件的生命周期(一):  可行性分析阶段   需求分析阶段

        软件的生命周期(二):   系统设计阶段   系统实现阶段

        软件生命周期(三): 测试阶段   维护阶段

    7 软件开发过程:是在软件生命周期的软件系统开发过程中,一系列活动和软件生成结果的集合

    8 统一建模语言UML  UML图有很多种,对于程序员来说,最频繁使用的莫过于类图。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。类图中最基本的元素是类、接口。软件设计师设计出类图后,程序员就可以用       代码实现类图中包含的内容。

         在UML类图中描述具体类

         在UML类图中描述抽象类

         在UML类图中描述接口

         在UML类图中描述包

    9 使用类图表示关系

       类和类、类和接口、接口和接口之间存在一定关系,共有六种类型:分别是实现关系、泛化关系(继承关系)、关联关系、依赖关系、聚合关系、组合关系, 

       接口与类之间: 实现关系(空心箭头虚线)

        对象与对象之间: 泛化关系(Generalization) 指对象与对象之间的继承关系。 

                                关联关系  :指对象和对象之间的连接,它使一个对象知道另一个对象的属性和方法。关联关系有单向关联和双向关联 eg:员工 与 时间表

                                              1 聚合(Aggregation)关系 :关联关系的一种特例,它体现的是整体与部分的拥有关系,即“has a”的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多                                                                                      个整体对象共享,所以聚合关系也常称为共享关系。 eg:员工 与 部门

                                              2 组合(Composition)关系 :是关联关系的一种特例,它同样体现整体与部分间的包含关系,即“contains a”的关系。但此时整体与部分是不可分的,部分也不能给其它整体共享,作为整体的对象负责部分的对象的生                                                                                    命周期。这种关系比聚合更强,也称为强聚合。 eg:员工 与 时间表

                                              3 依赖(Dependency)关系: 依赖关系在Java中的具体代码表现形式为B为A的构造器或方法中的局部变量、方法或构造器的参数、方法的返回值,或者A调用B的静态方法。eg:driver  和 car

    10 面向对象系统分析与设计

    在面向对象技术中,建造整个软件系统的过程常常被称为面向对象的分析和设计(Object-Oriented Analysis and Design,OOAD)。对于我们要开发的软件系统来说,OOAD解决了系统是什么(面向对象的系统分析,即OOA)以及如何做的问题(面向对象的系统设计,即OOD),OOP只是用编程语言去实现该系统。
     
    一般来说,OOAD工作一般由需求分析师、系统分析员、系统架构师来完成,而OOP则由程序员来完成。但是,对于程序员来说,掌握OOD技术,对于编写高质量的代码以及个人技术成长和职业规划来说,有特别重要的意义。 
  • 相关阅读:
    推荐一款天气App 知心天气
    [推荐]Android DoraemonKit 工具
    推荐一款互动式追星神器App爱豆陪陪
    推荐一款语音直播连麦App YAMI
    推荐一款健康App 多喝水,引领全民时尚喝水生活习惯
    推荐一款万年历App 诸葛万年历
    [原创]A/B测试系统调研思维导图
    推荐一款走路赚钱App爱步行
    2条最佳实践App疯狂增长逻辑
    推荐分享AB测试服务商
  • 原文地址:https://www.cnblogs.com/hellokitty1/p/4627583.html
Copyright © 2020-2023  润新知