Masami STM Noro, Nanzan Univ. Dept. Software Eng.
20 PLSE PLSEE
20 OO AO PLSE!
E-AoSAS++ PLSE on E-AoSAS++! - PLEASE(PLSE Environment based on Aspect- Oriented Software Architecture Style for Embedded Systems)!
HardwareB HardwareA ObjectX! HardwareD HardwareC ObjectY! ObjectZ! HardwareE
- E-AoSAS++ -! Concurrent STM1! State Transition! Concurrent STM2! State Transition! Actions!! Actions! Conc. Meta STM! State Transition! Actions! Concurrent STM3! State Transition! Actions! 6!
? - E-AoSAS++ -!! " "-, " "-,! " "-," "-,! " "-, ". 7!
E-AoSAS++ System!! View!! IAD( )! CSTM! CSTM!! Aspect! PrimitiveCSTM!! PrimitiveCSTM! MetaCSTM! CompositeSTM! Action! CSTM!
UMP( )- E-AoSAS++ -!! - -! STM1! <<IAD>>! STM! STM3! 1: reset()! <<IAD>>! m: STM! 1.1: active()! s1: STM1! s2: STM2! s3: STM3! 1.2: sleep()! 1.3: active()! STM2! 9!
UML Component Diagram! (CSTM)! Class Diagram! View! State Machine Diagram! CSTM!!! Sequence Diagram!! Object Diagram! CSTM!
AspectJ ( ) Weaving Policy)! ( JP_Advice)! Aspect Coordinator(MetaSTM)! : AC_Advice(Aspect Coodinator s Action)
MVC
System <<System>> PrinterSystem <<View>> ConfigurationChange <<IAD>> CC <<Aspect>> DefPrintSystem <<View>> RealTime <<IAD>> RT <<Aspect>> Timer <<IAD>> CtoM <<View>> MVC <<Aspect>> Contrller Button <<View>> OO Format
View <<IAD>> CtoM <<AspectCoordinator>> CtoM_Coordinator <<View>> MVC <<IAD>> MtoV <<AspectCoordinator>> MtoV_Coordinator <<Aspect>> Controller BUtton <<Aspect>> Model DefFromat <<Aspect>> View Printer
Aspect View MVC Default Format <<Aspect>> Model Data Specified Format <<Aspect>> Controller Button <<Aspect>> View Printer
View:ConfigurationChange View:RealTime! View:MVC Component Relation in each View View:OO
IAD CSTM:X X E/A! E1/A1! A1 E2! E1! A1! X!!! E2!!!!!! <<Before Action>>! <<After Action>>! <<Before MP>>! <<After MP>>! <<MP Flow>>! <<Around MP>>!!
IAD CSTM:Switch! toggle/toggleaction! JP_Advice2! wait! Switch toggle! ModeChanger toggleaction! JP_Advice1! Switch toggle! RT_Coordinator <<after>>! switch_toggled! toggleaction! <<after>>! switch_toggled!
CSTM PrimitiveCSTM AspectCoordinator! PrimitiveCSTM! Switch CSTM:Switch! toggle/toggleaction! AspectCoordinator RT_Coordinator AspectCoordinator:RT_Coordinator! switch_toggled/timerstartadvice! button_pushed/ε! wait! idle! active! switch_toggled/timerresetadvice! timeoutst/timerreset&swichtoggleadvice! button_pushed/timerresetadvice!
Action CSTM:DefaultFormat! format/ defaultformataction! wait! doit/ defaultformatcompletedaction! Action! defaultformataction! DefaultFormat Data getdatadefault! DefaultFormat! Data! SpecifiedFormat! Data!! CSTM:Data! getdataspecified/ getdataspecifiedaction! CSTM:SpecifiedFormat! format/ SpecifiedFormatAction! wait! specifiedformataction! SpecifiedFormat Data getdataspecified! wait! getdatadefault/ getdatadefaultaction! doit/ SpecifiedFormatCompletedAction!
PLSE Requirements! Architechture etc.! Core! Assets! Core Assets! Development (Domain Engineering) Application Engineering Applications! Management! MDA-like Development
PLSE Domain engineering side! Select Conceptual Architecture! Get Product Line Architecture! Build Product Architecture Frame! Fill PA Frame & Make Product Architecture! Pre-Execution Check! Code Generation! Application engineering side! Fill Application Logic! Coding, Reuse & Test! Completion Application Core Assets State Transition Machine! Inter Aspect Description! Specification Model! Conceptual Architecture! Product Line Architecture! Product Architecture! Platform Code! 25!
PLSE Domain Engineering Navigator!
Java CSP ARTic Instance! Java! Instance!!!!! CSP! Instance!! ARTiC!!!! Java,ARTiC,CSP! etc Domain Engineering Navigator!!! TextualSpecificationLanguage!!!! UML CSP/CodeGenerator!
Domain Engineering Navigator! DomainEngineeringNavigator! Regist! CA,PLSM,PLA etc.! Regist CoreAssets! Search/Brows CoreAssets Display! CA,PLSM and PLA! Select Specification Model CoreAssets! Inner Data Structure Output Convert Product Architecture Frame! Compnent Diagram Class Diagram State Machine Diagram ProductSpecificationModel!
Domain Engineering Navigator UI Image-! ProductLineArchitectureView -BLMS -ConceptualArchitechture MVC Mode -SpecificationModel On/Off +ProductArchitechture +VendingMachine +PrinterSystem Component Diagram Preview CA:MVC ConceptualArchitechtureSearch Keyword Result -BLMS MVC Mode -VendingMachine RealTime +PrinterSystem KeywordSearch AllSearch Feature View Diagram On/Off TSL View select delete FEATURE On/Off ; DESCRIPTION ; TYPE CAPABILITY; COMMONALITY Mandatory; COMPOSITION_RULE REQUIRE ALLOCATED_TO_SUBSYSTEM Component: END FEATURE;
CSTM
InstanceAspect CSTM! Construction InstanceTable CSTM! Relation ActionAspect Announce! Event! ConcurrencyAspect Execute! Action! Action Queue! Process! Thread! Persuade! Transition! StateTransition! Aspect StateTransition! ExecuteMode! State! Dormant! Wait! Active! ConcreteState1!
FDR: CSP CSP! SPIN: Promela
/! CSP/CodeGenerator! UML tools! Astah(Jude)! EnterprizArchitecht! ProductArchitecture! EA Astah! Architechture!! CSP,Z etc! Java,C++ etc.
/! Architecture Description on E-AoSAS++ Code Generator CSP or Z Generator ST Aspect Code Template Code CSP or Z Description E-AoSAS Platform Library Pre-execution check Tools
PLEASE UML: UML Astah,Enterprise Architect Eclipse: Java(AspectJ),C/C++! CodeGenerator Java and other platform! CodeGenerator Java C/C++, CSP Promela
UML! Astah! EnterpriseArchitect! CodeGenerator! Java,C/C++ Generator! CSP,Promela Generator! FDR! SPIN!
! E-AOSASA++! PLSE PLEASE!