为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

软件体系结构作业(完整版)

2017-09-19 13页 doc 75KB 493阅读

用户头像

is_037433

暂无简介

举报
软件体系结构作业(完整版)第一章: 1.根据自己的经验,谈谈对软件危机的看法。 软件危机是指软件生产方式无法满足迅速增长的计算机需求,开发和维护过程出现的一系列问题。 以下几个原因导致:(1) 软件自身特点                         (2) 开发人员的弱点                         (3) 用户需求不明                         (4) 缺乏正确理论指导                         (5) 开发规模越来越大                         (6) 开发...
软件体系结构作业(完整版)
第一章: 1.根据自己的经验,谈谈对软件危机的看法。 软件危机是指软件生产方式无法满足迅速增长的计算机需求,开发和维护过程出现的一系列问题。 以下几个原因导致:(1) 软件自身特点                         (2) 开发人员的弱点                         (3) 用户需求不明                         (4) 缺乏正确理论指导                         (5) 开发规模越来越大                         (6) 开发复杂度越来越高 可以通过软件生命周期的模型和软件工具的使用来缓解危机,通过程序自动化和软件工业化生产的方法实现软件标准化的目标,进一步缓解软件危机带来的影响。 软件危机有利有弊,除了带来许多麻烦,也给我们带来许多挑战,克服危机的过程,我们在技术上和创新上都有了一个提升,也算是间接为软件产业的发展做了贡献。 2.什么是软件重用,软件重用的层次可以分为哪几个级别? 软件重用:是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。可以分为三个层次:     (1)代码重用  (2)设计结果重用  (3)分析结果重用 3.什么是可重用构件?相对于普通的软件产品,对可重用构件有何特殊要求? 可充用构件表示软件重用过程中,可重用的软件构件元素。         可重用构件的特殊要求: (1) 可重用构件应该具有功能上的独立性与完整性; (2) 可重用构件应该具有较高的通用性; (3) 可重用构件应该具有较高的灵活; (4) 可重用构件应该具有严格的质量保证; (5) 可重用构件应该具有较高的标准化程。 4.基于构件的软件开发的优势是什么?基于构件的软件开发面临哪些挑战和困难? 优势:基于构件的软件将软件开发的重点从程序编写转移到了基于已有构件的组装,更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担 ,从而降低了软件开发的费用     困难和挑战:没有可依据的参考,可用资源和环境缺乏,开发难度高,而各方面需求增长速度与日剧增,更新和升级的跟进是一个不小的挑战.此外,在同一系统采用多个开发商提供的构件,它们之间的兼容性可能是开发过程中所要面对的一个严峻的问题 挑战和困难: (1)在同一系统采用多个开发商提供的构件,它们之间的兼容性可能是开发过程中所要面对的一个严峻的问题; (2)采用随处可以购买到的构件可能会使开发出来的软件产品丧失技术上的独创性和市场上的竞争力; (3)第三方的构件开发商可能歇业,这会使购买的构件失去维护服务。这些都是在购买第三方构件进行软件开发时无法回避的问题,因此需要对这些风险进行充分的估计。 5.简述3种应用最为广泛的构件技术COM、CORBA和EJB的各自特点。 CORBA的特点: (1)  实现客户与服务对象的完全分开,客户不需要了解服务对象的实现过程以及具体位置。 (2)  应用程序间的统一接口。 (3)  采用面向对象的软件实现方法开发应用系统,实现对象内部细节的完整封装,保留对象方法的对外接口定义。 (4)  分层的设计原则和实现方式。 COM的特点: (1)  语言无关性 。 (2)  可重用性 。 EJB的特点: (1)  可移植性。 (2)  平台独立性。 (3)  简化了分布式对象的开发、部署和访问 。 6.就项目管理方面而言,软件重用项目与非重用项目有哪些不同之处。 使用软件重用技术可减少重复工作,提高软件生产率, 缩短开发周期。同时,由于软构建大多经过严格的质量认证,因此有助于改善软件质量, 大量使用构建, 软件的灵活性和标准化程度可得到提高。 7.实际参与/组织一个软件重用项目的开发,然后总结你是如何组织该项目的开发的。 针对之前的一个软件重用项目的开发过程,将该项目的的软部件进行整合,整理成软部件库,对不要重用的部分进行修剪同时选取需要的软部件。根据以上步骤,然后结合当前开发的项目,进行软件重用。 8.软件体系结构的研究范畴有哪些?举例加以说明? 研究范畴:非形式化的框图,形式化建模符号、体系结构说明的分析与开发工具,体系结构再工程。其中典型的例子是美国卡耐基梅隆大学的Robert J.A11en于l997年提出的Wright系统 9.根据软件体系结构的定义,你认为软件体系结构的模型应该由哪些部分组成? 构件(component): 可以是一组代码,如程序的模块也可以是一个独立的程序(如数据库的SQL服务器); 连接件(connector):是关系的抽象,用以表示构件之间的相互作用。如过程调用、管道、远程过程调用等; 限制(constrain):用于对构件和连接件的语义说明。 10.在软件体系结构的研究和应用中,你认为还有哪些不足之处? (1)缺乏同意的软件体系结构的概念,导致体系结构的研究范畴模糊。 (2)ADL繁多,缺乏同意的ADL的支持。 (3)软件体系结构研究缺乏统一的理论模型支持。 (4)在体系结构描述方便,尽管出现了多种标准规范或建议标准,但仍很难操作。 (5)有关软件体系结构性质的研究尚不充分,不能明确给出一个良体系结构的属性或判定标准,没有给出良体系结构的设计指导原则,因而对于软件开发实践缺乏有力的促进作用。 (6)缺乏有效的支持环境软件体系结构理论研究与环境支持不同步,缺乏有效的体系结构分析、设计、方针和验证工具支持,导致体系结构应用上的困难。 (7)缺乏有效的体系结构复用方案。 (8)体系结构发现方法研究相对欠缺。 第二章: 1.软件体系结构模型是软件体系结构的表现形式,软件体系结构模型可以分为哪几种,具体是如何划分的? (1)结构模型         这是一个最直观、最普遍的建模方法。这种方法以体系结构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质。研究结构模型的核心是体系结构描述语言。    (2)框架模型         框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。 (3)动态模型           动态模型是对结构或框架模型的补充,研究系统的"大颗粒"的行为性质。例如,描述系统的重新配置或演化。动态可能指系统总体结构的配置、建立或拆除通信通道或计算的过程。这类系统常是激励型的。 (4)过程模型     过程模型研究构造系统的步骤和过程。因而结构是遵循某些过程脚本的结果。 (5)功能模型     该模型认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。它可以看作是一种特殊的框架模型。 2.选择一个规模合适的系统,为其建立“4+1”模型。 3.引入了软件体系结构以后,传统软件过程发生了哪些变化?这种变化有什么好处? 软件体系结构的引入使软件设计开发更加具体和形象,它的模型更使得软件过程更加方便和多样化。其好处在于:包括程序员在内的绝大多数系统的利益相关人员都借助软件体系结构来进行彼此理解、协商、达成共识或者相互沟通的基础,软件体系机构的模型可以应用到具有相似质量属性和功能需求的系统中,并能够促进大规模软件的系统级复用,在很多方面使得软件开发更加人性化。 4.软件体系结构的生命周期模型与软件生命周期模型有什么关系? 软件体系结构是贯穿于软件研发的整个生命周期的系统开发、运行、维护所实施的全部工作和任务的结构框架,给出了软件开发活动各阶段之间的关系,软件体系结构的生命周期模型为软件生命周期模型提供了很好的结构依据和参考,也为其构建了很好的开发方式。 第三章 软件体系结构风格 1、层次系统结构和基于消息的层次系统结构有什么区别? 层次结构将系统进行分级组织,其组织思想是:在层次结构中,每一层向上层提供服务,并作为客户向下层请求服务。分层系统的优点:支持基于抽象程度递增的系统设计;支持功能增强;支持重用。分层系统的缺点:并不是每个系统都可以很容易的划分为分层的模式,甚至即使是层次化的,出于性能的考虑,也不得不吧一些低及或高级的功能综合起来;很难找到一个合适的、正确的层次抽象方法。     消息总线是系统的连接件、负责消息的分派、传递和过滤以及处理结果的返回。消息是构件之间通信的唯一方式。由于构件通过总线进行连接,并不要求各个构件具有相同的地址空间或局限在一台机器上,因此该风格可以很好的刻画分布式开发系统,以及CORBA.DCOM和EJB规范的系统。 2、试分析和比较B/S,二层C/S和三层C/S,指出各自的优点和缺点。 二层C/S体系结构将应用一分为二,服务器负责数据管理,客户机完成与用户的交互任务。优点(1)C/S体系结构具有强大的数据操作的事务处理能力,模型思想简单,易于人们理解和接受。(2)对软硬件的变化有极大的适应性和灵活性,易于对系统进行扩充和缩小。(3)系统中的功能构建充分隔离,节约大量费用。缺点:(1)开发成本较高。(2)客户端程序设计复杂(3)信息内容和形式单一(4)用户界面风格不一,使用繁杂不易推广。(5)软件移植困难(6)软件维护和升级困难(7)新技术不能轻易应用。三层CS在上面的基础上进行了改造,并增加了一个服务器,其优点:(1)允许合理的划分三层结构的功能,能提高系统和软件的可维护性和可扩展性。(2)具有良好的可升级性和开放性。(3)应用的各层可以并行开发,可以选择各自最适合的开发语言。(4)为严格的奠定了坚实的基础。   B/S风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/Web服务器/数据库服务器。优点(1)基于B/S体系结构的软件,系统安装,修改和维护全在服务器端解决。(2)提供了异种机,异种网,异种应用服务的联机,联网,同意服务的最现实的开放性基础。缺点(1)缺乏对动态页面的支持能力,没有集成有效的数据库处理能力。(2)在数据查询等响应速度上,要远远低于C/S体系结构。(3)数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理应用。 3、组织或参与一个采用B/S和C/S混合体系结构的软件项目的开发,总结开发经验。 首先,开发者根据一定的原则,将系统的所有子功能分类,决定哪些子功能适合采用C/S,哪些适合采用B/S。适合采用C/S的子功能应具备以下特点:1安全性要求高;2要求具有较强的交互性;3使用范围小,地点固定;4要求处理大量数据。例如,仓库管理系统中的入库单、领料单的输入功能,财务系统中的凭证输入功能等等。而适合采用B/S的子功能应具备以下特点:1使用范围广,地点灵活;2功能变动频繁;3安全性、交互性要求不同。例如:企业内部信息发布功能,意见箱输入功能,公司财务分析表的查询功能,总裁决策支持系统中的查询功能等等。    相对于单独采用C/S或B/S,这种方案的优点在于:1保证敏感数据的安全性,特别是对数据库的修改和新增加强了控制;2经济有效地利用企业内部计算机的资源,简化了一部分可以简化的客户端;3既保证了复杂功能的交互性,又保证了一般功能的易用与统一;4系统维护简便,布局合理;5网络效率最高。    如果系统开发者在系统设计阶段决定采用这种C/S与B/S相结合的模式,那么在系统开发生命周期的如下各个阶段相对这种新模式都应有所响应。    在系统设计阶段主要考虑的是MIS系统平台选择问题。在详细设计阶段,系统开发者需要根据企业自身的业务特点,以及一定的选择原则,来决定各个子功能采用哪一种模式并在系统说明书上分别注明。在编码设计阶段,系统开发者需要针对采用不同模式的子功能,选用不同的编码方式(例如:C/S可以采用VB编程环境,而B/S采用ASP方法),然后编译生成不同的客户应用及Web服务程序。在安装调试阶段,其特点主要体现在系统的物理结构上,即特定的客户应用程序将被安装在特定的使用者的客户端上,Web服务程序需要被安装在Web服务器上,而每个客户端上都将被安装上浏览器,同时,客户应用的使用者必须接受一定的培训。在软件维护阶段,针对不同模式的子功能应采取不同维护方式。 4、组织或参与一个采用三层体系结构的软件项目的开发,总结开发经验。 三层体系结构包括:用户界面表示层(USL) 、业务逻辑层(BLL) 、数据访问层(DAL) 。各层的作用 :1:数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。3:表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx, 如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。 三层是指逻辑上的三层,即使这三个层放置到一台机器上。 三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。在保证客户端功能的前提下,为用户提供一个简洁的界面。这意味着如果需要修改应用程序代码,只需要对中间层应用服务器进行修改,而不用修改成千上万的客户端应用程序。“中间业务层”的用途有很多,例如:验证用户输入数据、缓存从数据库中读取的数据等等....但是,“中间业务层”的实际目的是将“数据访问层”的最基础的存储逻辑组合起来,形成一种业务规则。要保证“数据访问层”的中的函数功能的原子性!即最小性和不可再分。“数据访问层”只管负责存储或读取数据就可以了。 我们用三层结构主要是使项目结构更清楚,分工更明确,有利于后期的维护和升级。它未必会提升性能,因为当子程序模块未执行结束时,主程序模块只能处于等待状态。这说明将应用程序划分层次,会带来其执行速度上的一些损失。但从团队开发效率角度上来讲却可以感受到大不相同的效果。需要说明一下,三层结构不是.NET的专利,也不是专门用在数据库上的技术。它是一种更加普适的架构设计理念。此种架构要在数据库设计上注意表之间的关系,尽力满足主与子的关系。在功能上对用户要有一定的限制,不要表现在对于子表的删除操作一定要慎重,以免造成主表与子表的数据在逻辑上出现的主表的外键在子表中没有相对应的值。   “三层结构”开发模式,入门难度够高,难于理解和学习。这是对于初学程序设计的人来说的。以这种模式开发出来的软件,代码量通常要稍稍多一些。这往往会令初学者淹没在茫茫的代码之中。望之生畏,对其产生反感,也是可以理解的。 5、在软件开发中,采用异构结构有什么好处,其负面影响有哪些? 1).结构有不同的处理能力的强项和弱点,一个系统的体系结构应该根据实际需要进行选择,以解决实际问题。 2).软件包,框架,通信以及其他一些体系机构上的问题,目前存在者多中标准。即使再某一段时间内某一标准占据着统治地位,但变动最终是绝对的。 3).工作中,我们总会遇到一些遗留下的代码,它们仍有效用,但是却与新系统有某种程度上的不协调。然而在很多场合,将技术与经济综合进行考虑时,总是决定不重写它们。 4).在某一单位中,规定了共享共同的软件包或相互关系的一些标准,仍会存在解释或表示习惯上的不同。 负面影响:大多数应用程序只使用10%的代码实现系统的公开功能,剩下90%的代码完成系统管理功能:输入和输出,用户界面,文本编辑,基本图表,标准对话框,通信,数据确认和旁听追踪,特定领域的基本定义等。 6、选择一个你熟悉的大型软件系统,分析其体系结构中用到的风格,以及表现出的特点(为什么要采用这种风格?带来了哪些优势?具有哪些不足?)。 对社交软件的分析:采用了C/S风格,并且在一定程度上算为三层C/S风格 表示层:社交信息的显示,并提供了更新和搜索等操作 功能层:具有搜索、在线聊天、离线留言、文件传输等等功能 数据层:有数据库服务器提供留言、相册、好友信息等数据 优点:使逻辑结构更为清晰,分类明确,给用户更好的体验 缺点:需要数据通信的支持,对网络的依赖很高,没有网络,许多功能将没有意义。 7、黑板风格和仓库风格之间的区别是什么? 仓库风格的体系结构由两个构件组成:一个是中央数据结构,用于说明当前数据的状态;一个是一组对中央数据进行操作的独立构件。对于系统中数据和状态的控制方法有两种:一个是传统的方法——由输人事务选择进行何种处理,并把执行结果作为当前状态存储到中央数据结构中,这时,仓库是一个传统的数据库体系结构;另一种方法——由中央数据结构的当前状态决定进行何种处理。这时,仓库是一个黑板体系结构,即黑板体系结构是仓库体系结构的特殊化。 8、研究项目:著名的体系结构风格有多少种?利用图书馆和Internet做一些调查,然后给出一个数量。 最为常用的软件体系结构风格,总共有五种,分别是: 数据流风格【Data Flow Style】 调用/返回风格的体系结构【Call-and-Return Style】 虚拟机风格的体系结构【Virtual Machine Style】 独立组件风格的体系结构【Independent Components Style】 仓库风格的体系结构【Data Centered (Repositories) Style】 第四章 软件体系结构描述 1、体系结构描述有哪些方法?有哪些标准和规范? 传统软件体系结构描述方法:   1、图形表达工具   对于软件体系结构的描述和表达,一种简洁易懂且使用广泛的方法是采用由矩形框和有向线段组合而成的图形表达工具。在这种方法中,矩形框代表抽象构件,框内标注的文字为抽象构件的名称,有向线段代表辅助各构件进行通讯、控制或关联的连接件。   目前,这种图形表达工具在软件设计中占据着主导地位。尽管由于在术语和表达语义上存在着一些不规范和不精确,而使得以矩形框与线段为基础的传统图形表达方法在不同系统和不同文档之间有着许多不一致甚至矛盾,但该方法仍然以其简洁易用的特点在实际的设计和开发工作中被广泛使用,并为工作人员传递了大量重要的体系结构思想。   为了克服传统图形表达方法中所缺乏的语义特征,有关研究人员试图通过增加含有语义的图元素的方式来开发图文法理论。   2、模块内连接语言   软件体系结构的第二种描述和表达方法是采用将一种或几种传统程序设计语言的模块连接起来的模块内连接语言MIL(Module Interconnection Language)。由于程序设计语言和模块内连接语言具有严格的语义基础,因此他们能支持对较大的软件单元进行描述,诸如定义/使用和扇入/扇出等操作。   MIL方式对模块化的程序设计和分段编译等程序设计与开发技术确实发挥了很大的作用。但是由于这些语言处理和描述的软件设计开发层次过于依赖程序设计语言,因此限制了他们处理和描述比程序设计语言元素更为抽象的高层次软件体系结构元素的能力 2、体系结构描述语言与程序设计语言有什么区别? ADL与其他的语言比较具有以下能力:(1)构造能力:ADL能够使用较小的独立体系结构元素来建造大型软件系统;(2)抽象能力:ADL使得软件体系结构中的构件和连接件描述可以只关注他们的抽象特性,而不管其具体的实现细节;(3)重用能力:ADL使得组成软件系统的构件,连接件甚至是软件体系结构都成为软件系统开发和设计的可重用部件;(4)组合能力:ADL使得其描述的每一系统元素都有其自己的布局结构,这种描述布局结构的特点使得ADL支持软件系统的动态变化组合;(5)异构能力:ADl允许多个不同的体系结构描述关联存在;(6)分析和推理能力:ADL允许对其描述的体系结构进行多种不同的性能和功能上的多种推理分析。ADL与需求语言的区别在于后者描述的是问题空间,而前者描述的是接空间。ADL与建模语言的区别在于后者对整体行为的关注要大于部分的关注,而ADl集中在构建的表示上。 3、典型的软件体系结构描述语言包括哪些?它们分别需要描述体系结构中哪些基本元素? 主要有五种ADL:UniCon,Darwin,C2 SADL,Acme和xADL. Rapide:一种事件驱动的ADL,它以体系结构定义作为开发框架,支持基于构件的开发.该语言提供了建模,分析,仿真和代码生成的能力,但是没有将连接子显式地表示为一阶实体.  Wright:其主要特点是将CSP 用于软件体系结构的描述,从而完成对体系结构描述的某些形式化推理(包括相容性检查和死锁检查等).但它仅仅是一个设计规约语言,只能用于描述,无法支持系统生成,同时CSP 的使用也是比较困难的事情.  Acme:支持ADL 之间的映射及工具集成的体系结构互交换语言.其目标是作为体系结构设计的一个共同的互交换,以便将现有的各种ADL 在这个框架下统一起来;而它本身也可以看作是一种ADL.  xArch:一种基于XML 的ADL.它使用XML 定义了描述体系结构的核心元素,可以用来简单的描述软件体系结构,也可以作为设计其它ADL的基础,或者用作体系结构描述描述语言的互交换。 xADL2.0:以xArch 为基础的基于XML 的ADL。除了xArch 的核心元素,xADL2.0 还提供了对系统运行时刻和设计时刻的元素的建模支持,类似版本,选项和变量等更高级的配置管理观念,以及对产品家族的体系结构的建模支持.此外,xADL2.0还利用XML 的可扩展性简化了新的ADL的设计及其相应工具的开发过程。 4、对一个你熟悉的软件系统,如果要使用ADL对其体系结构进行描述,你会选择哪一种?为什么?这样选择的优点和缺点各有哪些? 我会选择Acme。下面介绍原因:   Acme是CMU的Acme项目的产物.该项目始于1995年,目的是为了研究一个公共的语言,使之能在不同的体系结构设计工具之间作为体系结构描述信息互换的桥梁.目前Acme及其开发工具包AcmeLib提供了一个通用的,可扩展的基础框架用于描述,表示,生成以及分析系统的软件体系结构.而作为桥梁作用的Acme,由于必须具备大多数ADL共有的概念,因此它本身也是一个ADL,并且是一个相对而言比较简单的通用的ADL. Acme的建模元素和特点 Acme的主要特点表现为: 采用七个基本的体系结构设计元素作为体系结构的本体(architectural ontology), 采用灵活的标注机制支持使用外部语言定义的非结构化信息 ,使用类型机制对常见的可复用的软件体系结构俗语和风格进行抽象描述 使用开放的语义框架对体系结构描述进行推理 Acme的设计元素 Acme的设计元素 ,以下对Acme所采用的设计元素进行简要介绍.这七个设计元素是:  构件(components):系统中的计算元素和数据存储.直观的说,就是线框图中的框.典型的构件有:客户端,服务器,数据库,黑板,过滤器等.  连接子(connectors):构件之间的交互.直观的说,就是线框图中的线.典型的连接子有:过程调用,事件广播,客户和服务器之间的协议等.  系统(systems):构件和连接子的配置.  端口(ports):构件通过端口与外界发生交互.一个构件可以有多个不同类型的端口,每个端口都是一个接口的集合,例如一系列需要以特定顺序调用的过程.  角色(roles):连接子通过角色与外界发生交互.角色定义了构件之间交互的参与者.  表示(representations):构件或者连接子内部结构的描述.通过"表示"这个概念,系统的体系结构就具有了层次结构.同时,"表示"这个概念可以用于描述体系结构实体的多个视图(但是Acme本身并不处理视图之间的对应关系)。 映射(rep-maps):将构件或者连接子的内部"表示"与外部接口进行映射. 简单的客户端-服务器系统  以下是一个简单的客户端-服务器系统的Acme描述: Acme本质上是一些ADL的建模元素的"最大公约数",因此它能作为不同ADL及其支撑工具之间用于信息交换的语言.这是Acme的最大作用,当然这也使得它只能成为一个建模能力一般的ADL,例如Acme中就没有相应的机制用于对构件或者系统行为进行描述或者规约.相关研究者正在考虑在Acme中引入类似于Wright中使用的CSP的形式化语言来解决这个问题.当然,作为一个通用的交换语言,Acme的能力及其可扩展性也不是无限的.例如Acme的扩展仅限于在七个基本设计元素的基础上进行,并且Acme中缺乏用于描述属性及其数据格式的元语言.无论如何,Acme是第一个ADL之间的互交换语言,它的出现使得不同的ADL支持工具之间有可能进行体系结构描述信息的交流.  5、选择一个规模适中的系统,使用UML为其建模。 为一个网上购物系统利用UML为其建模,如下: 统一开发过程RUP把整个软件开发过程分为初始、细化、构造、交付四个阶段,具有用例驱动、以架构为中心、迭代和增量的特点。同其它软件开发方法相比较,RUP具有自身独特的优势,为软件开发提供了重要的方法论指导根据对网上购物系统的体系结构及建模分析,采用UML作为建模语言,结合RUP的基本开发过程,提出适合网上购物系统开发的建模过程。该过程遵循了RUP四个阶段的理论,主要是对初始和细化两个阶段进行了详细的分析。整个过程包括业务建模、需求建模、对象建模、数据库建模和物理建模等五个步骤,每个步骤都会生成一定的系统模型,并用相应的UML图来描述这些模型。在建模过程中,论文采用了RUP中迭代增量式的开发思想,把系统的建模进一步分解为迭代,一个迭代是一个从系统的业务建模到物理建模的完整过程,每一个迭代都会产生一个模型版本,是最终模型的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程,直到成为系统的最终模型。 1 业务建模   业务建模用于对网上购物系统环境的业务过程进行建模。系统分析人员通过网上购物系统的业务建模能够了解系统所处的环境和业务过程,业务建模能够将这些信息进行体现,并表现环境中存在或可以觉察到的过程,从而详细说明网上购物系统所要支持的业务过程。业务建模既确定了业务过程涉及到的业务对象和领域对象,又确定了每个业务过程所需要的资源和能力,包括人员、每个人员的职责和执行的操作、过程的执行方式和协作等。这些信息对于下一步的需求建模是非常重要和有用的。   业务建模一般通过业务过程图来进行描述。业务过程图是对事件逻辑的归类,这些事件被认为是业务的基本元素。其目的是将整个业务领域作为一个过程集进行描述,而不关心过程的次序或单个过程之间的交互作用。业务过程图不必严格精密,它应该全面而不是精确。重要的是,通过查看业务过程图,系统分析人员、设计人员、开发人员和用户能够迅速获得关于业务范围和活动的总体印象。 2 需求建模   需求建模的主要工作是获得系统的需求,建立待开发系统的模型。而用例则有助于更好地了解系统需求并以规范化的格式进行描述。需求建模就是要以用例的方式来描述系统的功能,其主要工作成果是用例模型。采用用例模型来描述进行需求建模的主要过程如下:(1)确定所要开发系统的参与者,参与者可以是人,也可以是与系统交互的外部系统。网上购物系统的参与者主要有管理员、工作人员、顾客、支付系统等。(2)从执行者的角度出发,分析他和系统需要进行的交互作用,并从这些交互过程中抽象出用例。从顾客的角度出发,网上购物系统一般有以下用例:用户登录、用户注册、浏览商品、搜索商品、购买商品、下订单、支付等;从系统管理员的角度出发,网上购物系统一般有以下用例:用户登录、用户管理、商品管理、订单管理等。(3)对每一用例确定其主要的业务过程。例如“用户登录”用例的业务过程为顾客、系统管理员、工作人员等通过用户登录可以获得相应的服务;“支付”用例的业务过程为顾客为所够买物品选择付款方式进行付款。(4)以信息流为中心逐步形成完整的用例模型。网上购物系统的完整用例模型包括很多的用例图,其中既包括系统的顶层用例图,也包括各种细化的用例图。 3 对象建模   确定了系统的需求分析、得出系统的用例模型以后,需要进行的主要任务就是对系统进行对象建模。对象建模的主要工作是把需求建模阶段产生的用例模型转化为系统的静态结构模型和动态行为模型,使建立的系统在特定的环境下完成需求分析中的任务和功能,有利于系统的实现和迭代。这其中主要包括静态结构建模和动态对象建模两部分。 4 数据库建模   数据库建模是从计算机系统的角度对系统所要处理的数据进行建模。数据库系统是整个网上购物系统的基础,数据库建模的好坏直接影响到整个系统的结构、实现的复杂程度、性能、安全性和可维护性等。传统的逻辑数据库建模工具“实体一联系(E.R)""图只针对数据建模,不能对行为建模。而UML的类图能够更好的用于数据库建模。UML的类图不但对数据建模,而且能对行为建模,这些行为在物理数据库中被设计成触发器和存储过程。即使是关系数据库,也可以在类图设计落实后,再采取标准方法把类图映射到具体的关系模型。从类图到关系模型的转换,按照一个类映射为一个关系的原则进行,而类的属性即为关系的属性,标识的标识符即为关系的主键。 5 物理建模   物理建模用于网上购物系统建模过程的最后阶段,是对网上购物系统的物理方面进行建模。它使用UML中的组件图描述网上购物系统中代码组件的物理结构及各个组件之间的依赖关系,使用配置图定义网上购物系统的软硬件结构及通信机制,表示软硬件系统之间的协作关系。   以上五个步骤是根据RUP的四个阶段细化的结果,分别对应了RUP中相应的核心工作流。其中业务建模对应RUP的业务建模工作流,需求建模对应RUP的需求建模工作流,对象建模和数据库建模对应RUP的分析和设计工作流,物理建模对应RUP的实施工作流,对开发完成的系统进行测试、部署和管理分别对应RUP的测试工作流、部署工作流等。 6、尝试使用XADL 2.0描述一个基于B/S体系结构的软件系统。 XADL2.0是以xArch 为基础的基于XML 的ADL。除了xArch 的核心元素,xADL2.0 还提供了对系统运行时刻和设计时刻的元素的建模支持,类似版本,选项和变量等更高级的配置管理观念,以及对产品家族的体系结构的建模支持.此外,xADL2.0还利用XML 的可扩展性简化了新的ADL的设计及其相应工具的开发过程。 充分发挥了 B/S 与 C/S 体系结构的优势,弥补了二者不足。充分考虑用户利益,保证浏览查询者方便操作的同时也使得系统更新简单,维护简单灵活,易于操作。(2) 信息发布采用 B/S 结构,保持了瘦客户端的优点。装入客户机的软件可以采用统一的 WWW 浏览器。而且由于WWW浏览器和网络综合服务器都是基于工业标准,可以在所有的平台上工作。(3) 数据库端采用 C/S 结构,通过 ODBC/JDBC 连接。这一部分只涉及到系统维护、数据更新等,不存在完全采用 C/S 结构带来的客户端维护工作量大等缺点。并且在客户端可以构造非常复杂的应用,界面友好灵活,易于操作,能解决许多 B/S 存在的固有缺点。(4) 对于原有的基于 C/S 体系结构的应用,只需开发用于发布的 WWW 界面,就可非常容易地升级到这种体系结构,并保留原来的某些子系统。这样就充分地利用现有系统的资源。(5) 通过在浏览器中嵌入 ActiveX 控件可以实现在浏览器中不能实现或实现起来比较困难的功能。例如通过浏览器进行报表的应答。(6) 将服务器端划分为WEB服务器和WEB应用程序两部分。WEB 应用程序采用组件技术实现三层体系结构中的逻辑部分,达到封装的目的。 B/S 结构与 C/S 结构各具优缺点,怎样结合 B/S 与 C/S 开发系统是开发 MIS 系统普遍关注的问题。在应用过程中,应结合实际情况,并根据实际情况进行系统的选型与构建,从而开发出高效、安全的应用系统。
/
本文档为【软件体系结构作业(完整版)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索