软件体系结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计(综合实验)报告
( 2015 -- 2016 年度第二学期)
名称:课程设计
题目:软件体系结构设计与分析院系:计算机系
班级:
学号:
学生姓名:(你的签名)
指导教师:王晓辉廖尔崇
设计周数:(1周)
成绩:
日期:2016年6月19 日
一、课程设计(综合实验)的目的与要求
软件体系结构是软件工程专业的专业必修课。软件体系结构是软件工程方法学的一个分支,开设本课程的目的是使学生在了解了软件工程基础原理、方法、过程的基础上进一步掌握软件结构设计的基本理论和方法,培养设计软件结构的基本能力。本课程的基本内容包括软件体系结构的基本概念、发展现状、软件体系结构风格、传统的软件体系结构、现代软件体系结构等。
本课程实验的目标是培养学生的基础编程能力,其培养目标是程序员;软件工程课程使学生上升到软件系统的认识,其培养目标是软件工程师。本课程教学内容属于软件工程的概要设计阶段的方法学,其培养目标是软件架构师。
要求完成实验指导书的实验一~实验五(验证性实验),实验九~实验十一(设计综合性实验)。
二、设计(实验)正文
实验一经典软件体系结构风格(一)
1.管道过滤器风格
(1)概念:管道-过滤器模式的体系结构是面向数据流的软件体系结构。它最典型的应用是在编译系统。一个普通的编译系统包括词法分析器,语法分析器,语义分析与中间代码生成器,优化器,目标代码生成器等一系列对源程序进行处理的过程。人们可以将编译系统看作一系列过滤器的连接体,按照管道-过滤器的体系结构进行设计。此外,这种体系结构在其它一些领域也有广泛的应用。因此它成为软件工程和软件开发中的一个突出的研究领域。
(2
管道
(3)流程图
2.数据抽象和面向对象软件体系结构(体验继承结构)
(1)概念:面向对象编程是一种计算机编程架构。OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。
(2)体系结构模型:
(3)流程图
本例定义了一个抽象类Graph,并在其中定义了一个抽象的计算面积的函数Area(),通过子类中的具体图像以及数据来计算。
实验二经典软件体系结构风格(二)
1.基于事件的隐式调用风格
概念:基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。
从体系结构上说,这种风格的构件是一些模块,这些模块既可以是一些过程,又可以是一些事件的集合。过程可以用通用的方式调用,也可以在系统事件中注册一些过程,当发生这些事件时,过程被调用。
基于事件的隐式调用风格的主要特点是事件的触发者并不知道哪些构件会被这些事件影响。这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用,因此,许多隐式调用的系统也包含显式调用作为构件交互的补充形式。
优点:(1)为软件重用提供了强大的支持。当需要将一个构件加入现存系统中时,只需将它注册到系统的事件中。
(2)为改进系统带来了方便。当用一个构件代替另一个构件时,不会影响到其它构件的接口。
隐式调用系统的主要缺点有:
(1)构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其它构件是否会响应它。而且即使它知道事件注册了哪些构件的构成,它也不能保证这些过程被调用的顺序。
(2)数据交换的问题。有时数据可被一个事件传递,但另一些情况下,基于事件的系统必须依靠一个共享的仓库进行交互。在这些情况下,全局性能和资源管理便成了问题。
(3)既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理存在问题。
流程图:
按钮与动作事件是常用控制组件的事件,利用btn.addActionListener()函数将监听器注册给了按钮,并通过actionPerformed()函数判断事件是否是点击按钮触发并产生相应的响应,该函数会遍历注册到按钮监听器集中的所有对象并回调方法产生相应的响应。
2.层次软件体系结构
(1)概念:层次结构是一种操作系统的组织结构,其提供了一种隔离操作系统各层功能的模型,是根据信息的类型、级别、优先级等划分并按照特定的
规则排列的一群硬件或软件项目。最大特点就是将一个大型复杂的系统分
解成若干单向依赖的层次,即每一层都提供一组功能且这些功能只依赖该
层以内的的各层。
(2)体系结构:
说明:每层之间都是有相应的过程调用,而且每层之中也有对应的构件
实验四 MVC 风格
(1)概念:MVC 全名是Model View Controller ,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC 被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
(2)上机流程:本实验需要自行添加CarFiles 和CarImages 文件夹并向其中添加所需的文件,然后才能运行(用myeclipse )。然后是修改了部分代码(流程图下面)
( 3 ) 运行流程
否 是
实验九 C2模式
1.概念: C2体系结构风格可以概括为:通过连接件绑定在一起的按照一组规则运作的并行
构件网络。C2风格中的系统组织规则如下:
(1)系统中的构件和连接件都有一个顶部和一个底部;
开始
输入信息 选择车辆 判断是否有车辆图片 输出汽车图片 Cannot find the file 输如竞拍价格并确认 显示汽车价格