• 3.1 面向对象分析与设计概览


    面向对象分析与设计概览… 

       良好的对象设计意味着什么?

       是构建高质量软件系统的基本要求,如

         Architectural cohesion 架构性的内聚

         Reusability 可重用性

         Maintenance 可维护性

         Scalability 可扩展性

         Flexibility 灵活性

       UML、面向对象语言(C++/Java)重要吗?足够了吗?

         UML是标准的图形表示工具,是一种思考的工具、沟通的形式,是有用的

         但是,对象思想才是重点和难点

         “Owning a hammer doesn’t make you a home builder“拥有一把 锤子未必能成为建筑师”
       系统设计中的关键问题

         应该如何为对象类分配职责(responsibility)?

         对象之间应该如何协作?

         什么样的类应该做什么样的事情?

         某些针对设计问题的、经过反复验证的解决方案,可以(或者已经)被 表示成为最佳实践的原则、启示或者模式(pattern),如何用、如何自创?

       软件开发过程模型

         瀑布模型

         螺旋模型

         增量模型

         迭代模型

         喷泉模型

         敏捷模型

         SMF(微软)

         RUP等
       课程的关键 Key importance:

         A critical ability in OO development is to skillfully assign responsibilities to software objects. 面向对象开发需要掌握的极为重要的能力:为软件对象分配职责。 方法:

           Responsibility-driven design 职责驱动的设计

           Performed during Design workflow 在设计的过程中完成职责分配

           Follows GRASP principles 遵循GRASP原则

             General Responsibility Assignment Software Pattern 通用职责分配软件模式

           Successful designs become Patterns 成功的设计可以成为模式

             A named description of a problem, solution, when to apply the solution, and how to apply the solution in new contexts 一个命名的描述:问题、解决方案、何 时适用、如何应用在新的环境

       相关的知识点

         用例 Use Cases

           文字描述的重要交易和业务场景 Text description of vital transactions and scenarios

           用例不是面向对象的,但面向对象分析设计都会用到 Not OO but usually used in OOAD
       Topics and skills covered

         OOAD elements

         OOAD + UML is our focus

       What is Analysis ?什么是分析

         Analysis is investigation of the problem and requirements, rather than a solution.分析是对问题和要求的调查, 而不是解决方案。

           For example, if a new online trading system is desired,

             how will it be used? What are its functions?

           requirements analysis :an investigation of the requirements
       What is design?

         Design is a conceptual solution that fulfills the requirements 概念性的、满足 需求的解决方案

       分析与设计的类比:

         用户需求:我要一辆能开动的汽车

         系统功能:引擎、方向盘、油箱轮胎、车架、车门….
       What is implement? 实现

         Implementation is expression of the design in code

           Emphasis on utilizing the language of choice to implement design classes while exploring visibility, navigability, etc.
       What is deployment? 部署

         Deployment is the actual installation in the host environment
       Relationship of the Analysis and Design 分析与设计的关系

         记住这句话:

          “ do the right thing (analysis), and do the thing right (design) ” 做正确的事情(分析)、正确地做事情(设计)
       What is OOA 面向对象分析?

         finding and describing the objects or concepts in the problem domain 发现并描 述问题领域里的对象或者概念(概念类)

       What is OOD 面向对象设计?

         defining software objects and how they collaborate to fulfill the requirements 定义软件对象、以及它们之间如何协作完成功能的(设计类)    For example, Airplane example of object and class discovery

         OOA:

           in the case of the flight information system, some of the concepts include: Plane, Flight, and Pilot.

         OOD:

           a Plane software object may have a tailNumber attribute and a getFlightHistory() method

         then, implement…
    OOAD Simple Example

       Rudimentary process 最基本的过程

       Dice game example

         software simulates(模仿)a player rolling two dices. If the total is (>=) seven, they win; otherwise, they lose
       Step1: Use Case

         Player is requested to roll the dice.

         System presents results:

         If the dice face value totals (>=)seven, player wins; otherwise, player loses
       Step2: Domain Model 领域模型

         OOA的结果体现在领域模型中,显示重要的领域概念或者对象

         What is domain model?

           a visual representation of conceptual classes or real-situation objects in a domain [MO95, Fowler96]. 问题领域的概念类以及真实对象的可视化表示

           Domain models have also been called conceptual models , domain object models, and analysis object models. 领域模型也被称为 概念模型、领域对象模 型、分析对象模型

         In our example,

           Player,

           Dice,

           DiceGame

       Step3: Interactions

         Assignment of responsibilities among objects

         Sequence or Communication diagrams

       Step4: Design Class Diagrams (DCD)

         Software classes(软件类) with methods according to responsibilities and attributes according to visibility

         Cf:

           the domain model showing real-world classes

           this diagram shows software classes

         LRG: lower representational gap,低表示差异

           概念类与软件类,有很大的相似度

    OOAD概述小结

       领域、领域模型、概念类

       系统、设计类==软件类

         低表示差异LRG: 概念类可以直接作为软件类

         概念类没有操作、软件类有操作

       分析、设计,面向对象分析、面向对象设计

       OOAD的简单完整过程示意

         掌握面向对象思想,重于UML工具、OO语言

  • 相关阅读:
    关于轨道交通的一些知识点和关键词
    关于芯片的一些关键词
    关于ADC采集
    Linux记录
    在VMware运行Linux下,密码错误的原因
    气体传感器
    AD采集问题
    Maven [ERROR] 不再支持源选项 5,请使用 7 或更高版本的解决办法
    Maven 专题(九):后记
    Maven 专题(六):Maven核心概念详解(二)
  • 原文地址:https://www.cnblogs.com/mayZhou/p/10524470.html
Copyright © 2020-2023  润新知