03 面向对象的系统分析的过程为哪般?

面向对象的系统分析(OOA)是一个系统化、迭代化的过程,旨在通过抽取和整理用户需求,建立问题域的精确模型。以下是面向对象系统分析的主要步骤和过程:

一、需求收集与分析

  1. 收集需求:
  • 通过分析需求文件、与用户协商讨论、调研现有类似系统等方式,全面获取用户需求。

  • 确保需求陈述的完整性和准确性,发现并改正原始陈述中的二义性和不一致性。

  1. 初步分析:
  • 对收集到的需求进行初步分析,理解系统的整体功能和性能要求。

  • 识别问题域中的关键实体和它们之间的关系。

二、建立对象模型

对象模型是面向对象分析中最基本、最重要的模型,它描述了系统的静态结构。

  1. 确定对象和类:
  • 对象是对数据及其处理方式的抽象,类是多个对象的共同属性和方法集合的描述。

  • 从需求陈述中提取名词作为候选类,动词作为候选方法,形容词作为属性线索。
    筛选出正确的类和对象,删除不正确或不必要的候选者。

  1. 确定对象间的关系
  • 分析对象之间的关联、聚合、继承等关系,明确对象间的相互作用和依赖。

  • 使用UML(统一建模语言)中的类图来表示对象模型。

  1. 确定对象的属性:
  • 定义对象的属性,即数据元素,确保每个对象至少包含一个属性。

  • 属性取值必须适合对象类的所有实例,并考虑继承关系中的属性一致性。

三、建立动态模型和功能模型

动态模型和功能模型是对对象模型的补充,它们描述了系统的动态行为和数据变换过程。

  1. 动态模型:
  • 描述系统的动态行为,通过时序图、协作图等展示对象的交互过程。

  • 揭示对象间如何协作来完成每个具体的用例,以及单个对象的状态变化。

  1. 功能模型:
  • 描述系统的数据变换过程,即系统如何处理输入数据并产生输出。

  • 功能模型以用例模型作为输入,进一步细化系统的功能需求。

  • 使用数据流图或活动图来表示功能模型。

四、反复分析与优化

面向对象分析是一个迭代的过程,需要反复分析和优化模型。

  1. 迭代分析:
  • 在分析过程中,不断与用户沟通,获取反馈,并根据反馈调整模型。

  • 反复检查模型中的不准确、不完整和错误的内容,加以扩充和更正。

  1. 优化模型:
  • 根据系统需求和用户反馈,优化对象模型、动态模型和功能模型。

  • 确保模型能够准确反映问题域的实际情况,并满足系统的功能和性能要求。

五、生成文档

分析过程完成后,需要生成相应的文档来记录分析结果。

  1. 软件需求规格说明:
  • 描述系统的功能需求、性能需求、约束条件等,是后续设计和开发工作的基础。

  • 软件需求规格说明主要由对象模型、动态模型和功能模型组成。

  1. 其他文档:
  • 根据需要生成其他相关文档,如设计文档、测试文档等,以便后续工作的顺利进行。

综上所述,面向对象的系统分析是一个系统化、迭代化的过程,需要全面深入地理解问题域和用户的真实需求,通过不断迭代和优化模型来确保最终的系统能够满足用户需求。

面向对象系统分析案例:酒店订房系统

一、需求收集与分析

首先,需要收集并分析酒店订房系统的需求。这些需求可能包括:

  • 用户能够查询不同房型的价格和可用性。

  • 用户能够预订特定房型的房间,并指定入住和离店日期。

  • 系统能够记录用户的预订信息,包括姓名、联系方式、预订详情等。

  • 系统能够处理支付流程,确保预订的有效性。

  • 管理员能够查看和管理所有预订信息,包括取消预订、更新房间状态等。

二、建立对象模型

  1. 确定对象和类:通过需求分析,可以识别出系统中的关键实体和它们之间的关系,从而确定对象和类。以下是一些可能的类和对象:
    • 房型(RoomType):描述不同类型的房间,如单人间、双人间、套房等。

    • 房间(Room):具体的房间实例,属于某个房型,具有特定的房号、状态和价格。

    • 预订(Reservation):用户的预订信息,包括预订的房间、入住和离店日期、用户信息等。

    • 用户(User):进行预订的顾客,具有姓名、联系方式等属性。

    • 管理员(Admin):负责管理系统,具有查看和管理预订信息的权限。

  2. 确定对象间的关系:使用UML类图来表示对象模型,展示类之间的关系。例如:
    • 房型(RoomType)与房间(Room)之间可能存在包含关系,即一个房型可以包含多个房间。

    • 房间(Room)与预订(Reservation)之间可能存在关联关系,表示房间被预订的情况。

    • 预订(Reservation)与用户(User)之间也存在关联关系,表示预订是由哪个用户发起的。

  3. 确定对象的属性:为每个类定义属性和方法。例如:
    • 房型(RoomType)的属性可能包括房型名称、价格范围等;方法可能包括获取房型信息。

    • 房间(Room)的属性可能包括房号、房型、状态(如空闲、已预订、入住中)等;方法可能包括更新房间状态、查询房间信息等。

    • 预订(Reservation)的属性可能包括预订ID、房间ID、入住日期、离店日期、用户ID等;方法可能包括创建预订、取消预订等。

三、建立动态模型和功能模型

动态模型描述系统的动态行为,如用户如何与系统进行交互来预订房间。功能模型描述系统如何处理输入数据并产生输出,如用户输入预订信息后,系统如何记录这些信息并更新房间状态。

这些模型可以通过时序图、协作图、活动图等UML图表示。

四、反复分析与优化

面向对象分析是一个迭代的过程。在初步建立模型后,需要与用户和管理员进行沟通,获取反馈,并根据反馈对模型进行反复分析和优化。可能需要调整类的结构、属性和方法,以确保模型能够准确反映问题域的实际情况并满足用户需求。

五、生成文档

最后,需要生成相应的文档来记录分析结果,如软件需求规格说明书、设计文档等。这些文档将作为后续设计和开发工作的基础。

以上就是一个面向对象系统分析的具体案例——酒店订房系统。通过这个案例,我们可以看到面向对象系统分析的过程是如何通过识别对象、建立模型、定义属性和方法以及反复迭代来逐步细化系统需求的。

posted @ 2024-09-10 11:08  小熊熊8910  阅读(105)  评论(0)    收藏  举报