®IBMSoftwareGroupHarmonySE系统工程最佳实践——模型驱动的系统工程姜海波PMP华力创通上海分公司2Harmony–集成的系统/嵌入式软件开发流程模型驱动的系统工程基本概念•SysML简单介绍•基于服务请求(servicerequest-driven)的建模方法RationalHarmony/SE的工作流和产出系统工程向硬件/软件开发的交付RationalHarmony/SE的实施方法议程嵌入式系统开发现状设计变更成本时间轴引入Errors数需求捕获和分析系统分析与设计软硬件设计文档软件架构设计代码实现和单元测试需求文档软件规格说明书模块集成测试系统验收测试子系统集成测试.exe.doc.exe.doc多米诺骨牌效应需求层需求层需求层需求层模型层模型层模型层需求信息是开发过程的主体——“面包和黄油”模型是需求层之间的填充物、馅料面包和馅料组成三明治.需求和设计的关系需要的描述(业务)涉众需求子系统需求(组件需求)涉众需求子系统需求(组件需求)系统需求系统需求软硬件需求(组件需求)工程化需求工程化需求工程化需求工程化需求概念模型系统功能模型系统架构模型软硬件架构设计导出需求输入需求不同层次的需求与建模系统工程二软件需求分析软件实现HarmonyESWHarmonySE需求工程系统工程一软件概要设计软件详细设计软件单元测试软件部件集成测试软件配置项测试子系统集成测试系统验收测试过程资产管理系统需求分析软/硬件功能基线变更请求用户需求Harmony过程改进的V模型方案不断修正需求的准确性不断维护与需求的一致性系统工程系统工程是组织管理的技术。把极其复杂的研制对象称为系统,即由相互作用和相互依赖的若干组成部分结合成具有特定功能的有机整体。……系统工程则是组织管理这种系统的规划、研究、设计、制造、试验和使用的科学方法。---钱学森1978系统工程的目的是解决总体优化问题,从复杂问题的总体入手,认为总体大于各部分之和,各部分虽较劣但总体可以优化。系统工程的一些经验以实际需求为导向,建立适合的工作流(实现方法)确定明确的Scope(开始点和结束点)和向下交付环节沟通,明确提供么。(怎么用)SOS的概念:考虑我们需要的具体环节,包括子系统是不是独立考虑,物理架构和分包商是否分开等软件工程三棱锥模型质量工程需求工程嵌入式软件工程系统工程2Harmony–集成的系统/嵌入式软件开发流程模型驱动的系统工程基本概念•SysML简单介绍•基于服务请求(servicerequest-driven)的建模方法RationalHarmony/SE的工作流和产出系统工程向硬件/软件开发的交付RationalHarmony/SE的实施方法议程SysML--系统建模语言ParametricDiagramRequirementsDiagramBlockDefinitionDiagramInternalBlockDiagramUseCaseDiagramSequenceDiagramActivityDiagramStatechartDiagramSysMLDiagramStructuralDiagramsBehavioralDiagramsParametricDiagramRequirementsDiagramBlockDefinitionDiagramInternalBlockDiagramUseCaseDiagramSequenceDiagramActivityDiagramStatechartDiagramSysMLDiagramStructuralDiagramsBehavioralDiagramsUML2.1SysML1.0UML4SysMLUML2.1SysML1.0UML2.1SysML1.0UML4SysMLUML4SysML系统工程--静态视图定义结构元素(blocks)和它们之间关系定义系统结构的实现定义接口所需参数信息系统工程--动态视图定义系统结构分解需求至用例定义功能流:用例故事板集成活动图和时序图信息添加基于状态的行为定义与环境的交互一定的测试场景2Harmony–集成的系统/嵌入式软件开发流程模型驱动的系统工程基本概念•SysML简单介绍•基于服务请求(servicerequest-driven)的建模方法RationalHarmony/SE的工作流和产出系统工程向硬件/软件开发的交付RationalHarmony/SE的实施方法议程110基于服务请求的建模方法DefineCommunicationNodesIBD_SuD11itsB1:B1itsB2:B2operation4()reqOperation2()operation2()reqOperation3()operation3()reqOperation4()operation1()ModeXreqOperation1()reqSetMode(ModeX)DescribeInter-NodalCommunicationSD_Sc12itsB2itsB1AllocateServiceRequestsandOperationsIBD_SuDitsB1:B11reqOperation2reqOperation4operation2operation41pB1itsB2:B2reqSetModereqOperation1reqOperation3operation1operation33itsB1:B11reqOperation4operation2operation4pB2reqOperation2iB1_to_B21iB1_to_B2iB2_to_B1iB2_to_B1itsB2:B2reqOperation1pB1reqSetMode«Interface»iB1_to_B2reqOperation2reqOperation4reqOperation3operation1operation3«Interface»iB2_to_B1reqSetModereqOperation1reqOperation3CreatePortsandInterfacesIBD_SuD4用功能服务(OperationalContracts)来描述通讯异步服务通过Ports/消息来请求接收方服务通过Operations和状态转移来实现2Harmony–集成的系统/嵌入式软件开发流程模型驱动的系统工程基本概念•SysML简单介绍•基于服务请求(servicerequest-driven)的建模方法RationalHarmony/SE的工作流和产出系统工程向硬件/软件开发的交付RationalHarmony/SE的实施方法议程12需求、系统工程主要目标过程资产管理系统架构设计需求工程系统功能分析需求和系统工程用户需求开发并定义需求库确定/推导系统功能确定相关的系统状态和模式将相关的系统模式/状态/功能分配到系统架构中Harmony/SE需求工程模型/需求库需求工程用户需求系统需求用例模型用户需求系统需求(草稿)系统用例在需求工程阶段,重点是分析流程的输入,涉众需求被推导成系统需求:功能性需求QoS需求(非功能性需求)定义需求,建立可用需求库当需求被充分理解后,需求被组合成用例(usecase),DOORS做为主要的需求管理工具需求工程工作流获取整理用户需求需求开发需求管理需求模块形成用例链接用例和需求NextUCElse«Requirement»SS1-EntyandExitControlSystem«fromWord»SS11-SecurityChecks«fromWord»SS111-SecurityCard«fromWord»SS112-BiometricScan«fromWord»SS12-AccessPriorityandTime«satisfy»«fromWord»SS13-Exitrequirements«fromWord»MA2-TimemonitoringThreeAttemptsOnEmployeeIDEntryID=SS11-7«satisfy»AlarmConditionsID=MA2-2«satisfy»«satisfy»DeniedEntryNotificationID=SS11-10ID=SS111-4ID=SS111-5ThreeAttemptsOnEmployeeIDExitID=SS11-9TimeBetweenTwoIndependentChecksID=SS11-5ExitTimeID=SS12-3«satisfy»«satisfy»AccesssPreconditionID=SS111-2«satisfy»OutofDateCards-ExitProcessingUserRequestID=SS12-1«satisfy»Alarm-EntryID=SS11-12«satisfy»Alarm-ExitID=SS11-13EmployeeIDCardIdentification-EntryID=SS11-2EmployeeIDCardIdentification-Exit«satisfy»«satisfy»«satisfy»VisualizationofSecurityCardCheckStatus-EntryID=SS11-15VisualizationofSecurityCardCheckStatus-ExitID=SS11-16SecurityCardInformationID=SS111-1OutofDateCards-Entry«satisfy»«satisfy»ID=SS11-1«satisfy»«satisfy»DeniedExitNotificationID=SS11-11ThreeAttemptsOnBiometricDataEntryID=SS11-8TwoIndependentSecurityChecks«satisfy»«satisfy»«satisfy»«satisfy»«satisfy»ID=SS11-3VisualizationofBiometricDataCheckStatusID=SS11-17«satisfy»ApprovalofBiometricDataID=SS112-1«satisfy»«satisfy»BiometricScanBiometricDataStorageID=SS112-2«satisfy»«fromWord»E2-SecurityLockdownImageCaptueID=MA1-1«satisfy»«fromWord»MA1-ImageCaptureSecurityLockdownID=E2-1«satisfy»EmergencyExitID=E1-1«satisfy»«fromWord»E1-EmergencyExit«satisfy»TimeRecordingID=MA2-1«satisfy»案例:安全系统(securitysystem)«satisfy»EntryTimeID=SS12-2ID=SS11-4RequirementsDiagram:VisualizationofLinksbetweenStakeholderRequirementsandSystemRequirementsUseCaseDiagram:SystemUseCasesUCD_SecuritySystemSecuritySystemUc3ConfigureSecuritySystemUc2ControlExitUc1ControlEntryAccessPointAuthorizationofSecurityCard-ExitID=SS13-1CameraUserAdminRD_SysReqsToSHReqsLinksDisablingUserAccountID=SS11-1457Harmony/SE功能分