软件体系结构大作业
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件应用框架
框架是待实例化的、可复用的大粒度部件结构。框架面向不同规模的应用问题,是通用的结构。强调针对实际问题和通用结构。应用框架有如下优点:模块化把应用分割成多个组件或模块.模块化的开发互不影响,效率提高.可重用性代码的可重用性.可扩展性客制化,开发者可在框架中插入自定义的业务逻辑。
三、A公司是一家相对较大的软件和硬件企业,专业从事网络设备的开发。从单一的产品开始,现在,已经延伸到包括摄相服务器、扫描服务器、光盘服务器以及其他的存储服务器在内的产品。公司原来的产品都是一个一个地开发,每个软件组织一个项目组。为了适应快速变化的市场,降低开发成本,公司想引入产品线方法。然而,软件产品线开发涉及了一个软件开发组织的多个产品,选择了软件产品线意味着要承担由此带来的许多风险。
Web Service希望实现不同的系统之间能够用“软件-软件对话”的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于Web无缝集成”的目标。
WSDL
Web Service描述语言WSDL就是用机器能阅读的方式提供的一个正式描述文档而基于XML的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。
3)原型系统。
①《软件需求说明书(GB856T——88)》
1
引言................................................................
[问题2]
请用200字以内文字说明如何在原有产品的基础上建立产品线?
建立产品线首先要明确市场需求和企业资源,企业到底能支撑自身做什么样的产品,同时要想清楚未来市场上需要什么样的产品;其次是要策划比较好的产品线,要有两个策划,一个是产品策划,即基于特定目标客群划分的产品组合,另一个是营销策划;第三是标准化,标准化包括设计标准和实施标准。
南京邮电大学
《软件体系结构》大作业
姓名陈何渊
学号B12041318
院系计算机、软件学院
指导老师周国强
2014年12月30日
1、简述软件体系结构的性质、研究意义和目标是什么? (不少于300字)
答
软件体系结构的性质:
软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。
Web Service的主要协议
SOAP
SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。SOAP可以运行在任何其他传输协议上。例如,你可以使用SMTP,即因特网电子邮件协议来传递SOAP消息,这可是很有诱惑力的。在传输层之间的头是不同的,但XML有效负载保持相同。
5.批处理风格。批处理风格的每一步处理都是独立的,并且每一步是顺序执行的,只有当前一步处理完后,后一步处理才能开始,数据传送在步与步之间作为一个整体。批处理的典型应用是经典数据处理和程序开发。
软件设计模式
设计模式是软件问题高效和成熟的设计模板,模板包含了固有的问题的处理逻辑,强调处理逻辑采用方式的直接复用。设计模式/软件设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
Web Service技术,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。依据Web Service规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。Web Service是自描述、自包含的可用网络模块,可以执行具体的业务功能。Web Service也很容易部署,因为它们基于一些常规的产业标准以及已有的一些技术,诸如XML和HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。
XML和XSD
可扩展的标记语言XML是Web Service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既与平台无关,又与厂商无关。XML是由万维网协会(W3C)创建,W3C制定的XML SchemaXSD定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。
Web Service平台是用XSD来作为数据类型系统的。当你用某种语言如VB. NET或C#来构造一个Web Service时,为了符合Web Service标准,所有你使用的数据类型都必须被转换为XSD类型。如想让它使用在不同平台和不同软件的不同组织间传递,还需要用某种东西将它包装起来。这种东西就是一种协议。
五、自选一个系统,基于WebService实现原型系统。
包含三部分内容:
1)系统需求:按照国标《软件需求说明书(GB856T——88)》的要求撰写系统的需求,可以根据系统的特点进行国标文档章节内容的删减。
2)系统设计:按照国标《概要设计说明书(GB8567——88)》、《详细设计说明书(GB8567——88)》的要求撰写系统的设计,可以根据系统的特点进行国标文档章节内容的删减。
[问题3]
请用150字以内文字说明成功实施产品线的主要因素是什么?
(1)对该领域的产品开发已具备长期积累的经验。
(2)一个用于构建产品的好的核心资源库。
(3)好的产品线体系结构。
(4)好的管理(软件资源、人员组织、过程)支持。
四、简述SOA软件体系结构的基本概念,简述Web Service的主要协议。(不少于300字)
2.体系结构是早期设计决策的体现,软件体系结构体现的这些早期的约束比起后续的开发、设计、编码、运行服务以及维护工作更为重要。
3.软件体系结构是可传递和可重用的模型。
目标:
软件体系结构是一系列决策和基本原理的集合,这些决策的目标在于开发高效的软件体系结构。在体系结构设计中所强调的基本原理是系统的可理解性、可维护性和可扩展性。以一些恰当的形式汇集一定数量的体系结构元素满足系统的主要功能和性能的需求,另外还能同时表示出一些非功能性需求。开发出合理的、高效的、高质量的软件体系结构,重点解决系统开发过程中的总体结构问题。
二、简述软件设计风格、软件应用框架和软件设计模式的特征和区别?(不少于300字)
软件体来自百度文库结构风格
风格是表达特定系统元素和组织方式的通用范例。软件体系结构风格,反映众多系统共有结构的习惯用法和语义,表述系统的静态结构方式,强调软件元素的组织形式和通常用法。软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。 下面将介绍几种主要和经典的体系结构风格和它们的优缺点。
研究意义:
软件体系结构是软件工程的重要研究领域,通过对基本软件结构和经典设计风格的学习和研究,掌握软件体系结构设计的基本原则和技术途径;能够拓宽软件方法和技术的知识面,提高软件的设计能力;软件体系结构的重要作用体现在以下三个方面:
1.体系结构是风险承担者进行交流的手段,软件系统的各个风险承担者都关心着系统的各个不同的方面,这些方面都受体系结构的影响。
(1)演化方式,即将现有产品演化为产品线:在基于现有产品体系结构设计的基础上,将特定产品的构件逐步转化为产品线的共用构件,从基于产品的方法逐步转化为基于产品线的软件开发。主要优点是通过对投资回报周期的分解、对现有系统演化的维持使产品线方法的实施风险降到了最小,与革命方式相比,完成核心资源的总周期和总投资较大。
(1)软件体系结构是软件设计过程的一个层面,是相对独立的、有价值的软件设计方法的总结,可作为软件开发指导性的策略和途径。
(2)强调设计过程,而非分析的过程。分析的目标是理解和表示,设计的目标是实现。
(3)非用户的观点及非功能的观点。对于用户,结构是软件系统功能的组合。对于设计者,结构是为特定目标而设立的软件成分以及成分之间的关系。
SOA软件体系结构基本概念:
面向服务的体系结构(service-oriented architecture)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
(2)革命方式,即用软件产品线替代现有产品集:基本停止现有产品的开发,所有工作直接针对软件产品线的核心资源开发。遗留系统只有在符合体系结构和构件需求的情况下,才可以和新的构件协作。因重要需求的变化导致的初始投资报废的风险加大,与演化方式相比,完成核心资源的总周期和总投资较小。由于无法满足产品线方法对软硬件同步的需求,这种方法适用于软硬件结合密切且硬件需求差异大的现有产品集。
1.C2风格。C2体系结构风格可以概括为:通过连接件绑定在一起的按照一组规则运作的并行构件网络。图1中构件与连接件之间的连接体现了C2风格中构建系统的规则。
2.数据抽象和面向对象风格。目前软件界已普遍转向使用面向对象系统,抽象数据类型概念对软件系统有着重要作用。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。图2是数据抽象和面向对象风格的示意图。
UDDI
UDDI的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。
调用RPC与消息传递
Web Service本身其实是在实现应用程序间的通信。我们现在有两种应用程序通信的方法:RPC远程过程调用和消息传递。使用RPC的时候,客户端的概念是调用服务器上的远程过程,通常方式为实例化一个远程对象并调用其方法和属性。RPC系统试图达到一种位置上的透明性:服务器暴露出远程对象的接口,而客户端就好像在本地使用的这些对象的接口一样,这样就隐藏了底层的信息,客户端也就根本不需要知道对象是在哪台机器上。
3.基于事件的隐式调用风格。基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其他构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。
4.管道/过滤器风格。在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。因此,这里的构件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。
所以,公司的CTO王总决定在弄清三个问题之后再做决定,首先就是本公司的业务范围是否适合使用产品线方法,其次是如何在原有产品的基础上建立产品线,最后是成功实施产品线的主要因素是什么?
[问题1]
请用100字以内文字说明A公司是否适合采用产品线方法?为什么?
产品线是指密切相关的一组产品,因为这些产品以类似的方式发挥作用,售给同类客户群,通过同一种类的渠道销售出去产品线可以是密切相关的一组产品,也可以是多个系列产品的集合,面向不同客户群,通过不同销售渠道销售出去;从规模来看,可以是几百万、几千万的小产品线,也可以是几十亿、几百亿的大产品线。A公司的产品符合产品线的要求。所以适合。
框架是待实例化的、可复用的大粒度部件结构。框架面向不同规模的应用问题,是通用的结构。强调针对实际问题和通用结构。应用框架有如下优点:模块化把应用分割成多个组件或模块.模块化的开发互不影响,效率提高.可重用性代码的可重用性.可扩展性客制化,开发者可在框架中插入自定义的业务逻辑。
三、A公司是一家相对较大的软件和硬件企业,专业从事网络设备的开发。从单一的产品开始,现在,已经延伸到包括摄相服务器、扫描服务器、光盘服务器以及其他的存储服务器在内的产品。公司原来的产品都是一个一个地开发,每个软件组织一个项目组。为了适应快速变化的市场,降低开发成本,公司想引入产品线方法。然而,软件产品线开发涉及了一个软件开发组织的多个产品,选择了软件产品线意味着要承担由此带来的许多风险。
Web Service希望实现不同的系统之间能够用“软件-软件对话”的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于Web无缝集成”的目标。
WSDL
Web Service描述语言WSDL就是用机器能阅读的方式提供的一个正式描述文档而基于XML的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。
3)原型系统。
①《软件需求说明书(GB856T——88)》
1
引言................................................................
[问题2]
请用200字以内文字说明如何在原有产品的基础上建立产品线?
建立产品线首先要明确市场需求和企业资源,企业到底能支撑自身做什么样的产品,同时要想清楚未来市场上需要什么样的产品;其次是要策划比较好的产品线,要有两个策划,一个是产品策划,即基于特定目标客群划分的产品组合,另一个是营销策划;第三是标准化,标准化包括设计标准和实施标准。
南京邮电大学
《软件体系结构》大作业
姓名陈何渊
学号B12041318
院系计算机、软件学院
指导老师周国强
2014年12月30日
1、简述软件体系结构的性质、研究意义和目标是什么? (不少于300字)
答
软件体系结构的性质:
软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。
Web Service的主要协议
SOAP
SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。SOAP可以运行在任何其他传输协议上。例如,你可以使用SMTP,即因特网电子邮件协议来传递SOAP消息,这可是很有诱惑力的。在传输层之间的头是不同的,但XML有效负载保持相同。
5.批处理风格。批处理风格的每一步处理都是独立的,并且每一步是顺序执行的,只有当前一步处理完后,后一步处理才能开始,数据传送在步与步之间作为一个整体。批处理的典型应用是经典数据处理和程序开发。
软件设计模式
设计模式是软件问题高效和成熟的设计模板,模板包含了固有的问题的处理逻辑,强调处理逻辑采用方式的直接复用。设计模式/软件设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
Web Service技术,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。依据Web Service规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。Web Service是自描述、自包含的可用网络模块,可以执行具体的业务功能。Web Service也很容易部署,因为它们基于一些常规的产业标准以及已有的一些技术,诸如XML和HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。
XML和XSD
可扩展的标记语言XML是Web Service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既与平台无关,又与厂商无关。XML是由万维网协会(W3C)创建,W3C制定的XML SchemaXSD定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。
Web Service平台是用XSD来作为数据类型系统的。当你用某种语言如VB. NET或C#来构造一个Web Service时,为了符合Web Service标准,所有你使用的数据类型都必须被转换为XSD类型。如想让它使用在不同平台和不同软件的不同组织间传递,还需要用某种东西将它包装起来。这种东西就是一种协议。
五、自选一个系统,基于WebService实现原型系统。
包含三部分内容:
1)系统需求:按照国标《软件需求说明书(GB856T——88)》的要求撰写系统的需求,可以根据系统的特点进行国标文档章节内容的删减。
2)系统设计:按照国标《概要设计说明书(GB8567——88)》、《详细设计说明书(GB8567——88)》的要求撰写系统的设计,可以根据系统的特点进行国标文档章节内容的删减。
[问题3]
请用150字以内文字说明成功实施产品线的主要因素是什么?
(1)对该领域的产品开发已具备长期积累的经验。
(2)一个用于构建产品的好的核心资源库。
(3)好的产品线体系结构。
(4)好的管理(软件资源、人员组织、过程)支持。
四、简述SOA软件体系结构的基本概念,简述Web Service的主要协议。(不少于300字)
2.体系结构是早期设计决策的体现,软件体系结构体现的这些早期的约束比起后续的开发、设计、编码、运行服务以及维护工作更为重要。
3.软件体系结构是可传递和可重用的模型。
目标:
软件体系结构是一系列决策和基本原理的集合,这些决策的目标在于开发高效的软件体系结构。在体系结构设计中所强调的基本原理是系统的可理解性、可维护性和可扩展性。以一些恰当的形式汇集一定数量的体系结构元素满足系统的主要功能和性能的需求,另外还能同时表示出一些非功能性需求。开发出合理的、高效的、高质量的软件体系结构,重点解决系统开发过程中的总体结构问题。
二、简述软件设计风格、软件应用框架和软件设计模式的特征和区别?(不少于300字)
软件体来自百度文库结构风格
风格是表达特定系统元素和组织方式的通用范例。软件体系结构风格,反映众多系统共有结构的习惯用法和语义,表述系统的静态结构方式,强调软件元素的组织形式和通常用法。软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。 下面将介绍几种主要和经典的体系结构风格和它们的优缺点。
研究意义:
软件体系结构是软件工程的重要研究领域,通过对基本软件结构和经典设计风格的学习和研究,掌握软件体系结构设计的基本原则和技术途径;能够拓宽软件方法和技术的知识面,提高软件的设计能力;软件体系结构的重要作用体现在以下三个方面:
1.体系结构是风险承担者进行交流的手段,软件系统的各个风险承担者都关心着系统的各个不同的方面,这些方面都受体系结构的影响。
(1)演化方式,即将现有产品演化为产品线:在基于现有产品体系结构设计的基础上,将特定产品的构件逐步转化为产品线的共用构件,从基于产品的方法逐步转化为基于产品线的软件开发。主要优点是通过对投资回报周期的分解、对现有系统演化的维持使产品线方法的实施风险降到了最小,与革命方式相比,完成核心资源的总周期和总投资较大。
(1)软件体系结构是软件设计过程的一个层面,是相对独立的、有价值的软件设计方法的总结,可作为软件开发指导性的策略和途径。
(2)强调设计过程,而非分析的过程。分析的目标是理解和表示,设计的目标是实现。
(3)非用户的观点及非功能的观点。对于用户,结构是软件系统功能的组合。对于设计者,结构是为特定目标而设立的软件成分以及成分之间的关系。
SOA软件体系结构基本概念:
面向服务的体系结构(service-oriented architecture)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
(2)革命方式,即用软件产品线替代现有产品集:基本停止现有产品的开发,所有工作直接针对软件产品线的核心资源开发。遗留系统只有在符合体系结构和构件需求的情况下,才可以和新的构件协作。因重要需求的变化导致的初始投资报废的风险加大,与演化方式相比,完成核心资源的总周期和总投资较小。由于无法满足产品线方法对软硬件同步的需求,这种方法适用于软硬件结合密切且硬件需求差异大的现有产品集。
1.C2风格。C2体系结构风格可以概括为:通过连接件绑定在一起的按照一组规则运作的并行构件网络。图1中构件与连接件之间的连接体现了C2风格中构建系统的规则。
2.数据抽象和面向对象风格。目前软件界已普遍转向使用面向对象系统,抽象数据类型概念对软件系统有着重要作用。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。图2是数据抽象和面向对象风格的示意图。
UDDI
UDDI的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。
调用RPC与消息传递
Web Service本身其实是在实现应用程序间的通信。我们现在有两种应用程序通信的方法:RPC远程过程调用和消息传递。使用RPC的时候,客户端的概念是调用服务器上的远程过程,通常方式为实例化一个远程对象并调用其方法和属性。RPC系统试图达到一种位置上的透明性:服务器暴露出远程对象的接口,而客户端就好像在本地使用的这些对象的接口一样,这样就隐藏了底层的信息,客户端也就根本不需要知道对象是在哪台机器上。
3.基于事件的隐式调用风格。基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其他构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。
4.管道/过滤器风格。在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。因此,这里的构件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。
所以,公司的CTO王总决定在弄清三个问题之后再做决定,首先就是本公司的业务范围是否适合使用产品线方法,其次是如何在原有产品的基础上建立产品线,最后是成功实施产品线的主要因素是什么?
[问题1]
请用100字以内文字说明A公司是否适合采用产品线方法?为什么?
产品线是指密切相关的一组产品,因为这些产品以类似的方式发挥作用,售给同类客户群,通过同一种类的渠道销售出去产品线可以是密切相关的一组产品,也可以是多个系列产品的集合,面向不同客户群,通过不同销售渠道销售出去;从规模来看,可以是几百万、几千万的小产品线,也可以是几十亿、几百亿的大产品线。A公司的产品符合产品线的要求。所以适合。