您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件构架简答题+程序题答案-蒋贻顺
一、简答题1.基于软件构件/构架的软件认识观主要包含什么哪些方面内容?答:(1)应用软件开发的复用思想;(2)应用软件系统是一个社会技术系统;(3)系统架构的中心地位;(4)可视化建摸技术的支持;(5)对自适应系统的需求;(6)应用软件的构件化开发是未来必然的开发模式。2.逆工程、再工程以及重用再工程有什么区别与联系?答:从已有的应用系统中抽取可复用软件成分的过程,经常被称为“重用再工程(ReuseRe-engineering)”过程;逆工程(Reverse-engeering)是在软件维护过程中,对当前的软件系统进行理解,识别部件和部件之间关系的过程;再工程(Re-engineering)是在软件维护过程中,为了改善系统的性能,使其适应硬件和应用环境不断变化的需求,对原有系统进行再加工的过程。3.列出软件复用实现的5种技术形式。答:1源代码复用;2目标代码复用;3设计/分析结果复用;4类模块复用;5构件复用。4.与传统软件过程相比,简述支持复用的软件过程。答:以往:(首先)首先分解系统,划分模块,分配开发任务;(实现)各个组成部分并行实现,最后通过主程序组织各部分,形成应用系统。支持复用的软件过程:(首先)根据高层次的抽象模型建立整个应用系统的框架.;(实现)在框架指导下,寻找复用的软件模块(构件),快速实现同类型的系统.。5.简述软件复用的优点。答:1软件生产效率提高;2.系统维护难度、工作量和费用降低;3.系统间的互操作性提高;4开发流程,支持快速原型开发简化;5培训成本减少;6有关建立系统的知识共享。6.列出常见的6种主流的构架/构件技术。答:MicrosoftCOM/DCOM/COM+技术、J2EE/JavaBeab/EJB(Hibernate)(JavaEE)、.NET、MVC、基于J2EE规范的应用程序构件、CORBA。7.述软件体系结构的“4+1视图”模型。答:逻辑视图,过程视图,物理视图,开发视图,场景视图8.简述软件体系结构的生命周期。答:软件体系结构生命周期是指:软件体系结构在整个生存期间所经历的阶段和步骤1软件体系结构的非形式化描述、2软件体系结构的规范化描述和分析、3软件体系结构的求精与验证、4软件体系结构的实施、5软件体系结构的演化和扩展、6软件体系结构的评价和度量、7软件体系结构的终结。9.简述构件的形式化定义中外部接触点(端口port)的8个组成要素。答:构件接口是构件与外部接触点的集合,即Port1,Port2,…,Portn.每个Port有一个8元组定义ID、PUBli、Extei、Privi、Behai、Msgsi、Consi、Non-Funci.小i为下标10.简述构件3C模型主要内容。答:概念(Concept)主要描述构件“做什么”,用抽象的概念去理解构件的功能;又分为接口规约和语义描述;内容(content)是概念的具体实现,描述构件如何完成概念刻画的功能;语境(context)是构件和外围环境在概念级和内容级的关系11.简述连接件的主要特性(可扩展性、互操作性、动态连接性和请求响应性)。答:连接件的可扩展性是指:连接件允许动态地改变被关联的构件集合和交互关系、互操作性是指:被连接的构件通过连接件对其它构件进行直接或间接操作、动态连接性是指:对连接的动态约束,连接件对所关联的构件可以实施不同的动态处理、请求响应性是指:响应的并发性和时序性12.简述软件体系结构核心模型。答:软件体系结构核心模型(SoftwareArchitectureCoreModel)=构件(Components)+连接件(Connectors)+约束(Constraints)。构件作为一个封装的实体,仅通过其接口与外部环境进行交互,而构件的接口是由一组端口组成的,每个端口表示构件与外部环境之间的交互点;;连接件作为软件体系结构建模的主要实体,同样也有接口,连接件的接口是由一组角色构成的,每个角色定义了该连接所表示交互的参与者13.简述软件体系结构模型。答:软件体系结构模型分为5种:结构模型、框架模型、动态模型、过程模型和功能模型14.在基于UML的软件体系结构建模方法,简述UML各个元素(图)的作用。答:UML描述方法,可以将Kruchten的“4+1”模型映射到UML图上,逻辑视图利用类图来表示,过程视图映射成活动图,开发视图使用构件图来描述,物理视图映射为配置图,场景用顺序图和协作图来表示。用例图是从用户的角度来描述系统功能,指出各功能的操作者,用于捕获业务需求、类图描述了系统中类的静态结构,定义了类的内部结构以及类之间的关联关系、包图描述了系统的层次结构,用于捕获系统的逻辑结构、活动图描述了满足用例要求所要进行的活动以及活动之间的约束关系、合作图描述对象之间的协作,显示对象之间的动态合作关系、顺序图描述对象之间的动态合作关系,强调对象之间的消息发送顺序,显示对象之间的交互关系、状态图描述了一类对象所具有的可能状态及状态之间的转移关系、组件图描述了程序代码的物理结构、配置图定义了软、硬件的物理体系结构,用于捕获系统硬件资源和软件资源之间的映射关系15.简述分层体系结构风格的优缺点。答:优点:1设计者可以将系统分解为一个增量的步骤序列,从而完成复杂的业务逻辑;2每一层至多和相邻的上下两层进行交互,每一层的功能变化最多只影响相邻两层,便于实现系统功能的扩展;3只要给相邻层提供相同的接口,就可以使用不同的方法来实现每一层,支持软件资源的复用。缺点:1并非所有系统都能够按照层次来进行划分,即使一个系统的逻辑结构是层次化的,但是出于对系统性能的考虑,需要把不同抽象程度的功能合并到一层,破坏了逻辑独立性;2很难找到一种合适和正确的层次划分方法,其应用范围受到限制;3在传输数据时,需要经过多个层次,导致了系统性能下降;4多层结构难以调试,往往需要通过一系列的跨层次调用来实现16.简述C/S体系结构风格的各部分功能。答:(客户机)表示层,是系统和用户之间的接口,实现用户与系统之间的对话功能,用于检查从键盘和鼠标等设备输入的数据,显示输出结果;(应用服务器)功能层,负责处理所有的业务逻辑;(数据服务器)数据层就是数据库管理系统,负责读写数据,数据库管理系统必须能够迅速地执行大量数据的更新和检索操作。17.简述B/S体系结构风格的各部分功能。答:B/S体系结构的核心是Web服务器,可以将应用程序以网页的形式存放在Web服务器上当用户运行某个应用程序时,只需要在客户端的浏览器中键入相应的URL,向Web服务器提出HTTP请求;当Web服务器接收HTTP请求之后,会调用相关的应用程序,同时向数据库服务器发送数据操作请求;数据库服务器对数据操作请求进行响应,将结果返回给Web服务器的应用程序;Web服务器应用程序执行业务处理逻辑,利用HTML来封装操作结果,通过浏览器呈现给用户18.简述配置三层C/S结构的系统的三种传统方法。答:1将表示层放在客户机上,功能层和数据层都放在同一个服务器上,与两层C/S结构相比,虽然提高了程序的可维护性,但两层C/S结构的缺陷并未得到完全解决;2由于三层分别放在不同的计算结点上,因此提高了系统的灵活性,能够适应客户机数目和处理负荷的变动,但是,在这种情况下,服务器之间要进行数据传送,增加了系统开销;3如果将表示层和功能层都放在客户机上,其配置方案如下所示,在这种情况下,客户机的工作负担很重,类似于两层C/S结构。12319.简述领域设计中复用元素的选择原则。答:1在软件开发和维护过程中,最频繁使用的软件元素;2提供最大利益的软件元素,例如:节省费用、节省时间、减少项目失败的风险、以及强化重用标准等;3用于创建和维护对本公司具有重要意义的策略性软件元素;4是复用消费者(例如:领域专家、系统框架设计人员、软件开发人员和软件维护人员)所需要的软件元素20.简述DSSA中领域工程与应用工程之间区别与联系。答:区别:1在领域工程中,开发人员的基本任务是对领域中所有应用的需求进行抽象,而不仅仅局限于个别系统;2在应用工程中,开发人员的主要任务是,以领域工程的成果为基础,针对特定需求产生一系列的具体设计方案;3领域工程是在一个较高的层次上,对领域应用中的共同特征进行抽象,并通过领域模型和DSSA来表示这些共同特征之间的关联关系。联系:1应用工程所建立的系统,包含了需求规约、设计方案和实现细节等多种信息,这些又是领域工程的信息来源;2领域工程负责对应用工程各个阶段中的产品进行抽象;3领域工程所获取的资源,将对本领域新应用的开发提供支持;4领域工程和应用工程都需要解决一些相似的问题;5领域工程的步骤、行为和成果与应用工程是一一对应的;6在应用工程中被广泛使用的方法、技术和原则都可以在领域工程中加以利用(例如:结构化分析方法、面向对象设计技术、实体-关系图、以及数据流图等)二、简答题1.列出5种创建型设计模式。答:工厂方法(FactoryMethod)模式、抽象工厂(AbstractFactory)模式、原型(Prototype)模式、单例(Singleton)模式,建造(Builder)模式等。2.列出5种结构型设计模式。答:合成(Composite)模式、装饰(Decorator)模式、代理(Proxy)模式、享元(Flyweight)模式、门面(Facade)模式、桥梁(Bridge)模式、适配器(Adapter)模式等。3.列出5种行为型设计模式。答:模板方法(TemplateMethod)模式、观察者(Observer)模式、迭代子(Iterator)模式、责任链(ChainofResponsibility)模式、备忘录(Memento)模式、命令(Command)模式、状态(State)模式、访问者(Visitor)模式、中介者(Mediator)模式、策略(Strategy)模式、解释器(Interpreter)模式等。4.简述软件设计原则。答:开闭原则指出、里氏代换原则、倒置原则、接口隔离原则、组合/聚合复用原则、迪米特法则、单一职责原则三、程序设计题1.按照单例而设计模式,设计一个类President,要求该类只能有一个对象存在。2.按照单例而设计模式,设计一个类Earth,要求该类只能有一个对象存在。3.按照单例而设计模式,设计一个类ABC,要求该类只能有一个对象存在。答:单例设计模式示例代码(Java)publicclassLazySingleton{privatestaticLazySingletonm_instance=null;//私有的默认构造方法,保证客户端无法直接对其实例化privateLazySingleton(){}//静态工厂方法,返回此类的唯一实例publicsynchronizedstaticLazySingletongetInstance(){if(m_instance==null){m_instance=newLazySingleton();}returnm_instance;}}单例设计模式示例代码(C++)classSingleton{public:staticSingleton*Instance();protected:Singleton();private:staticSingleton*_instance;};Singleton::Singleton(){output(Singleton::Singleton()\n);}Singleton*Singleton::_instance=0;Singleton*Singleton::Instance(){output(Singleton*Singleton::Instance()\n);if(_instance==0){_instance=newSingleton();}return_instance;}4.按照Proxy设计模式,设计一个代理电话销售软件。答:抽象主题角色代码:abstractclassPhoneSaler{abstractpublicvoidsalePhone();}真实主题
本文标题:软件构架简答题+程序题答案-蒋贻顺
链接地址:https://www.777doc.com/doc-1991307 .html