具体问题具体分析,问题4分析

clip_image001具体问题具体分析,问题4分析
软件构架
软件构架的概念将其简单理解为:软件架构为软件系统提供了一个结构、行为和属性的高级抽象,并由构成系统的元素的描述及元素的相互作用、元素集成的模式以及这些模式的约束组成。软件总是有构架的,不存在没有构架的软件。
几种典型的软件构架:
1.管道/过滤器模式
在管道/ 过滤器架构模式中,每个构件都有一组输刀输出,构件读取输入的数据流,经过内部处理后,产生输出数据流,该过程主要完成输入流的变换及增量计算。
示意图
clip_image003clip_image001具体问题具体分析,问题4分析
特点:
•以数据流向的过程为核心(也称:数据流风格)
•过滤器自身功能独立完成,相互之间无状态交互
•过滤器不需要知道其他过滤器的存在与否
•过滤器仅对输入的数据流有限制,并保证输出流的正确
•系统内各部分的执行,与整体系统的最终输出不相关
管道过滤器形式的优点:
•对整个系统的理解简单化。可理解系统的各功能为抽象“黑盒子”。
•支持可维护性,容易替换。只要输入/输出管道达成一致的任何两个过滤器(可能一个是另一个的扩充性或修改),则可以任意替换。
•支持复用。一个过滤器可以被多次挂接,只要它们对数据的需求场合是一致的。
•支持并发设计。可以将存在并发可能的过滤器,在调度算法的基础上,组织为多任务并发系统。
•系统的结构清晰,容易进行某些性能的分析,例如:数据流量、死锁问题,计算正确性等等
管道过滤器形式的缺点:
•由于过滤器的独立特性,每个过滤器完成从输入到输出的转换需要成批量而完整,这样,为了交互必须表示的过滤内容与输出的流方式差异很大,导致实现交互困难。
•由于支持并发设计,两个相互独立的过滤器,如果存在同步问题,则需要花较大的精力去协调。
•每个过滤器的输出只强制公共的命名,要保持数据的一致必须对传输的数据解析,这样造成系统效率资源的损耗,以及程序复杂性增加。
•直接调用被动过滤器,使过滤器的重新组织产生困难。
•需要处理数据在管道中的阻塞状态
2.面向对象模式
面向对象模式建立在数据抽象和面向对象的基础上,将数据的表示方法及其相应操作封装在一个抽象数据类型或对象中。示意图
clip_image005clip_image003clip_image001具体问题具体分析,问题4分析
面向对象结构的特征:
•对象实体是具有自身属性和行为能力的独立个体。
•对象实体是主动的管理者,包括待处理的对象数据和所有参与过程的实体。
•任何事务处理都是与对象相互作用的结果,采用“消息”达到这种作用。发送消息给对象是“请求”,接受请求的对象是“响应”消息。
•响应“消息”的动作是接受请求对象自身的行为能力。并且它可以向其他对象发出请求。
面向对象结构的优点:
•接近人们的认知习惯,即:事物主体和事物行为是不可分的整体,处理事务的关注点只是事物可操作的外部行为。
•实现真正意义的信息封装,把对象的属性和行为封装在一起,对外可见的只有操作。
•稳定的结构,建造系统在独立的对象实体关系上,而非处理过程上。这使改变或增加系统处理过程,与系统的整体架构关联减弱,大部分只是对象个体上的行为扩充,除非增加新的对象成分。
•本身的并发特性,支持普遍应用的分布式系统。
•实体对象比起过程在语义上容易理解一致,因此更容易复用;类和继承使软件成份又达到更高层的复用。
面向对象结构的缺点:
•对象的标识是发送消息必须知道的,如果标识被改变,消息就不知去向。在系统中对象本来是独立的,但他们必须相互知道、懂得和理解,否则将无法协同完成工作。这一点又使得他们似乎很密切相关,互为依赖。
•对象接受多个来自不同请求者的同一个消息,所得到的结果有时不可预测,因为其自身的状态属性可能被改变,这种情况系统必须考虑,并付出代价。
3.事件驱动模型
事件驱动过程
1)外部事件(来自多个网络设备)以中断方式被接受并处理;
2)各个消息通过过滤器来统一形式,并且统一排队等该处理;
3)在系统的统一调度下,消息被发送到各自对应的应用队列中;
4)各应用队列有各自的用户交互线程,通过消息循环机制,建立自己的
交互应用操作
事件驱动模式的主要特点:
事件的触发者并不知道哪些构件会受到事件的影响,且不能假定构件的处理顺序,甚至不知道会调用哪些过程,使用事件驱动模式的典型系统包括各种图形界面工具。
事件驱动和隐式调用结构的优势
•消息与响应的非直接(隐式)调用,使成分之间成为松散的耦合关系,可增加系统成分连接、集成的灵活性。
•支持软件复用。由于成分之间的没有直接的联系,任何已有的软件成分只要处理逻辑适用,都可以无所顾忌地使用,将一切限定留给中间层处理。
•使系统更易维护。替换某一软件成份,除了中间转接的适应,对其他成分影响极小。
•对于异步并发系统是一种极好的控制方式。
事件驱动和隐式调用结构的不足
•请求消息成份和接收消息成份完全自主独立,不受控制,使得消息序列不易控制,需要消耗较大的精力去控制。
•相比直接方式的连接,增加了中间层必要的消耗,使消息的响应速度明显下降。
4.分层模式
分层模式采用层次化的组织方式,每一层都是为上一层提供服务,并使用下一层提的功能。分层模式的典型应用是分层通信协议,如1S0 / 0S1 的七层网络模型.
示意图:clip_image007clip_image005clip_image003clip_image001具体问题具体分析,问题4分析
分层模式的优点。
(1)有助把复杂的问题按功能分解,使整体设计更为清晰。
(2)支持系统设计的逐级抽象。
(3)具有较好的可扩展性。
(4)支持复用。
分层模式的缺点。
(1)并不是每个系统都可以很容易地划分出层次来;同时,各层功能的划分也没有一个统一的、正确的抽象方法。
(2)层次的个数过多,系统性能可能会下降。
5.知识库模式
黑板系统主要由以下三部分组成。
(1)知识源:包含独立的、与应用程序相关的知识,知识源之间不直接进行通讯,它们之间的交互只通过黑板来完成。
(2)黑板数据结构:按照与应用程序相关的层次来组织并解决问题的数据,知识源通过不断地改变黑板数据来解决问题。
(3)控制;完全由黑板的状态驱动,黑板状态的改变决定了需要使用的特定知识。
黑板知识库结构要点
•以黑板作为协同操作的核心,状态是核心控制的依据
•每个知识源作为问题求解的独立单位
•知识源需要协同完成一个事务的多个计算求解步骤
•协同的策略和调度算法,作为特殊的知识源
•由特殊的知识源改变操作的核心状态
clip_image009clip_image007clip_image005clip_image003clip_image001具体问题具体分析,问题4分析
黑板知识库结构的优势
使协同求解问题的过程,描述简单和清晰。所有系统过程的成分都是知识的产生源,无论单独的求解步骤,还是监控调度算法都是黑板中心状态的改变者。
黑板知识库结构的不足
所有系统成分对共享区过分依赖,也是系统风险因素的最大隐患。
6 )客户机/服务器模式
客户机服务器(Client/Server , C / S )模式是基于资源不对等,为实现共享而提出的。C / S 模式将应用一分为二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。c / s 模式具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
客户机/服务器模式的示意图(如下),由两部分构成:前端是客户机,通常是PC : 后端是服务器,运行数据库管理系统,提供数据库的查询和管理。
clip_image011clip_image009clip_image007clip_image005clip_image003clip_image001具体问题具体分析,问题4分析
C/S模式的优点如下。
(1)客户机与服务器分离,允许网络分布操作:二者的开发也可分开同时进行。
(2) -个服务器可以服务于多个客户机。
C/S模式的缺点如下:
(1)客户机与服务器的通讯依赖于网络,可能成为整个系统运作的瓶颈;客户机的
负荷过重,难以管理大量的客户机,系统的性能受到很大影响。
(2)如果服务器及其界面定义有改变,则客户机也要做相应改变。’
(3)二层c/s模式采用单一服务器且以局域网为中心,难以扩展至广域网或Intemet。
(4)数据安全性不好。客户端程序可以直接访问数据库服务器,使数据库的安全性
受到威胁。
集成复用方法中典型的应用集成技术:
1.数据仓库(Data Warehouse )是一个面向主题的(Subject oriented )、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。可以从两个层次理解数据仓库:首先,数据仓库用于决策支持,面向分析型数据处理,不同于企业现有的操作型数据库;其次,数据仓库是对多个异构数据源(包括历史数据)的有效集成,集成后按主题重组,且存放在数据仓库中的数据一般不再修改。
传统的数据库技术以单一的数据资源即数据库为中心,进行事务处理、批处理、决策分析等各种数据处理工作,主要有操作型处理和分析型处理两类。
示意图
clip_image013clip_image011clip_image009clip_image007clip_image005clip_image003clip_image001具体问题具体分析,问题4分析
2. Web Services 技术
Web 服务〔 Web Services )定义了一种松散的、粗粒度的分布计算模式,使用标准的HTTP ( s )协议传送XML 表示及封装的内容。Web 服务的典型技术包括:用于传递信息的简单对象访问协议、用于描述服务的Web 服务描述语言、用于Web 服务的注册的统一描述、发现及集成、用于数据交换的XML 。
Web 服务的主要目标是跨平台的互操作性,适合使用web services 的情况如下。( l )跨越防火墙。
( 2 )应用程序集成
( 3 ) BZB 集成
( 4 )软件重用
web 服务也可能会降低应用程序的性能。不适合使用web 服务的情况如下。
( l )单机应用程序:只与运行在本地机器上的其他程序进行通信的桌而应用程序最好不使用Web 服务,只用本地的API 即可。
( 2 )局域网上的同构应用程序:使用同一种语言开发的在相同平台的同一个局域网中运行的应用程序直接通过TCP 等协议调用,会更有效。
3. J2EE 架构、.NET 架构
1 ) J2EE 架构
J2EE ( Java 2 Platform Enterprise Edition )是由Sun 公司主导、各厂商共同制定并得到广泛认可的工业标准。
J2EE 应用将开发工作分成两类:业务逻辑开发和表示逻辑开发,其余的系统资源则由应用服务器自动处理,不必为中间层的资源和运行管理进行编码。这样就可以将更多的开发精力集中在应用程序的业务逻辑和表示逻辑上,从而缩短企业应用开发周期、有效地保护企业的投资。
完整的J2EE 技术规范由如下4 个部分组成。
( 1 ) J2EE 平台 ( 2 )J2EE 应用编程模型 ( 3 ) J2EE 兼容测试套件
( 4 ) J2EE 参考实现
2)NET 构架
微软的.NET 是基于一组开放的互联网协议而推出的一系列的产品、技术和服务。.NET 开发框架在通用语言运行环境基础上,给开发人员提供了完善的基础类库、数据库访问技术及网络开发技术,开发者可以使用多种语言快速构建网络应用。.NET 开发框架如图所示。
clip_image015clip_image013clip_image011clip_image009clip_image007clip_image005clip_image003clip_image001具体问题具体分析,问题4分析
.NET是微软自己的产品系列,(而非业界标准),前身是Windows DNA
−包含:COM+, MSMQ, 等等;
.NET的框架取代了Windows DNA
.NET服务器(SQL服务器,BizTalk服务器,等等)
4. 工作流技术
定义:工作流程的计算机模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。
解决的主要问题:为实现某个业务目标,在多个参与者之间,利用计算机,
按其预定规则自动传递文档、信息或任务。
5.构件技术
构件技术就是利用某种变成手段,将一些人们所关心的,但又不便于让最终用户去直接操作的细节进行了封装,同时对各种业务逻辑规则进行了实现,用于处理用户的内部操作细节。
构件封装了系统运行的各种规则甚至运行环境,而构件对象(构件的集合),要考虑到构件对象中的各个构件的协调功能。构件有其自身的规则实现,而规则的实现又具体到了接口的实现,构件对象本身也是一个构件,也有业务逻辑规则需要处理,要起到相关构件的协调作用。
常用构件标准
1 . COMIDCOMICOM +
COM 是个开放的组件标准,它有很强的扩充和扩展能力。COM 把组件的概念融入到Windows 应用中。DCOM 在COM 的基础上添加了许多功能和特性,包括事务特性、安全模型、管理和配置等,使COM 成为一个完整的组件架构。COM 十将COM 、DCOM 和MTS 形成一个全新的、功能强大的组件架构。
2 . CORBA
CORBA ( Common object Request Broker Arehitecture ,公共对象请求代理架构)是由OMG 组织制订的一种标准的面向对象的应用程序体系规范。或者说CORBA 架构是对象管理组织(object Management Group , OMG )为解决分布式处理环境(Distributed ComPuting Envirolunent , DCE )中硬件和软件系统的互连而提出的一种解决方案。
3 . EJB
EJB 用于封装业务,而业务可分为业务实体和业务过程。在JZEE 模型当中,中间层的业务功能通过EJB 构件实现,使用JSP 实现业务逻辑处理结果的动态发布,构成动态的HT 侧[L 页面,中间层也可以使用Servlet 实现更为灵活的动态页面。
典型的信息系统项目的生命周期模型
clip_image017clip_image015clip_image013clip_image011clip_image009clip_image007clip_image005clip_image003clip_image001具体问题具体分析,问题4分析
典型的信息系统项目的生命周期模型,这些生命周期模型均按照项目的工程技术过程的先后顺序来划分。
1 .瀑布模型
瀑布模型是一个经典的软件生命周期模型,一般将软件开发分为可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护等几个阶段,如图所示。
clip_image019clip_image017clip_image015clip_image013clip_image011clip_image009clip_image007clip_image005clip_image003clip_image001具体问题具体分析,问题4分析
瀑布模型中每项开发活动具有以下特点:
( l )从上一项开发活动接受其成果作为本次活动的输入。
( 2 )利用这一输入,实施本次活动应完成的工作内容。
( 3 )给出本次活动的工作成果,作为输出传给下一项开发活动。
( 4 )对本次活动的实施工作成果进行评审。
缺点: 过程基本不可迭代,需求在开始的不确定性,错误到最后才能发现,开发进程呈现塞阻状态
n 适合的项目:
项目的需求在项目开始前很明确
解决方案在项目开始前也很明确
类似的项目如:公司的财务系统,库存管理系统,短期项目
2 . V 模型
如图所示
clip_image021clip_image019clip_image017clip_image015clip_image013clip_image011clip_image009clip_image007clip_image005clip_image003clip_image001具体问题具体分析,问题4分析
V 模型的左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。
V 模型的优点在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发各阶段的对应关系。
优点:简单易用,强调测试过程与开发过程的对应性和并行性
缺点:没有反应实际的开发过程
适合的项目:
项目的需求在项目开始前很明确
解决方案在项目开始前也很明确
对系统的性能安全很严格的项目
类似的项目如:航天飞机等,公司的财务系统.
3 .原型化模型
原型化模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,经过和用户针对原型的讨论和交流,弄清需求以便真正把握用户需要的软件产品是什么样子的。充分了解后,再在原型基础上开发出用户满意的产品。
如图所示: clip_image023clip_image021clip_image019clip_image017clip_image015clip_image013clip_image011clip_image009clip_image007clip_image005clip_image003clip_image001具体问题具体分析,问题4分析
原型模型的特点:
在需求定义之前,需要快速构建一个系统
根据构建系统的优缺点,用户给开发人员提出反馈意见
根据反馈意见修改软件需求规格,以便系统可以更正确地反映用户的需求
减少各种假设以及风险
适应的项目:
项目的需求在项目开始前不明确
需要减少项目需求的不确定性
类似的项目如:明确显示界面,第一次开发的产品,验证技术可行性
增量模型也是原型化开发方法。如图所示
clip_image025clip_image023clip_image021clip_image019clip_image017clip_image015clip_image013clip_image011clip_image009clip_image007clip_image005clip_image003clip_image001具体问题具体分析,问题4分析
模型要点:瀑布和原型模型相结合,强调版本升级。
优点:可以循序渐进,避免一次投入太大的风险,更快地开发出可以操作的系统,可以减少开发过程中用户需求的变更,
缺点:有些增量可能需要重新开发
适应项目:
项目开始,明确了需求的大部分,但是需求可能会发生变化
对于市场和用户把握不是很准,需要逐步了解
对于有庞大和复杂功能的系统进行功能改进,需要一步一步实施的。
4.螺旋模型
螺旋模型是一个演化软件过程模型,将原型实现的迭代特征与线性顺序(瀑布)模型中控制的和系统化的方面结合起来。使得软件的增量版本的快速开发成为可能。在螺旋模型中,软件开发是一系列的增量发布。螺旋模型的整个开发过程如图所示。
clip_image027clip_image025clip_image023clip_image021clip_image019clip_image017clip_image015clip_image013clip_image011clip_image009clip_image007clip_image005clip_image003clip_image001具体问题具体分析,问题4分析
图中的螺旋线代表随着时间推进的工作进展;开发过程具有周期性重复的螺旋线形状。4 个象限分别标志每个周期所划分的4 个阶段:制定计划、风险分析、实施工程和客户评估。螺旋模型要点:统一了瀑布模型与原型模型,与增量模型相似,更强调风险分析。
特点:
是Waterfall模型的多次迭代
它将每个阶段进行更细的划分
可以进行灵活设计
通过风险管理驱动
用户可以更早看到产品
用户可以不断对产品进行评估
用户可以与开发人员进行紧密的合作
项目的投资不用一次投入
可以给开发人员更多的反馈信息
适应项目
项目中风险是主要的制约因素
项目中的不确定因素和风险限制了时间的进度
用户对自己的需求也不是很明确
需要对一些基本的概念进行验证
可能发生一些重大的变更
项目规模很大
项目中采用了新技术
5 .迭代模型
喷泉模型:体现认识事物的循环迭代性,强调开发活动之间的无间隙性,无明显的活动阶段划分,适用于面向对象的开发过程。如图所示:
clip_image029clip_image027clip_image025clip_image023clip_image021clip_image019clip_image017clip_image015clip_image013clip_image011clip_image009clip_image007clip_image005clip_image003clip_image001具体问题具体分析,问题4分析
RUP ( Rational Unified Process )软件统一过程是一种“过程方法”,它就是迭代模型的一种。如图所示。
clip_image031clip_image029clip_image027clip_image025clip_image023clip_image021clip_image019clip_image017clip_image015clip_image013clip_image011clip_image009clip_image007clip_image005clip_image003clip_image001具体问题具体分析,问题4分析
RUP中的软件生命周期在时间上被分解为4 个顺序的阶段,分别是:初始阶段( Inception )、细化阶段(Elaboration )、构建阶段(Construction )和交付阶段(Transition )。这4 个阶段的顺序执行就形成了一个周期。每个阶段结束于一个主要的里程碑(Major Mileslones )。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否己经满足。
特点:
1. 初始阶段
系统的阐述项目范围,选择可行的系统构架,计划和准备业务案例
2. 细化阶段
细化构想,细化过程和基础设施,细化构架并选择构件
3. 构造阶段
资源管理、控制和过程最优化,完成构件的开发并根据评价标准进行测试。
4. 交付阶段
同步并使开发的构造增量集成到一致的实施基线中。
适应的项目条件:
n 1、在项目开发早期需求可能有所变化。
n 2、分析设计人员对应用领域很熟悉。
n 3、高风险项目。
n 4、用户可不同程度地参与整个项目的开发过程。
n 5、使用面向对象的语言或统一建模语言(Unified Modeling Language,UML)。
n 6、使用CASE(Computer Aided Software Engineering,计算机辅助软件工程)工具,如Rose(Rose是非常受欢迎的物件软体开发工具。)。
n 7、具有高素质的项目管理者和软件研发团队。
clip_image033clip_image031clip_image029clip_image027clip_image025clip_image023clip_image021clip_image019clip_image017clip_image015clip_image013clip_image011clip_image009clip_image007clip_image005clip_image003clip_image001具体问题具体分析,问题4分析
Tags:  分析问题的方法 问题分析与解决 汉语语法分析问题 分析问题 具体问题具体分析

延伸阅读

最新评论

发表评论