精华内容
下载资源
问答
  • 软件设计模式与体系结构课后习题代码,孙玉山版本
  • 软件设计模式与体系结构 期末课后题 目录 软件设计模式与体系结构 期末课后题 第一题 金鱼缸水质、水温水位高度的软件系统 第二题 设计一个机场信息系统 第三题 说明设计与其选择原因 第四题 简答 第一题 ...

    软件设计模式与体系结构 期末课后题

    目录

    软件设计模式与体系结构 期末课后题

    第一题  金鱼缸水质、水温与水位高度的软件系统

    第二题  设计一个机场信息系统

    第三题  说明设计与其选择原因

    第四题  简答


    第一题  金鱼缸水质、水温与水位高度的软件系统

    答:

    1:设计类图如下:(若看不清原图可联系本人 )

     

    2:解释关系与功能:

          其中,Observable与Observer两个是接口类。

          鱼缸类FishbowlGUI为被观察类,它实现了接口类Observable;

          FishbowlGUI 有3个私有变量quality、temperature 和level。分别代表鱼缸的水质、水温和水位高度,同时有每个私有变量的get和set方法,来获取属性或者设置属性。

          三个观察者ChemistryGUI、TemperatureGUI和LevelGUI实现观察者接口Observer.观察者接口中,有一个方法takeAction(s:Observable)必须实现。

          各个实现接口的类在该方法中实现各自的功能:

          当quality 超过某种范围时,化学传感器ChemistryGUI排除鱼缸部分废水,补充新水;

          当temperature 低于某温度,或者超过某温度值时,TemperatureGUl开启加热设备或者冷却设备调整水温;

          当level 高于或低于特定高度时,LevelGUI 开启排水设备,排除部分水或者添加新鲜的水。

          该方法由参数传入-一个被观察者对象,一旦得到通知以后,将对被观察者类FishbowlGUI的某些方法进行调用,以便获取变化的状态。

    第二题  设计一个机场信息系统

    答:

    1:设计类图如下:

    2:

         AddObserver(Observer:Observer)方法, 将多个观察者添加到被观察者的一个list数据结构中,以便在通知观察者的时候使用; setChanged()和 notifyObservers(),通知观察者被观察者对象的状态已经改变了,同时会让观察者对象的update()方法自动运行。注意,以上两个语句的顺序是setChanged()在前,notifyObservers()在后。

    3:

        第一个参数是 Observable类型,代表被观察者对象。

        第二个参数是Object类型,代表所发生的事件,Object为被观察者的一种状态值,提供给update方法,以便更新观察者。

    4:

        VoiceInfo 类的update 完成的工作是从AiportInfo类自动获取语音机场信息,然后将这些信息传送给乘客。DisplayInfo 类的update则是负责从AirportInfo类自动获取文字机场信息,然后将这些信息显示在屏幕上。

    5:

        被观察者AirportInfo保持一个数据结构,如Java ArrayList,用于记载动态添加的观察者。

        对被观察者状态感兴趣的对象(观察者)VoiceInfo和DisplayInfo,应该调用被观察者addObserver()方法方法将自己注册为它的一个观察者。

       每当AiportInfo的状态发生改变的时候,它将使用方法setChanged0方法和notifyObservers(通知已经注册的观察者VoiceInfo 和DisplayInfo。

       当接到通知以后,VoiceInfo 和DisplayInfo都将查询AirportInfo的状态,以便保持状态同步。根据新的状态,VoiceInfo 和DisplayInfo分别执行update0方法进行相关操作。

    第三题  说明设计与其选择原因

         答:

         1.选择三层客户端-服务器(网格软件)体系结构。

         2.网格计算强调资源整合、性能、服务质量和安全性等的问题,适合需要高度的资源整理与控制能力的项目。相比之下,该项目更加强调资源的整合,相比P2P体系结构的传输速度并没有那么重要。所以选择网格软件体系结构更合适。

    第四题  简答

          1.假设已经利用结构化设计产生了一个程序结构图,现在要增加一项新的功能,结构图会有什么变化?

            答:在已经利用结构化设计产生的程序结构图中增加一-项新的功能,结构图整体并不会有多大的变化,整体仍呈现出原本的自顶向下的结构。

         2.假设已经利用面向对象设计产生了一个程序设计类图,现在要增加- -项新的功能,程序设计类图会有什么变化?

            答:由于在面向对象设计中,对象之间的交互实现困难,所以在原本的程序设计类图上增加一个新的功能,可能会打乱原有的结构图,并出现更多错综复杂的关系。

     

     

     

    展开全文
  • 软件设计模式与体系结构 课后练习3 如何理解这个照片命令模式之间的关系,画一个图来说明,就像餐厅示例一样。 答: 我认为图中的人物把绝密文件投递到绝密文件投递箱中之后发生任何事情也他没有别的关系...

    软件设计模式与体系结构 课后练习3

    如何理解这个照片与命令模式之间的关系,画一个图来说明,就像餐厅示例一样。

                                                         

     

    答:   我认为图中的人物把绝密文件投递到绝密文件投递箱中之后发生任何事情也与他没有别的关系。这和命令模式中的定义(请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令)十分相似。

    接下来我以一个司令员下达作战命令至士兵执行命令为例。(司令员也相当于图中的投递绝密文件的人)

                                              

    司令员下令让士兵去完成任务,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行。这个过程好在,三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行,司令员要的是结果,不会去关注到底士兵是怎么实现的。

    下图为此例的类图:

                                                        

    Invoker是调用者(司令员),Receiver是被调用者(士兵),MyCommand是命令,实现了Command接口,持有接收对象,输出:command received! 

      具体命令模式类图如下:

                                              

     

    Command
            定义命令的接口,声明执行的方法。
    ConcreteCommand
           具体的命令, 实现命令接口;通常会持有接收者,并调用接收者的功能来完成命令要执行的操作。
    Receiver
            接收者,真正执行命令的对象。任何类都可能成为一个接收者,只要它能够实现命令要求实现的相应功能。
    Invoker
            要求命令对象执行请求,通常会持有命令对象,可以持有很多的命令对象。这个是客户端真正触发命令并要求命令执行相应操作的地方,也就是说相当于使用命令对象的入口。
    Client
            创建具体的命令对象,并且设置命令对象的接收者。注意这个不是我们常规意义上的客户端,而是在组装命令对象和接收者,或许,把这个Client称为装配者会更好理解,因为真正使用命令的客户端是从Invoker来触发执行。

     

    展开全文
  • 软件设计模式与体系结构 课后练习1 习题如下: 解:第一题 画出该模式的设计类图: 如图1所示: 图1 设计类图 2. 解释为什么自己的设计符合开闭原则? 答:因为设计的类、模块和函数对扩展开放,对...

    软件设计模式与体系结构 课后练习1

    习题如下:

         

    解:第一题

    1. 画出该模式的设计类图:

     

    如图1所示:

                               图1 设计类图

    2.  解释为什么自己的设计符合开闭原则?

    答:因为设计的类、模块和函数对扩展开放,对修改关闭.即可以通过扩展来实现变化,而不是通过修改已有的代码来实现变化.具体为通过接口或抽象类约束扩展,对扩展进行边界限定,并且不会出现在接口或抽象类中不存在的public方法,参数类型、引用对象使用的接口或抽象类,而不是实现类,抽象层保持稳定,一旦确定不允许修改接口或抽象类一旦定义,应立即执行,不能有修改接口的想法,除非是彻底的大返工。

    解第二题

     

    1.为什么要使用策略模式?

    答:因为此软件有多种优惠收费包,不同的收费包有不同的计算方式,所以也就是说有多个条件,每个条件都要进行判断,相当于每个if条件都可以理解为一个策略,此正符合策略模式定义(即把算法的责任和算法本身分割开来,委派给不同的对象管理,最终实现解决多重if判断问题。)

    2.画出该模式的设计类图:

    如图2所示:

                                                                                      图2 设计类图

    3.解释为什么自己的设计符合开闭原则?

    答:因为设计的类、模块和函数对扩展开放,对修改关闭.即可以通过扩展来实现变化,而不是通过修改已有的代码来实现变化.具体为通过接口或抽象类约束扩展,对扩展进行边界限定,并且不会出现在接口或抽象类中不存在的public方法,参数类型、引用对象使用的接口或抽象类,而不是实现类,抽象层保持稳定,一旦确定不允许修改接口或抽象类一旦定义,应立即执行,不能有修改接口的想法,除非是彻底的大返工。

     

     

    展开全文
  • 第一篇分为8章,介绍了软件体系结构的基础理论,包括软件体系结构的概念及演化、软件建模基础、软件体系结构的形式化、软件体系结构的风格、体系结构的描述语言、软件质量建模、设计模式等内容。第二篇分为4章,首先...
  • 本资源可以作为《软件设计模式与体系结构》的复习中的一个样例试卷使用,包含选择题、填空题、简答题、编程题(画类图、写代码)等。比较全,需要的朋友可以下载哦!!!!!!!!!!!!!!!!!!!!!
  • 软件设计模式与体系结构的光盘,买来发现光盘里的内容打不开,在CSDN上下载了一个,居然要10分,坑爹啊
  • 【《软件设计模式与体系结构》学习笔记】软件设计模式的概念软件设计模式是对软件设计经验的总结,是对软件设计中反复出现的设计问题的已被验证的成功解决之道。大量的软件设计模式都是之前从事软件设计开发的前人...

    【《软件设计模式与体系结构》学习笔记】

    软件设计模式的概念


    软件设计模式是对软件设计经验的总结,是对软件设计中反复出现的设计问题的已被验证的成功解决之道。大量的软件设计模式都是之前从事软件设计开发的前人经过大量的实践而摸索出来的,用于帮助后来者快速高效且高质从事软件开发的。

    软件设计模式的要素


    软件设计模式一般会包含四个基本要素:

    • 模式名称:此种设计模式的名字;
    • 问题:是设计者所面临的设计场景,也就是此种设计模式所适用的情况;
    • 解决方案:描述设计细节,通常会采取UML等图示的方式来进行设计模式的详细描述;
    • 效果:描述适用此设计模式的优势与劣势,包括面向软件的质量属性等。

    软件设计模式的分层


    软件设计模式根据问题的规模可以分为三个层次
    架构模式 -> 设计模式 -> 习惯用法

    1. 架构模式:描述系统级的结构组成、相互关系及相关约束,如MVC模式;
    2. 设计模式:针对系统局部设计问题给出的解决方案,一般情况下,设计模式指的就是这一层次的;
    3. 习惯用法:与具体编程语言相关的一种底层模式。

    软件设计模式的分类


    《软件设计模式与体系结构》一书中将设计模式归类如下:

    面向对象 分布式计算 企业应用软件 面向服务的体系结构(SOA)
    创建型模式 从混沌到结构 领域逻辑模式 服务设计模式
    结构型模式 分布式基础设施 数据源结构模式 服务库设计模式
    行为型模式 事件分离与分发 对象——关系行为模式 服务组合设计模式
    接口划分 对象——关系结构模式
    组件划分 对象——关系元数据映射模式
    应用控制 Web表现模式
    并发 分布模式
    同步 离线并发模式
    对象交互 会话状态模式
    适配与扩展 基本模式
    模态行为
    资源管理
    数据库访问

    感悟

    在我们日常学习中,有些时候不知不觉的应用到某些设计模式,但我们很难意识到这可以抽象为一种思想方法,并且是可以被他人当为一种模式的设计方法。所以,在以后我们又碰到类似问题时,又会重新将以前的思路再来一次,等到脑中的设计思想快成型的时候,才会恍然大悟,一拍脑门道:“哦,这个东西我好像上一次做过。”

    设计模式是前人经过验证的成功的解决方案,我们应该要善于学习,学会运用,别辜负了前辈们的心血。站在巨人的肩膀上,我们会看得更远。

    展开全文
  • 软件设计与体系结构课后习题答案(秦航),本人整理课后习题答案,有需要的欢迎下载哈
  • 软件设计模式与体系结构的课堂练习的一点小题目的资源
  • 设计模式与软件体系结构【期末全整理答案

    万次阅读 多人点赞 2020-07-13 19:01:19
    若本文对你有帮助,请点赞、关注我呦! 期末试题基本出自这些题,请提前复制黏贴到word文档里,方便考试时直接查找。 单选题汇总 ...2、常用的基本设计模式可分为(A)。 A.创建型、结构型和行为型 ...
  • 一、在简单工厂方法模式、工厂方法模式与抽象工厂模式中,哪个模式符合开闭原则?为什么?哪个模式一般不符合开闭原则?或者说明在哪种情况下,开闭原则成立,哪种情况下,开闭原则不成立。 答:简单工厂模式一般不符合...
  • 老师布置的两次作业和自己的答案,做的时候参考了网上的一部分答案软件体系结构作业和答案 2019级中科大软件学院。软件体系结构作业和答案 2019级中科大软件学院。

空空如也

空空如也

1
收藏数 13
精华内容 5
关键字:

软件设计模式与体系结构孙玉山课后答案