第一篇:实验一-软件体系结构风格应用
《软件体系结构风格应用》设计性实验大纲
一、实验目的巩固和加强《软件体系结构》课程中关于软件体系结构风格部分内容的理解。通过该实验,一方面学生能够根据有关软件需求,设计合适的软件体系结构;另方面有关人员课把它作为一个理解软件系统的基础。本次实验建议通过KWIC实例分析,理解和掌握多种软件体系结构风格设计与实现。
二、实验内容
采用多种软件风格设计与实现KWIC实例:
1.采用主/子程序体系结构风格实现KWIC关键词索引系统。
2.采用面向对象体系架构风格实现KWIC关键词索引系统。
3.采用管道过滤体系架构风格实现KWIC关键词索引系统。
4.采用事件过程调用体系架构风格实现KWIC关键词索引系统。
三、实验要求
熟练掌握基于主/子程序体系结构风格的KWIC关键词索引系统,在此基础上,完成基于面向对象体系架构风格的KWIC关键词索引系统设计与实现。选做基于管道过滤体系架构风格的KWIC关键词索引系统;选做基于事件过程调用体系架构风格的KWIC关键词索引系统。
实验课前完成实验报告的实验目的、实验环境、实验内容、实验操作过程等内容;实验课中独立/团队操作完成实验报告的实验操作、实验结果及结论等内容;每人一台PC机,所需软件Win2003/XP、UML工具(EclipseUML/ Rose/Visio/StartUML/)、Eclipse/MyEclipse、JDK6.0等。实验课后完成实验报告的心得体会内容,并及时提交实验报告。
四、实验报告
独立完成;以文本方式提交报告,包含如下内容:系统简介(包含目的,内容);系统设计与实现;实验结果及分析;系统演示。
实验报告要书写规范、文字简练、语句通顺、图表清晰。
五、思考题
1.试分析和比较B/S,二层C/S和三层C/S,指出各自的优点和缺点。
2.在软件开发中,采用异构结构有什么好处,其负面影响有哪些?
第二篇:软件体系结构实验一
南京信息工程大学实验(实习)报告实验(实习)名称(实习)日期系专业年级班次姓名
一、实验目的1)了解智能模型的概念
2)查阅有关SVM算法,并作理解
二、实验要求
1)简介 智能模型基于知识的软件开发模型,它与专家系统结合在一起。该模型应用基于规则的系统,采用归纳和推理机制,帮助软件人员完成开发工作,并使维护在系统规格说明一级进行。该模型在实施过程中要建立知识库,将模型本身、软件工程知识与特定领域的知识分别存入数据库。以软件工程知识为基础的生成规则构成的专家系统与含应用领域知识规则的其他专家系统相结合,构成这一应用领域软件的开发系统。
2)详细说明 智能模型也称为“基于知识的软件开发模型”,它把瀑布模型和专家系统结合在一起,利用专家系统来帮助软件开发人员的工作。该模型应用基于规则的系统,采用归纳和推理机制,使维护在系统规格说明一级进行。这种模型在实施过程中以软件工程知识为基础的生成规则构成的知识系统与包含应用领域知识规则的专家系统相结合,构成这一应用领域软件的开发系统。
智能模型拥有一组工具(如数据查询、报表生成、数据处理、屏幕定义、代码生成、高层图形功能及电子表格等),每个工具都能使开发人员在高层次上定义软件的某些特性,并把开发人员定义的这些软件自动地生成为源代码。这种方法需要四代语言(4GL)的支持。4GL不同于三代语言,其主要特征是用户界面极端友好,即使没有受过训练的非专业程序员,也能用它编写程序;它是一种声明式、交互式和非过程性编程语言。4GL还具有高效的程序代码、智能缺省假设、完备的数据库和应用程序生成器。目前市场上流行的4GL(如Foxpro等)都不同程度地具有上述特征。但4GL目前主要限于事务信息系统的中、小型应用程序的开发。
3)必要性
智能模型所要解决的问题是特定领域的复杂问题,涉及大量的专业知识,而开发人员一般不是该领域的专家,他们对特定领域的熟悉需要一个过程,所以软件需求在初始阶段很难定义得很完整。因此,采用原型实现模型需要通过多次迭代来精化软件需求。
智能模型以知识作为处理对象,这些知识既有理论知识,也有特定领域的经验。在开发过程中需要将这些知识从书本中和特定领域的知识库中抽取出来(即知识获取),选择适当的方法进行编码(即知识表示)建立知识库。将模型、软件工程知识与特定领域的知识分别存入数据库,在这个过程中需要系统开发人员与领域专家的密切合作。
智能模型开发的软件系统强调数据的含义,并试图使用现实世界的语言表达数据的含义。该模型可以勘探现有的数据,从中发现新的事实方法指导用户以专家的水平解决复杂的问题。它以瀑布模型为基本框架,在不同开发阶段引入了原型实现方法和面向对象技术以克服瀑布模型的缺点,适应于特定领域软件和专家决策系统的开发。
三、实验结果
通过本次实验,我对智能模型有了一定的了解和认识,同时也查阅了有关SVM算法的有关知识,并作了一定的理解,对该算法有了一定的认识。
第三篇:软件体系结构实验指导书
《软件体系结构》实验指导书
实验一
系统的用例模型
实验名称:系统的用例模型
实验类型: 设计性实验 学
时:2课时
一、实验目的
1.熟悉用例图的基本功能和使用方法。
2.锻炼结合给定题目,进行有效需求分析的能力。3.掌握如何使用建模工具绘制用例图的方法。
二、实验器材
1.计算机一台。
2.UML建模工具,比如软件ArgoUML,Rational Rose 或StarUML。
三、实验内容
在理解用例图的基本功能和使用方法的基础上,结合具体问题,完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程。用Rational Rose或StarUML工具软件绘制系统的用例图。下文以Rational Rose为例讲解基本步骤。
四、实验步骤
1.结合实际给定题目,完成系统的需求建模。
2.针对每个用例进行业务分析。以图书管理系统中“删除读者信息”用例为例来说明实验具体步骤。
(1)分析:在图书管理系统中,管理员首先登录系统,系统验证通过后,管理方可向系统查询数据,在查询后,系统会给出提示,有没有找到相关的数据,管理员根据系统查询的返回结果,进行下一步的操作,就是删除读者,在删除的过程中,系统会对查询得到的结果判断该记录是否可以删除,若可以删除,则给删除提示,若不能删除,也给相关的提示信息。
(2)根据分析结果,书写业务流程,一般包含以下信息:
①管理员在录入界面,输入待删除的读者名;
②“业务逻辑”组件在数据库中,查找待删除的读者名; ③如果不存在,则显示出错信息,返回步骤①,如果存在则继续; ④“业务逻辑”组件判断“待删除的读者”是否可以删除; ⑤如果不可以,则显示出错信息,返回步骤⑧,如果可以则继续; ⑥在数据库中,删除相关信息; ⑦显示删除成功信息; ⑧结束。
3.根据分析结果,绘制用例图。以图书管理系统中“删除读者信息”用例为例说明具体绘图步骤:(1)在用例图上双击main,出现如图1.1所示,为绘制用例图做好准备。
图1.1(2)在图中的工具栏选取Actor图标,在右边的图中添加一个Actor,并输入名称:administrator,如图1.2所示。
(3)在左边的工具栏中,选取用例的图标,在右边的图中画出一个用例,并输入用例的名称:login。
图1.2(4)按照步骤(3),绘制出如图1.4和图1.5的两个用例。
图1.3
图1.4
图1.5(5)在绘出了用例后,接下来的是绘制参与者与用例实现,如图1.6所示。
图1.6
(6)根据步骤(5),同时完成如图1.7和图1.8。此时,删除读者用例图就到此完成。其系统查询读者信息等其他的功能会在时序图和活动图中描绘。
(7)根据分析情况,进一步添加或细化用例图。
图1.7
图1.8
五、实验报告要求
1. 说明系统的需求建模结果,对主要用例整理用例图。2. 小结实验心得体会。
实验二 系统的类模型
实验名称:系统的类模型
实验类型: 设计性实验 学
时:2课时
一、实验目的
1.理解类的基本概念。
2.掌握如何从需求分析中抽象出类的方法。
3.掌握在ArgoUML,Rational Rose或StarUML中绘制类的操作方法。
二、实验器材
1.计算机一台。
2.ArgoUML,Rational Rose 或StarUML工具软件。
三、实验内容
完成实验一后,对给定题目的系统的需求的初步分析,得出系统的用例图,通过对用例的业务流程的分析,我们可以初步了解系统的业务处理流程。本实验需要对系统进行静态建模,这就需要从系统的用例图去寻找和发现类。用Rational Rose或StarUML工具软件绘制系统的类图。下文以Rational Rose为例讲解基本步骤。
四、实验步骤
1.分析:由前面试验对需求的分析抽象出类。2.绘制类图的步骤:
(1)打开前面初步构建的UML模型文件;(2)打开Rose中的逻辑视图(Logical View),选择分析模型(analysis model)目录。并在其下创建一个子目录并命名为:“图书馆业务功能”。
(3)用鼠标右击“图书馆业务功能”在弹出来的菜单中选择“New→Class diagram”项,创建类图,如图2.1所示。
(4)双击新建的类图,并点右边控件集中选中的类的图标,并用鼠标在图中分别拖出一个类图,并命名为Book,如图2.2所示。
图2.1
图2.2(5)接下来的一步为设置类的属性,在新的类中双击该类,在打开属性面板中,可以看到在此可以设置类的属性和方法等其他的信息,图2.3所示;后撞击Attributes这个栏目,此栏目为设置类的属性的选项,在图中间的单击右键,可以看到有一个“Insert”的选项,选中这个选项,图2.4所示,后在出现的对话框中输入相关信息如图2.5所示;如书本的ISBN号,在Type这个方框内输入此属性的类型值,同时可以看到一栏可以设置此属性的访问权限,一般这些属性都设置Private这个权限,如图2.6所示。这个类的其他属性也可以按照以上的做法设置,最后得到的结果是图2.7所示。
图2.3 图2.4
图2.5 图2.6(6)设置好类的属性,现在来设置类的方法(也是操作),双击类后在弹出的菜单上选operations这个选项,可以看到图2.8所示,在图中的空白地方,单击右键,在弹出的菜单中选insert这个选项,也就只有这个选项可用,见图2.9,接着输入方法名,同时可以设置该方法的返回类型,也可以在Documentations的方框内填写一些相关的方法说明,如图2.12所示,设置好该方法的访问权限,见图2.13。类的其他方法也可以按上面来设置好,最后,得到该类的其他方法见类2.14。
图2.7 图2.8
图2.9
图2.11
图2.10
图2.12
图2.13 图2.14(7)至此,类的方法和属性都设置好了,如图2.15所示。
图2.15(8)按照上面的步骤设置好所有类的属性和方法。
(9)为各个类添加关系,由关联、泛化、依赖等关系来静态描述业务。
五、实验报告要求
1.整理实验结果。2.小结实验心得体会。实验三 系统的状态建模
实验名称:系统的状态建模
实验类型: 设计性实验 学
时:2课时
一、实验目的
1.熟悉状态图的基本功能和使用方法。2.掌握如何使用建模工具绘制状态图方法。
二、实验器材
1.计算机一台。
2.ArgoUML,Rational Rose或StarUML 工具软件。
三、实验内容
完成实验一后,对给定题目的系统的需求的初步分析,得出系统的用例图,通过对用例的业务流程的分析,我们可以初步了解系统的业务处理流程,但对业务处理过程的处理状态间转换了解仍不够,这不利于设计人员对系统业务的进一步理解,而状态图能从对象的动态行为的角度去描述系统的业务活动。因此,在本实验主要完成用例的状态图。
四、实验步骤
1.业务分析:由前面实验对用例的描述和分析得到业务动态行为的状态分析。以用例“还书”为例,还书业务的动态行为是由:空闲(idle)、图书查找(finding)、还书(reversion)、失败(Failure)、归还成功(Success)5种状态及激活相互转换的事件。
2.绘制状态图。
还书的状态图,还书的主要业务都是由管理员来完成,首先管理员必须先登录系统,并通过验证后,便可以进行下一步的操作,查找该书的相关信息,如存在,则进行还书操作,如不存在该信息,则给出提示信息;
绘图步骤:
(1)在用例图中的还书(revesion)用例,单击右键,如图3.1所示,新建一个状态图,命名为revesion状态图,图3.2所示。
图3.1
图3.2(2)双击“receivesion”状态图,展开后,在左边的工具栏上选取一个实心圆点,此结点为开始结点,图3.3所示;当还书的时候,操作者先要询问系统的状态,如果系统忙,操作者则必需等待,因此,得到系统的两种状态,如图3.5所示。
图3.3
图3.4
图3.5(3)操作者在询问系统和状态后,得到的图3.6所示两种状态,如果系统忙,操作者必需要等待、结束,如图3.7和图3.8所示,重返步骤(1)。
图3.6
图3.7
图3.8(4)如系统空闲,则进行对还书的信息进行查询操作,图3.9所示;查询也有两种结果,一是查询得到该书的相关信息,二查询不到该书的相关信息;则此时有两种状态,需要建立两种状态,如图3.10所示。
图3.9
图3.10(5)最后,操作者进行了操作后,系统会给出操作的结果给操作者;操作成功或失败,都会有提示信息给出。整个的还书的过程便完成;图3.11所示。
(7)根据分析设计情况,进一步添加或细化状态图。
图3.11
五、实验报告要求
1.整理实验结果。2.小结实验心得体会。
第四篇:软件体系结构期末考试
软件体系结构期末考试
一、题目(论述题):
结合参与开发的软件工程项目,①论述采用的软件体系结构风格或应用框架,②论述采 用的软件设计基本原则和策略。
二、题目要求:
(1)简要说明软件体系结构的性质、研究意义和目标是什么?
(2)简要说明软件设计风格、软件应用框架和软件设计模式的特征和区别?
(3)简要说明系统中采用的中间件的作用和目标,(如果没有,请选择一种与系统契合的中间件进行描述)。
(4)假设系统没有采用SOA的架构,请简述SOA软件体系结构的基本概念,Web Service的主要协议。
三、内容要求
作业格式要求:
1、给出的标题。
2、报告内容组织结构清晰,语句流畅,无错别字。
3、图、表描述恰当、与内容契合、清晰。图、表序号标注准确。
4、A4纸,宋体小4号字,标准页边距,行间距固定值18磅,页码右下。
交打印稿。不多于20页,可正反面打印。
四、评分细则
1、题目整体结构、语言表达、整体格式(20分)
2、软件体系结构的性质、研究意义和目标(5分)
3、软件设计风格、软件应用框架和软件设计模式的特征和区别(5分)
4、系统中间件表述(5分)
5、SOA、WebService简述(5分)
6、论述部分,既要描述,也要有论证(包括适当的评估)(60分)
五、总评成绩
期末成绩*70%+平时成绩
第五篇:软件体系结构解读
创建型模式
1、工厂方法模式
工厂方法模式包含如下角色: i.Product:抽象产品 ii.ConcreteProduct:具体产品 iii.Factory:抽象工厂 iv.ConcreteFactory:具体工厂 结构图:
ProductFactory+factoryMethod(): Product...ConcreteProduct<
2、抽象工厂模式
抽象工厂模式包含如下角色: i.AbstractFactory:抽象工厂 ii.ConcreteFactory:具体工厂 iii.AbstractProduct:抽象产品 iv.Product:具体产品 结构图:
时序图:
3、单例模式
单例模式包含如下角色: i.Singleton:单例 结构图:
Singleton-instance: Singleton-Singleton()+getInstance(): Singleton...if(instance==null)instance=new Singleton();return instance;instance 时序图:
结构型模式
4、组合模式
组合模式包含如下角色: i.Component: 抽象构件 ii.Leaf: 叶子构件 iii.Composite: 容器构件 iv.Client: 客户类
结构图:
ComponentClient++++operation()add(Component c)remove(Component c)getChild(int i)...Leaf+operation()...for(Component child:children){ child.operation();}++++Compositeoperation()add(Component c)remove(Component c)getChild(int i)...children 时序图:
5、外观模式 外观模式包含如下角色: i.Facade: 外观角色 ii.SubSystem:子系统角色 结构图:
ClientFacadeSubSystemASubSystemBSubSystemC
时序图:
6、适配器模式
适配器模式包含如下角色: i.Target:目标抽象类 ii.Adapter:适配器类 iii.Adaptee:适配者类 iv.Client:客户类
结构图:类适配器
ClientTarget+request()...Adaptee+specificRequest()...Adapter+request()...specificRequest();对象适配器: ClientTarget+request()...Adaptee+specificRequest()...Adapter+request()...adapteeadaptee.specificRequest();时序图:
7、代理模式
代理模式包含如下角色: i.Subject: 抽象主题角色 ii.Proxy: 代理主题角色 iii.RealSubject: 真实主题角色
结构图:
Subject+request()...ClientProxy-realSubject: RealSubject+preRequest()+request()+postRequest()...preRequest();realSubject.request();postRequest();RealSubjectrealSubject+request()...时序图:
行为型模式
8、迭代器模式
迭代器模式包含如下角色: i.Iterator: 抽象迭代器 ii.ConcreteIterator: 具体迭代器 iii.Aggregate: 抽象聚合类 iv.ConcreteAggregate: 具体聚合类 结构图:
IteratorAggregate+createIterator()++++first()next()hasNext()currentItem()ConcreteIteratorConcreteAggregate+createIterator()...++++first()next()hasNext()currentItem()时序图:
9、观察者模式
观察者模式包含如下角色: i.Subject: 目标 ii.ConcreteSubject: 具体目标 iii.Observer: 观察者 iv.ConcreteObserver: 具体观察者 结构图:
时序图:
10、命令模式 命令模式包含如下角色: i.Command: 抽象命令类 ii.ConcreteCommand: 具体命令类 iii.Invoker: 调用者 iv.Receiver: 接收者 v.Client:客户类
结构图:
InvokerCommand+execute()...ClientReceiver+action()...ConcreteCommandreceiver-state: +execute()...receiver.action();时序图:
11、策略模式
策略模式包含如下角色: i.Context: 环境类 ii.Strategy: 抽象策略类 iii.ConcreteStrategy: 具体策略类
结构图:
Context-strategy: Strategy+algorithm().........strategy.algorithm();......strategyStrategy{abstract} +algorithm()...ConcreteStrategyA+algorithm()...ConcreteStrategyB+algorithm()...时序图:
读书的好处
1、行万里路,读万卷书。
2、书山有路勤为径,学海无涯苦作舟。
3、读书破万卷,下笔如有神。
4、我所学到的任何有价值的知识都是由自学中得来的。——达尔文
5、少壮不努力,老大徒悲伤。
6、黑发不知勤学早,白首方悔读书迟。——颜真卿
7、宝剑锋从磨砺出,梅花香自苦寒来。
8、读书要三到:心到、眼到、口到
9、玉不琢、不成器,人不学、不知义。
10、一日无书,百事荒废。——陈寿
11、书是人类进步的阶梯。
12、一日不读口生,一日不写手生。
13、我扑在书上,就像饥饿的人扑在面包上。——高尔基
14、书到用时方恨少、事非经过不知难。——陆游
15、读一本好书,就如同和一个高尚的人在交谈——歌德
16、读一切好书,就是和许多高尚的人谈话。——笛卡儿
17、学习永远不晚。——高尔基
18、少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光。——刘向
19、学而不思则惘,思而不学则殆。——孔子
20、读书给人以快乐、给人以光彩、给人以才干。——培根