一:名词解释1.软件产品线产品线是一个产品集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足选定的市场或任务领域的特定需求。这些系统遵循一个预描述的方式,在公共的核心资源(coreassets)基础上开发的。2.体系结构描述语言体系结构描述语言(ADL)是在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架。基于底层语义的工具为体系结构的表示、分析、演化、细化、设计过程等提供支持。其三个基本元素是:构件、连接件、体系结构配置。3.软件体系结构DewaynePerry和A1exanderWo1f软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。MaryShaw和DavidGarlan软件体系结构处理算法与数据结构之上关于整体系统结构设计和描述方面的一些问题,如全局组织和全局控制结构、关于通讯、同步与数据存取的协议,设计构件功能定义,物理分布与合成,设计方案的选择、评估与实现等。Kruchten软件体系结构有四个角度,它们从不同方面对系统进行描述:概念角度描述系统的主要构件及它们之间的关系;模块角度包含功能分解与层次结构;运行角度描述了一个系统的动态结构;代码角度描述了各种代码和库函数在开发环境中的组织4.体系结构演化5.软件风格软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义了一个系统家族,即定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。6.软件重用体系结构重用属于设计重用,比代码重用更抽象。由于软件体系结构是系统的高层抽象,反映了系统的主要组成元素及其交互关系,因而较算法更稳定,更适合于重用。软件重用是指软件在环境和功能发生变化后,可通过局部修改和重组,保持整体稳定性,以适应新要求。二:简答题:1.什么是体系结构描述语言?它与程序语言以及UML有哪些区别与联系?ADL是在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架。基于底层语义的工具为体系结构的表示、分析、演化、细化、设计过程等提供支持。其三个基本元素是:构件、连接件、体系结构配置。跟其他语言的比较:◎构造能力:ADL能够使用较小的独立体系结构元素来建造大型软件系统;◎抽象能力:ADL使得软件体系结构中的构件和连接件描述可以只关注它们的抽象特性,而不管其具体的实现细节;◎重用能力:ADL使得组成软件系统的构件、连接件甚至是软件体系结构都成为软件系统开发和设计的可重用部件;◎组合能力:ADL使得其描述的每一系统元素都有其自己的局部结构,这种描述局部结构的特点使得ADL支持软件系统的动态变化组合;◎异构能力:ADL允许多个不同的体系结构描述关联存在;◎分析和推理能力:ADL允许对其描述的体系结构进行多种不同的性能和功能上的多种推理分析。2.管道过滤器风格结构特点(1)使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;(2)允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;(3)支持软件重用。(4)系统维护和增强系统性能简单。(5)允许对一些如吞吐量、死锁等属性的分析;(6)支持并行执行。但是,这样的系统也存在着若干不利因素。(1)通常导致进程成为批处理的结构。这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换。(2)不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为严重。(3)因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。3.试简述一下软件产品线的双生命周期模型现有系统需求领域分析领域工程领域设计领域实现新系统需求需求分析应用工程系统设计系统实现新系统领域可重用构件和生成器领域体系领域需求模型4.什么是设计模式?它与风格、框架有什么区别与联系?设计模式是对通用设计问题的重复解决方案。软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。软件框架是整个或部分系统的可重用设计模式比框架更加抽象框架是模式的特例化设计模式被实现成为框架后,可以极大的减轻从设计到实现的鸿沟利用了模式的框架比没有利用模式的框架更容易理解、更能被设计与实现重用通常成熟的框架包含了多种设计模式一个框架不仅可以具体实现一个模式,还可以具体的实现多个模式设计模式与风格两者为近义词,通常情况下可以互相通用风格主要是指大的,宏观的设计。模式既可宏观,又可微观。5.软件体系结构测试的内容与准则是什么?内容:构件端口行为与连接件约束是否一致、兼容,单元间的消息是否一致、可达,相关端口是否可连接,体系结构风格是否可满足。准则:测试覆盖所有的构件及各个构件的接口。各个连接件的接口、构件之间的直接连接、构件之间的间接连接。6.说明Web服务的体系结构模型?它的三个核心协议分别是什么?Web服务是一种崭新的分布式计算模型,是Web上数据和信息集成的有效机制。三个构成元素为:ServericeBroker、ServiceProvider、ServiceRequester三个核心协议:简单对象访问协议SOAP;统一描述、发现和集成协议UDDI;Web服务描述语言WSDL7.什么是软件危机,软件危机的具体表现有哪些?软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。软件危机的表现:软件成本日益增长开发进度难以控制软件质量差软件维护困难8.MTTF,MTBF,MTRF分别是什么,它们有什么关系MTTF(meantimetofailure,平均失效前时间)还叫“正常运行时间”。MTBF,平均故障间隔时间又称平均无故障时间,指可修复产品两次相邻故障之间的平均时间,记为MTBFMTTR(meantimetorepair),叫“平均修复时间”(即修复一个故障平均需用的时间),也叫“故障停机时间”MTBF=MTTF+MTTR三:设计题:(1)食品安全是当今社会关注的一个焦点。一个食品安全管理系统由食品安全门户子系统、检测子系统、预警子系统、数据库访问子系统和权限管理子系统组成。门户、检测可以通过浏览器访问,PDA可以使用检测系统。其中门户子系统包含了食品安全知识发布、食品安全信息查询。检测子系统包括样品登记、随行单生成与分发、检测结果处理与发布。问题:a.软件体系结构“4+1”视图是哪几种视图,简要说明每种视图的特点?逻辑视图(LogicalView),设计的对象模型(使用面向对象的设计方法时)。过程视图(ProcessView),捕捉设计的并发和同步特征。物理视图(PhysicalView),描述了软件到硬件的映射,反映了分布式特性。开发视图(DevelopmentView),描述了在开发环境中软件的静态组织结构。场景(scenarios),综合所有视图,进行无缝协同工作。b.请根据上面所描述的需求,设计出该系统的功能视图,并简要说明说明:自己想(2)利用C2体系结构语言描述食品安全系统中的预警子系统:预警系统有如下几个构件组成:检测结果录入构件(check)、预警构件(prewarning)、手机短信发送构件(smsend)。工作流程如下:检测结果录入构件将用户输入的检测结果保存到数据库中save(),并将检测结果向预警构件发送getWarning()。预警构件接收请求,判定是否需要预警judge(),如果需要预警,则向手机短信发送构件发送手机短信发送请求requestSendSM(),并将预警对象用户手机号与发送内容作为参数一起发送过去,手机短信发送构件接收到这个请求后,向相关用户发送短信,并向预警系统返回发送结果responseSendSM()。预警构件接收到返回结果,显示预警结果showprewarningresult()。(注意:连接件没有说明,请根据情况添加适当的连接件)a.画出该系统的C2风格的体系结构图b.利用C2体系结构描述语言设计出这三个构件c.利用C2体系结构描述语言描述出这个系统的体系结构。(a)(b)ComponentcheckisInterfaceTop_domainisOutprewarning();BehaviorStartupalways_generatesave,prewarning;endcheckComponentprewarningisInterfacebottom_domainisingetprewarning();top_domainisoutsendSM()ingetStatus();Behaviorreceived_messagesgetprewarning()always_generategetprewarning;received_messagesgetExcludeSet()may_generateexcludeSet;received_messagesaddPreferSet()may_generateperferSet;endprewarningComponentsmsendisInterfacebottom_domainisoutsendStatus();ingetSM();Behaviorreceived_messagesbackStatusSet()may_generatestatusSet;received_messagesgetSM()always_generategetpreSM;endsmsend(c)architectureprewarningiscomceptual_componentscheck;prewarning;SMSend;connectorsconnectorPrewarning_SMSend_Connectormessage_filterno_filtering;connectorCheck_Prewarning_Connectormessage_filterno_filtering;architectural_topologyconnectorPrewarning_SMSend_Connectorconnectionstop_portsSMSend;bottom_portsPrewarning;connectorCheck_Prewarningconnectionstop_portsPrewarning;bottom_portsCheck;endmakeupClass3.在Junit测试中,存在着测试用例testCase与测试套件testSuite这两个对象,其中,一个测试用例是一个原子的测试用例,它包含输入,条件以及期望的输出这三个属性。以及一个判断操作,这个判断操作用于判断期望的输出是否与这个设定的期望输出相等。如果相等,则,而一个testSuite则是一个组合测试用例,它包含多个测试用例或者测试套件。请利用我们所学过的一种设计模式对这个系统进行相应的设计,并简要说明它的含义。(下图,testCase要加那三个属性,三个对象的方法runTestResult()也要改成equals());定义了TestCase对象和TestSuite的类层次结构基本对象TestCase可以被组合成更复杂的组合对象TestSuite,而这些组合对象又可以被组合。如此,任何使用基本对象的地方都可方便的使用组合对象,大大简化系统维护和开发。