"该资源主要讨论了面向对象分析在软件工程中的应用,特别是以ATM系统作为案例。它强调了面向对象分析的基本过程,包括需求陈述、建立对象模型、动态模型和功能模型,并介绍了如何定义服务。教学目标是让学生掌握面向对象分析的方法,特别是对象模型的创建。内容涵盖了从用户需求获取到建立类与对象、定义类结构、表示对象间的关系以及建模对象的行为。此外,还提到了面向对象分析的3个子模型:对象模型、动态模型和功能模型,以及与之对应的5个层次。"
面向对象分析是软件开发中一个关键的步骤,它旨在理解和表述问题域中的实体,以便设计出符合用户需求的系统。在本例中,ATM系统是一个复杂的分布式系统,涉及多个实体如银行、ATM机、储户、账户、交易等。面向对象分析首先需要从用户需求出发,通过与用户的交流或项目标书来获取这些需求。
在识别类与对象的过程中,我们可以从ATM系统的各个组成部分出发,如银行(可能包含多个分行)、ATM机(作为服务提供者)、储户(拥有账户并执行交易)、账户(存储资金)、交易(如取款、存款、转账等)。这些都可以被视为独立的类,每个类都有其特定的属性(如银行的分行代码、储户的卡号、账户的余额等)和行为(如储户的取款操作、银行的账务处理等)。
建立对象模型是分析的核心部分,这涉及到定义类的结构和层次,包括类之间的关系,如继承(例如,不同类型的账户可以继承自一个基础账户类)、组装(ATM机由硬件和软件组件组成)、关联(储户与账户的关联)、依赖(交易操作依赖于账户余额信息)等。同时,还需要识别主题或子系统,将相关类组织在一起,形成易于理解的结构。
动态模型描述了对象之间的交互和行为顺序,例如,当储户插入磁卡并输入密码后,ATM机如何验证并执行交易。功能模型则关注数据的变换和处理,如存款时的资金增减计算。
在定义服务阶段,会明确每个类提供的操作和服务,如取款服务、查询余额服务等。这些服务描述了系统如何对外界请求作出响应。
在实际分析过程中,这些步骤往往是交错进行的,不是严格按照线性顺序完成。面向对象分析需要灵活地适应问题域的特点,不断迭代和细化模型,以确保最终设计的系统能够准确、全面地满足用户需求。从传统的结构化分析方法转向面向对象分析,要求分析师具备更抽象和综合思考的能力,以更好地捕捉和表达系统的本质。