软件体系结构5
- 格式:ppt
- 大小:672.50 KB
- 文档页数:19


未知驱动探索,专注成就专业
1
软件体系结构
引言
软件体系结构是指在软件系统中,对系统整体结构进行组织和设计的过程。一个合理的软件体系结构能够帮助开发者降低系统的复杂度,提高系统的可维护性和可扩展性。本文将介绍软件体系结构的基本概念和常用的体系结构模式,以及如何进行软件体系结构设计。
软件体系结构的基本概念
软件体系结构是一个抽象的概念,用于描述软件系统中各个组件之间的关系和交互方式。它主要由以下几个基本概念组成:
1. 组件(Component):组件是软件系统中的一个独立的功能单元,可以由一个或多个模块(Module)组成,实现特定的功能。
2. 接口(Interface):接口定义了组件之间的通信方式和消息传递方式。一个组件可以提供多个接口供其他组件使用。 未知驱动探索,专注成就专业
2
3. 关系(Relationship):组件之间的关系可以是依赖关系(Dependency)、关联关系(Association)、聚合关系(Aggregation)和组合关系(Composition)等。这些关系将多个组件链接起来,形成一个组织结构。
4. 架构风格(Architectural Style):架构风格定义了软件系统的整体结构的模式和约束。常见的架构风格包括层次结构(Layered)、客户端-服务器(Client-Server)、发布-订阅(Publish-Subscribe)等。
常用的软件体系结构模式
在进行软件体系结构设计时,可以借鉴一些常用的体系结构模式。下面介绍几种常见的模式:
1. 层次结构(Layered):层次结构将软件系统划分为若干层,每一层负责特定的功能。上层的组件可以调用下层的组件,反之则不行。这种模式可以降低系统的复杂度和耦合度,提高系统的可维护性。
2. 客户端-服务器(Client-Server):客户端-服务器模式将软件系统划分为客户端和服务器两个部分。客户端负责与用户进行交互,而服务器负责处理客户端的请求并返未知驱动探索,专注成就专业
创建型模式
1、 工厂方法模式
工厂方法模式包含如下角色:
i. Product:抽象产品
ii. ConcreteProduct:具体产品
iii. Factory:抽象工厂
iv. ConcreteFactory:具体工厂
结构图:
时序图:
2、 抽象工厂模式
抽象工厂模式包含如下角色:
i. AbstractFactory:抽象工厂
ii. ConcreteFactory:具体工厂
iii. AbstractProduct:抽象产品
iv. Product:具体产品
结构图:
时序图: return new ConcreteProduct();<>ConcreteProductProductConcreteFactory+factoryMethod ()...: ProductFactory+factoryMethod ()...: Product
3、 单例模式
单例模式包含如下角色:
i. Singleton:单例
结构图:
时序图:
结构型模式
4、 组合模式
组合模式包含如下角色:
i. Component: 抽象构件
ii. Leaf: 叶子构件
iii. Composite: 容器构件
iv. Client: 客户类
结构图:
时序图:
5、 外观模式 childrenClientComponent++++operation ()add (Component c)remove (Component c)getChild (int i)...Leaf+operation ()posite++++operation ()add (Component c)remove (Component c)getChild (int i)...for(Component child:children){ child.operation();}instanceif(instance==null) instance=new Singleton();return instance;Singleton-instance: Singleton-+Singleton ()getInstance ()...: Singleton外观模式包含如下角色:
学 生 实 验 报 告
(理工类)
课程名称: 软件设计与体系结构 专业班级: 15软嵌3班
学生学号: 1512011109 学生姓名: 孙家伟
所属院部: 软件工程学院 指导教师: 张海涛
20 17 ——20 18 学年 第 1 学期
金陵科技学院教务处制 实验报告书写要求
实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。
实验报告书写说明
实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。
填写注意事项
(1)细致观察,及时、准确、如实记录。
(2)准确说明,层次清晰。
(3)尽量采用专用术语来说明事物。
(4)外文、符号、公式要准确,应使用统一规定的名词和符号。
(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。
实验报告批改说明
实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。
实验报告装订要求
实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。
实验项目名称: 经典软件体系结构风格 实验学时: 2
同组学生姓名: 实验地点: 1514
实验日期: 2017.10.23 实验成绩:
批改教师: 批改时间:
一、实验目的和要求
1
《软件体系结构》
实验报告
项目名称 结构型和行为型设计模式
专业班级
学 号
姓 名
实验成绩:
批阅教师:
年 月 日
2 实验5 结构型和行为型设计模式实验
实验学时: 2
每组人数: 1
实验类型: 3 (1:基础性 2:综合性 3:设计性 4:研究性)
实验要求: 1 (1:必修 2:选修 3:其它)
实验类别: 3 (1:基础 2:专业基础 3:专业 4:其它)
一、实验目的
熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的结构型和行为型设计模式,包括代理模式、职责链模式和命令模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。
二、实验内容
1. 在某应用软件中需要记录业务方法的调用日志,在不修改现有业务类的基础上为每一个类提供一个日志记录代理类,在代理类中输出日志,例如在业务方法method()调用之前输出“方法method()被调用,调用时间为2014-11-5 10:10:10”,调用之后如果没有抛异常则输出“方法method()调用成功”,否则输出“方法method()调用失败”。在代理类中调用真实业务类的业务方法,使用代理模式设计该日志记录模块的结构,绘制类图并编程模拟实现。
2. 某软件公司承接了某信息咨询公司的收费商务信息查询系统的开发任务,该系统的基本需求如下:
(1) 在进行商务信息查询之前用户需要通过身份验证,只有合法用户才能够使用该查询系统;
(2) 在进行商务信息查询时系统需要记录查询日志,以便根据查询次数收取查询费用。
该软件公司开发人员已完成了商务信息查询模块的开发任务,现希望能够以一种松耦合的方式向原有系统增加身份验证和日志记录功能,客户端代码可以无区别地对待原始的商务信息查询模块和增加新功能之后的商务信息查询模块,而且可能在将来还要在该信息查询模块中增加一些新的功能。