论设计模式在软件开发中的应用
设计模式描述了在特定场景下解决一般设计问题的类和相互通信的对象。一个设计模式命名、抽象并确定了一个通用设计结构的主要方面,这些设计结构能被用来构造可复用的面向对象设计。现在,设计模式已经广泛地应用在软件开发中。
请围绕“设计模式在软件开发中的应用”论题,依次对以下三个方面进行论述。
1)概要叙述你参与分析和开发的应用项目以及你所担任的主要工作。
2)简要介绍设计模式的基本概念及分类,详细说明在你所参与分析和开发的应用项目中应用了哪些设计模式、方法以及选用它们的原因。
3)分析并讨论使用设计模式的效果,并分析和评价设计模式对软件开发的影响。
试题 四(15 分)
阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。
【说明】
某学校为实现无纸化、网络化的教材管理,拟开发一套教材管理系统。该系统主要负责统计全校的教学用书的需求信息,以便教材的统一购买。
【 需求分析结果】
(1) 教学计划
各学院的教学计划是教材需求的来源。各学院的教学管理人员为本学院的各个专业方向制定教学计划。教学计划主要是描述每个专业方向不同学期所开设的课程信息。教学计划的示例如表4-1。
(2) 课程信息 课程信息包括课程编号、课程名、教材编号,由课程编号唯一标识。如表4-1中, 《数
据库技术》课程因其使用的教材不同而分别编号。
(3) 专业方向、班级
学校根据学院和专业方向将学生划分班级。一个学院可有多个专业方向,不同学院可以有相同名字的专业方向。一个专业方向可有多个班级,班级包含入学年份和人数。
(4) 教材信息
教材信息记录教材的基本信息,包括教材编号、教材名称、ISBN 号、出版社名称、作者、版本号。同一种教材版本不同编号也不同,一种教材可以有多个作者。
(5) 教材需求
根据各学院的教学计划和对应的班级人数,统计全校各系各专业各班级的教材需求情况。教材需求量是根据现有的教学计划和班级人数计算得到的。
【 逻辑结构设计】
根据需求阶段收集的信息,设计的关系模式如图4-1所示。
关系模式的主要属性、含义及约束如表4-2所示。
根据图4-1关系模式,给出班级、教材的函数依赖(不完整)如下。
(1)班级关系函数依赖FD1
班级号 → { 入学年份, 人数, 院系名称, 专业名称 }
(2)教材关系函数依赖FD2
教材编号 →{ 教材名称, ISBN, 出版社, 版本号 } (不完整)
【问题1】 (8分)
根据图4-1的关系模式,回答以下问题:
(1) 分析“教材”关系,给出除FD2外其余的函数依赖和多值依赖;
(2) 列出“教材”关系的所有候选键;
(3) 分析“教材”关系所属范式,并说明原因;
(4) 对“教材”关系进行分解,使其达到 4NF。分解后各关系模式分别命名为:教材1,教材2,……。
【 问题2】(7分)
分析以上各关系模式,请回答以下问题:
(1) “教学计划”关系是否存在冗余?请简要说明。
(2) 根据现有关系模式,能否获得学校每学期的各种教材的需求总量?请简要说明。
(3) 考虑到任选课只有部分学生选修,需要增加或修改哪些关系模式,请给出修改结果并简要说明。
A.与体系结构模式一样,体系结构风格也对体系结构设计施加一种变换
B.相对于体系结构风格,模式涉及的范围要大一些,它更关注体系结构的整体
C.体系结构模式在体系结构上施加规则,描述了软件是如何在基础设施层次上处理某些功能性方面的问题
D.体系结构模式倾向于在系统结构的环境中处理特定的行为问题
A.②③④⑤
B.①②③④⑤
C.①③④⑤
D.①②③
在“模型一视图一控制器(MVC)”模式中,(39)主要表现用户界面,(40)用来描述核心业务逻辑。
A.视图
B.模型
C.控制器
D.视图和控制器
A.对信息技术与课程整合的认识问题
B.教师相关知识和技能的培训问题
C.学校现有软硬件教学环境问题
D.现阶段中小学课程设置与课程体系问题
class S:public R{…};
class T:private S{…};
在关于类S的描述中正确的是(18),在关于类T的描述中正确的是(19)。
A.类S的对象可以访问F1,但不能访问F2
B.类S的对象可以访问F2,但不能访问F1
C.类S的对象既可以访问F1,也可以访问F2
D.类S的对象既不能访问F1,也不能访问F2
● 在“模型-视图-控制器”(MVC)模式中,(39)主要表现用户界面,(40)用来描述核心业务逻辑。
(39)A. 视图 B. 模型 C. 控制器 D. 视图和控制器
(40)A. 视图 B. 模型 C. 控制器 D. 视图和控制器
class S: public R {…};
class T: private S {…};
在关于类S的描述中正确的是(45);在关于类T的描述中正确的是(46)。
A.类S的对象可以访问F1,但不能访问F2
B.类S的对象可以访问F2,但不能访问F1
C.类S的对象既可以访问F1,也可以访问F2
D.类S的对象既不能访问F1,也不能访问F2