软件工程整理答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.简述C/S软件系统和B/S软件系统各自特点和发展趋势。(10分)
B/S结构的优点
(1)具有分布性特点,可以随时随地进行查询、浏览等业务处理。
(2)业务扩展简单方便,通过增加网页即可增加服务器功能。
(3)维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
(4)开发简单,共享性强
B/S 模式的缺点
(1)个性化特点明显降低,无法实现具有个性化的功能要求。
(2)操作是以鼠标为最基本的操作方式,无法满足快速操作的要求。
(3)页面动态刷新,响应速度明显降低。
(4)无法实现分页显示,给数据库访问造成较大的压力。
(5)功能弱化,难以实现传统模式下的特殊功能要求。
C/S的结构是,客户端/服务器端
B/S的结构是,浏览器/服务器端
C/S的程序通常也叫胖客户端,也就是一个程序的大部分功能,都在客户端实现,而服务器端只实现一小
部分功能。通过这点不难看出,C/S的程序大部分在客户端实现,对于服务器端的压力相对小一些,服务
器端可以节省一些。而且C/S的程序用窗口来做,个人认为开发效率上快一点。但C/S的程序一大弊端就是,必须要在客户端安装并部署程序才能运行,也就是用户必须得到客户端程序才可以运行。所以得考虑
不同系统之间的安装与配置。
B/S的程序通常也叫瘦客户端,与C/S相反。B/S的程序大部分功能都要在服务器端实现,客户端只用来做
辅助的控制功能。B/S应用程序最近大受欢迎,因为B/S的程序直接部署安装在服务器上。用户只需要有
浏览器,并知道网址就可以使用程序。客户端不必做任何配置和安装,即可使用应用程序。而B/S也是有
缺点的,首先B/S大部分功能都要在服务器端实现,对于服务器的要求就很高。服务器同时要应付用户访
问与程序处理,所以服务器的配置必须能够应付。另外就是B/S的程序是浏览器中执行,所以B/S的程序
操作客户端电脑的硬件,一般就得安装ActiveX等插件在客户端才可以操作。因此B/S的程序对于操作硬件,优势没有C/S的程序要好。
发展趋势:C/S结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降
低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。B/
S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)
和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,
是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构。
2.EJB(Enterprise Java Bean)的接口分Local接口和Remote接口,简述其差异和应用场景。(15分)
local是本地接口,remote是远程接口。web层调用app层使用remote接口。session bean 和entity bean之间调用使用的是local接口。如果Bean类实现了一个接口,这个接口被认为是Bean类的业务接口,默认是本地业务接口。local 是同一个容器调用的,remote可以跨容器调用。Local接口适用于一个JVM中,而Remote接口适用于不同的JVM中。
Bean类被允许有多个接口,必须清楚地使用Local或者Remote注释或者使用部署描述器标识业务接口:供远程访问的接口,与普通接口基本相同,需要使用元注释声明:@Remote;供本地访问的接口,使用元注释:@Local。
当@Local和@Remote的EJB注释都不存在时,会话Bean实现的接口默认为Local接口。如果在本机调用EJB(确保客户端与EJB容器运行在同一个JVM),采用Local接口访问EJB 优于Remote接口,因为Remote接口访问EJB需要经过远程方法调用,而Local接口访问EJB直接从JVM 中返回EJB的引用。Bean的提供者可以用@Remove注释来标记任何SFSB 的方法,以说明这个方法被调用之后bean的实例将被移除。同样,规范组织仍然在讨论是否要有一种机制来处理这种特殊的情况,即当这个方法出现异常的情况下bean的实例是否被移除。
3.敏捷软件开发的主要思想和实现步骤是什么?(15分)
敏捷软件开发宣言具体表达了敏捷开打的具体思想:
•个体和交互胜过过程和工具
•可以工作的软件胜过面面俱到的文档
•客户合作胜过合同谈判
•响应变化胜过遵循计划
虽然右项也具有价值,但认为左项具有更大的价值。
实现步骤:
4.简述基于构建软件开发的主要技术分类和各自技术特点。(20分)
1)面向对象技术。具有封装性、继承性、多态性、自然模拟客观世界的能力,是建立可复用构件的主要基础;面向对象的开发方法也是形成基于构件的软件开发方法的主要基础,其是最核心的支撑技术。
2)设计模式。设计模式(design patterns)是指在特定场合下,对某一类问题的通用解决方案,表现为一组对象间的组合和交互的特定方式。设计模式是建立可复用构件的重要方法,是把专家级的设计思路用于构件设计的快捷方法。
3)重构技术。重构(refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。有助于从遗产系统中发现可复用构件,也是已有构件进化的重要手段。
4)范型编程技术。范型编程(generic pro~gramming)技术是一种典范(paradigm),专注于将型别(type)抽象化,形成功能需求方面的一个精细接口,并复用这些需求来实现算法。由于算法为其所操作型别定义了严格、精细的接口,因此相同的算法可用于广泛的型别集。在构件的生产中,范型技术是实现构件体的重要工具。