免费智能真题库 > 历年试卷 > 软件设计师 > 2024年下半年 软件设计师 下午试卷 案例
  第5题      
  知识点:   抽象   类图   结构图

 
某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图6-1所示。

现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以方便地在其中增加新的餐饮形式,得到如图6-2所示的类图。其中MenuComponent为抽象类,定义了添加(add)新菜单和打印饭店所有菜单信息(print)的方法接口。类Menu表示饭店提供的每种餐饮形式的菜单,如煎饼屋菜单、咖啡屋菜单等。每种菜单中都可以添加子菜单,例如图6-1中的甜点菜单。类Menultem表示菜单中的菜式。


 
问题:5.1   【Java代码】

 
 
 

   知识点讲解    
   · 抽象    · 类图    · 结构图
 
       抽象
        抽象是一种设计技术,重点说明一个实体的本质方面,而忽略或者掩盖不太重要或非本质的方面。抽象是一种重要的工具,用来将复杂的现象简化到可以分析、实验或者可以理解的程度。软件工程中从软件定义到软件开发要经历多个阶段,在这个过程中每前进一步都可看作是对软件解法的抽象层次的一次细化。抽象的最底层就是实现该软件的源程序代码。在进行模块化设计时也可以有多个抽象层次,最高抽象层次的模块用概括的方式叙述问题的解法,较低抽象层次的模块是较高抽象层次模块对问题解法描述的细化。
 
       类图
        类图(Class Diagram)展现了一组对象、接口、协作及其之间的关系。在面向对象系统的建模中所建立的最常见的图就是类图。
        类图给出了系统的静态设计视图,包含主动类的类图给出了系统的静态进程视图。作为模型管理视图还可以含有包或子系统,二者都用于把模型元素聚集成更大的组块。类图用于对系统的静态视图建模。这种视图主要支持系统的功能需求,即系统要提供给最终用户的服务。当对系统的静态设计建模时,通常以下述3种方式之一使用类图:对系统的词汇建模;对简单的协作建模;对逻辑数据库模式建模。
        作为静态视图的类图可以包含依赖、关联、泛化、组合、实现关系以及注解和约束等。
        (1)依赖关系是两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。
        (2)关联关系是一种结构关系,它描述了一组对象之间的链接关系。其中有一种特殊类型的关联关系,即聚集关系,它描述了整体与部分的结构关系。
        (3)泛化关系是一种一般—特殊关系,利用这种关系,子类可以共享父类的结构和行为。
        (4)实现关系是类之间的语义关系,其中的一个类制订了另一个类保证执行的契约。实现关系用于两种情况:在接口和实现它们的类或构件之间;在用例和它们的协作之间。
        (5)组合是聚集关系的变种,表示元素间更强的组合关系。各种关系图例如下图所示。
        
        各种关系图例
 
       结构图
        结构化设计方法中使用结构图来描述系统的体系结构,指出一个系统由哪些模块组成,以及模块之间的调用关系。结构图的基本成分有:模块、调用和数据。
               模块
               在结构化设计中,模块指具有一定功能并可以用模块名调用的一组程序语句,如函数、子程序等,它们是组成程序的基本单元。
               一个模块具有外部特征和内部特征。模块的外部特征包括:模块的接口(模块名、输入/输出参数、返回值等)和模块功能。模块的内部特征包括:模块的内部数据和完成其功能的程序代码。
               在结构图中,模块用矩形表示,并用名字标识该模块,名字应体现该模块的功能。
               调用
               结构图中模块之间的调用关系用从一个模块指向另一个模块的箭头来表示,其含义是前者调用了后者。
               数据
               模块间还经常用带注释的短箭头表示模块调用过程中来回传递的信息。箭头尾部带空心圆的表示传递的是数据,带实心圆的表示传递的是控制信息,如下图所示。
               
               模块间的数据传递
               可以在结构图上添加一些辅助符号进一步描述模块间的调用关系。如果一个模块是否调用一个从属模块决定于调用模块内部的判断条件,则该调用模块间的判断调用采用菱形符号表示;如果一个模块通过其内部循环的功能来循环调用一个或多个从属模块,则该调用称为循环调用,用弧形箭头表示。判断调用和循环调用的表示方法如下图所示。
               
               模块调用示例
               结构图的形态特征
               .深度。指结构图控制的层次,也就是模块的层数。
               .宽度。指一层中最大的模块个数。
               .扇出。指一个模块的直接下属模块的个数。
               .扇入。指一个模块的直接上属模块的个数。
   题号导航      2024年下半年 软件设计师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
 
第5题    在手机中做本题