630 likes | 781 Views
CERN-IDE Project. Boosting your Career. Software Technology. Content. PDEng Program Program Structure The trainees Team formation Editor team Debugger team. PDEng. 3TU SAI (Stan Ackermans Institute) PDEng ( P rofessional D octorate in Eng ineering) TU/e - Software Technology .
E N D
CERN-IDE Project BoostingyourCareer Software Technology
Content • PDEngProgram • Program Structure • The trainees • Team formation • Editor team • Debugger team
PDEng 3TU • SAI (Stan Ackermans Institute) • PDEng (Professional Doctorate in Engineering) • TU/e - Software Technology • TU/e • TU Delft • University of Twente PDEng Structure Trainees Team E-Team D-Team
PDEng ST (2-years) 1 Year 1 Year In-House On-Site I II III IV V CERN-IDE Project PDEng Structure Trainees Team E-Team D-Team
The Trainees Seventeen Trainees Twelve nationalities Learn Software architecture & design & Project management PDEng Structure Trainees Team E-Team D-Team
Team Formation CERN Project • 1 x Project Manager • 1 x Architect • 1 x Communication Manager/Coordinator • 2 x Workgroups • Editor & Debugger Tarun Miroslav Konstantinos PDEng Structure Trainees Team E-Team D-Team
Editor Team Christos Jonathan (Tester) Abelneh Parisa Surafel Vadim (Tester) Panagiotis (Designer) PDEng Structure Trainees Team E-Team D-Team
Debugger Team Vladimir Fangyi (Tester) Mari Bayasgalan Suleyman (Designer) Mohsen Djohan (Tester) PDEng Structure Trainees Team E-Team D-Team
Content • Context • Scope • Requirements • Time Line • Architecture • Editor • Debugger • Results
Context • WinCC-OA: robust SCADA system • Control scripts • Usability • Distributed windows • Primitive editor • Not-Integrated debugger Context Scope Req… Time Archi… Editor Results Debugger
Scope • Feature rich prototype • Modern IDE features • Expose WinCC-OA debugger • Limited WinCC-OA knowledge Context Scope Req… Time Archi… Editor Results Debugger
Requirements • Integrated windows • Editor related • Smart refactoring • Referencing • Coding standards • Debugger related • Usable debugger (integrated) Context Scope Req… Time Archi… Editor Results Debugger
First Prototype (internal) 25/10/2013 Time Line IDE Evaluation Feature Package 1 18/10/2013 1/11/2013 Feature Package 2 Feature Package 3 15/11/2013 29/11/2013 Context Scope Req… Time Archi… Editor Results Debugger
Architecture • CAFCR • Modeling derives, justifies, needs enables, supports What does Customer need In a Product and Why? Product How Product What Customer How Customer What Customer objectives Application Functional Conceptual Realization Context Scope Req… Time Archi… Editor Results Debugger
Editor • Eclipse based • Xtext • Plugin based • 28+ features of a modern IDE • Integrated windows • Uses eclipse marketplace • Extensible Context Scope Req… Time Archi… Editor Results Debugger
Debugger • Plugin based • Thrift • Connected IDE • Multilevel debugging • Confirms to distributed nature • API based Context Scope Req… Time Archi… Editor Results Debugger
Results • IDE • Feature rich code editor • integrated debugger • POC for IDE for DSL Context Scope Req… Time Archi… Editor Results Debugger
Content • Functional view • Use case model • Requirement model • Quality attributes • Conceptual view • Structural decomposition • Realization view • Design decisions • Derived architecture
Architecture derives, justifies, needs enables, supports What does Customer need In a Product and Why? Product How Product What Customer How Customer What Customer objectives Application Functional Conceptual Realization
Functional View (What?) • Use Case Model • Requirement Model Func. UC Model Req. Model C View Struc. Dec. Func. Dec. R View DD QA Style
Use Case Model • Top Level: • Create a Ctrl Script • Edit a Ctrl Script • Execute a Ctrl Script • Debug a Ctrl Script • Secondary Level • Monitor the Project Log • Open a Ctrl Project • Load from CVS Func. UC Model Req. Model C View Struc. Dec. Func. Dec. R View DD QA Style
Use Case Model Func. UC Model Req. Model C View Struc. Dec. Func. Dec. R View DD QA Style
Requirement Model • Source Code Editor Requirements • Content Assistance • Smart Refactoring • Syntax Coloring • Validation Func. UC Model Req. Model C View Struc. Dec. Func. Dec. R View DD QA Style
Requirement Model Func. UC Model Req. Model C View Struc. Dec. Func. Dec. R View DD QA Style
Conceptual View (How?) • Structural Decomposition • Functional Decomposition Func. UC Model Req. Model C View Struc. Dec. Func. Dec. R View DD QA Style
Structural Decomposition Ctrl Ctrl UI Debugger Plug-in XtextPlug-in Doxygen Plug-in SVN Plug-in GIT Plug-in Eclipse based IDE Eclipse IDE RPC Communication Thrift Interface API Manager WinCC-OA Event Manager Data Manager Control Manager SCADA SCADA Middleware Sensors & Actuators Func. UC Model Req. Model C View Struc. Dec. Func. Dec. R View DD QA Style
Debug a Ctrl Script Edit a Ctrl Script Execute a Ctrl Script Syntax UI Source code editor UI Debug UI Execute UI Log viewer UI Syntax Source code editor Debug Execute Log Viewer Syntax Refactor Syntax Coloring Debug Step Stop Run Content Assistant Validation Breakpoint Continue Parser Lexical Analysis WinCC-OA Communication Datapoint Lifecycle Ctrl Manager Func. UC Model Req. Model C View Struc. Dec. Func. Dec. R View DD QA Style
Realization View (How?) • Early Design Decisions • Quality Attributes • Architecture Style Func. UC Model Req. Model C View Struc. Dec. Func. Dec. R View DD QA Style
Design Decisions • New Debugger vs. Current Debugger • Consistency • Limitations • NetBeans vs. Eclipse • Architecturally Similar • Lower Learning Curve • Third-party Plugin Support • DSL Support (Xtext,IMP) Func. UC Model Req. Model C View Struc. Dec. Func. Dec. R View DD QA Style
Quality Attributes • Usability • Learning System Features (Learning Curve) • Efficient System Usage • System Customization (Perspectives and Views) • Portability • OS Compatibility • Extensibility • Minimal Development Effort • Interoperability • Semantic Understanding Func. UC Model Req. Model C View Struc. Dec. Func. Dec. R View DD QA Style
Architecture Style Func. UC Model Req. Model C View Struc. Dec. Func. Dec. R View DD QA Style
Architecture Eclipse IDE GIT Plug-In UI Workbench Doxygen Plug-In SVN Plug-In WinCC-OA System Xtext Plug-In Debugger Plug-In Func. UC Model Req. Model C View Struc. Dec. Func. Dec. R View DD QA Style
Content • Requirements • Xtext over IMP • Importing Grammar • Feature Classification • Features • Challenges • Future work Eclipse IDE GIT Plug-In UI Workbench Doxygen Plug-In SVN Plug-In Xtext Plug-In
Requirements • Editor that recognizes the Control language • Provides the user with 28 features • User friendly programming environment Requirements Xtext Grammar Features Challenges Future Work
Why Xtext • Better documentation • Features derived from Eclipse • Officially supported tool Requirements Xtext Grammar Features Challenges Future Work
Importing grammar • Use of lex and yacc files BNF • Transformations ( avoid left recursions ) • Restructuring grammar elements helps feature developers • Cross reference reduces the development time Requirements Xtext Grammar Features Challenges Future Work
Feature Classification Requirements Xtext Grammar Features Challenges Future Work
Auto-complete Function Names Requirements Xtext Grammar Features Challenges Future Work
Rules Based Code Reformatting Requirements Xtext Grammar Features Challenges Future Work
Multiple Variable Definition Requirements Xtext Grammar Features Challenges Future Work
Package Import Requirements Xtext Grammar Features Challenges Future Work
Validation Rules Requirements Xtext Grammar Features Challenges Future Work
Challenges • Many features are grammar related • Conflicts between grammar and feature implementation. • Grammar semantics are useful but take time. • Grammar needed some kind of restructuring. • No support for some non-derived features • Some features developed from scratch. • Only few plugins available. Requirements Xtext Grammar Features Challenges Future Work
Future work • Grammar, Grammar, Grammar! • Semantics instead of validations • Restructuring (optimization) • Optimizing the implementation of some features to achieve better total performance. Requirements Xtext Grammar Features Challenges Future Work
Content Eclipse IDE • Requirements • Expectation • Design decisions • Reality • Modern Debugger • Features • Ctrl Debugger • Challenges • Future work UI Workbench WinCC-OA System Debugger Plug-In
Requirements • Make a functional debugger • Requirements derived from use cases • Execute script • Debug script • Debug perspective • Stack trace • Variable watch • Log viewer Req… Expec… DD Reality Modern Features Ctrl. D. Challenges F. Work
Debugger - expectation Communication framework Eclipse IDE GIT Plug-In UI Workbench Doxygen Plug-In SVN Plug-In WinCC-OA System Xtext Plug-In Debugger Plug-In Req… Expec… DD Reality Modern Features Ctrl. D. Challenges F. Work
Design Decisions • Imp vs. Xtext vs. Independent Plugin • Eclipse debug toolbar API vs. Scratch implementation • API based at WinCC-OA side • Variable watcher: Tree view vs. Table view • Control manager: code vs. command line Req… Expec… DD Reality Modern Features Ctrl. D. Challenges F. Work
Debugger - reality Communication framework Console log WinCC-OA System Debugger Plug-In Variable watcher Parser Stack trace API Manager Ctrl Manager Req… Expec… DD Reality Modern Features Ctrl. D. Challenges F. Work
Modern Debugger WinCC debugger OOTI Craftsmanship Req… Expec… DD Reality Modern Features Ctrl. D. Challenges F. Work