软件体系结构—大作业
- 格式:doc
- 大小:82.00 KB
- 文档页数:8
软件体系结构大作业学院:计算机软件学院班级: B120407 学号: Q12010223 姓名:林杨腹有诗书气自华一、简述软件体系结构的性质、研究意义和目标是什么? (不少于300字)答软件体系结构的性质:软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。
处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。
这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。
(1)软件体系结构是软件设计过程的一个层面,是相对独立的、有价值的软件设计方法的总结,可作为软件开发指导性的策略和途径。
(2)强调设计过程,而非分析的过程。
分析的目标是理解和表示,设计的目标是实现。
(3)非用户的观点及非功能的观点。
对于用户,结构是软件系统功能的组合。
对于设计者,结构是为特定目标而设立的软件成分以及成分之间的关系。
研究意义:软件体系结构是软件工程的重要研究领域,通过对基本软件结构和经典设计风格的学习和研究,掌握软件体系结构设计的基本原则和技术途径;能够拓宽软件方法和技术的知识面,提高软件的设计能力;软件体系结构的重要作用体现在以下三个方面:1.体系结构是风险承担者进行交流的手段,软件系统的各个风险承担者都关心着系统的各个不同的方面,这些方面都受体系结构的影响。
腹有诗书气自华2.体系结构是早期设计决策的体现,软件体系结构体现的这些早期的约束比起后续的开发、设计、编码、运行服务以及维护工作更为重要。
3.软件体系结构是可传递和可重用的模型。
目标:软件体系结构是一系列决策和基本原理的集合,这些决策的目标在于开发高效的软件体系结构。
在体系结构设计中所强调的基本原理是系统的可理解性、可维护性和可扩展性。
以一些恰当的形式汇集一定数量的体系结构元素满足系统的主要功能和性能的需求,另外还能同时表示出一些非功能性需求。
开发出合理的、高效的、高质量的软件体系结构,重点解决系统开发过程中的总体结构问题。
软件设计模式与软件体系结构实验报告《软件体系结构》大作业(1)学院:软件学院课程名称:软件体系结构专业班级:学生姓名:学号:学生姓名:学号:指导教师:完成时间:年月日评分表1、叙述各小组成员完成本题目的分工协作情况。
小组中的每个成员都先理解题目要求及涉及的设计模式,并一起完成代码编写。
另外,组长负责文档制作。
2、评分表作业正文需要包括以下内容:1、作业题目内容的详细描述。
2、完成本题目所采用的软件设计模式名称及画出相应的类图,或者是所采用的软件体系结构名称及画出相应的体系结构图。
3、画出完成本题目所设计程序的设计类图;如还有其它图,也一并画出。
4、完成本题目所设计的程序代码。
5、程序运行的典型界面截图1、作业题目内容的详细描述。
【作业2.1-1】例2.3为使用工厂方法模式设计的汽车保险管理应用程序实例。
现在需要扩展例2.3的设计图,添加一个名为LuxuryCarInsurance 的类,而且需要编写此类和其它需要添加的类的代码,详细要求参见光盘的相应作业部分。
【作业 2.1-1】在例 2.4中,设计而且实现了豪华(Super)和中等(Medium)别墅(House)与公寓(Condo)的查询。
要求在该设计的基础上,增加一个新的类SemiDetacher(半独立式楼宇),而且编写代码,实现相应的查询功能,详细要求参见光盘的相应作业部分。
2、完成本题目所采用的软件设计模式名称及画出相应的类图,或者是所采用的软件体系结构名称及画出相应的体系结构图。
【作业2.1-1】采用的是工厂方法模式【作业2.1-2】采用的是抽象方法模式3、画出完成本题目所设计程序的设计类图;如还有其它图,也一并画出。
【作业2.1-1】采用的是工厂方法模式。
《软件体系结构》大作业要求一、课程性质与目的通过本课程学习,旨在达到以下目标:1帮助学生掌握需求分析的流程、方法以及技巧;2帮助学生了解软件体系结构的基本概念,初步掌握中大型软件系统构架的分析与设计方法;3使学生了解构建系统的目的是为了满足组织的需求,认识软件行业和开发组织在系统设计及其最终成败所起的作用,提高软件设计的基本素养;4使学生了解常用软件设计模式的使用场景,解决方案;5引导学生认识系统的性能、可用性、安全性等质量属性都是受软件构架制约的,或者说这些属性的实现影响着设计师的设计选择;二、设计内容可选题目包含,任选其中一个问题。
采用适当的需求分析方法获取初步需求,题目选择如下:题目:自拟要求:按照学期初布置的任务,阅读长度大于2W行的源代码,通过逆向工程系统分析源代码结构。
从宏观分析源代码使用了哪几种经典的软件体系结构,从微观剖析源代码采用了哪几种经典的设计模式,对研究的源码实施逆向工程归纳整理大作业报告。
题目:选自中国软件杯以下的题目来自中国软件杯:/,大家可以浏览该网站,根据自己兴趣选择题目。
以下列出“基于安卓的移动应用开发”的要求,其他题目具体需求详见/题目:基于安卓的移动应用开发第五届试题(2016)链接/以下题目的具体需求细节请到链接访问。
●”APP车联网”移动应用软件●互联网+智能家居系统●基于web的3D模型浏览与交互系统●基于人脸识别的商业大数据分析技术●移动应用软件—手机与其他端之间快速传递文件●针对以经纬度或经纬度带时间定义的不同轨迹●知识库管理系统●基于物联网的车辆套牌稽核系统●基于传统视频的高速公路智能分析样题●航班延误预测●基于HTML5的电子报纸制作和展示系统●移动办公微应用●同步手绘板第四届赛题2015:链接/list.php?fid=129以下题目的具体需求细节请到链接访问。
●高校教务微信公众平台第四届“中国软件杯”大学生软件设计大赛赛题原型反馈表(A组)赛题名称:高校教务微信公众平台组类(A):A本科及以上赛题简介:介绍整个赛题的思路和整体要求针对现阶段及未来,大学生学习生活中不可或缺的信息获取和沟通交流平台,拟开发一款高校教务管理微信公众平台,参考微信公众平台开发者文档https://mp.weixin... (2015-04-16)●会议移动白板第四届“中国软件杯”大学生软件设计大赛赛题(B类)会议移动白板组类(B):高职组赛题简介:介绍整个赛题的思路和整体要求“会议移动白板”一款移动设备上的开会辅助工具。
课程名称:软件体系结构姓名:班级:软件132学号:20130040606 指导老师:伍轶明一、电子政务是什么:电子政务是指运用计算机、网络和通信等现代信息技术手段,实现政府组织结构和工作流程的优化重组,超越时间、空间和部门分隔的限制,建成一个精简、高效、廉洁、公平的政府运作模式,以便全方位地向社会提供优质、规范、透明、符合国际水准的管理与服务。
二、电子政务的建设意义:建设电子政务平台,目的是为了提高政府办公效率和效益和改进公共服务水平等,。
主要体现在以下几方面:1.能够降低办公费用,提高工作效率。
如众所周知,政府每年用在文件印刷的费用是巨大的。
如果这些文件在内部网站上可以查到,那么就不必花太多的钱在纸上,这样又可以保护宝贵的森林资源。
随着政府采用数字系统,软件将改造政府的工作方式,从而节约成本。
2.可以更高效地给社会公众提供服务,有利于和谐社会的建设。
电子政务通过推进政府部门办公自动化、网络化、电子化、全面信息共享等工作进程,从而营造运用信息及通信技术打破行政机关的组织界限的电子化虚拟机关,实现广泛范围意义的政府机关间及政府与社会各界之间经由各种电子化渠道进行相互沟通,并依据人们的需求、人们可以使用的形式、人们要求的时间及地点,提供人们各种不同的针对个性的服务选择。
电子政务能够加快政府职能的转变,扩大对外交往的渠道,密切政府和人民群众的联系,提高政府工作效率。
这样就有利于政务公开,人民群众随时可以详细地知晓政府政务,从而有助于减少政府及其官员腐败,化解矛盾,有利于和谐社会的建设。
3.电子政务在实现“以信息化促进工业化、现代化”的发展战略中具有重要的意义。
政府通常是一国内最大的“企业”,如果它带头使用技术,就会自动地提高本国的技术技能,并推动全国转移到信息市场去。
政府靠行政命令或提供诱因能带动所有跟它合作业务的公司。
从而推进全社会的信息化、工业化、现代化。
4.提高政府决策理性和公共政策的品质。
政府信息化可使政府运用所获取和掌握的国家政治、经济、社会发展诸领域的准确可靠的信息,对制定正确的决策,做出理性与科学的判断,采取有针对性和见实效的行为,进而提高政府决策和公共政策的水准和质量。
淮海工学院计算机工程学院《大型软件系统构造》大作业设计名称:知识管理系统姓名:学号:专业班级:系(院):计算机工程学院一、需求分析1、愿景引言“知识”一词在人类历史中由来已久,钢铁大王安德鲁.卡内基有这么一句话:“在一个组织内,唯一不能被替代的资产是组织的知识和她的人员”。
那么对如此重要的知识人们不免绞尽脑汁,知识管理也曾经一度被推上了时代的浪潮。
不幸的是,目前知识管理还没有一个被大家广泛接受的定义,就如同当初知识是由什么构成的一样没有统一意见,由于这个原因,从广义将知识管理简单概括为:利用组织智力或知识资产创造价值的过程。
最普遍的是,在公司的雇员、部门、甚至与其他公司一起努力设计最好方案过程中创造和共享知识价值。
知识管理经常需要IT技术帮助,但是知识管理本身就是一门技术。
现在许多大学里面的课程知识管理系统并没有一个很好的被大家所接受的,有的系统只是大概的描述一下,没有做的非常地具体和清楚,然而导致许多学生所学的知识是非常地零散的,一个自动化的课程知识管理系统就显示出非常重要的意义,相对与原始的手工知识管理它可以为企业带来更加巨大的利益,它通过更好的组织信息、分享信息、使用信息以及提供搜寻功能。
编写目的知识能使人获得财富,知识能使人变得高尚,知识能使人的生活充满阳光,知识能使人获得强大力量,冲破重重困境,最终走向成功的大门;知识能使一个民族变得优秀;变得强大起来;知识能使一个国家变得繁荣昌盛。
社会在发展,人类在进步,其中知识始终起着关键作用。
在信息化的今天,知识的重要性已经成为个人,企业,学校乃至一个国家制胜的法宝。
现代知识管理运用现代信息技术发现,组织,创造,分享知识,提高了工作和学习的效率和质量,帮助企业盈利,学校人才的培养和个人素质的提高。
随着规模的和复杂度的加大,只用人工来解决问题是不大现实了,因为用人工来完成的话,不仅成本高而且效率也不高,时间和精力度都浪费了,非常的不划算。
知识管理系统自然而然是其中一个比较有意义的系统,尤其对于在校的学生来说是非常有必要的,知识的管理不容忽视的问题,如要不被社会所抛弃的话,那么学习知识是我们生存的唯一手段,所以管理好知识给我们人类会带来更多的便利和效率。
软件体系结构作业(完整版)1. 概述本文档是软件体系结构作业的完整版,涵盖了软件体系结构的相关概念、设计原则、模式及其应用。
主要目的是给软件体系结构的学习者提供一些指导和帮助。
2. 软件体系结构的定义软件体系结构是软件系统的重要组成部分,描述了软件系统的组成、结构、职责及其相互关系。
可以理解为软件系统的“骨架”,是软件架构师为了实现系统需求、满足质量属性、支持系统演化等目标而设计的系统蓝图。
3. 软件体系结构的设计原则1.模块化原则:将复杂系统分解为小而简单的组建,有利于系统的管理和维护。
2.建立完整模型原则:对系统进行整体分析,考虑到系统各个方面,做到系统的稳健性、可维护性等,从全局的角度看待系统问题。
3.选择合适的模式:将一些简单而经过实践检验的模式进行合理组合,对质量属性进行优化和提高。
4.考虑系统演化:考虑到系统的可扩展性,可以轻松的支持新的需求变化,便于现有代码或组建复用。
4. 常见的软件体系结构模式1.分层结构:将系统按照功能划分成若干层,每一层只与相邻层进行交互。
分层是一种非常常见的软件设计模式,它可以增加系统的可维护性,方便解耦。
2.MVC模式:MVC是模型-视图-控制器的缩写,是一种常见的软件体系结构模式,通过将系统分为三层来实现松耦合的功能。
模型层负责数据表示层,控制器层负责处理业务逻辑,视图层负责呈现给用户信息。
3.微服务架构:微服务架构是一种将单体应用切分成若干小粒度的服务,并将其组合成一个应用的架构风格。
这种架构风格有助于实现弹性的、可扩张的分布式系统。
5. 软件体系结构模式的应用1.分层结构在Web开发中的应用:Web开发中大量使用了分层结构模式,启用的负责UI、视图层,数据层负责对数据进行操作,各个层彼此独立、松耦合,方便开发和维护。
2.MVC模式在Web框架中的应用:Web框架如Spring、Django等也都使用了MVC模式,提供了非常多的支持来简化MVC应用开发。
软件体系结构课程考核题目及要求1、为什么要评估软件体系结构?(10分)答:近年来,人们逐渐认识到软件体系结构在软件开发中的重要地位,好的软件体系结构已经是决定一个软件系统成功的重要因素。
因此,软件工程研究人员将研究热点集中到软件体系结构的研究上。
目前已有一些公用的体系结构范型,但是软件体系结构的研究尚处在发展之中,用于对软件体系进行规格描述的模型、标记法和工具目前仍不是很正规,只是用特定的方式来理解并用于特定的系统,在很多方面的研究工作还需要继续进行。
软件体系结构在软件开发和管理中扮演着越来越重要的角色。
软件体系结构设计是对软件质量有着至关重要的影响,对于确保最终系统的质量有重要的意义。
软件体系结构评估,是对系统的某些值得关心的属性(性能、可靠性等)进行评价和判断。
评估的结果可用于确认潜在的风险,并检查设计阶段系统需求的质量,在系统被实际构造之前,预测其质量属性。
总之,软件体系结构的好坏,关系到软件产品的好坏,软件产品的好坏关系到软件公司的发展,而且体系结构评估可以减少后期的测试和纠错的开销、评估是挖掘隐性需求并将其补充到设计的最后机会、体系结构是开发过程中的中心、不良的体系结构会带来一塌糊涂的效果。
2、从哪些方面评估软件体系结构?(10分)①基于调查问卷或检查表的评估方式这一评估方式比较灵活自由,可评估多种质量属性,也可以在软件体系结构设计的多个阶段进行。
②基于场景的评估方式基于场景的方式由SEI首先提出并应用在体系结构权衡分析法(ATAM)和软件体系结构分析方法(SAAM)中,场景也就是对系统的使用或修改活动的支持程度。
③基于度量的评估方式度量是指为软件产品的某一属性所赋予的数值,如代码行数、方法调用参数、构件个数等。
3、ATAM评估方法的基本步骤是什么?(10分)1)陈述,包括通过它进行的信息交流①ATAM方法的陈述:评估负责人②商业动机的陈述:项目经理或系统客户③SA的陈述:系统设计人员2)调查与分析,包括对照体系结构方法评估关键质量属性需求④确定体系结构方法:系统设计人员⑤生存质量属性效用树(utility tree):说明构成系统效用的,质量属性(性能,有效性,安全性,可修改性,可用性),具体到场景层次,标注刺激/反应,并区分不同的优先级系结构方法。
淮海工学院计算机工程学院《大型软件系统构造》大作业名称:高校工资管理系统的设计专业班级:软件122班姓名:系(院):计算机工程学院时间:2015.4.8~~2015.6.8高校工资管理系统的设计一、需求分析1.愿景与范围文档(1)项目背景在当前信息管理的时代背景下,诸如学校这样人员众多的机构,对信息的高效存储以及读取安全、智能化都有一定要求,尤其是工资的分配管理方面。
随着高等学校的快速发展,高效规模越来越大,教职工的数量也越来越多,高校工资管理更加复杂,工资计算、发放、核算的工作量很大,且不容出错。
(2)业务目标高校工资管理系统是以计算机为工具,通过对工资管理所需的数据进行信息化管理。
不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理。
同时把管理人员从繁琐的数据计算处理中解脱出来,优化了管理体系,使其高效化、简易化、智能化。
也提高了透明度和互动性。
(3)业务风险高校工资管理系统并没有涉及到极为困难的技术应用,完全可以在规定时间内完成这个系统,并且达到所有的需求。
所以,不存在任何风险。
2.功能部署本高校工资管理系统分为:登录验证模块、财务处管理模块、总务处管理模块、人事处管理模块,基本完成以下功能:●录入、修改、删除、计算功能。
录入、修改、删除工资发放清单、扣款清单及职工工资变动表的信息,自动由导出的表计算工资等。
●部门的管理。
例如,部门的各种属性,增加和删除职工的多少等。
●职工的管理。
根据职工的不同类型,如部门或是否教学等,实现用户的各种信息的修改。
●工资的管理。
根据不同的职工类型统计工资发放情况、每一种类型职工的工作标准。
●可以实现不同月份的工作发放情况的统计。
●查询的功能。
具体包括根据用户的类型查询、根据用户的姓名查询、模糊查询、单位查询。
●实现数据库用户的不同权限的管理功能,不同权限有对数据的操作的权限。
●数据库的备份。
一、简述软件体系结构的性质、研究意义和目标是什么? (不少于300字,10分)二、简述软件设计风格、软件应用框架和软件设计模式的特征和区别?(不少于300字,10分)三、简述中间件的作用和目标,并列举任意一种中间件。
(不少于300,10分)四、简述SOA软件体系结构的基本概念,简述Web Service的主要协议。
(不少于300字,10分)五、结合参与开发的软件工程项目,①论述采用的软件体系结构风格或应用框架,②论述采用的软件设计基本原则和策略。
(字数不限,两部分内容各占30分,共60分)作业格式要求:上面给出的标题和作业题,请原样复制到自己所完成的作业上部。
A4纸,宋体小4号字,标准页边距,行间距固定值26磅,页码右下。
交打印稿。
11月底交作业。
一、简述软件体系结构的性质、研究意义和目标是什么? (不少于300字,10分)答:1、软件体系结构的性质:(1)软件体系结构是软件设计过程的一个层面,是相对独立的、有价值的软件设计方法的总结,可作为软件开发指导性的策略和途径。
(2)强调设计过程,而非分析的过程。
分析的目标是理解和表示,设计的目标是实现。
(3)非用户的观点及非功能的观点。
对于用户,结构是软件系统功能的组合。
对于设计者,结构是为特定目标而设立的软件成分以及成分之间的关系。
2、研究意义答:软件体系结构是软件工程的重要研究领域,通过对基本软件结构和经典设计风格的学习和研究,掌握软件体系结构设计的基本原则和技术途径;能够拓宽软件方法和技术的知识面,提高软件的设计能力;软件体系结构的重要作用体现在以下三个方面:(1)、体系结构的表示有助于风险承担者(项目干系人)进行交流。
(2)、体系结构突出了早期涉及决策。
(3)、软件体系结构是可传递可复用的模型。
3、目标:软件体系结构是一系列决策和基本原理的集合,这些决策的目标在于开发高效的软件体系结构。
在体系结构设计中所强调的基本原理是系统的可理解性、可维护性和可扩展性。
二、简述软件设计风格、软件应用框架和软件设计模式的特征和区别?(不少于300字,10分)答:(1)软件体系结构风格(Architecture Styles)风格是表达特定系统元素和组织方式的通用范例(idiomatic paradigm)。
软件体系结构风格,反映众多系统共有结构的习惯用法和语义,表述系统的静态结构方式,强调软件元素的组织形式和通常用法。
(2)软件设计模式(Design Pattern)设计模式是软件问题高效和成熟的设计模板(pattern),模板包含了固有的问题的处理逻辑,强调处理逻辑采用方式的直接复用。
(3)软件应用框架(Application Framework)框架是待实例化的、可复用的大粒度部件结构。
框架面向不同规模的应用问题,是通用的结构。
强调针对实际问题和通用结构。
三、简述中间件的作用和目标,并列举任意一种中间件。
(不少于300,10分)答:中间件泛指能够屏蔽操作系统和网络差异,为异构环境之间提供通信服务的软件,是具有通信和可扩展能力的分布式软件管理框架。
无论数据服务在什么地方、处在什么操作系统、什么数据库环境下,应用服务只需访问中间件,由中间件通过网络协议获得必要的数据服务。
1、中间件主要作用:(1)通过网络协议查找数据服务;(2)传送应用服务请求;(3)服务结果回送到应用服务请求。
2、中间件的目标在中间件环境下开发的程序,具有在相对稳定的高层应用框架下接口,在未来的计算机和系统软件升级换代,或者希望与其它符合中间件标准的系统连接时,都不需要改动,改变的可能只是中间件的替换或转接。
3、举例:例如数据库中间件,负责完成对数据库访问的操作优化、用户连接、安全保障,以及实现对不同厂商数据库的访问等。
实现透明访问和操纵局域网、Internet环境中各种分布、异构的数据资源的中间系统,达到提高数据库整体运行效率的目的。
简而言之,数据库中间件是指一切连接应用程序和数据库的软件。
不仅限于对不同厂商的数据库,实现透明访问和操纵分布、异构的数据资源,而且包括完成对数据库访问的操作优化、多用户连接、安全保障,强调提高数据库整体运行效率的目标。
四、简述SOA软件体系结构的基本概念,简述Web Service的主要协议。
(不少于300字,10分)答:1、基本概念:面向服务的体系结构(Service Oriented Architecture,SOA),是另一种形式的分布式系统构造模型。
它将分布在网络中被称为服务的应用程序或功能单元,通过协议方式的连接机制联系起来。
而这个服务的连接机制是独立于服务运行环境的硬件平台、操作系统和编程语言的执行机构。
2、Web Service的标准协议●SOAP(simple object access protocol)简单对象访问协议,是基于XML扩展标记语言信息格式描述Web服务,并通过RPC远端过程调用和响应限定及约束的通用传输协议,支持分布式环境信息交换●WSDL(Web service description language)描述Web服务访问接口的协议。
利用抽象规范与具体实现的分离的原理,规定了描述服务做什么,如何访问,以及位于何处的限定方式。
●UDDI(universal description discovery and integration)统一描述、发现和集成协议。
为了对网络上分布的注册中心统一管理,针对Web服务的目录结构,提供向注册中心注册的约定和限制。
●BPEL(Business Process Execution Language For Web Services)Web服务的业务流程执行语言。
是服务整合及流程步骤定义语言,定义整合的服务接口,以及这些接口与总体执行的配合情况。
五、结合参与开发的软件工程项目,①论述采用的软件体系结构风格或应用框架,②论述采用的软件设计基本原则和策略。
(字数不限,两部分内容各占30分,共60分)①答:在2010年本人参与开发了《XXXXX生产调度指挥系统》,下面以软件体系结构应用框架理论为基础,结合该软件工程项目,对软件所采用的框架结构做一简要论述,重点论述服务层SOA架构。
《XXXXX生产调度指挥系统》总体架构系统采用先进的模型驱动架构(MDA)技术构建,是典型的三层分布式体系结构,桌面应用环境作为客户层,采用插件技术和可复用框架提供和支持用户友好的界面要求和操作需要; 服务层构建遵循SOA体系规范,根据集成对服务的实现要求,模型服务的具体实现采用J2EE技术。
模型服务框架基于Spring框架构建,实现服务的解耦和灵活装配。
数据层借鉴POSC的数据对象思想,为平台提供模型和数据访问,在应用中用户可根据各自需要进行系统功能的定义和扩充系统,适应勘探与生产调度指挥管理涉及业务覆盖面广而多变的要求。
SOA(Service-Oriented Architecture) 是一种面向企业级服务的系统架构,具体应用程序的功能是由一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的。
SOA架构是一套完整的理论体系,是目前企业信息系统集成的方向和趋势。
SOA最大的价值在于业务灵活重构和软件组件可重用,其核心思想为:(1)通过EAI/ESB实现企业内各类信息使用的标准化(包括数据表示和数据交换),如建立统一的数据/信息分类、建立统一的数据交换标准、建立统一的信息管理规则;(2)通过业务流程支持平台,支持灵活的业务流程建设、变更等需求;(3)通过门户为各类用户订制具备高度个性化的工作平台,如总经理办公平台、客户服务(岗位)平台。
SOA将信息展示、业务实现、信息服务组件三者分离,使用不同的技术进行支撑,彼此之间通过标准的协议实现弱耦合的系统协作是当前企业级应用系统平台建设的最佳方式。
当今基于SOA的软件平台已成为支持这一方式的最优选择。
勘探与生产调度指挥几乎涉及油田生产的所有业务领域,随着勘探开发业务的不断深化、拓展以及各种各类因素的变化,调度指挥的业务范畴也会相应地随之变化和调整,SOA结构正好适应这种需求,采用SOA结构保证了该系统的集成性和可扩展性。
②答:在大量的软件开发实践中,对于软件结构的设计有被普遍性采用的原则,这些原则和策略多年来一直被广泛地运用着。
它们独立于具体的软件开发方法。
基本原则包括:抽象、分而治之、封装和信息隐蔽、模块化、高内聚和低耦合、关注点分离、策略和实现分离、接口和实现分离。
在《XXXXX生产调度指挥系统》开发过程中主要遵循的原则有:(1)抽象的原则:抽象,是人们认识复杂事物的基本方法。
它的实质是集中表现事物的主要特征和属性,隐蔽和忽略细节部分,并能用于概括普遍的、具有相同特征和属性的事物。
软件设计中运用的抽象包括:●数据抽象:描述特定数据对象的属性集合●过程抽象:特定操作过程命名的操作序列●控制抽象:隐含内部细节的控制逻辑(2)分而治之原则:将大的问题分解,分别处理分解的局部问题,会降低问题的复杂性和难度,这是人们处理问题的通常的方式。
软件设计中运用的分解包括:●纵向分解:按照同类型事务的分解方式,将整体问题分解成为多层,每层完成同类型的处理,这样,可方便提取统一形式的接口,以提供对其他层的支持。
●横向分解:将问题分成多项独立的处理成份,它们原则上没有直接的联系。
通常,层次结构中的各层成份采用此种方式。
(3)信息隐蔽的封装原则:设计中运用的信息隐蔽的技术包括:封装设计、局部化设计●封装设计:将处理过程尽量隐蔽,使外界只了解其简单、统一形式的访问方式。
以减少各部分的依赖程度,增强构造灵活性。
●局部化设计:被处理的信息限制在局部处理过程中,尽量减少外部的直接访问与共享,以减小相互的耦合性。
软件成分之间的松散耦合,不会带来修改、复用时的麻烦,以及出错的影响面小(4)模块化的原则:模块:可被独立命名、具有独立作用的软件成分软件的模块设计:●模块可分解性:整体问题可被分解成多个模块来解决●模块可组装性:现有的模块可被组装用以解决问题●模块可理解性:模块可作为独立作用的成分被理解●模块连续性:对系统的修改只作用于单个的模块●模块保护性:模块出现异常的影响,仅在模块内部(5)保持高内聚和低耦合●内聚性:指软件成份内部各处理单元的关系程度。
能做到每个成分都有必然关系,缺一不可的紧密程度,是最好的内聚形式。
●耦合性:指软件成份之间的关系特性。
软件成份之间应尽量做到没有直接关系,是其保持相对独立,松散的耦合关系会使未来的修改、复用简单,出错带来的影响小。
(6)关注点分离原则:●关注点:软件成份被用于不同的环境时,会有对于不同环境的适应性问题。
但是,所必须适应的内容并非全部,只是一部分,即是所谓的关注点。
●分离:软件体系结构设计的关注点分离原则,是将与环境相关的软件成分与其它成分分开设计,以实现环境无关性,提高软件成分(非关注点成分)的可复用性。