zoukankan      html  css  js  c++  java
  • 第一部分绪论 第一章

    什么是分析和设计

      分析(analysis)强调的是对问题和需求的调查研究,而不是解决方法。例如:如果需要一个新的在线交易系统,那么应该如何使用它?它应该具有哪些功能。

      “分析”一词含义广泛,最好加以限制,如需求分析(对需求的调查研究)或者面向对象分析(对领域对象的调查研究)。

      设计(design)强调的是满足需求的概念上的解决方法(在软件方面和硬件方面),而不是其实现。例如,对数据库方案和软件对象的描述。其设计思想排斥底层或“显而易见的细节”(对于预期消费者来说是显而易见的)。最终,设计可以实现,而实现(代码)则表达了真实和完整的设计。

      与“分析”相同,对于“设计"一词最好也加以限制,如面向对象设计和数据库设计。

      有益的分析和设计可以概括为:做正确的事(分析)和正确地做事(设计)

    什么是面向对象分析和设计:

      在面向对象分析(object-oriented analysis)过程中,强调的是在问题领域内发现和描述对象(或概念)。例如:在航班信息系统中包含飞机(Plane),航班(Flight),飞行员(Pilot)等概念。

      在面向对象设计(object-oriented design,简称对象设计)过程中,强调的是定义软件对象以及它们如何协作以实现需要。例如,软件对象Plane可以有tailNumber(飞机尾翼号,标示唯一飞机)属性和getFlightHistory(飞机已经飞过的航班)方法。

      最后,在实现或面向对象程序设计过程中,会实现设计出来的对象,如Java中的Plane类。

      public class Plane{

      private String tailNumber;

      public List getFlightHistory(){

        ......

        }

      }

    定义用例:

      需求分析可能包括人们如何使用应用的情节或者场景,这些情节或者场景可以被编写成用例(use case).

      用例不是面向对象制品,而只是对情节的记录。但用例是需求分析中的一种常用工具。例如,下面是一个简单的骰子游戏的用例。

          骰子游戏:游戏者请求掷骰子。系统展示结果:如果骰子的总点数是7,则游戏者赢;否则游戏者输。

    定义领域模型:

      面向对象分析的结果可以标示为领域模型(domain model),在领域模型中展示重要的领域概念或者对象。

      需要注意的是,领域模型并不是对软件对象的描述,它使真实世界领域中的概念和想象可视化。因此,它也被称为概念对象模型。

    分配对象职责并绘制交互图:
      面向对象设计关注软件对象的定义,它们的职责和协作。顺序图(sequence diagram,UML的一种交互图)是描述协作的常见表达法。它展示出软件对象之间的消息流,和由消息引起的方法调用。

      软件对象设计和程序可从真实世界领域中获取灵感,但它们并不是对真实世界的直接建模或模拟。

    定义设计类图

      除了在交互图中显示对象协作的动态视图外,还可以用设计类图(design class diagram)来有效地标示类定义的静态视图。这样可以描述类的属性和方法。

      要注意的是,尽管设计类图不同于领域模型,但其中的某些类名和内容还是相似的。从这一方面讲,OO设计和语言能够缩小软件构件和我们所设想的领域模型之间的差距,即实现低表示差距(lower representational gap)

    什么是UML

       统一建模语言(UML)是描述,构造和文档化系统制品的可视化语言。UML关键在于可视化这个词,UML是图形化表示法的事实标准。用来绘制和展示与软件(特别是OO软件)相关的图形(以及文字)。

    应用UML的三种方式

      UML作为草图,非正式的,不完整的图(通常是在白板上手绘草图)。

      UML作为蓝图,相对详细的设计图,用于:1.逆向工程,也就是以UML图的方式对现有代码进行可视化,使其易于理解。2.代码生成(前向工程)。

      对于逆向工程,UML工具读取源文件或者二进制文件,并生成UML包图,类图和顺序图(一般情况下)。能从整体上理解元素,结构和协作。

      无论是人工还是使用自动工具生成代码,在此之前绘制一些详尽的图都能够为生成代码的工作提供指导。

           UML作为编程语言,用UML完成软件系统可执行规格说明。

    UML和“银弹思想”。

    应用UML的三种透视图

        概念透视图:用图来描述现实世界或关注领域中的事物。

     规格说明(软件)透视图:用图(使用与概念透视图中相同的表示法)来描述软件的抽象物或具有规格说明和接口的构件,但是并不约定特定实现(例如,非特定的C#或Java中的类)。

     实现(软件)透视图:用图来描述特定技术(例如,Java)中的软件实现。

    概念类(conceptual class):现实世界中的概念或事物。在概念或本质透视图中使用。

    软件类(software class):无论在过程还是方法中,都表示软件构件在规格说明或实现透视图中的类。

    实现类(implementation class):特定的OO语言(如Java)中的类。

    可视化建模的优点:可以帮助我们更为便利地观察全景,发现软件元素或分析之间的联系,同时允许我们忽略或隐藏旁枝末节。这是UML或其他图形化语言的本质价值。

      

      

      

  • 相关阅读:
    sql help
    asp.net学习之Repeater控件
    Log4Net使用指南
    43个PSD to XHTML,CSS教程
    .NET(C#)基于Socket编程实现平行主机之间网络通讯有图片传输的Demo演示
    .NET 4.0新增命名空间:System.Collections.Concurrent
    错误日志记录类
    Microsoft ScriptControl 控件使用指南
    用dynamic增强C#泛型表达力
    xPath介绍
  • 原文地址:https://www.cnblogs.com/shadow-shine/p/9715302.html
Copyright © 2011-2022 走看看