东北大学软件需求分析与设计测试题(李哲洙老师)
2007年上半年
设计题(共15分)
阅读下列说明和图,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。
[说明]
某图书管理系统的主要功能如下:
1.图书管理系统的资源目录中记录着所有可供读者借阅的资源,每项资源都有一个唯一的索引号。系统需登记每项资源的名称、出版时间和资源状态(可借阅或已借出)。
2.资源可以分为两类:图书和唱片。对于图书,系统还需登记作者和页数;对于唱片,还需登记演唱者和介质类型(CD 或者磁带)。
3.读者信息保存在图书管理系统的读者信息数据库中,记录的信息包括:读者的识别码和读者姓名。系统为每个读者创建了一个借书记录文件,用来保存读者所借资源的相关信息。
现采用面向对象方法开发该图书管理系统。识别类是面向对象分析的第一步。比较常的识别类的方法是寻问题描述中的名词,再根据相关规则从这些名词中删除不可能成为类的名词,最终得到构成该系统的类。表 3-1 给出了[说明]中出现的所有名词。
通过对表 3-1 中的名词进行分析,最终得到了图 3-1 所示的 UML 类图(类的说明如表 3-2 所示)。
[问题1](3 分)
穿越之异世潇湘情缘表 3-2 所给出的类并不完整,根据[说明]和表 3-1,将图 3-1 中的(a)~(c)处补充完整。
[问题2](6 分)
根据[说明]中的描述,给出图 3-1 中的类 CatalogItem 以及(b)、(c)处所对应的类的关键属性(使用表 3-1 中给出的词汇),其中,CatalogItem 有 4 个关键属性;(b)、(c)处对应的类各有 2 个关键属性。
[问题 3](6 分)
识别关联的多重度是面向对象建模过程中的一个重要步骤。根据[说明]中给出的描述,成图 3-1 中的(1)~(6)。
答案:
问题1 资源目录  图书 唱片
问题2 CatalogItem的关键属性:索引号、名称、资源状态、出版时间
    (b)的关键属性有:作者、页数
    (c)的关键属性有:演唱者、介质类型
问题3 (1)1 (2)0..*  (3)1 (4)0..* (5)1 (6)1或0..1
编码题
阅读下列说明和 Java 代码,将应填入  (n)  处的字句写在答题纸的对应栏内。 
[说明]
某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表 7-1 所示:
为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如图 7-1 所示:
其中,Duck 为抽象类,描述了抽象的鸭子,而类 RubberDuck、MallardDuck、CottonDuck和 RedHeadDuck 分别描述具体的鸭子种类,方法 fly()、quack()和 display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;接口 FlyBehavior 与 QuackBehavior 分别用于表示抽象的飞行行为与发声行为;类 FlyNoWay 与 FlyWithWings 分别描述不能飞行的行为和用翅膀飞行的行为;类 Quack、Squeak 与 Qua
ckNoWay 分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。请填补以下代码中的空缺。
[Java 代码]
(1) FlyBehavior {
public void fly();
}; 
(2) QuackBehavior {
public void quack();
};
class FlyWithWings implements FlyBehavior{
public void fly(){ System.out.println("使用翅膀飞行 !"); }
};
class FlyNoWay implements FlyBehavior{
public void fly(){ System.out.println("不能飞行 !" ); }
};
class Quack implements QuackBehavior{
public void quack(){ System.out.println("发出\'嘎嘎\'声 !" );  }
};
class Squeak implements QuackBehavior{
public void quack(){ System.out.println("发出空气与橡皮摩擦声 !"); }
顺口溜骂人
};
class QuackNoWay implements QuackBehavior{
public void quack (){ System.out.println("不能发声 !" ); }
};
abstract class Duck {
关于教师节的优美句子protected  FlyBehavior (3);
protected  QuackBehavior (4) ;
public void fly(){  (5) ; }
public void quack() {  (6)  ; };
public  (7)  void display();
};
class RubberDuck extends Duck {
public RubberDuck(){ 
龙人之盾flyBehavior = new  (8)  ;
quackBehavior = new 实习指导教师总结 (9)  ;
}
public void display(){ /* 此处省略显示橡皮鸭的代码 */  }
};
答案:
高三霸气励志标语(1)interface (2)interface (3)flyBehavior(4) quackBehavior(5) flyBehavior.fly()
(6) flyBehavior.quack() (7) abstract (8) FlyNoWay (9) Squeak
2007年下半年
设计题
阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。