体系结构复习题
1、简述三层架构开发模式及其优点。
三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合\的思想。
(1)表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
(2)业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
(3)数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
注:(内聚:一个模块内各个元素彼此结合的紧密程度;耦合:一个软件结构内不同模块之间互连程度的度量) 优缺点 优点:
1、开发人员可以只关注整个结构中的其中某一层; 2、可以很容易的用新的实现来替换原有层次的实现; 3、可以降低层与层之间的依赖; 4、有利于标准化;
5、利于各层逻辑的复用。
6、扩展性强。不同层负责不同的层面,如PetShop可经过简单的配置实现Sqlserver和oracle之间的转换,当然写好了也可以实现B/S与C/S之间的转换
7、安全性高。用户端只能通过逻辑层来访问数据层,减少了入口点,把很多危险的系统功能都屏蔽了。
8、项目结构更清楚,分工更明确,有利于后期的维护和升级 缺点:
1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码
3、增加了代码量,增加了工作量
2、实体类的概念及其作用。 实体类,主要是作为数据管理和业务逻辑处理层面上存在的类别。它的主要职业是存储和管理系统内部的信息,它可以在抽象类的基础上进一步定义具体的类。
3、敏捷开发宣言。
1、个体和交互胜过过程和工具
2、可工作的软件胜过面面俱到的文档 3、客户协助胜过合同谈判 4、响应变化胜过遵循计划
4、敏捷开发为什么说客户合作胜过合同谈判?
不能像订购日用品一样订购软件!
完全放开的方法也行不通:仅告诉团队想要的东西,然后期望团队消失一段时间回来后就能交付一个令人满意的产品?
成功的项目需要定期且频繁的客户反馈
为开发团队和客户的协同方式提供指导的合同才是最好的合同,而不是试图去规定项目范围的细节和固定成本下的进度。
项目的需求基本处于一个持续变化的状态,大的变更是很平常的,成功的关键在于与客户的紧密协作。
5、简述XP中的完整团队概念
我们希望客户、管理者和开发人员紧密地工作在一起,以便彼此知晓对方所面临的问题,并共同去解决这些问题。
XP团队中的客户是指定义产品的特性并排列这些特性优先级的人或者团体。
最好的情况是客户和开发人员在同一个房间中工作,次一点的情况是客户和开发人员之间的距离在100米内。
如果确实无法和客户在一起工作,那么就去寻找能够在一起工作、愿意并能够代替真正客户的人。
6、简述XP的短交付周期的概念。
XP项目每两周交付一次可以工作的软件。每两周的迭代都实现了利益相关者的一些需求,在每次迭代结束时,会给利益相关者演示迭代生成的系统,以得到他们的反馈
7、什么是用户故事?
就是正在进行的关于需求谈话的助记符。它是一个计划工具,客户可以使用它并根据它的优先级和估算代价来安排实现该需求的实践
8、什么是结对编程?
所有产品(production)代码都是由结对的程序员使用同一台电脑共同完成的。结对人员中的一位控制键盘并输入代码,另一位观察输入的代码并寻找着代码中的错误和可以改进的地方。
两人频繁互换角色,结对编程的代码是由两人共同设计、共同编写的,两人功劳均等。 结对的关系每天至少改变一次,以便于每个程序员在一天中可以在两个不同的结对中工作。在一个迭代期间,每个团队成员应该和所有其他的团队成员在一起工作过,并且他们应该参与了本次迭代中所涉及的每项工作。这样可以促进知识在团队中的传播 “业务领域专家”也需要与团队中的其他所有成员结对
9、测试驱动开发的概念及其积极作用。 概念:
? 它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代 码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。
? 编写所有产品代码的目的都是为了使失败的单元测试能够通过。首先编写一个单元测 试,由于它要测试的功能还不存在,因此它会运行失败,然后,编写代码使测试通过。 ? 这样一种方式所编写的代码天生就是可测试的,并可以激发程序员去解除各个模块之间 的耦合,这样才能够独立地对它们进行测试。面向对象设计的原则在进行这种解除耦合方面
具有巨大的帮助作用。
积极作用:(1) 程序中的每一项功能都有测试来验证它的操作的正确性。
(2) 首先编写测试可以迫使我们使用不同的观察点---程序调用者的角度,可以设计出便于调用的软件
(3) 通过首先编写测试,可以迫使自己把程序设计为可测试的,迫使我们解除软件中的耦合(force us to decouple the software)
(4) 测试可以作为一种无价的文档形式,而且可以提供范例
10、测试驱动开发遵循的3条简单的规则是什么?
(1)除非这能让失败的单元测试通过,否则不允许去编写任何的产品代码。 (2)只允许编写刚好能够导致失败的单元测试。 (编译失败也属于一种失败) (3)只允许编写刚好能够导致一个单元测试失败的产品代码。
11、XP中简单设计的概念及其指导原则。 概念:
? XP团队使他们的设计尽可能地简单、具有表现力(expressive)。此外,他们仅仅关注于 计划在本次迭代中要完成的用户故事。他们不会考虑那些未来的用户故事。
? XP要求用最简单的办法实现每个小需求,前提是按照这些简单设计开发出来的软件必 须通过测试。这些设计只要能满足系统和客户在当下的需求就可以了,不需要任何画蛇添足的设计,而且所有这些设计都将在后续的开发过程中被不断地重整和优化。 指导原则:
(1) 考虑能工作的最简单的事情尽量考虑最简单的方法实现当前的用户故事。 (2) 你不需要它将来会用到,现在不考虑,不得不用时再添加;
(3) 一次,并且只有一次极限编程者绝不能容忍重复的代码代码重复不仅仅是浪费存储空间,关键是“维护灾难消除重复最好的方法就是抽象。提炼出抽象,可以减少代码间的耦合。
12、每个软件模块都应该具有的三项职责是什么?
(1)它运行起来所完成的功能。这也是该模块得以完成的原因。
(2)它要应对变化。几乎所有的模块在它们的生命周期中都要变化。开发者有责任保证这种改变应该尽可能地简单。
(3)要和阅读它的人进行沟通。对该模块不熟悉的开发人员应该能够比较容易地阅读并理解它。
13、简述常见的设计臭味。
(1)僵化性 僵化性是指 …… 此处隐藏:4061字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




