《信息系统开发de方法.docx》由会员分享,可在线阅读,更多相关《信息系统开发de方法.docx(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3.1 信息系统建设3.1.1 系统的生命周期信息系统的生命周期分为4个阶段:产生、开发、运行、消亡。(1) 产生阶段:也称概念阶段(初步想法),需求分析阶段(需求分析报告)(2) 开发阶段(5个)1) 总体规划:包括信息系统的,总体架构,组织结构,管理流程,实施计划,技术规范。2) 系统分析:为系统设计阶段提供系统的逻辑模型。主要内容:组织结构及功能分析,业务流程分析,数据和数据流程分析,系统初步方案。3) 系统设计:根据系统分析的结果设计系统实施方案。主要内容:系统架构设计,数据库设计,处理流程设计,功能模块设计,安全控制方案设计,组织和队伍设计,管理流程设计。4) 系统实施:将设计结构在
2、计算机网络上实现,将文本变成软件系统。5) 验收:试运行之后。(3) 运行阶段:通过验收移交给用户后(4) 消亡阶段:信息系统建设初期要注意系统的消亡条件和时机,及由此带来的成本3.1.2 信息系统开发方法1. 结构化方法结构化方法是由结构化系统分析和设计组成的一种信息系统开发方法。(目前最成熟、应用最广泛)基本思想是将系统的生命周期划分为系统调查、系统分析、系统设计、系统实施、系统维护等阶段。结构化方法的开发过程一般是先把系统的功能看成一个大的模块,再根据系统分析与设计的要求对其进行进一步的模块分解或组合。2. 快速原型法快速原型法是一种根据用户需求,利用系统开发工具,快速地建立一个系统模型
3、并展示给用户,在此基础上与用户交流,最终实现用户需求的信息系统快速开发的方法。开发过程包括系统需求分析、系统初步设计、系统调试、系统检测等阶段。用户对应用系统的简单描述,开发者获取基本需求后,利用开发工具生成应用系统原型,快速建立目标应用的最初版本,提交给用户试用、评价,根据用户意见和建议进行修改和补充,从而形成新的版本,再返回给用户。多次反复,不断地细化和扩充,直到生成一个用户满意的解决方案为止。快速原型法具有开发周期短、见效快、与业务人员交流方便的优点,特别适用于那些用户需求模糊,结构性比较差的信息系统的开发。3. 企业系统规划方法BSP(Business System Planning,
4、企业系统规划方法)是企业战略数据规划方法和信息工程方法的基础,目标是提供一个信息系统规划,用以支持企业短期和长期的信息需求。4. 战略数据规划方法(1) 数据环境对于信息系统至关重要。(2) 4类数据环境(即数据文件、应用数据库、主题数据库、信息检索系统)。(3) 建设主题数据库是信息系统开发的中心任务。所谓业务主题,就是指企业的核心业务和主导流程。围绕核心业务建立的数据库就是企业的主题数据库。(4) 围绕主题数据库搞好应用软件开发。5. 信息工程方法信息工程方法与企业系统规划方法和战略数据规划方法是一种交叉关系,即信息工程方法是其他两种方法的总结和提升,而其他两种方法则是信息工程方法的基础和
5、核心。所谓工程化,就是指有一整套成熟的、规范工程方法、技术、标准、程序和规范,使得开发工作摆脱随意性和多变性,其目标是信息系统的开发走上智能化、程序化和自动化的道路。6. 面向对象方法面向对象的分析方法是利用面向对象的信息建模概念,同时运用封装、继承、多态等机制来构造模拟现实系统的方法。3.2 软件工程IEEE(The Institute of Electrical and Electronics Engineers, 电气和电子工程师协会)的软件工程定义为:软件工程是开发、运行、维护和修复软件的系统方法。3.2.1 软件需求分析与定义软件需求包括的内容:(1) 功能需求:是指系统需要完成哪些
6、事,即为了向它的用户提供有用的功能,软件系统必须具有的功能。(2) 非功能需要:是指产品必须具备的属性或品质,如可靠性、必须、响应时间、容错性、扩展性等。(3) 设计约束:也称为限制条件、补充规约,这通常是对解决方案的一些约束说明,例如必须彩国有自主知识版权的操作系统,必须运行在Linux操作系统之下等。与需求相关的专业术语:(1) 业务需求:是指反映组织机构或客户对系统、产品高层次的目标要求,通常问题定义本身就是业务需求。(2) 用户需求:是指描述用户使用产品必须要完成的哪些任务。(3) 系统需求:是从系统的角度来说明软件的需求,包括有关系特性说明的功能需求,质量属性,以及其他非功能需求,此
7、外还包括一些设计上的约束。所谓分析就是通过对问题域的研究,获得对该领域特性及存在于其中的问题特性的透彻理解并用文档说明。需求分析的关键在于对问题域的研究与理解。软件需求分析工作通常包括的内容:(1) 绘制系统上下文范围关系图:这种关系图用于定义系统内部与系统外部实体间的界限和接口的简单模型,它可以为需求确定一个范围。(2) 创建用户接口原型:在需求分析阶段中通过快速开发工具开发一个快速的原型,会帮助客户更好地理解所要解决的问题,更好地理解需求。(3) 分析需求的可行性:对所有获得的需求进行成本、性能、技术实现方面的可行性研究,以及这些需求项是否与其他的需求项有冲突,是否有对外的依赖关系等。(4
8、) 确定需求的优先级:是制订迭代计划的一个最重要的依据,可以采用满意度/非满意度指标进行说明。(5) 为需求建立模型:主要是图表加上少量的文字描述,如E-R图、数据流图。(6) 创建数据字典:是对系统用到的所有数据项和结构进行定义。(7) 使用QFD(Quality Function Deployment, 质量功能展开),它通过将产品特性、属性与对客户的重要性联系起来,QFD将需求分为3类:期望需求、普通需求、兴奋需求。专家提示:尚未发现一种分析建模技术能够将所有的内容涵盖,我们需要根据实际情况进行有效的组合。应该尽可能地利用CASE(Computer Aided Software Engi
9、neering, 计算机辅助软件工程)工具创建、维护、发布需求模型,以保持其可控性。3.2.2 软件设计、测试与维护1. 软件设计 软件设计的基本原则是信息隐蔽与模块独立性。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。一般采用两个准则充度量模块独立性,即模块间耦合和模块内聚。模块内部各个元素之间的联系越紧密,则它的内聚性就越高,相对地,它与其他模块之间的耦合性就会减低,而模块独立性就越强。(高内聚低耦合)内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。模块的内聚性分为7种:耦合是程序结构中模块相互关联的度量。耦合性的7种类型:在开发时期的每个阶段,特别是设
10、计阶段结束时都要进行严格的技术评审,尽量不让错误传播到下一个阶段。设计评审一般采用评审会议的形式来进行。2. 软件测试软件测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件产品(主要是指程序)中的错误和缺陷。A. 动态测试动态测试是指通过运行程序发现错误,分为黑盒测试法、白盒测试法和灰盒测试法。常用的黑盒测试用例的设计方法有等价类划分、边值分析、错误猜测、因果图和功能图等。白盒测试是结构测试,所以被测对象基本上是源程序,以程序的内部逻辑为基础设计测试用例。常用的白盒测试用例设计方法有基本路径测试、循环覆盖测试、逻辑覆盖测试。灰盒测试是一种介于白盒测试与黑盒测试之间的测试,它关注输出对于
11、输入的正确性。同时也关注内部表现,但这咱关注不像白盒测试那样详细且完整,而只是通过一些表征性的现象、事件及标志来判断程序内部的运行状态。B. 静态测试静态测试采用人工检测和计算机辅助静态分析的手段对程序进行检测。静态测试主要方法有桌前检查、代码审查和代码走查。能够有效地发现30%70%的逻辑设计和编码错误。桌前检查:程序员在程序通过编译之后,进行单位测试设计之前,对源代码进行分析、检验,并补充相关文档。代码审查:由若干程序员和测试员组成一个会审小组,通过阅读、讨论和争议,对程序进行静态分析的过程。代码走查:是让与会者“充当”计算机,集体扮演计算机角色,让测试用例沿程序的逻辑运行一遍,随时记录程
12、序的踪迹,供分析和讨论用。根据测试的目的、阶段的不同,把测试分为单元测试、集成测试、确认测试、系统测试等。(1) 单元测试:(模块测试)检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求。(2) 集成测试:(组装测试、联合测试;对子系统而言也叫部件测试)测试模块之间的协作性。集成测试计划通常是在软件概要设计阶段完成。(3) 确认测试:(有效性测试)主要是难软件的功能、性能及其他特性是否与用户要求(需求)一致。确认测试计划通常是在需求分析阶段完成。(4) 系统测试:在实际运行环境下,对计算机系统进行的一系列集成与确认测试。系统测试的主要内容包括功能测试、健壮性测试、
13、性能测试、用户界面测试、安全性测试、安装与反安装测试等。系统测试计划通常在系统分析阶段(需求分析阶段)完成。面向对象测试是采用面向对象开发相对应的测试技术,从低到高排列是算法层、类层、模块层和系统层。性能测试通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。第三方测试机构的测试除了发现软件问题之外,还有科学公正地评价软件的职能。3. 软件维护维护的基本任务主要是保证软件在
14、一段相当长的时期内能够正常运行。软件具有可维护性主要由可理解性、可测试性、可修改性3个因素决定。软件的维护从性质上分为:纠错型维护(环境变化暴露错误)、适应型维护(操作系统升级)、完善型维护(改进需求)。3.2.3 软件质量保证及质量评价质量保证是为保证产品和服务充分满足消费者要求的质量而进行的活动。质量保证的目标是为管理层提供为获知产品质量信息所需的数据,从而获得产品质量是否符合预定目标的认识和信心。SQA(Software Quality Assurance, 软件质量保证)活动是确保软件产品在软件生存期所有阶段的质量的活动。SQA的参与者有两种人软件开发人员和质量保证人员,前者负责技术工
15、作,后者负责质量保证的计划、监督、记录、分析及报告工作。软件开发人员通过技术评审,执行软件测试来保证软件产品的质量。SQA人员则辅助软件开发组得到高质量的最终产品。SQA的实施主要采用PDCA(Plan Do Check Action,计划-实施-检查-行动)循环(戴明环)。 第一阶段是计划,包括方针、目标、活动计划、管理项目,评测检查项目实现质量目标的方法或手段。 第二阶段是实施,即按照计划的要求制作高质量的规格说明书和程序,在接受质量检查之前要先做自我检查。 第三阶段是检查,检查是否按规定的要求去做,找出异常情况的原因。 第四阶段是处理,把成功的经验变成标准,失败的教训也要成为标准,没有解
16、决的遗留问题反映到下一个循环中去。必须在每个阶段,特别是设计阶段结束时都要进行严格的技术评审,尽量不让错误传播到下一个阶段。TQM(Total Quality Management,全面质量管理)在最经济的水平上,充分满足用户要求的条件下进行市场研究、设计、生产和服务,把组织内各部门研制质量、维持质量和提高质量的活动构成为一体的一种有效体系。TQM即为全员、全过程、全方位的质量管理,力求全面提高经济效益。质量管理中有统计方法和非统计方法之分,常用的质量管理方法有所谓的老7种工具和新7种工具,其中老7种工具是指因果图、排列图、直方图、控制图、散布图、分层图和调查表,新7种工具是指关联图法、KJ法
17、、系统图法、矩阵图法、矩阵数据分析法、PDPC(Process Decision Program Chart,过程决策程序图法)和矢线图法。另外,还有一些新方法近年来得到了广泛的关注,例如,QFD、田口方法、FMEA(Failure Mode and Effect Analysis,失效模式和影响分析)、头脑风暴法、六西格玛法、水平对比法、BPR(Business Process Reengineering,业务流程再造)等。六西格玛质量水平表示在生产或服务过程中有3.4个缺陷/百万次,即达到99.9997%合格率。最高境界的完美水平。六西格玛使用DPMO(Defects Per Millio
18、n Opportunities,百万机会缺陷数),含义是指100万个机会里面出现缺陷的机会,DPMO=总的缺陷数/总机会数。3.2.4 软件过程管理软件过程是人们建立、维护和深化软件产品整个过程中所有技术活动和管理活动的集合。软件过程技术的主要研究方向:(1) 软件过程分析和建模:对软件过程的建模主要是使用PML(Process Modeling Languages,过程建模语言)。PML最基本的功能是用于描述和定义过程,建立过程模型。(2) 软件过程支持:主要是指研究开发支持软件过程活动的CASE工具。软件过程支持工具主要包括软件过程流程工具、过程文档工具、评审工具和人员管理工具。(3) 软
19、件过程评估和改进:由美国卡耐基梅隆大学SEI(Software Engineering Institute,软件工程研究所)提出的SW-CMM(Software Capability Maturity Model,软件能力成熟度模型)除了用于软件过程评估外,还向软件组织提供了指导其进行软件过程管理和软件过程改进的框架。CMM2.0版本,CMMI(Capability Maturity Model Integration,能力成熟度模型集成)。软件过程成熟程序的分级标准:(1) 初始级:软件过程的特点是无秩序的,有时甚至是混乱的。制度了一些软件工程规范,但若这些规范未能覆盖基本的关键过程要求,且
20、执行没有政策、资源等方面的保证时,那么它仍然被视为初始级。(2) 已重复级:已经建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。(3) 已定义级:用于管理和工程的软件过程均已文档化、标准化,并形成整个软件组织的标准软件过程。全部项目均采用与实际情况相吻合的、适当修改后的标准软件过程来进行操作。(4) 已管理级:软件过程和产品质量有详细的度量标准。这些度量应是详尽的,且可用于理解和控制软件过程和产品,量化控制将使软件开发真正变为一个工业生产活动。(5) 优化级:通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地进行过程改进。CMM的用途:(1) 软件
21、组织利用它可以评估自己当前的过程成熟度(2) 该标准也可以作为用户对软件组织的一种评价标准不断改进的过程:优化级不断改进的过程已管理级可预测的过程已定义级标准一致的过程已重复级纪律化的过程初始级2001年12月,SEI正式发布CMMI 1.1版本。与原有的能力成熟度相比,CMMI涉及面更广,专业领域覆盖软件工程、系统工程、集成产品开发和系统采购。运用CMMI模型管理的项目,不仅降低了项目的成本,而且提高了项目的质量与按期完成率。每一种CMMI模型都有两种表示法:阶段式和连续式。连续式表示法强调的是单个过程域的能力,从过程域的角度考察基线和度量结果的改善,其关键术语是“能力”;而阶段式表示法强调
22、的是组织的成熟度,从过程域集合的角度考察整个组织的过程成熟度阶段,其关键术语是“成熟度”。阶段式模型:(1) 级别1(初始级)代表了以不可预测结果为特征的过程成熟度,过程处于无序状态,成功主要取决于团队的技能。(2) 级别2(已管理级)代表了以可重复项目执行为特征的过程成熟度。主要的过程焦点在于项目级的活动和实践。(3) 级别3(严格定义级)代表了以组织内改进项目执行为特征的过程成熟度。关键过程域的前后一致的、项目级的纪律,用以建立组织级的活动和实践。(4) 级别4(定量管理级)代表了以改进组织性能为特征的过程成熟度。在业务表现的竞争尺度(成本、质量、时间)方面的结果可预测的。(5) 级别5(
23、优化级)代表了以可快速进行重新配置的组织性能,以及定量的、持续的过程改进为特征的过程成熟度。3.2.5 软件开发工具软件开发工具是用于辅助软件生命周期过程的基于计算机的工具。与软件工程方法一样,它们试图让软件工程更加系统化,工具的种类包括支持单个任务的工具及囊括整个生命周期的工具。软件开发工具:(1) 软件需求工具,需求建模工具和需求追踪工具。(2) 软件设计工具,创建和检查软件设计。(3) 软件构造工具,程序编辑器、编译器和代码生成器、解释器和调试器等。(4) 软件测试工具,测试生成器、测试执行框架、测试评价工具、测试管理工具和性能分析工具。(5) 软件维护工具,理解工具(可视化工具)和再造
24、工具(重构工具)。(6) 软件配置管理工具,追踪工具、版本管理工具和发布工具。(7) 软件工程管理工具,项目计划与追踪工具、风险管理工具和度量工具。(8) 软件工程过程工具,建模工具、管理工具和软件开发环境。(9) 软件质量工具,检查工具和分析工具。3.2.6 软件复用软件复用,又称软件重用,是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识,软件构件就是把这种可重用的元素,通常简称为构件。可重用的软件元素越大,我们就说重用的粒度越大。重用构件有助于改善软件质量,提高软件的灵活性和标准化程度。构件库
25、的使用者必须完成以下工作:检索与提取构件,理解与评价构件,修改构件,最后将构件组装到新的软件产品中。3.3 面向对象的分析与设计3.3.1 面向对象的基本概念1. 对象与封装对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。复杂的对象由比较简单的对象组合而成。对象三要素:对象标志、属性、服务。标志:对象的名字,系统内部唯一地识别对象。属性:也称状态或数据,用来描述对象的静态特征。服务:也称操作、行为或方法等,用来描述对象的动态特征。封装的含义:第一,对象是其全部属性和全部服务紧密结合而形成的一个不可分割的整体;第二,对象是一个不透明的黑盒子,表示对象状态的数据和实现操作的代码
26、都被封闭在黑盒子里面。2. 类与类库类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象。类与对象是抽象描述与具体实例的关系,一个具体的对象被称为类的一个实例。类库是一种预先定义的程序库,它以程序模块的形式,按照类层次结构把一组烦的定义和实现组织在一起。较上层的类代表了较一般的事物,较下层的类代表了较具体的事物。类属类仅描述了适用于一组类型的能用样板,由于其中所处理对象的数据类型尚未确定,因而程序员不可用类属类直接创建对象实例,即一个类属类并不是一种真正的类。类属类必须经过实例化后才能成为可创建对象实例的类。3. 继承与多态新类的定义可以是现在类所声明的数据、定义与新类所增加的
27、声明的组合。新类复用现存类的定义,而不要求修改现存类。现存类可当作父类来引用,则新类相应地可当作子类来引用。多态性可分为4类,分别为重载(过载)多态、强制多态、包含多态、参数多态,其中前两种薰莸同器为专用多态(特定多态),后面两种称为通用多态。参数多态:同一对象、函数或过程能以一致的形式用于不同的类型。过载多态:同一函数被用来表示不同的功能,通过上下文以决定一个算子所代表的功能,即通过语法对不同语义的对象使用相同的函数名,编译能够消除这一模糊。从实现的角度来看,多态可划分为编译时的多态和运行时的多态。按照联编进行的阶段的不同,分别为静态联编和动态联编。联编工作在编译连接阶段完成的情况称为静态联
28、编。有些多态类型,其同名操作的具体对象能够在编译、连接阶段确定,通过静态联编解决,比如过载、强制和参数多态等。联编工作在程序运行阶段完成的情况称为动态联编,在编译、连接过程中无法解决的联编问题,要等到程序开始运行之后再来确定,包含多态的操作对象的确定就是通过动态联编完成的。 4. 消息通信 消息是指向对象发出的服务请求,它应该含有下述信息;提供服务的对象标志、消息名、输入信息和回答信息。封装使对象成为一些各司其职、互不干扰的独立单位;消息通信则为对象提供了唯一合法的动态联系途径,使它们的行为能够互相配合,构成一个有机的系统。3.3.2 UML与可视化建模UML(Unified Modeling
29、 Language, 统一建模语言)是用于系统的可视化建模语言。可以应用于更多的领域中,例如工作流程、描述、业务分析等。与UML结合最好的是用例驱动的、以体系结构为中心的、迭代的、增量的开发过程。UML的结构包括构造块、公共机制和构架3个部分。构造块也就是基本的UML建模元素、关系和图。建模元素包括结构元素(类、接口、协作、用例、活动类、组件、节点等)、行为元素(交互、状态机)、分组元素、注解元素。关系包括关联关系、依赖关系、泛化关系、实现关系。图表示系统静态结构的静态模型和表示系统动态结构的动态模型。公共机制是指达到特定目标的公共UML方法,主要包括规格说明、修饰、公共分类和扩展机制4种。构
30、架是指系统的组织结构包括系统分解的组成部分,它们的关联性、交互、机制和指导原则,这些提供系统设计的信息,具体来说是指逻辑视图、进程视图、实现视图、部署视图、用例视图5个系统视图。UML 2.0包括13种图:(1) 类图:展现了一组类、接口、协作和它们之间的关系。(静态视图)(2) 对象图:展现了一组对象以及它们之间的关系。对象图描述了在类图中所建立的事物的实例的静态快照。(静态视图)(3) 构件图:展现了一个封装类和它的接口,商品以及由内嵌的构件和连接件构成的内部结构。(静态视图)(4) 组合结构图:它可以描绘结构化类的内部结构,包括结构化类与系统其余部分的交互点。它显示联合执行包含结构化类的
31、行为部件配置。(5) 用例图:展现了一组用例、参与者及它们之间的关系。(静态视图)(6) 序列图和通信图:两者都是交互图。交互图展现了一种交互,它由一组对象或角色以及它们之间可能发送的消息构成。(交互图专注于系统的动态视图)序列图是强调消息的时间次序的交互图;通信图也是一种交互图,它强调收发消息的对象或角色的结构组织。序列图强调时序,通信图强调消息流经的数据结构。(7) 状态图展现了一个状态机,它由状态、转移、事件和活动组成。状态图展现了对象的动态视图。(有助于反应式系统建模)(8) 流动图将进行或其他计算的结构展示为计算内部一步步的控制流和数据流。(动态视图)强调对象间的控制流程。(9) 部
32、署图展现了对运行时的处理结点以及在其中生存的构件的配置。(静态视图)(10) 包图展现了由模型本身分解而成的组织单元以及它们的依赖关系。(11) 定时图是一种交互图,它展现了消息跨越不同对象或角色的实际时间,而不仅仅是关心消息的相对顺序。(12) 交互概览图是活动图与序列图的混合物。3.3.3 面向对象系统分析OOP(Object-Oriented Programming, 面向对象的编程)OOD(Object-Oriented Design, 面向对象的设计)OOA(Object-Oriented Analysis, 面向对象的分析)1.OMT方法简介OMT方法的OOA模型包括对象模型、动态
33、模型和功能模型。对象模型表示静态的结构化的系统的“数据”性质。(通常用类图表示)功能模型表示变化的系统的“功能”性质。(通常用数据流图表示)OMT方法的3个模型,分别从3个不同侧面描述了所要开发的系统:功能模型指明了系统应该“做什么”;动态模型明确了什么时候做;对象模型则定义了做事情的实体。2. 用UML进行分析分析阶段通常包括以下两个工作任务:建立一个反映问题域静态关系的概念模型,通常使用类图来表示;建立一个反应系统行为的动态模型,即用例模型。3.3.4 面向对象系统设计1. Coad/Yourdon方法该方法利用5个层次和活动,定义和记录系统行为输入/输出。这5个层次的问题域模型,包括主题
34、、类及对象、结构、属性、服务,由类及对象图表示。2. Booch方法对象交互作用图被用来描述重要的互相作用,显示参与的对象和对象之间按时间排序的消息。可见性图用来描述互相作用中对象的可见性。静态物理模型通过模块描述代码的布局。动态物理模型描述软件的进程和线程体系结构。动态逻辑模型描述对象之间的互相作用。Booch方法的过程包括4个步骤:在给定的抽象层次上识别类和对象,识别这些对象和类的语义,识别这些类和对象之间的关系,实现类和对象。3. OMT方法从3个视角描述系统,相应地提供了3种模型,即对象模型、动态模型和功能模型。对象模型描述对象的静态结构和它们之间的关系。主要概念包括类、属性、操作、继
35、承、关系、聚集。动态模型描述系统那些随时间变化的方面,其主要概念有状态、子状态和超状态、事件、行为、活动。功能模型描述系统内部数据值的转换,其主要概念有加工、数据存储、数据流、控制流、角色。OMT方法将开发过程分为分析、系统设计、对象设计、实现4个阶段。4. Jacobson方法涉及整个软件生命周期,包括需求分析、设计、实现和测试等4个阶段。需求分析阶段的活动包括定义潜在的角色,识别问题域中的对象和关系,基于需求规范说明和角色的需要发现用例,详细描述用例。设计阶段包括两个主要活动,从需求分析模型中发现设计对象,以及针对实现环境调整设计模型。3.4 软件体系结构软件体系结构为软件系统提供了一个结
36、构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式,以及这些模式的约束组成。1. 分层系统层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。这一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。这样的系统中构件在一些层实现了虚拟机(在另一些层次系统中层是部分不透明的)。连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。这种风格支持基于可增加抽象层的设计。为软件重用提供了强大的支持。2. C2风格概括为:通过连接件绑定在一起的按照一组规则动作的并行构件网络。C2风格中的系统组织规则有:系统中的构件和连接
37、件都有一个顶部和一个底部;构件之间的连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与构件之间的直接连接是不允许的;一个连接件可以和任意数目的其他构件和连接件连接;当两个连接件进行直接连接时,必须由其中一个的底部到另一个的项部。3. C/S风格C/S体系结构有3个主要组成部分:数据库服务器、客户应用服务程序、网络。服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。在一个C/S体系结构的软件系统中,由于客户应用程序是针对一个小的、特定的数据集。保证了系统的并发性,并使网络上传输的数据量减到最少,从而改善了系统的性能。4. 三层C/S网络三层C/S体系将应用功能分成表
38、示层、功能层和数据层3个部分。表示层负责处理用户的输入和向客户的输出。功能层负责建立数据库的连接,根据用户的请求生成访问数据库的SQL语句,并把结果返回给客户端。数据层负责实际的数据库存储和检索,响应功能层的数据处理请求,并将结果返回给功能层。在三层C/S体系结构中,中间件是最重要的构件。所谓中间件是一个用API定义的软件层,是具有强大通信能力和良好可扩展性的颁式软件管理框架。它的功能是在客户机和服务器或者服务器和服务器之间传送数据,实现客户机群和服务器群之间的通信。其工作流程是:当客户机里的应用程序需要驻留网络上某个服务器的数据或服务时,搜索此数据的C/S应用程序需访问中间件系统。该系统将查
39、找数据源或服务,并在发送应用程序请求后重新打包响应,将其传送回应用程序。5. B/S风格B/S(Browser/Server, 浏览器/服务器)网络就是C/S三层应用结构的一种实现方式,其具体结构为:浏览器/Web服务器/数据库服务器。B/S体系结构主要利用不断成熟的WWW浏览器技术,结构浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。在B/S结构中,除了数据库服务器外,应用程序以网页形式存放于WEB服务器上,用户运行某个应用程序时只需在客户端上的浏览器中输入相应的网址(URL),调用WEB服务器上的应用程序并对数据库进行操作完成相应的数据
40、处理工作,最后将结果通过浏览器显示给用户。基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。3.4.2 软件体系结构设计方法要建立一个正确的架构,首先要分析系统中的一些抽象概念(相对稳定的部分)。针对问题领域中的概念进行分类,把看上去不同但本质上属于同一类的概念用一个抽象的概念表示出来,然后基于这些抽象概念创建架构,确定各抽象概念之间的关系。在创建架构过程中,需要考虑重用性、通用性等问题,使用适当的模式作为指导原则设计解决方案。很多模式本身就是针对系统架构提出的,例如MVC(Model-
41、View-Controller,模型-视图-控制器)是专门针对交互系统提出的。模式和系统架构有很大的相似性,都是处理一些抽象概念间的关系,但是二者有很大的不同。模式是领域无关的,解决某些抽象问题;而系统架构则针对所要解决的实际问题,是领域相关的。可以通过对问题领域的分析、分解,找到与解决问题相匹配的模式,把各种模式结合在一起构建整个系统架构。3.4.3 软件体系结构分析与评估体系结构评估可以只针对一个体系结构,也可以针对一组体系结构。评估人员所关注的是系统的质量属性,包括性能、可靠性、可用性、安全性、可修改性、功能性、可变性、集成性、互操作性。3类主要的评估方式:基于调查问卷或检查表的方式、基
42、于场景的方式和基于度量的方式。1. 基于调查问卷或检查表的评估方式调查问卷是一系列可以应用到各种体系结构评估的相关问题,其中有些问题可能涉及到体系结构的设计决策:1) 有些问题涉及到体系结构的文档(体系结构的表示用的是何种ADL(Architecture Description Language,体系结构描述语言))2) 有的问题针对体系结构本身的细节问题(系统的核心功能是否与界面分开)3) 包含一系列比调查问卷更细节和具体的问题(它们更趋向于考察某些关心的质量属性)2. 基于场景的评估方式 场景是一系列有序的使用或修改系统的步骤。基于场景的方式由SEI首先提出并应用在ATAM(Archite
43、cture Tradeoff Analysis Method,体系结构权衡分析方法)和SAAM(Software Architecture Analysis Method,软件体系结构分析方法)中。这种软件体系结构评估方式分析软件体系结构对场景也就是对系统的使用或修改活动的支持程度,从而判断该体系结构对这一场景所代表的质量需求的满足程度。这一评估方式考虑了包括系统的开发人员、维护人员、最终用户、管理人员、测试人员等在内的所有与系统相关的人员对质量的要求。基于场景的评估方式涉及到的基本活动包括确定应用领域的功能和软件体系结构的结构之间的映射,设计用于体现待评估质量属性的场景,以及分析软件体系结构
44、对场景的支持程度。这一评估方式的实施者一方面需要有丰富的领域知识对质量需求设计出合理的场景,另一方面,必须对待评估的软件体系结构有一定的了解以准备判断它是否支持场景描述的一系列活动。3. 基于度量的评估方式度量是指软件产品的某一属性所赋予的数值。试题的评估技术都涉及3个基本活动:1) 首先需要建立质量属性和度量之间的映射原则,即确定怎样从度量结果推出系统具有什么样的质量属性;2) 然后从软件体系结构文档中获取度量信息;3) 最后根据映射原则分析推导出系统的某些质量属性。基于度量评估方式提供更为客观和量化的质量评估。这一评估方式需要在软件体系结构的设计基本完成以后才能进行,而且需要评估人员对待评
45、估的体系结构十分了解,否则不能获取准确的度量。自动的软件体系结构度量获取工具能在一定程度上简化评估的难度。4. 比较评估方式调查问卷或检查表场景度量调查问卷检查表通用性通用特定领域特定系统通用或特定领域评估者对体系结构的了解程度粗略了解无限制中等了解精确了解实施阶段早中中 中客观性主观主观较主观较客观3.4.4 软件中间件定义:(1) 在一个分布式系统环境中处于操作系统和应用程序之间的软件。(2) 中间件是一种独立的系统软件或服务程序。中间件的优越性体现在以下几个方面:缩短应用的开发周期、节约应用的开发成本、减少系统初期的建设成本、降低应用开发的失败率、保护已有的投资、简化应用集成、减少维护费
46、用、提高应用的开发质量、保证技术进步的连续性、增强应用的生命力。中间件的任务是使应用程序开发变得更容易,通过提供统一的程序抽象,隐藏异构系统和分布式系统下低级别编程的复杂度。由底向上从中间件的层次上来划分,可分为底层型中间件、通用型中间件和集成型中间件3个大的层次:(1) 底层型中间件的主流技术有JVM(Java Virtual Machine, Java虚拟机)、CLR(Common Language Runtime, 公共语言运行库)、ACE(Adaptive Communication Environment, 自适配通信环境)、JDBC(Java Database Connectivi
47、ty, Java数据库连接)和ODBC(Open Database Connectivity, 开放数据库互连)等。(2) 通用型中间件的主流技术有CORBA(Common Object Request Broker Architecture, 公共对象请求代理体系结构)、J2EE、MOM(Message-Oriented Middleware, 面向消息的中间件)和COM等,代表产品主要有IONA Orbix、BEA WebLogic和IBM MQServices等。(3) 集成型中间件的主流技术有WorkFlow和EAI(Enterprise Application Integration, 企业应用集成)等,代表产品主要有BEA WebLogic和IBM WebSphere等。在这个大的层次划分下,中间件还可以细化为通信处理(消息)中间件、事务处理(交易)中间件、数据存储管理中间件、WEB服务中间件、跨平台和构架的中间件、专用平台中间件、数据流中间件、门户中间件、工作流中间件等。(1) 为了完成系统底层传输层的集成,可以采用CORB
限制150内