您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 安全文明施工 > 量化投资IT系统相关软件工程与安全性分析(PDF30页)
量化投资IT系统:软件工程与系统安全性分析中国量化投资学会李国旗keep_thinking@hotmail.com宽潮计划系列公开课今天的内容•软件工程–软件工程的基本概念–面向量化投资IT系统的软件工程–安全关键系统的软件工程标准–关键技术•分级控制•需求追溯(需求覆盖、结构覆盖)•安全性(safety)分析–安全性分析的概念–基本技术——故障树分析和Petri网•FTA和开源工具OpenFTA•Petri网和开源工具PIPE2软件工程•软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。•软件需求和设计–需求是对问题域的描述,说明要做什么–设计是对技术域的描述,说明怎么做–从需求到设计的映射是软件开发要解决的关键问题相关标准•技术意义上的标准是一种以文件形式发布的统一协定,其中包含可以用来为某一范围内的活动及其结果制定规则、导则或特性定义的技术规范或者其他精确准则,其目的是确保材料、产品、过程和服务能够符合需要。标准往往对应该严肃对待的方面(比如机器和工具的安全、可靠性和效率,玩具,医学设备)有深远影响。•Security的标准——CC,safety的标准——DO-178C–Cc:commoncriteriaforinformationtechnologysecurityevaluation(2005)–Do-178c:softwareconsiderationsinairbornesystemsandequipmentcertification(December13,2011)组合认证•从技术上看,分级控制和基于追溯性的验证,是两者交集中的重要元素CC的TOC(测评对象)安全保证等级•SO14508(alsoknowasthe“CommonCriteria)isaninternationalprocess-orientedstandardthatdefinesITsecurityrequirements.•TheserequirementsarecategorizedaccordingtosevenEvaluationTestingAssuranceLevels(EALs),whichdeterminetheprocessrigorassociatedwitheachsoftwarecomponent.•AsdisplayedintheTable,withEAL7representingthemostsecuredsystem.Securityfunctionalrequirementsincludeaudit,communications,cryptography,dataprotection,authentication,securitymanagement,privacy,andprotectionofTargetsofEvaluation(TOEs).DO-178C的软件等级•DO-178Cprovidedetailedguidelinesfortheproductionofallsoftwareforsafety-criticalornot.Aspartoftheseguidelines,DO-178CdefinesDesignAssuranceLevels(DALs)withLevelAinvolvingthemostrigoroussafeguardagainstfailure.DO-178translatestheseDALsintoSoftwareLevels,thatmustbeexaminedanddeterminedforeachsoftwarecomponent.•AsshownintheTable.Eachsoftwarelevelhasassociatedobjectivesthatmustbesatisfiedduringdevelopment.不同等级的软件开发成本•DO-178C把软件模块根据安全性的严酷程度分为五个等级,以A~E来表示,A级的安全性要求最为严格,E级则是对安全性没有要求的等级,可见实际上要加强过程控制的部分就是A到D级了。•之所以对软件模块进行安全性等级划分,目的是为了控制成本,下表列出了某种等级划分模式下,不同安全等级软件模块开发成本的比较。注意这里所谓的成本指得的是开发活动的数量,比如A级为164项验证活动,而不同安全等级的软件模块的开发投资成本之间的差距一般是指数级的。等级EDCBA相对成本EE+5%D+30%C+15B+5%成本100105136156164需求追溯•Requirementstraceabilityisavitalfactorinmeetingsecurityandsafetystandards.Dynamicallylinkinghigh-levelrequirementstosourcecodeandverificationtasksensuresthatanup-to-datetraceabilitymatrixisalwaysmaintained.•所谓可追溯性(Traceability)指的是用于表明两者之间联系的证据,软件开发中一般需要建立两种可追溯性,即正向追溯性(从需求到设计,从设计到实现,从实现到测试)和反向追溯性•有许多的软件工程工具支持建立追溯性,比较著名的有IBM的DOORS以及与Rhapsody绑定的Gateway派生需求与组件粒度•下图为一个可追溯性的示意图,图中所谓的低层需求(Lowlevelrequirements)可以理解为设计。•在建立追溯性之前,首先要根据合理的颗粒度,将各层进行划分。•有些低层的划分是不能追溯到高层的,称之为派生(Derived)项。派生项的存在也是为了实现高层的设想,在较低层次加入的与设计或实现有关的设施,比如为了实现数据存储,需要加入一个嵌入式的数据库组件,那这个组件就对应于一个派生项。Lowlevelrequirements(Design)HighlevelrequirementsHREQ_01HREQ_02HREQ_03HREQ_XXLREQ_01LREQ_02LREQ_03LREQ_XXDerivedRequirement_XX双向追溯正向追溯(向前追溯,ForwardsTraceability)所有的预定功能都实现了反向追溯(后向追溯,BackwardsTraceability)只实现了预定功能,没有实现预定功能以外的其他功能软件需求设计代码系统需求软件需求设计代码基于需求追溯的覆盖率分析•有了可追溯性的概念,所谓测试的严格程度,就可以通过需求覆盖率和结构覆盖率来定义。•需求覆盖率是指经过测试的需求/功能和需求规格说明书中所有需求/功能的比值。结构覆盖是针对程序结构而言的,目的是找到在基于需求的测试中未测到的代码结构,包括语句覆盖、判定覆盖、MC/DC覆盖等。需求覆盖分析依据的是软件需求与测试用例之间的可追溯性;•结构覆盖分析依据的是代码结构与测试用例之间的可追溯性。许多软件测试工具提供测试覆盖率分析功能,另外大家比较熟悉的Matlab软件,也提供了测试覆盖率分析的组件,它是通过和DOORS连接起来实现的,由DOORS提供可追溯性。等级EDCBA相对成本EE+5%D+30%C+15B+5%成本100105136156164安全性(safety)分析•Analysisistheprocessofbreakingacomplextopicorsubstanceintosmallerpartstogainabetterunderstandingofit.ThetechniquehasbeenappliedinthestudyofmathematicsandlogicsincebeforeAristotle(384–322B.C.),thoughanalysisasaformalconceptisarelativelyrecentdevelopment.FTA(故障树分析)•故障树分析(FTA)技术是美国贝尔电报公司的电话实验室于1962年开发的•它采用逻辑的方法,形象地进行危险的分析工作,特点是直观、明了,思路清晰,逻辑性强,可以做定性分析,也可以做定量分析•体现了以系统工程方法研究安全问题的系统性、准确性和预测性,它是安全系统工程的主要分析方法之一•一般来讲,安全系统工程的发展也是以故障树分析为主要标志的FTA开源工具:OpenFTA••在FTA的具体实施方面,OpenFTA是一款开源的FTA绘图和分析软件•可以进行故障树的定性、定量分析、蒙特卡罗仿真,并可以自动输出分析文档FTA顶事件概率的计算•ANDGate•ORGate•约为各个P(xi)相加•此处P(A)=输出概率,P(Xi)=第i个输入概率•n=输入的序号)()(1∏==niixPAP)(1(1)(1∏=−−=niixPAP认识Petri网•Petri网是对离散并行系统的数学表示。Petri网是1960年代由卡尔·A·佩特里发明的,适合于描述异步的、并发的系统模型。•Petri网既有严格的数学表述方式,也有直观的图形表达方式。•WithPetrinets,thebasicaspectsofconcurrentsystemsareidentifiedbothconceptuallyandmathematically.开源Petri网建模分析工具:PIPE2••PIPE2(PlatformIndependentPetriNetEditorproject)是一个免费开源的,平台独立的,能够快速、高效创建和分析Petri网包括广义随机Petri网的软件工具•PIPE2是2002年3月在英国伦敦帝国学院电子计算学系的一个“独立于平台的Petri网编辑器PIPE”的硕士项目计划中诞生的,目前仍然被保留在大学里作为一个持续的项目•Petri网常用于分布式系统中的并发和同步建模。一个关键设计特点是用于分析所采用的模块化方法,能够使新的模块可以很容易地写,用内置的数据层方法进行标准计算。提供了不变量分析、状态空间分析(死锁等)、仿真分析和分类六个分析模块•PIPE符合XMLPetri网标准协议,通过使用XSLT保存和下载Petri网的文件格式是可扩展的,默认为PNMLPetri网的结构•Petri网是一个有向二分图。–所谓二分图又称作二部图,是图论中的一种特殊模型。设G=(V,E)是一个图,V为顶点的集合,E为边的集合。如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(iinA,jinB),则称图G为一个二分图。•经典的Petri网是简单的过程模型,由两种节点:库所和变迁,有向弧,以及令牌组成Petri网的元素和构建规则•Petri网的元素:–库所(Place)圆形节点,变迁(Transition)方形节点;–有向弧(Connection)是库所和变迁之间的有向弧;–令牌(Token)是库所中的动态对象,可以从一个库所移动到另一个库所。•Petri网结构的规则是:–有向弧是有方向的;–两个库所或变迁之间不允许有弧;–库所可以拥有任意数量的令牌。Petri网的变迁规则•如果一个变迁的每个输入库所(inputplace)都拥有令牌,该变迁即为被允许(enable)。一个变迁被允许时,变迁将发生(fire),输入库所(inputplace)的令牌被消耗,同时为输出库所(outputplace)产生令牌。–变迁的发生是原子的,也就是说,没有一个变迁只发生了一半的可能性。–有两个或多个变迁都被允许的可能,但是一次只能发生一个变迁。这种情况下变迁发生的顺序没有定义。–
本文标题:量化投资IT系统相关软件工程与安全性分析(PDF30页)
链接地址:https://www.777doc.com/doc-151340 .html