软件设计试题软件08A.docx
- 文档编号:25548944
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:11
- 大小:125.76KB
软件设计试题软件08A.docx
《软件设计试题软件08A.docx》由会员分享,可在线阅读,更多相关《软件设计试题软件08A.docx(11页珍藏版)》请在冰豆网上搜索。
软件设计试题软件08A
----------------------上---------------------装-----------------订------------------------线---------------------------
咸阳师范学院2009—2010学年度第二学期软件设计与体系结构课程试题(A卷)
课程代码任课教师吴粉侠适用专业软件工程层次本科年级08级
班级学号姓名考试日期试场
---------------------下---------------------装-------------------订-------------------------线---------------------------特别提示:
考试作弊者,不授予学士学位,情节严重者开除学籍;严禁携带手机及其他通讯工具进入考场。
题号
一
二
三
四
五
六
七
八
总计
得分
评卷人
咸阳师范学院试题(A卷)首页
一.选择题(答案写在答题框内。
每小题1分,共10分)
题号
1
2
3
4
5
6
7
8
9
10
答案
得分
1.Open-Close原则的含义是一个软件实体()
A.应当对扩展开放,对修改关闭.B.应当对修改开放,对扩展关闭
C.应当对继承开放,对修改关闭D.以上都不对
2.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用()模式。
A.创建型B.结构型C.行为型D.以上都可以
3.依据设计模式思想,程序开发中应优先使用的是()关系实现复用。
A.委派B.继承C.创建D.以上都不对
4.下列模式中,属于行为模式的是()
A.工厂模式B.观察者C.适配器D.以上都是
5.对象组合的有点表述不当的是()
A.容器类仅能通过被包含对象的接口来对其进行访问。
B.“黑盒”复用,封装性好,因为被包含对象的内部细节对外是不可见。
C.通过获取指向其它的具有相同类型的对象引用,
可以在运行期间动态地定义(对象的)组合
D.造成极其严重的依赖关系。
6.设计模式的两大主题是()
A.系统的维护与开发B.对象组合与类的继承
C.系统架构与系统开发D.系统复用与系统扩展
已知某子系统为外界提供功能服务,但该子系统中存在很多粒度十分小的类,不便被外界系统直接使用,采用(7)设计模式可以定义一个高层接口,这个接口使得这一子系统更加容易使用;当不能采用生成子类的方法进行扩充时,可采用(8)设计模式动态地给一个对象添加一些额外的职责。
7.A.Facade(外观)B.Singleton(单件)
C.Participant(参与者)D.Decorator(装饰)
8.A.Facade(外观)B.Singleton(单件)
C.Participant(参与者)D.Decorator(装饰)
9.关于继承表述错误的是:
()
A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。
B.泛化类(超类)可以显式地捕获那些公共的属性和方法。
特殊类(子类)则通过附加属性和方法来进行实现的扩展。
C.破坏了封装性,因为这会将父类的实现细节暴露给子类。
D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。
10.代理模式包括()角色。
A.接收者、命令接口、具体命令、请求者B.环境、抽象状态、具体状态
C.抽象组件、具体组件、装饰、具体装饰D.抽象主题、实际主题、代理
--------------------上---------------------装-----------------订------------------------线---------------------------
咸阳师范学院2009—2010学年度第二学期软件设计与体系结构课程试题(A卷)
课程代码任课教师吴粉侠适用专业软件工程层次本科年级08级
班级学号姓名考试日期试场
---------------------下---------------------装-------------------订-------------------------线------------------------特别提示:
考试作弊者,不授予学士学位,情节严重者开除学籍;严禁携带手机及其他通讯工具进入考场。
二.填空题(每空1分,共10分)
1.模式中,父类负责定义创建对象的公共接口,子类则负责生成具体的对象。
2.模式包括四种角色:
抽象表达式,终结表达式,非终结符表达式和上下文。
3.模式用原型实例指定创建对象的种类,并且通过拷贝这些原型实例创建新的对象。
4.模式确保某一个类仅有一个实例,并自行实例化并向整个系统提供这个实例。
5.模式将对象组合成树形结构以表示“部分-整体”的层次结构。
使得用户对单个对象和组合对象的使用具有一致性。
6.模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,为子系统中的一组接口提供一个一致的界面。
7.模式运用共享技术有效地支持大量细粒度的对象。
8.模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。
9.模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
10.模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。
三、名词解释(每题4分,计20分)
1.接口:
2.正确性:
3.行为型设计模式:
4.组件:
5.设计模式:
四、简答题(每题5分,计20分)
1.简述类继承和接口继承的区别?
我们应该尽量使用哪一种?
2.请简述设计模式的观点、角色、层次?
3.classWebsite
{
Member[]members;//ormaybe:
vectormembers;
voidregister(MemberaMember){...}
}
怎样才能使该设计更灵活的注册新类型的成员?
给出解决方案及类图。
第2页(共5页)
-------------------上---------------------装-----------------订------------------------线---------------------------
咸阳师范学院2009—2010学年度第二学期软件设计与体系结构课程试题(A卷)
课程代码任课教师吴粉侠适用专业软件工程层次本科年级08级
班级学号姓名考试日期试场
---------------下---------------------装-------------------订-------------------------线---------------特别提示:
考试作弊者,不授予学士学位,情节严重者开除学籍;严禁携带手机及其他通讯工具进入考场。
4.如何实现委托?
举例说明。
五、分析源程序,指出该程序中使用了哪一个设计模式并给出相应类图(每题5分,共10分)
1.
classClient
{
publicClient(){super();}
publicstaticvoidmain(String[]args){Experimentexperiment=Experiment.getTheExperiment();
experiment.analyze();experiment.reportResults();}}
ClassExperiment{
privatestaticfinalExperimenttheExperiment=newExperiment();
Stringresult="Experimentresultnotyetassigned";//resultoftheexperiment
privatestaticintnumTimesReferenced=0;
privateExperiment(){super();}
publicsynchronizedvoidanalyze(){
theExperimentresult="...Theanalysisshowsthattheexperimentwasaresoundingsuccess.....";}
publicstaticExperimentgetTheExperiment()
{//Reportnumberoftimesthissingletonhasbeenaccessed(forcuriosity)
++numTimesReferenced;
System.out.println
("NotingthattheExperimentsingletonreferenced"+numTimesReferenced+"timessofar");
returntheExperiment;}
publicvoidreportResults(){System.out.println(result);}
}
2.
publicclassApplication{
privateHandlerbeijing,shanghai,tianjin;
publicvoidcreateChain(){
beijing=newBeijing();shanghai=newShanghai();tianjin=newTianjin();beijing.setNextHandler(shanghai);shanghai.setNextHandler(tianjin);
}
publicvoidreponseClient(Stringnumber){beijing.handleRequest(number);}
publicstaticvoidmain(Stringargs[]){Applicationapplication=newApplication();
application.createChain();application.reponseClient("3339812340930037");
}}
publicinterfaceHandler{
publicabstractvoidhandleRequest(Stringnumber);
publicabstractvoidsetNextHandler(Handlerhandler);
}
importjava.util.ArrayList;
publicclassShanghaiimplementsHandler{
privateHandlerhandler;privateArrayList
Shanghai()
{numberList=newArrayList
numberList.add("2229812340930034");numberList.add("2229812340930035");numberList.add("2229812340930036");numberList.add("2229812340930037");
}
publicvoidhandleRequest(Stringnumber){
if(numberList.contains(number))
System.out.println("该人在上海居住");
else{
System.out.println("该人不在上海居住");
if(handler!
=null)
handler.handleRequest(number);//经请求传递给下一个处理者
}}
第3页(共5页)
-------------------上---------------------装-----------------订------------------------线---------------------------
咸阳师范学院2009—2010学年度第二学期软件设计与体系结构课程试题(A卷)
课程代码任课教师吴粉侠适用专业软件工程层次本科年级08级
班级学号姓名考试日期试场
---------------下---------------------装-------------------订-------------------------线---------------特别提示:
考试作弊者,不授予学士学位,情节严重者开除学籍;严禁携带手机及其他通讯工具进入考场。
publicvoidsetNextHandler(Handlerhandler){this.handler=handler;}
}
importjava.util.ArrayList;
publicclassTianjinimplementsHandler{
privateHandlerhandler;privateArrayList
Tianjin(){numberList=newArrayList
numberList.add("3339812340930034");numberList.add("3339812340930035");
numberList.add("3339812340930036");numberList.add("3339812340930037");
}
六、设计题(每题10分,共30分)
1.根据下图及教材内容给出设计类图。
2.已有如下设计,现在想在不修改原有的设计的前提下,让其中的一只麻雀能连续飞行150米,请结合所学知识给出一个较好的设计方案,给处设计类图:
第4页(共5页)
-------------------上---------------------装-----------------订------------------------线---------------------------
咸阳师范学院2009—2010学年度第二学期软件设计与体系结构课程试题(A卷)
课程代码任课教师吴粉侠适用专业软件工程层次本科年级08级
班级学号姓名考试日期试场
---------------------下---------------------装-------------------订-------------------------------特别提示:
考试作弊者,不授予学士学位,情节严重者开除学籍;严禁携带手机及其他通讯工具进入考场。
3.使用模板方法求解ax2+bx+c=0.的根。
给出设计类图。
第5页(共5页)
咸阳师范学院2009—2010学年度第二学期软件工程专业(本科)08级软件设计与体系结构课程试题A
参考答案及评分标准
一.选择题(将答案填在下面表格中的空白处,每题1分,共10分,阴影处学生不得填写答案。
)
1-5:
AAABD6-10:
DADDD
二、填空题(将正确答案填在题中的空格上,每空1分,共10分)
1.工厂模式2.解释器模式3.原型模式4.单态模式5.组合模式
6.外观模式7.享元模式8.指责链9.观察者模式10.模版模式
三、名词解释(每题4分,计20分)
1.接口:
接口是函数原型的集合(每个接口都有名字、参数类型、返回类型、异常类型),让设计更利于理解。
2.正确性:
每个项目都要满足指定的需求,然后一起满足所有应用程序的需求
3.行为型设计模式:
每个行为模式捕获对象集合的一种行为
4.组件:
无需更改的、有用的软件的集合。
5.设计模式:
设计模式是一种类的联合体以及与之相伴的算法,这些算法能够实现共同的设计目标。
四、简答题(每题5分,计20分)
1.答:
类继承根据一个对象的实现定义了另一个对象的实现。
简而言之,它是代码和表示的共享机制。
然而,接口继承描述了一个对象什么时候能被用来替代另一个对象。
(2分)
类继承是派生中的类将继承父类的所有属性和方法,并且可以在派生类里添加自己的属性和方法,而接口继承则是在接口里只定义接口的方法,没有属性,并且方法不能实现,只有在派生他的类才实现该方法。
(2分)类继承是编译的时候新建对象,而接口实例是在运行时刻创建对象。
我们应该尽量使用接口继承,类继承会产生类爆炸现象(1分)
2.答:
观点—描述模式的方法,1.静态:
类模型(构建块)2.动态:
序列或者状态图(操作);(2分)
层次—模式分解,1.抽象层描述模式核心2.具体(非抽象)层;(2分)
描述用例的特殊性角色——模式使用的“表演者”1.设计模式本身的应用2.设计模式应用客户3.建立初始化和控制代码(1分)
3.答:
解决方案:
引入一个基类,将基类抽象化,根据需要产生继承类(2分)
(类图完成3分)
4.答:
实现委托的通用方法:
通过一个类把功能委托给一个抽抽象类的方法。
通过使用虚函数来实现委托(3分)
clientFunction(…)
{…intermediaryFunction(…)…}
intermediaryFunction(…)
{…requiredFunction()…}---------------------------(2分)
五、分析源程序,指出该程序中使用了哪一个设计模式并给出相应类图(每题5分,共10分)
1.使用了创建模式中的单例设计模式。
(2分)类图如下:
(3分)
第1页(共2页)
2.使用了行为设计模式中的职责链设计模式。
(2)
类图如下:
(3)
六、设计题(每题10分,共30分)
1.
评分标准:
1正确画出了所需类(4分)
2选择了适合的设计模式(4分)
3类间关系正确(2分)
2.
评分标准:
1正确画出了所需类(4分)
2选择了适合的设计模式(4分)
3类间关系正确(2分)
3.
评分标准:
1正确画出了所需类(4分)
2选择了适合的设计模式(4分)
3类间关系正确(2分)
第2页(共2页)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计 试题 软件 08