95992828九五至尊2

面向对象软件工程与UML,OOAD基本概念

一月 24th, 2019  |  九五至尊ii

http://www.cnblogs.com/hellokitty1/p/4627583.html

 

以此OOAD讲的都是很空虚的事物!老师说那一个在现在的就学中用到的不是过多,可是之后出来干活的时候就会常用到的。

上学目标:

首先来领悟OOAD是讲如何的。

1.领略与操纵面向对象的概念与办法。

OOAD:Object Oriented Analysis
Design,面向对象的辨析和安排性;

2.使用UML。

怎么着是面向对象?

3.成就面向对象的辨析与规划工作。

  1. 面向对象(Object-Orientation, 简称OO)是一种系统建模技术。
  2. 面向对象编程(Object-Orientation
    Programming,简称OOP)是比照OO的方教育学来开发顺序的历程。
  3. 经过分析连串内对象的交互来叙述或建模一个系统。
  4. 交互的靶子最终以类的款式协会。
  5. OO的法子由三有些组成:进度,标识,规则。

4.精晓OO的规划条件及片段独立的设计形式

 

 

对象

什么样是面向对象?

  1. 是一个客观存在的、唯一的实业。
  2. 是面向对象编程进程中剖析与缓解问题的观点与功底。
  3. 抱有自己的标识、数据与作为。
  4. 能够大约或复杂。
  5. 可以抽象或具体。
  6. 在OOP中是一个类的动态实例。
  7. 如Student—id,name,age(attribute)
  1. 面向对象(Object-Orientation, 简称OO)是一种系统建模技术。
  2. 面向对象编程(Object-Orientation
    Programming,简称OOP)是比照OO的方医学来支付顺序的经过。
  3. 透过分析体系内对象的相互来描述或建模一个连串。
  4. 相互的目标最后以类的款式协会。
  5. OO的不二法门由三部分构成:进程,标识,规则。

–setName,getName,countScore(methods)

 

–new Student()

对象

 

  1. 是一个客观存在的、唯一的实业。
  2. 是面向对象编程进程中剖析与缓解问题的视角与功底。
  3. 抱有自己的标识、数据与行为。
  4. 可以简简单单或复杂。
  5. 可以抽象或具体。
  6. 在OOP中是一个类的动态实例。
  7. 如Student—id,name,age(attribute)

–setName,getName,countScore(methods)

  1. 类是对象的沙盘。
  2. 对象通过类实例化暴发。
  3. 一个类可以创立三个目的

–new Student()

 
 

 

 

 

  1. 类是对象的沙盘。
  2. 对象通过类实例化爆发。
  3. 一个类可以创设多少个目的

九五至尊ii,OOAD

 
 

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

 

OOAD是依据OO的方管理学,对软件系统举行剖析与设计的进程。

 

–OOA  分析阶段

OOAD

–OOD  设计阶段

OOAD(Object Oriented Analysis and Design),面向对象的解析与安顿。

 

OOAD是根据OO的方管医学,对软件系统举行剖析与设计的长河。

定义OOA阶段

–OOA  分析阶段

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

–OOD  设计阶段

— 建立针对工作问题域的清晰视图。

 

— 列出种类必须已毕的基本职责。

定义OOA阶段

— 针对问题域建立国有词汇表。

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

— 列出针对此问题的极品解决方案。

— 建立针对工作问题域的清晰视图。

2.此品级要化解的为主问题是“What to do?”

— 列出系统必须形成的主干任务。

 

— 针对问题域建立集体词汇表。

定义OOD阶段

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

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

2.此阶段要缓解的主干问题是“What to do?”

   — 怎么着缓解实际的事体问题。

 

   — 引入系统工作所需的支撑元素。

定义OOD阶段

   — 定义系统的落到实处政策

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

  1. 此阶段要解决的基本问题是“How to do?”

   — 怎样解决实际的事务问题。

(一)软件工程基本概念

   — 引入系统工作所需的支撑元素。

 1 软件危机  
 软件的法力、规模及复杂性与日俱增,软件的错综复杂达到了它的开发者难以决定的水准

   — 定义系统的贯彻政策

2 解决软件危机
 用工程学的方法进行软件的开支与保证,并对软件生成进度进展工程化的军事管制

  1. 此阶段要缓解的主干问题是“How to do?”

3 软件工程的概念  引导统计机软件开发和维护的一门工程学科。

 

4 软件工程的内容
  针对软件生命周期全经过及其每个具体阶段的工程措施、技术细则、文档规范、技术协助、管理制度、人士社团以及质地保障系列等。

OOP的要紧特征

5 软件工程三要素:

1 .抽象(abstract)

   方法:完结软件开发的各项义务的技艺措施,为软件开发提供 “怎么做”
的技术  (面向对象方法)

2.封装(encapsulation)

   工具:为使用格局而提供的自动的或半机动的软件工程的支撑条件(EA)

3.继承(inheritance)

 
 进度:为了得到高质料的软件所需求落成的一多重义务的框架,它规定了形成各项任务的行事步骤,怎样将软件工程措施与软件工具相结合,合理、及时地展开软件开发
 (基于原型的增量迭代软件开发进度)

4.多态(polymorphism)

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

5.关联(association)

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

6.聚合(aggregation)

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

7.组合(composition)

7
软件开发进度:是在软件生命周期的软件系统开发进度中,一连串活动和软件生成结果的成团

8.内聚与耦合(cohesion & coupling)

8 统一建模语言UML
 UML图有过多种,对于程序员来说,最频仍利用的莫过于类图。类图紧假如用来展示系统中的类、接口以及它们之间的静态结构和涉及的一种静态模型。类图中最基本的元素是类、接口。软件设计师设计出类图后,程序员就可以用
      代码完毕类图中包蕴的始末。

 

     在UML类图中讲述具体类

抽象

     在UML类图中描述抽象类

  1. 疏忽掉一个目的或实体的细节而只关心其本质特征的经过。
  2. 简化作用与格式。
  3. 赞助用户与对象交互。

     在UML类图中讲述接口

 

     在UML类图中讲述包

封装

9 使用类图表示关系

  1. 藏匿数据和贯彻。
  2. 提供公共艺术供用户调用功用。
  3. 目的的三种视图。

 
 类和类、类和接口、接口和接口之间存在一定关系,共有六种档次:分别是落到实处关系、泛化关系(继承关系)、关联关系、信赖关系、聚合关系、组合关系, 

–外部视图:对象能做的办事。

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

   –内部视图:对象怎样完结工作。

    对象与目的之间:
泛化关系(Generalization) 指对象与对象时期的继续关系。 

 

                            关联关系
 :指目的和目的之间的连接,它使一个对象精晓另一个对象的性能和办法。关联关系有单向关系和双向关联
eg:员工 与 时间表

继承

                                          1 聚合(Aggregation)关系
:关联关系的一种特例,它反映的是完整与部分的具备关系,即“has
a”的涉嫌。此时完全与局地之间是可分其他,它们可以享有各自的生命周期,部分可以属于多少个总体目标,也得以为多
                                                                       
             个全体目的共享,所以集合关系也常称为共享关系。 eg:员工 与
部门

  1. 透过存在的类型定义新类型的机制。
  2. 普通在四个项目之间存在“is a”或“kind of”那样的关系。
  3. 通过三番五次可已毕代码重用,其余继承也是多态的基本功。

                                          2 整合(Composition)关系
:是关乎关系的一种特例,它一样浮现全部与局部间的带有关系,即“contains
a”的涉嫌。但这时完整与部分是不可分的,部分也不可以给其它全部共享,作为完全的靶子承担部分的靶子的生
                                                                       
           命周期。这种关涉比聚合更强,也号称强聚合。 eg:员工 与 时间表

如:苹果“is a”水果。

                                          3
信赖(Dependency)关系: 敬服关系在Java中的具体代码表现格局为B为A的构造器或形式中的局地变量、方法或构造器的参数、方法的再次来到值,或者A调用B的静态方法。eg:driver
 和 car

 

 

多态

10 面向对象系统分析与布置

  1. 一个称号,多种方式。
  2. 根据继承的多态
  3. 调用方法时根据所给的对象的不比取舍分歧的处理格局。
  4. 如Football—play(): 使用脚来落成。

在面向对象技术中,建造整个软件系统的进度不时被称作面向对象的分析和陈设(Object-Oriented
Analysis and
Design,OOAD)。对于大家要开发的软件系统来说,OOAD解决了系统是什么(面向对象的连串分析,即OOA)以及怎样做的题材(面向对象的系统规划,即OOD),OOP只是用编程语言去落到实处该连串。

Basketball—play(): 使用手来形成。

 

5.付给一个切实可行的足球或篮球,用户自行知道该行使何人的不二法门去履行play().

相似的话,OOAD工作一般由必要分析师、系统分析员、系统架构师来形成,而OOP则由程序员来已毕。不过,对于程序员来说,领会OOD技术,对于编写高质地的代码以及民用技术成长和职业规划来说,有特意首要的意义。 

 

 

关联

  1. 目的时期互相时的一种引用格局。
  2. 当一个目的通过另一个目的的引用去行使另一个对象的服务或操作时,多个目标之间便发出了事关
  3. 如:person使用computer,person与computer之间就存在了关乎关系。

 

聚合

  1. 波及关系的一种,一个目的变成此外一个对象的组成部分。
  2. 是一种关系较强的关系。
  3. 在八个目的时期存在“has
    a”那样的关系,一个目的作为另一个目的的性能存在,在外部被生产时,可由客户端指定与其关联的中间对象。
  4. 如小车与轮胎,轮胎作为小车的一个组成部分,它和小车可以分级生育之后装配起来使用,但小车可以换新轮胎,轮胎也可以卸下来给任何小车使用。

 

组合

  1. 当一个目的涵盖另一个对象时,外部对象负责管理内部对象的生命同期的气象。
  2. 波及关系中极其引人注目的一种。
  3. 中间的创始由外部对象自己控制。
  4. 如电视与屏幕。

 

域模型

  1. 域模型是面向对象的。在面向对象术语中,域模型也可称之为设计模型。域模型由以下内容组成:

–具有状态和行事的域对象

–域对象时期的涉及。

  • ·关联
  • ·依赖
  • ·聚焦
  • ·一般化(泛化)

 

域对象时期的关系

  • ·关联(Association)
  • ·依赖(Dependency)
  • ·聚焦(Aggregation)
  • ·一般化(Generalization)

 

波及关系

 

Customer  <———————- Order[customer:Customer]

从Order到Customer的多对一单向关系

 

Customer[orders:Set]—————–àOrder

从Customer到Order的一对多单向关系

 

Customer[orders:Set]ß————à Order[customer:Customer]

从Customer到Order的一对多双向关联

 

凭借关系

 

BusinessService———àCustomer

BusinessService类依赖Customer类

在BusinessService类中访问Customer类的主意, 并且构造Customer实例。

 

聚拢关系

聚集指的是完整与局地之间的涉及,在实体域对象之间很广泛。

 

Person{Set< Hand> hands}<–Hand

Person类与Hand类之间的集合关系

 

一般化关系

一般化关系指的是类之间的接轨关系

 

内聚与耦合

  1. 内聚:度量一个类独立完毕某项工作的能力。
  2. 耦合:度量系统内或系统里头重视关系的复杂度。
  3. 统筹原则:扩充内聚,收缩耦合(高内聚,低耦合)。

 

支出进程概述

1.传统支付进程—瀑布模型

2.合并软件开发进度(USDP)

 

历史观支付进度(瀑布模型)

RequirementsàAnalysisàDesignàImplementationàTest

 

OOAD的开支进程

  1. 大项目表明为一些子类型
  2. 使用UML工具
  3. 合并软件开发进度是一个迭代、递增的开发进度。

 

迭代、递增的项目生命周期

  1. 种类是迭代、递增的。
  2. 迭代指生命周期中的一个步骤。
  3. 迭代促成“递增”或者是百分之百项目的升高。
  4. 大门类表达为子项目。
  5. 在每一个迭代的等级,应该做以下工作

–选用并分析相关用例

–依照所选架构举办统筹

–在组件层次完毕规划

–验证组件知足用例的急需

6.当五遍迭代满足目的后,开发进入下一个迭代周期。

Inception—start up

Elaboration—refine

Construction—implement

Transition–promotion

7.每一个周期包含五回或频仍迭代

8.一个等级的截止称之为“里程碑”(milestone)

 

起首化阶段

该阶段的增量集中于:

–项目启动

–建立业务

–定义业务问题域

–找出重点的风险因素

–定义项目要求的外延

–成立工作问题域的相关注脚文档

 

细化阶段

–高层的剖析与统筹

–建立项目标底蕴框架

–监督主要的风险因素

–制订完结项目对象的开创安顿

 

构建阶段

本阶段的增量集中于

–代码及效益的贯彻

 

移交阶段

本阶段的增量集中于

–向用户发表产品

–beta测试

–执行性能调优,用户培训和吸纳测试

 

每一个等级所含工作流

·每四次递增都由5有的工作流组成

–急需与开首分析

–分析

–设计

–实现

–测试

–每三遍迭代执行工作流的深浅差异

–早期的迭代在深度上覆盖初叶工作流,中期迭代在深度上覆盖中期工作流。

–80/20原则

 

迭代、递增生命周期的优势

·下跌本钱

·便于更好地保险项目进程

·便于团队的合营开发

·便于适应用户须求的动态变化

 

 

相关文章

Your Comments

近期评论

    功能


    网站地图xml地图