中南大学软件体系结构重要资料
UML-软件体系结构-实验2-中南大学-软件学院
实验2 UML实验(2)实验学时: 2每组人数: 1实验类型: 3 (1:基础性2:综合性3:设计性4:研究性)实验要求: 1 (1:必修2:选修3:其它)实验类别: 3 (1:基础2:专业基础3:专业4:其它)一、实验目的1. 学习类图的绘制;2. 学习从系统需求中识别类,并构建相应的面向对象模型;3. 学习使用顺序图描述对象之间的交互;4. 学习使用活动图为业务流程建模;5. 学习使用PowerDesigner实现正向工程和逆向工程。
二、实验内容1. 根据以下描述绘制类图,再正向工程生成Java源代码(也可生成其他面向对象语言的源代码,如C++或C#等):图形(Shape)可分为圆形(Circle)、矩形(Rectangle)、椭圆形(Ellipse)等具体图形,在Shape 类中提供了一个抽象的draw()方法用于绘制图形,而在具体的图形类中实现该抽象draw()方法。
提供一个图形工厂类(ShapeFactory),该类提供一个静态方法createShape(char type),其返回类型为Shape,参数type为所需绘制图形对应的代码,例如“c”表示圆形,“r”表示矩形,“e”表示椭圆形等,在createShape()方法中,可以使用条件语句来判断所需绘制图形的类型,并根据参数的不同返回不同的具体形状对象。
【注:“创建关系”是一种特殊的“依赖关系”】2. 根据以下描述绘制类图:某商场会员管理系统包含一个会员类(Member),会员的基本信息包括会员编号、会员姓名、联系电话、电子邮箱、地址等,会员可分为金卡会员(GoldMember)和银卡会员(SilverMember)两种,不同类型的会员在购物时可以享受不同的折扣;每个会员可以拥有一个或多个订单(Order),每一个订单又可以包含至少一条商品销售信息(ProductItem),商品销售信息包括订单编号、商品编号、商品数量、商品单价和折扣等;每一条商品销售信息对应一类商品(Product),商品信息包括商品编号、商品名称、商品单价、商品库存量、商品产地等。
软件体系结构(老师划重点版)
软件体系结构(老师划重点版)软件体系结构复习资料Chapter 11.软件重用技术可以减少软件开发过程中大量的重复性工作,这样就能提高软件生产率、降低开发成本、缩短开发周期。
2.软件构件是语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上他是语义描述、通信接口和实现代码的复合体。
简单的说,构件是具有一定的功能,能够独立工作或能同其他构件装配起来协调工作的程序体。
3.可重用技术对构件库组织方法的要求是:不仅要支持精确匹配、还要支持相似构件的查找。
4.超文本方法与基于数据库系统的构件库组织方法不同,它基于全文检索技术。
5.件体系结构充当一个理解系统构件和他们之间关系的框架,特别是那些始终跨越时间和实现的属性。
Chapter 26.软件体系结构的模型分为五种:结构模型、框架模型、动态模型、过程模型和功能模型,最常用的是结构模型和动态模型。
7.“4+1视图模型“从5个不同的视角:逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。
8.逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。
开发视图也可以成为模块视图,主要侧重于软件模块的组织与管理。
进程视图侧重于系统的运行特性,主要关注一些非功能性的需求,例如系统的性能和可用性。
物理视图主要考虑如何把软件映射的硬件上,它通常要考虑系统性能、规模和可靠性等。
场景可以看做是那些重要系统活动的抽象,他是四个视图有效的联系起来,从某种意义上说场景是最重要的需求抽象。
从以上分析可知,逻辑视图和开发视图描述软件的静态结构,进程视图和物理视图描述系统的动态结构。
9.软件体系结构的核心模型有五种元素构成:构件、连接件、配置、端口和角色,其中构件、连接件和配置是最近本的元素。
构件时具有某种功能的可重用的软件模板单元,表示系统中最重要的计算元素和计算存储。
构件有两种:符合构件和原子构件,符合构件有其他符合构件和原子构件通过连接而成。
南信 软件体系结构 必考点
软件体系结构复习填空、判断:1.构件概念构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。
简单地说,构件是具有一定的功能,能够独立工作或能同其他构件装配起来协调工作的程序体,构件的使用同它的开发、生产无关。
构件分类方法:关键字分类法、刻面分类法、超文本组织法2.ADL的构成要素构件:是一个计算或数据存储单元,构件是计算与状态存在的场所,其自身也包含多种属性;连接件:用于建立构件间的交互以及支配这些交互规则的体系结构构造模块,它可以不与现实系统中的编译单元对应;体系结构配置/拓扑:描述体系结构的构件与连接件的连接图,它提供信息来确定构件是否正确连接、接口是否匹配、连接件构成的通信是否正确,并说明实现要求行为的组合语义。
3.动态软件体系结构概念动态性分为三类:交互式动态性、结构化动态性、体系结构动态性。
4.基于构件的动态系统结构模型:应用层、中间层、体系结构层5.Web服务模型(三种逻辑构件):一个完整的Web服务包括三种逻辑构建:服务提供者、服务代理和服务请求。
6.设计模式目录中对模式的分类根据模式的目标,可以将它们分成创建性模式、结构性模式和行为性模式。
创建性模式处理的是对象的创建过程,结构性模式处理的是对象/类的组合,行为性模式处理类和对象间的交互方式和任务分布。
7.体系结构驱动所谓体系结构驱动,是指构成体系结构的商业、质量和功能需求的组合。
它决定ABSD方法。
8.基于实现和说明的程序测试方法是否适用于对软件体系结构的测试。
不适用9.可用性概念可用性是系统能够正常运行的时间比例。
经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
10.SEI模型SEI将产品线的基本活动分为:核心资源开发(领域工程)、产品开发(应用工程)、管理。
11.框架分类及创建方式框架有三种建立方式:自顶向下,自底向上和混合方式。
(完整word)中南大学软件体系结构实验报告
CENTRAL SOUTH UNIVERSITY软件体系结构实验报告学生姓名周建权班级学号 0909121915指导教师穆帅设计时间2014年11月实验一系统的用例模型一、实验目的1.熟悉用例图的基本功能和使用方法。
2.锻炼结合给定题目,进行有效需求分析的能力。
3.掌握如何使用建模工具绘制用例图的方法。
二、实验器材1.计算机一台。
2.UML建模工具,比如软件Rational Rose 或StarUML。
三、实验内容在理解用例图的基本功能和使用方法的基础上,结合具体问题,完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程。
用Rational Rose或StarUML工具软件绘制系统的用例图.下文以Rational Rose为例讲解基本步骤。
四、实验步骤1.结合实际给定题目,完成系统的需求建模。
2.针对每个用例进行业务分析。
以图书管理系统中“删除读者信息"用例为例来说明实验具体步骤。
(1)分析:在图书管理系统中,管理员首先登录系统,系统验证通过后,管理方可向系统查询数据,在查询后,系统会给出提示,有没有找到相关的数据,管理员根据系统查询的返回结果,进行下一步的操作,就是删除读者,在删除的过程中,系统会对查询得到的结果判断该记录是否可以删除,若可以删除,则给删除提示,若不能删除,也给相关的提示信息。
(2)根据分析结果,书写业务流程,一般包含以下信息:①管理员在录入界面,输入待删除的读者名;②“业务逻辑”组件在数据库中,查找待删除的读者名;③如果不存在,则显示出错信息,返回步骤①,如果存在则继续;④“业务逻辑”组件判断“待删除的读者”是否可以删除;⑤如果不可以,则显示出错信息,返回步骤⑧,如果可以则继续;⑥在数据库中,删除相关信息;⑦显示删除成功信息;⑧结束。
3.根据分析结果,绘制用例图.以图书管理系统中“删除读者信息"用例为例说明具体绘图步骤:(1)在用例图上双击main,出现如图1。
中南大学软件体系结构重点
第一章软件体系结构概述(5分)一、软件体系结构的定义●国内普遍接受的定义:软件体系结构包括构件、连接件和约束,它是可预制和可重构的软件框架结构。
●软件体系结构= 构件+ 连接件+ 约束二、软件体系结构的优势●容易理解●重用●控制成本●可分析性第二章软件体系结构风格(10分)一、软件体系结构风格定义●软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。
An architectural style defines a family of systems in terms of a pattern of structuralorganization.●体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。
词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。
An architectural style defines a vocabulary of components and connector types, and aset of constraints on how they can be combined.二、常见的体系结构风格●管道和过滤器每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。
过滤器风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入。
●数据抽象和面向对象组织数据的表示方法和它们的相应操作被封装在一个抽象数据类型或对象中。
这种风格的构件是对象或者说是抽象数据类型的实例。
对象通过函数和过程的调用来进行交互。
●基于事件的隐式调用构件不直接调用一个过程,而是触发或广播一个或多个事件。
事件的触发者并不知道哪些构件会被这些事件影响。
●分层系统组织成一个层次结构。
每一层都为上一层提供了相应的服务,并且接受下一层提供的服务。
●仓库系统构件:中心数据结构(仓库)和一些独立构件的集合。
中南大学软件体系结构实验五解读
实验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) 在进行商务信息查询时系统需要记录查询日志,以便根据查询次数收取查询费用。
该软件公司开发人员已完成了商务信息查询模块的开发任务,现希望能够以一种松耦合的方式向原有系统增加身份验证和日志记录功能,客户端代码可以无区别地对待原始的商务信息查询模块和增加新功能之后的商务信息查询模块,而且可能在将来还要在该信息查询模块中增加一些新的功能。
试使用代理模式设计并编程模拟实现该收费商务信息查询系统。
【提示:使用保护代理和智能引用代理】3. 某企业的SCM(Supply Chain Management,供应链管理)系统中包含一个采购审批子系统。
软件体系结构参考材料
1. 体系结构的概念软件体系结构包括构成系统的设计元素的描述,设计元素的交互模式,以及在这些模式中的约束。
精简为:组件+连接件+约束。
2. 体系结构风格 体系结构风格是描述特定系统组织方式的惯用范例,强调组织模式和惯用范例。
精简为:构件/连接件集、拓扑约束:每个步骤都是一个独立的程序,每一步必须在前一步结束前才能开始,数据必须是完整的以整体的方式约束:过滤器都是各自独立的,相互之间并不存在联系 优点:良好的隐蔽性,高内聚、低耦合;便于设计者理解;支持功能模块的重用;系统易于维护和扩展;支持 缺点:不适合于交互性很强的应用;数据传输无通用标优点:对象抽象使得组件和组件之间的操作以黑箱的方式进行;封装性使得细节内容对外部环境得以良好的隐藏。
对象之间的访问是通过方法调用来实现的;考虑操封装完成了相关功能和属性的包装,并由对象来对它们进行管理;使用某个对象提供的服务优点:每层为上一层提供服务,使用下一层的服务,智能访问相邻层;大的问题分解为小问题逐步解决,降低缺点:上层必须知道下层的身份,不能调整层次之间的通信进程系统组件:收发消息的进程 连接件:消息连接件:事件-过程绑定,对某事件进行注册了的自动为软件重用提供了强大的支持。
当需要将一个构件加入现存系统中时,只需将它注册到系统的事件中;为改进系统带来了方便。
当用一个构件代替另一个构件时,不 构件放弃了对系统计算的控制。
一个构件触发一个事件时,不能确定其它构件是否会响应它。
而且即使它知道事件注册了哪些构件的构成,它也不能保证这些过程被 调用的顺序;数据交换的问题。
有时数据可被一个事件传递,但另一些情况下,基于事件的系统必须依靠一个共享的仓库进行交互。
在这些情况下,全局性能和资源管理便成了问题;既然过程的语义必须依赖于被触发事基于规则的系统仓库构件:一个内存模块,多个纯计算进程连接件:通过直接访问或过程调用与内存交互的计算单元约束:适用于核心问题是发布、扩大和维护一个复杂信息中心体的应用没有直接的算法可解(多种方法都能解决问题,需要多不确定性(数据和解决方法可能错误或者变化,数据中质量属性场景(Quality Attribute Scenario )是一个具体的质量属性需求,场景就是风险承担者与系统的交互的简短陈述。
软件体系结构重点
一:名词解释构件:语义完整、语法正确和有可重用性价值的单位软件,是软件重用过程中可以明确辨识的系统,结构上,它是语义描述、通信接口和实现代码的复合体。
构件是具有某种功能的可重用的软件模板单元,表示系统中主要的元素和数据存储。
UDDI:Universal Description Discovery and Integration ,UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。
层:层是由一组具有相同抽象级别的构件构成。
模型:通过主观意识借助实体或者虚拟表现、构成客观阐述形态、结构的一种表达目的的物件(物件并不等于物体,不局限于实体与虚拟、不限于平面与立体)。
SOA:面向服务的体系结构,(service-oriented architecture)是构造分布式系统的应用程序的方法,它将应用程序功能作为服务发送给最终用户或者其他服务。
它采用开放标准、与软件资源进行交互并采用表示的标准方法。
体系结构:软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件连接件:表示构件之间的交互。
SOAP:即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML 编码信息的轻量级协议。
WSDL:web Service Description Language 的缩写,是用来描述Web服务和说明如何与Web服务通信的XML语言,为用户提供详细的接口说明书。
Web service:一种新的web应用程序分支,他们是自包含、自描述、模块化的应用,可以发布、定位、通过Web调用。
Web service可以执行从简单的请求到复杂商务处理的任何功能。
一旦部署以后,其他Web Service可以发现并且调用它部署的服务。
中南大学软件工程教材知识点整理
可行性研究1、软件工程项目可行性研究实质是一次大大压缩和简化了的分析和设计过程,主要在较高层次上以较抽象的方式进行,其目的是在尽可能短的时间内以最小的代价确定该项目是否能够开发,是否值得开发。
2、可行性研究不是去开发一个软件项目,而是研究该项目能否在给定的资源和给定的时间开发,是否能够开发,是否值得开发。
3、可行性研究的内容:技术可行性(相关技术分析、资源有效性分析、风险分析);经济可行性(成本估计、效益分析);操作可行性,又称社会可行性和运行可行性(就政治意识形态、法律法规、社会道德、民族意识以及系统运行的组织机构或人员等,分析系统能否运行及运行好坏程度)。
4、可行性研究的步骤:对系统目标和范围的定义→对现行系统进行分析研究→导出新系统的逻辑模型→设计新系统的物理方案→推荐可行的方案。
5、可行性研究阶段,成本估计的方法:①基于已完成的类似项目进行估算;(自顶向下估计)缺点:对开发中某些局部问题难以预估,导致考虑不周②使用简单的“分解技术”来进行成本及工作量的估算;(自底向上估计)③使用经验模型进行成本及工作量的估算。
(经验算法估计)主要经验模型:静态单变量模型;动态多变量模型;COCOMO模型。
COCOMO模型:Boehm将软件成本估算分成3个由粗到细的层次:基本层、中间层和详细层。
每个层次又按软件项目的应用领域和复杂程序分成3种类型:组织型、半独立型和嵌入型。
6、效益分析:系统的效益有两部分:经济效益和社会效益。
经济效益是指用使用新系统而增加的收入,包括使用新系统节省的运行费用,是一种有形的效益。
(经济效益度量指标:货币的时间价值、纯收入、投资回收期、投资回收率);社会效益是一种无形的效益,主要从性质上、心理上进行衡量,很难直接量化,但在某些情况下,无效的效益能转化成有形的效益。
7、系统流程图是描绘物理系统的传统工具,可以采用系统流程图来描述项目的大概业务处理流程,其基本思想是用图形符号以黑盒子形式描绘系统各部件(如程序、数据库、文档、人工过程等)。
软件体系结构复习资料
15、DSSA的定义答案:DSSA就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构16、构件:答案:构件是一个计算单元或数据存储。
也就是说,构件是计算与状态存在的场所。
17、连接件:答案:连接件是用来建立构件间的交互以及支配这些交互规则的体系结构构造模块。
18、体系结构配置:答案:体系结构配置或拓扑是描述体系结构的构件与连接件的连接图。
体系结构配置提供信息来确定构件是否正确连接、接口是否分配、连接件构成的通信是否正确,并说明实现要求行为的组合含义。
31、模式答案:模式是指从某个具体的形式中得到的一种抽象,在特殊的非任意性的环境中,该形式不断地重复出现。
42、核心资源答案:是领域工程所有结果的集合,是产品线中产品构造的基础。
33、设计模式答案:一些设计面向对象的软件开发的经验总结,就是系统的命名、解释、和评价某一个重要的面向对象的可重现的面向对象的设计方案。
43、软件产品线答案:软件产品线就是在一个公共的软件资源集合基础上建立起来的共享同一个特性集合的系统集合45、产品线体系结构答案:产品线体系结构是一个软件体系结构和一组在一族产品中可重用的构件,为增加软件重要、为企业降低软件开发和维护的成本提供了一个重要的途径。
3、简要概产生软件危机的原因答案:1.用户需求不明确 2.缺乏正确的理论指导 3.软件规模越来越大 4.软件复杂度越来越高。
4、软件体系结构的定义众多,你是如何理解软件体系结构的?软件体系结构在软件系统中有何作用?答案:(1)软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素继承的模式以及这些模式的约束组成。
软件体系结构不仅指定了系统的组织结构和拓扑结构,还显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
(2)体系结构是风险承担者进行交流的手段。
它明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性,可以预测软件的质量,是推理和控制更改更简单,有助于循序渐进的原型设计。
软件体系结构重点
1.软件理论包括:–计算模型与可计算理论、算法理论基础、算法设计与分析、程序设计语言理论基础、程序设计语言设计及其编译技术、数理逻辑、数据抽象与基本数据类型的实现技术等。
对软件工程而言,充满了方法论的内容:–如何分析、如何设计、如何编程、如何测试、如何维护、…;–软件模型与软件系统的“质量”在很大程度上依赖于开发者本身的经验与水平。
因为缺乏对软件开发过程的理论层面的刻画,没有将数目众多的方法论总结提升为理论,故而只能是“工程”。
2.体系结构”的共性一组基本的构成要素——构件–这些要素之间的连接关系——连接件–这些要素连接之后形成的拓扑结构——物理分布–作用于这些要素或连接关系上的限制条件——约束–质量——性能3.软件体系结构(SA):–提供了一个结构、行为和属性的高级抽象–从一个较高的层次来考虑组成系统的构件、构件之间的连接,以及由构件与构件交互形成的拓扑结构–这些要素应该满足一定的限制,遵循一定的设计规则,能够在一定的环境下进行演化。
–反映系统开发中具有重要影响的设计决策,便于各种人员的交流,反映多种关注,据此开发的系统能完成系统既定的功能和性能需求4.体系结构= 构件+ 连接件+ 拓扑结构+ 约束+ 质量5.目标:提高软件质量–功能属性(functional properties):能够完成用户功能性需求;–非功能性属性(non-functional properties):能够以用户要求的性能标准,合理、高效的实现各类功能性需求。
6.软件体系结构关注的是:如何将复杂的软件系统划分为模块、如何规范模块的构成和性能、以及如何将这些模块组织为完整的系统。
⏹主要目标:建立一个一致的系统及其视图集,并表达为最终用户和软件设计者需要的结构形式,支持用户和设计者之间的交流与理解。
⏹分为两方面:–外向目标:建立满足最终用户要求的系统需求;–内向目标:建立满足系统设计者需要以及易于系统实现、维护和扩展的系统构件构成。
软件体系结构-知识点概要
第一章软件体系结构概论1 什么是软件危机?主要特点、表现形式、策略软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题软件危机的表现形式:1)软件成本的日益增长:相反,计算机硬件随着技术的进步、生产规模的扩大,价格却在不断的下降,这样一来,软件成本在计算机中占有的比例越来越大2)开发进度难以控制:用户需求变化等各种意想不到的情况层出不穷,常常令软件开发过程很难保证按预定的计划实现,给项目计划和论证工作带来很大的困难3)软件质量差4)软件维护困难软件危机的成因:1 用户需求不明确2 缺乏正确的理论指导3 软件规模越来越大4软件复杂度越来越高如何克服软件危机(策略):用工程的方法进行软件生产的可能性,即应用现代工程的概念、原理、技术和方法进行计算机软件的开发、管理和维护软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。
软件工程包括三要素:方法、工具和过程2软件构件的概念构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。
简单地说,构件是具有一定功能,能够独立工作或能同其他构件装配起来协调工作的程序体,构件的使用同它的开发、生产无关。
构件模型是对构件本质特征的抽象描述3构件重用的概念构件开发的目的是重用,为了让构件在新的软件项目中发挥作用,库的使用者必须完成以下工作:检索与提取构件,理解与评价构件,修改构件,最后将构件组装到新的软件产品中4软件重用的定义软件重用是指在两次或多次不同的软件开发过程中,重复使用相同或相近软件元素的过程。
软件元素(即软构件)包括:程序代码、测试用例、设计文档、设计过程、需求分析文档、领域知识等。
5 管理重用的方法(列举,不用扩展)有效进行软件重用的业界经验总结(1)关注特定领域的软件资源(2)正确命名软件资源(3)慎重考虑是否具备重用的必要(4)迭代演进可重用的资源(5)保持一致性要比遵循行业标准更重要(6)进行代码审查(7)没有自动化的回归测试套件,就不要发布可重用的软件资源(8)理解业务需求之后再去说服别人(9)尽可能与开发团队一起创建可重用的软件资产(10)从生产支持人员那里获取可重用资源的需求6软件体系结构的概念概念:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
中南大学软件架构要点.doc
中南大学软件架构要点.第一章软件架构概述(5分)一、软件架构的定义——中国普遍接受的定义:软件架构包括组件、连接器和约束。
它是一个预制的可重构软件框架。
l软件架构=组件连接器约束第二,软件架构的优势l易于理解l重用l控制成本l分析性第二章软件架构风格(10分)软件架构风格定义软件架构风格是描述特定应用领域中系统组织的常用模式。
架构风格定义了一个系统族,即架构定义了一个词汇表和一组约束。
词汇表包含一些类型的组件和连接器,这组约束指示了系统如何组合这些组件和连接器。
架构样式定义了组件和连接器类型的词汇表,以及关于如何组合它们的一组约束。
第二,通用架构风格的L管道和过滤器每个组件都有一组输入和输出。
该组件读取输入数据流,对其进行内部处理,然后生成输出数据流。
过滤器式连接器充当数据流的管道,将一个过滤器的输出传输到另一个过滤器的输入。
l数据抽象和面向对象的组织数据表示方法及其相应的操作被封装在一个抽象的数据类型或对象中。
这种样式的组件是对象或抽象数据类型的实例。
对象通过调用函数和过程进行交互。
基于事件的隐式调用组件不直接调用过程,而是触发或广播一个或多个事件。
事件的触发器不知道哪些组件会受到这些事件的影响。
分层系统被组织成一个分层结构。
每一层为前一层提供相应的服务,并接受下一层提供的服务。
仓库系统组件:中央数据结构(仓库)和一些独立组件的集合。
仓库和系统中重要的外部组件之间的交互。
L过程控制环源于控制理论中的模型框架,将事务处理视为输入、处理、输出、反馈和再输入的连续过程模型。
通过连续处理,输入数据被转换成具有给定属性的“产品”。
C2风格是一个并行的组件网络,通过连接器连接在一起,并根据一组规则运行。
基于不平等资源的语言风格是为了共享而提出的。
有三个主要组成部分:数据库服务器、客户端应用程序和网络。
优势:ü具有强大的数据操作和事务处理能力,模型简单易懂。
ü对硬件和软件的变化表现出极大的适应性和灵活性,并且易于扩展和缩小系统。
中南大学软件体系结构实验五解读
实验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) 在进行商务信息查询时系统需要记录查询日志,以便根据查询次数收取查询费用。
该软件公司开发人员已完成了商务信息查询模块的开发任务,现希望能够以一种松耦合的方式向原有系统增加身份验证和日志记录功能,客户端代码可以无区别地对待原始的商务信息查询模块和增加新功能之后的商务信息查询模块,而且可能在将来还要在该信息查询模块中增加一些新的功能。
试使用代理模式设计并编程模拟实现该收费商务信息查询系统。
【提示:使用保护代理和智能引用代理】3. 某企业的SCM(Supply Chain Management,供应链管理)系统中包含一个采购审批子系统。
中南大学软件学院架构超强复习大全
●JDBC是用来执行SQL的Java API,开发人员可以使用这些标准API来迎接和操作数据库,实现数据库应用程序的开发。
JDBC是Java的规范,考虑到规范的适应性,JDBC只提供了最直接的数据库操作规范,在Java.sql包中。
2种主要的JDBC连接方式:ODBC桥驱动技术和JDBC纯驱动模式。
ODBC 驱动程序是由微软设计和开发的一种通用的标准的操作数据库的API,也可以认为是一种数据库系统应用程序的接口规范。
纯驱动技术是一种由各个数据库厂商提供的驱动程序,其通过协议的方式,将应用程序的SQL语句直接发送到数据库的DBMS执行,并返回结果。
JDBC 可做三件事:与数据库建立连接执行SQL 语句、处理结果。
使用JDBC直连DB的缺点:1.在某一时刻连接必须服务于一个用户,以免造成事务冲突。
2.创建连接需要耗费时间。
3.保持连接打开状态的代价很大。
使用数据库连接池的优点:1. 资源重用2.更快的系统响应速度3.统一的连接管理,避免数据库连接泄漏●Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。
Servlet能干什么:1.根椐请求创建并响应整个HTML Web 页面,根据客户请求的性质而具有动态内容。
2.创建HTML Web 页面的动态部分,并嵌入到现有静态HTML 页面中。
3.使用服务器上的其他资源,如数据库、其他Java程序。
4.处理与多个 Web 客户端的连接,接收来自多个 Web 客户端的输入信息。
生命周期包括加载、实例化、处理客户端请求和移除,该生命周期由javax.servlet.Sercvet接口的init、setvlet、destroy方法实现。
该生命周期由部署Servlet的容器来控制。
●JSP是Servlet来编写服务端代码过于繁琐和复杂,所以将响应页面的动态部分和静态部分分开。
JSP与Servlet的关系:1 JSP是一种建立在Servlet规范提供的功能之上的动态网页技术 2. JSP文件在用户第一次请求时,会被编译成Servlet,然后由这个Servlet处理用户的请求 3.JSP可以看成是运行时的Servlet。
中南大学软件学院架构复习大全
●使用Hibernate框架进行ORM,可大幅度减少开发时手工使用SQL和JDBC的出错。
优点:简单。
缺点:多了查询,慢(但实际对于一个JAVA EE应用而言,hibernate通常的处理流程是:从数据看里加载记录->将信息发送到表现层供用户修改或删除->将所做修改重新保存到数据库。
在这种处理流程下,应用本身就需要两条SQL语句)。
●iBats---半自动化ORM框架提供了基于JDBC之上的一层简单抽象,是一种基于SQL语句映射的低级别ORM方案,使用原生态SQL作为查询语言。
●OGNL是Object Graph Navigation Language,对象图导航语言。
ONGL是一种强大的表达式语言,它通过简单一致的表达式语法来读取和设置Java对象的属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转换等功能。
WEB容器是指一种安装在服务端计算机中的特定软件。
此类软件遵循HTTP 协议,主要功能是负责侦听指定端口,接收客户端的请求并解析,然后将指定的响应页面发送到客户端。
EL表达式EL是一种简单而强大的语言,提供了在JSP脚本元素范围外使用运行时表达式的功能。
Web Services应用程序组件,使用开放协议进行通信,独立的并可自我描述,可通过使用UDDI来发现,可以被其他应用程序使用,XML是其基础。
●Mybatis一个持久数据映射框架,提供了基于JDBC之上的一层简单抽象,是一种基于SQL语句映射的低级别ORM方案,使用原生态SQL作为查询语言,用来完成数据持久化MyBaits基本原理:在XML 文件中定义SQL语句,预留参数占位符;在运行时,占位符被指定的参数值取代,参数可能来自参数映射表、JavaBean属性、或者简单的参数对象。
在执行SQL查询时,结果字段被映射到对象,映射的方式与参数映射一样。
●ORM框架ORM, Object-Relational Mapping, 对象-关系数据库映射框架。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章软件体系结构概述(5分)一、软件体系结构的定义●国内普遍接受的定义:软件体系结构包括构件、连接件和约束,它是可预制和可重构的软件框架结构。
●软件体系结构= 构件+ 连接件+ 约束二、软件体系结构的优势●容易理解●重用●控制成本●可分析性第二章软件体系结构风格(10分)一、软件体系结构风格定义●软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。
An architectural style defines a family of systems in terms of a pattern ofstructural organization.●体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。
词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。
An architectural style defines a vocabulary of components and connectortypes, and a set of constraints on how they can be combined.二、常见的体系结构风格●管道和过滤器➢每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。
➢过滤器风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入。
●数据抽象和面向对象组织➢数据的表示方法和它们的相应操作被封装在一个抽象数据类型或对象中。
➢这种风格的构件是对象或者说是抽象数据类型的实例。
➢对象通过函数和过程的调用来进行交互。
●基于事件的隐式调用➢构件不直接调用一个过程,而是触发或广播一个或多个事件。
➢事件的触发者并不知道哪些构件会被这些事件影响。
●分层系统➢组织成一个层次结构。
➢每一层都为上一层提供了相应的服务,并且接受下一层提供的服务。
●仓库系统➢构件:中心数据结构(仓库)和一些独立构件的集合。
➢仓库和在系统中很重要的外部构件之间的相互作用。
●过程控制环路➢源自于控制理论中的模型框架,将事务处理看成输入、加工、输出、反馈、再输入的一个持续的过程模型。
➢通过持续性的加工处理过程将输入数据转换成既定属性的“产品”。
●C2风格通过连接件绑定在一起的按照一组规则运作的并行构件网络。
●C/S风格➢基于资源不对等,且为实现共享而提出来的。
➢有三个主要组成部分:数据库服务器、客户应用程序和网络。
➢优点:✓具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
✓对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。
✓将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。
➢缺点:✓开发成本较高。
✓客户端程序设计复杂。
✓信息内容和形式单一。
✓用户界面风格不一,使用繁杂,不利于推广使用。
✓软件移植困难。
✓软件维护和升级困难。
✓新技术不能轻易应用。
●三层C/S风格➢优点:✓能提高系统和软件的可维护性和可扩展性。
✓具有良好的可升级性和开放性。
✓可以并行开发。
✓有效地隔离开表示层与数据层,为严格的安全管理奠定了坚实的基础。
➢缺点:✓各层间的通信效率不高。
✓设计时必须慎重考虑三层间的通信方法、通信频率及数据量。
●B/S风格(浏览器/Web服务器/数据库服务器)➢优点:✓基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。
用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。
✓提供了异种机、异种网、异种应用服务器的联机、联网、统一服务的最现实的开放性基础。
➢缺点:✓缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。
✓系统扩展能力差,安全性难以控制。
✓数据查询等响应速度上,要远远低于C/S体系结构。
✓数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。
第三章软件需求与架构(15分)一、软件需求的概念需求是指明必须实现什么的规格说明。
它描述了系统的行为、特性或属性,是在开发过程中对系统的约束。
二、软件需求的流程三、软件需求的分类●按层分:➢业务需求:反映组织机构或客户对系统、产品高层次的目标要求,通常问题定义本身就是业务需求。
——领域专家➢用户需求:描述用户使用产品必须要完成什么任务,怎么完成的需求。
——用户➢系统需求:从系统的角度来说明软件的需求。
——开发人员●按类分:➢功能需求:系统必须完成的那些事,即为了向它的用户提供有用的功能,产品必须执行的动作。
➢非功能需求:产品必须具备的属性或品质,如正确性、可靠性、性能、容错性和可扩展性等。
➢设计约束:对解决方案的一些约束说明。
四、软件需求面临的主要困难●知识技能问题●态度问题●合作关系●用户说不清楚需求●双方误解需求●开发人员写不好需求文档●用户经常变更需求五、需求工程●定义:把所有与需求直接相关的活动通称为需求工程。
●需求工程创建的第一份文档是需求陈述,用于在项目开发之初理解客户的需求。
●分类:➢需求开发:目的是通过调查与分析,获取用户需求并定义产品需求。
包括:✓需求调查(需求获取)的目的是通过各种途径获取用户的需求信息(原始材料),产生《需求陈述》。
✓需求分析的目的是对各种需求信息进行分析,消除错误,刻画细节等。
常见的需求分析方法有“问答分析法”和“建模分析法”两类。
✓需求定义的目的是根据需求调查和需求分析的结果,进一步定义准确无误的产品需求,产生《软件需求规格说明书》。
➢需求管理:目的是在客户与开发方之间建立对需求的共同理解,维护需求与其它工作成果的一致性,并控制需求的变更。
包括:✓需求确认是指开发方和客户共同对需求文档进行评审,双方对需求达成共识后作出书面承诺,使需求文档具有商业合同效果。
✓需求跟踪是指通过比较需求文档与后续工作成果之间的对应关系,建立与维护“需求跟踪矩阵”,确保产品依据需求文档进行开发。
✓需求变更控制是指依据“变更申请-审批-更改-重新确认”的流程处理需求的变更,防止需求变更失去控制而导致项目发生混乱。
●需求工程结构图:六、需求获取技术●获取需求的方法➢面谈(访谈):开放式问题和封闭式问题➢问卷调查:潜在使用者太多或分布太广时➢会议(需求讨论会、重点问题讨论会、业务专题讨论会、设计专题讨论会)➢文档研究➢任务示范(观察):通过观察可以获得第一手的资料。
➢用例与角色扮演➢原型设计(小规模试验)➢研究类似公司●需求陈述➢是一份文档,陈述用户对软件的期望和需要,并对可能的规格要求加以说明。
➢需求陈述用来明确软件的用途,它不仅要说明软件有什么用,还要在宏观层次上明确软件应具备的特性。
➢核心内容✓开发该软件的动机(愿景)是什么?✓该项目的主要涉众是谁?✓希望该软件具备哪些主要功能和特性?七、需求建模●需求模型分类:➢功能模型——如UC——见下章➢业务流程模型——如DFD✓数据流图(Data Flow Diagram, DFD)是结构化方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程。
➢数据建模模型——如ER✓ER建模用于对数据进行建模(概念模型)✓在ER图中包含三个图形符号,分别表示:实体(矩形)、属性(椭圆)、联系(菱形)八、编写软件需求规格说明书●需求分析的主要成果:软件需求规格说明书(Software RequirementSpecification, SRS)●要求的属性:➢正确:最重要的属性。
➢清楚:让人易读易懂,不在于文档的厚度。
➢无二义性:是指每个需求只有唯一的含义。
➢一致:指《软件需求规格说明书》中各个需求之间不会发生矛盾。
➢必要:其中的各项需求对用户而言应当都是必要的。
➢完备:指《软件需求规格说明书》中没有遗漏一些必要的需求。
➢可实现:其中各项需求对开发方而言应当都是可实现的。
➢可验证:其中的各项需求对用户方而言应当都是可验证的。
➢确定优先级:先做优先级高的需求,后做(甚至放弃)优先级低的需求,这样可以将风险降到最低。
●阐述“做什么”而不是“怎么做”九、需求确认●需求确认是指开发方和客户方共同对《软件需求规格说明书》进行评审,双方对需求达成共识后作出承诺。
●包含两个重要工作:➢需求评审➢需求承诺十、需求跟踪技术●需求跟踪的目的是建立与维护“需求-设计-编程-测试”之间的一致性,确保所有的工作成果符合用户需求。
●跟踪有两种方式:➢正向跟踪。
检查《软件需求规格说明书》中的每个需求是否都能在后继工作成果中找到对应点。
➢逆向跟踪。
检查设计文档、代码、测试用例等工作成果是否都能在《软件需求规格说明书》中找到出处。
●跟踪矩阵➢源跟踪矩阵(需求与需求来源)➢功能跟踪矩阵(需求与功能)➢依赖跟踪矩阵(一个需求与另一个需求)十一、需求变更控制●需求发生变更的起因主要有:➢随着项目的进展,人们(包括开发方和客户方)对需求的了解越来越深入。
原先的需求文档可能存在这样那样的错误或不足,因此要变更需求。
➢市场发生了变化,原先的需求文档可能跟不上当前的市场需求,因此要变更需求。
●需求变更控制的目的:➢如果需求变更带来的好处大于坏处,那么允许变更,但必须按照已定义的变更规程执行,以免变更失去控制。
➢如果需求变更带来的坏处大于好处,那么拒绝变更。
●需求基线➢已经通过正式评审和批准的规格说明或产品,它可以作为进一步开发的基础,并且只有通过正式的变更控制过程才能修改它。
➢是被明确和固定下来的需求集合,是项目团队需要在某一特定产品版本中实现的特征和需求集合。
第五章统一建模语言UML(20分)(Unified Modeling Language)(重点看实验1)一、用例图(Use Case Diagram)●执行者和用例之间的关联关系(Association):一根直线来表示●执行者之间的泛化关系(Generalization)(或继承关系)用例之间的关系:●包含关系:描述在多个用例中都有的公共行为,由用例A指向用例B,表示用例A中使用了用例B中的行为或功能,包含关系是通过在依赖关系上应用<<include>>构造型(衍型)来表示的。
●扩展关系:扩展用例可以在基用例之上添加新的行为,但是基用例必须声明某些特定的“扩展点”,并且扩展用例只能在这些扩展点上扩展新的行为。
扩展关系是通过在依赖关系上应用<<extend>>构造型(衍型)来表示的。
●泛化关系:➢当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。
➢在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。
➢泛化关系一般很少使用。