软件体系结构_第1页
软件体系结构_第2页
软件体系结构_第3页
软件体系结构_第4页
软件体系结构_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z.课程设计(综合实验)报告(2015--2016年度第二学期)名称:课程设计题目:软件体系构造设计与分析院系:计算机系班级:学号:学生姓名:〔你的签名〕指导教师:王晓辉廖尔崇设计周数:〔1周〕成绩:日期:2016年6月19日一、课程设计(综合实验)的目的与要求软件体系构造是软件工程专业的专业必修课。软件体系构造是软件工程方法学的一个分支,开设本课程的目的是使学生在了解了软件工程根底原理、方法、过程的根底上进一步掌握软件构造设计的根本理论和方法,培养设计软件构造的根本能力。本课程的根本内容包括软件体系构造的根本概念、开展现状、软件体系构造风格、传统的软件体系构造、现代软件体系构造等。本课程实验的目标是培养学生的根底编程能力,其培养目标是程序员;软件工程课程使学生上升到软件系统的认识,其培养目标是软件工程师。本课程教学内容属于软件工程的概要设计阶段的方法学,其培养目标是软件架构师。 要求完成实验指导书的实验一~实验五〔验证性实验〕,实验九~实验十一〔设计综合性实验〕。二、设计〔实验〕正文实验一经典软件体系构造风格(一)〔1〕概念:管道-过滤器模式的体系构造是面向数据流的软件体系构造。它最典型的应用是在编译系统。一个普通的编译系统包括词法分析器,语法分析器,语义分析与中间代码生成器,优化器,目标代码生成器等一系列对源程序进展处理的过程。人们可以将编译系统看作一系列过滤器的连接体,按照管道-过滤器的体系构造进展设计。此外,这种体系构造在其它一些领域也有广泛的应用。因此它成为软件工程和软件开发中的一个突出的研究领域。〔2〕体系构造:过滤器过滤器管道〔3〕流程图开场receiver开场receiver启动sender启动receiver启动sender启动receiver判断缓冲区非空否判断缓冲区非空是缓冲区是否有数据缓冲区是否有数据否阻塞read()是阻塞read()读取数据读取数据完毕完毕2.数据抽象和面向对象软件体系构造〔体验继承构造〕(1)概念:面向对象编程是一种计算机编程架构。OOP的一条根本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP到达了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。(2)体系构造模型:对象对象对象对象对象对象过程调用对象对象对象对象抽象数据类型(3)流程图开场开场输入数据输入数据按照不同类型正方形椭圆矩形圆正方形椭圆矩形圆计算计算输出结果输出结果完毕完毕本例定义了一个抽象类Graph,并在其中定义了一个抽象的计算面积的函数Area(),通过子类中的具体图像以及数据来计算。实验二经典软件体系构造风格(二)基于事件的隐式调用风格概念:基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或播送一个或多个事件。系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。从体系构造上说,这种风格的构件是一些模块,这些模块既可以是一些过程,又可以是一些事件的集合。过程可以用通用的方式调用,也可以在系统事件中注册一些过程,当发生这些事件时,过程被调用。基于事件的隐式调用风格的主要特点是事件的触发者并不知道哪些构件会被这些事件影响。这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用,因此,许多隐式调用的系统也包含显式调用作为构件交互的补充形式。优点:〔1〕为软件重用提供了强大的支持。当需要将一个构件参加现存系统中时,只需将它注册到系统的事件中。〔2〕为改良系统带来了方便。当用一个构件代替另一个构件时,不会影响到其它构件的接口。隐式调用系统的主要缺点有:〔1〕构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其它构件是否会响应它。而且即使它知道事件注册了哪些构件的构成,它也不能保证这些过程被调用的顺序。〔2〕数据交换的问题。有时数据可被一个事件传递,但另一些情况下,基于事件的系统必须依靠一个共享的仓库进展交互。在这些情况下,全局性能和资源管理便成了问题。〔3〕既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理存在问题。流程图:开场开场点击按钮点击按钮生成点击按钮事件生成点击按钮事件监听器检测到事件并响应此事件监听器检测到事件并响应此事件按钮与动作事件是常用控制组件的事件,利用btn.addActionListener()函数将监听器注册给了按钮,并通过actionPerformed()函数判断事件是否是点击按钮触发并产生相应的响应,该函数会遍历注册到按钮监听器集中的所有对象并回调方法产生相应的响应。层次软件体系构造概念:层次构造是一种操作系统的组织构造,其提供了一种隔离操作系统各层功能的模型,是根据信息的类型、级别、优先级等划分并按照特定的规则排列的一群硬件或软件工程。最大特点就是将一个大型复杂的系统分解成假设干单向依赖的层次,即每一层都提供一组功能且这些功能只依赖该层以内的的各层。体系构造:用户界面层用户界面层测试工具层测试工具层被测试软件被测试软件层说明:每层之间都是有相应的过程调用,而且每层之中也有对应的构件实验四MVC风格〔1〕概念:MVC全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示别离的方法组织代码,将业务逻辑聚集到一个部件里面,在改良和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的开展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的构造中。〔2〕上机流程:本实验需要自行添加CarFiles和CarImages文件夹并向其中添加所需的文件,然后才能运行〔用myeclipse〕。然后是修改了局部代码〔流程图下面〕(3)运行流程开场开场输入信息输入信息选择车辆选择车辆输如竞拍价格并确认输如竞拍价格并确认判断是否有车辆判断是否有车辆图片Cannotfindthefile否Cannotfindthefile是输出汽车图片显示汽车价格输出汽车图片显示汽车价格实验九C2模式1.概念:C2体系构造风格可以概括为:通过连接件绑定在一起的按照一组规则运作的并行构件网络。C2风格中的系统组织规则如下:〔1〕系统中的构件和连接件都有一个顶部和一个底部;〔2〕构件的顶部应连接到*连接件的底部,构件的底部则应连接到*连接件的顶部,而构件与构件之间的直接连接是不允许的;〔3〕一个连接件可以和任意数目的其它构件和连接件连接;〔4〕当两个连接件进展直接连接时,必须由其中一个的底部到另一个的顶部。2.特点:C2风格是最常用的一种软件体系构造风格。从C2风格的组织规则和构造图中,我们可以得出,C2风格具有以下特点:〔1〕系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起;〔2〕所有构件之间的通讯是通过以连接件为中介的异步消息交换机制来实现的;〔3〕构件相对独立,构件之间依赖性较少。系统中不存在*些构件将在同一地址空间内执行,或*些构件共享特定控制线程之类的相关性假设。2的体系构造:4.程序类图:5.说明:编写了一个类,能够直接计算表达式,并能够将计算结果直接发送给cal,并显示出来。实验十黑盒模型1.概念:黑盒模型即仓库风格,在仓库风格中,有两种不同的构件:中央数据构造说明当前状态,独立构件在中央数据存贮上执行,仓库与外构件间的相互作用在系统中会有大的变化。控制原则的选取产生两个主要的子类。假设输入流中*类时间触发进程执行的选择,则仓库是一传统型数据库;另一方面,假设中央数据构造的当前状态触发进程执行的选择,则仓库是一黑板系统。黑板系统主要由三局部组成:〔1〕知识源。知识源中包含独立的、与应用程序相关的知识,知识源之间不直接进展通讯,它们之间的交互只通过黑板来完成。〔2〕黑板数据构造。黑板数据是按照与应用程序相关的层次来组织的解决问题的数据,知识源通过不断地改变黑板数据来解决问题。〔3〕控制。控制完全由黑板的状态驱动,黑板状态的改变决定使用的特定知识。2.依赖关系图:小车行走路线函数代码:publicvoidmakeNe*tWorkItem(){count++;if(count<MA*_STEP){//控制单独一个汽车前进//wm.AddANewWork(newWorkItem(1,random.Ne*t(10),0/*random.Ne*t(30)*/));if(wm.cars.Count!=0){if(wm.cars[0].*>=600-a*60&&e==1){wm.AddANewWork(newWorkItem(1,0,0.5*Math.PI));a++;e++;}elseif(wm.cars[0].y>=600-b*60&&e==2){wm.AddANewWork(newWorkItem(1,0,0.5*Math.PI));b++;e++;}elseif(wm.cars[0].*<=c*60&&e==3){wm.AddANewWork(newWorkItem(1,0,0.5*Math.PI));c++;e++;}elseif(wm.cars[0].y<=d*60&&e==4){wm.AddANewWork(newWorkItem(1,0,0.5*Math.PI));d++;e=1;}else{wm.AddANewWork(newWorkItem(1,0,0));}代码分析:一开场小车的坐标为〔0,0〕,小车的加速度为0,改变小车方向的函数与小车的坐标有关,即wm.cars[0].*>=600-a*60等,小车的方向变量为e,每次当e变化时他的行走方向就改变0.5*π,即wm.AddANewWork(newWorkItem(1,0,0.5*Math.PI)),并且每次改变方向,他改变方向前所行走距离都会减少60,这样逐渐缩小他探索路线的圈的范围,最终探索全部区域。实验十一SOA模式1.概念:面向效劳的体系构造〔SOA〕是一个组件模型,它将应用程序的不同功能单元〔称为效劳〕通过这些效劳之间定义良好的接口和契约联系起来。接口是采用中立的方式进展定义的,它应该独立于实现效劳的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的效劳可以以一种统一和通用的方式进展交互。它可以根据需求通过网络对松散耦合的粗粒度应用组件进展分布式部署、组合和使用。效劳层是SOA的根底,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。2.优势:对SOA的需要来源于需要使业务IT系统变得更加灵活,以适应业务中的改变。通过允许强定义的关系和依然灵活的特定实现,IT系统既可以利用现有系统的功能,又可以准备在以后做一些改变来满足它们之间交互的需要。3.特征:SOA的实施具有几个鲜明的根本特征。实施SOA的关键目标是实现企业IT资产的最大化作用。要实现这一目标,就要在实施SOA的过程中牢记以下特征:可从企业外部访问,随时可用,粗粒度的效劳接口分级,松散耦合可重用的效劳,效劳接口设计管理,标准化的效劳接口,支持各种消息模式,准确定义的效劳契约。程序构造:开场开场用户输入需要查询的城市,点击确认按钮用户输入需要查询的城市,点击确认按钮按照网站发起web效劳adress查询请求按照网站发起web效劳adress查询请求网站效劳器反应给程序当地的天气信息网站效劳器反应给程序当地的天气信息程序筛选出需要的信息并显示到用户界面程序筛选出需要的信息并显示到用户界面完毕完毕三、课程设计〔综合实验〕总结或结论通过本次实验,我对于软件体系构造的理解进一步加深,同时也了解到自己与其他人之间的差距,非常感谢实验过程中教师的悉心教诲,让我能够完成这次实验设计,下面请允许

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论