boosting your career cern-ide project. content pdeng program program structure the trainees team...

63
Boosting your Career Software Technology CERN-IDE Project

Upload: alison-elliott

Post on 13-Jan-2016

233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Boosting your CareerSoftware Technology

CERN-IDE Project

Page 2: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Content• PDEng Program• Program Structure• The trainees• Team formation• Editor team• Debugger team

Page 3: Boosting your Career CERN-IDE Project. Content PDEng Program 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 Eindhoven• TU Delft• University of Twente

PDEng TeamTraineesStructure E-Team D-Team

Page 4: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

I II III IV V

1 Year 1 YearIn-House On-Site

PDEng ST (2-years)

CERN-IDE Project

PDEng TeamTraineesStructure E-Team D-Team

Page 5: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

The Trainees

Seventeen TraineesTwelve nationalities

LearnSoftware architecture & design

&Project management

PDEng TeamTraineesStructure E-Team D-Team

Page 6: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Team Formation CERN Project

• 1 x Project Manager• 1 x Architect • 1 x Communication

Manager/Coordinator

• 2 x Workgroups– Editor & Debugger

Konstantinos

Tarun Miroslav

PDEng TeamTraineesStructure E-Team D-Team

Page 7: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Editor Team

Christos

Surafel

Jonathan (Tester) Abelneh Parisa

Vadim (Tester) Panagiotis (Designer)

PDEng TeamTraineesStructure E-Team D-Team

Page 8: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Debugger Team

Vladimir

Mohsen

Fangyi (Tester) Mari Bayasgalan

Djohan (Tester) Suleyman (Designer)

PDEng TeamTraineesStructure E-Team D-Team

Page 9: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Content• Context• Scope• Requirements• Time Line• Architecture• Editor• Debugger• Results

Page 10: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Context

Context TimeReq…Scope Archi… Editor Debugger Results

• WinCC-OA: robust SCADA system• Control scripts• Usability

– Isolated windows– Primitive editor– Separate debugger

Page 11: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Scope

Context TimeReq…Scope Archi… Editor Debugger Results

• Feature rich prototype• Modern IDE features• Expose WinCC-OA debugger• Limited WinCC-OA knowledge

Page 12: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Requirements

Context TimeReq…Scope Archi… Editor Debugger Results

• Integrated windows• Editor

– Smart refactoring– Referencing– Coding standards

• Debugger– Usable debugger (integrated)

Page 13: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Time Line

Context TimeReq…Scope Archi… Editor Debugger Results

IDE Evaluation18/10/2013

First Prototype (internal)

25/10/2013Feature Package 1

1/11/2013 Feature Package 215/11/2013

Feature Package 329/11/2013

WinCC-OA CourseIDE Evaluation

First Prototype (internal)Feature Package 1Feature Package 2Feature Package 3

Wrap-up

W92013 2013W1 W2 W3 W4 W5 W6 W7 W8Oct Nov Dec

Page 14: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Architecture Process

Context TimeReq…Scope Archi… Editor Debugger Results

• CAFCR• Modeling

Customerobjectives

Application Functional Conceptual Realization

CustomerWhat

CustomerHow

ProductWhat

ProductHow

What does Customer needIn a Product and Why?

derives, justifies, needs

enables, supports

Page 15: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Editor

Context TimeReq…Scope Archi… Editor Debugger Results

• Eclipse based• Xtext• Plugin based• 28+ features of a modern IDE• Integrated windows• Uses eclipse marketplace• Extensible

Page 16: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Debugger• Plugin based• Thrift• Connected IDE• Multilevel debugging• Conforms to distributed nature• API based

Context TimeReq…Scope Archi… Editor Debugger Results

Page 17: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Results• IDE

– Feature rich code editor– integrated debugger

• POC for IDE for DSL

Context TimeReq…Scope Archi… Editor Debugger Results

Page 18: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Content• Functional view• Use case model• Requirement model• Quality attributes• Conceptual view• Structural decomposition• Realization view• Design decisions• Derived architecture

Page 19: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Architecture Process

Customerobjectives

Application Functional Conceptual Realization

CustomerWhat

CustomerHow

ProductWhat

ProductHow

What does Customer needIn a Product and Why?

derives, justifies, needs

enables, supports

Page 20: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Functional View (What?)• Use Case Model• Requirement Model

Func. QAReq. ModelUC Model C View Struc. Dec. R View DD StyleFunc. Dec.

Page 21: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

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. QAReq. ModelUC Model C View Struc. Dec. R View DD StyleFunc. Dec.

Page 22: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Use Case Model

Func. QAReq. ModelUC Model C View Struc. Dec. R View DD StyleFunc. Dec.

Page 23: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Requirement Model• Source Code Editor Requirements

– Content Assistance– Smart Refactoring– Syntax Coloring– Validation

Func. QAReq. ModelUC Model C View Struc. Dec. R View DD StyleFunc. Dec.

Page 24: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Requirement Modelreq Source Code Editor Requirements

ValidationSyntax Coloring

Smart Refactoring

Content Assist

Source Code Editor Specifications

(from CERN Model)

FR020 - Integrated online documentation support (17)

FR005 - Advanced Search (92)

FR012 - Display call hierarchy (29)

FR013 - Documentation Skeleton (57,87)

FR014 - GoTo Function Definition (46)

FR022 - Package Import (50)

FR028 - Uneditable Code Functionality (54)

FR029 - Avoid Multiple Libraries (23)

FR009 - Code Bookmarks (55)

Func. QAReq. ModelUC Model C View Struc. Dec. R View DD StyleFunc. Dec.

Page 25: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Conceptual View (How?)• Structural Decomposition• Functional Decomposition

Func. QAReq. ModelUC Model C View Struc. Dec. R View DD StyleFunc. Dec.

Page 26: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Structural Decomposition

SCADA Middleware

WinCC-OA

RPC Communication

Eclipse based IDE

SCADA

Sensors & Actuators

Event Manager

API Manager

Thrift Interface

Eclipse IDE

Debugger Plug-in

GITPlug-in

SVNPlug-in

DoxygenPlug-in

Xtext Plug-in

Data Manager

Control Manager

Ctrl UICtrl

Func. QAReq. ModelUC Model C View Struc. Dec. R View DD StyleFunc. Dec.

Page 27: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Syntax UI

Syntax

Syntax Refactor

Content Assistant

Parser

Source code editor

Syntax Coloring

Validation

Lexical Analysis

Debug UI

Debug

Debug

Breakpoint

Datapoint Lifecycle

Step

Continue

Execute UI

Execute

Run

Source code editor UI

Edit a Ctrl Script Debug a Ctrl Script Execute a Ctrl Script

Log viewer UI

Log Viewer

Ctrl Manager

Stop

WinCC-OA Communication

Func. QAReq. ModelUC Model C View Struc. Dec. R View DD StyleFunc. Dec.

Page 28: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Realization View (How?)• Early Design Decisions• Quality Attributes• Architecture Style

Func. QAReq. ModelUC Model C View Struc. Dec. R View DD StyleFunc. Dec.

Page 29: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Design Decisions• Current Debugger over New Debugger

– Consistency– Limitations

• Eclipse over NetBeans– Architecturally Similar– Lower Learning Curve– Third-party Plugin Support– DSL Support (Xtext, IMP)

Func. QAReq. ModelUC Model C View Struc. Dec. R View DD StyleFunc. Dec.

Page 30: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

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. QAReq. ModelUC Model C View Struc. Dec. R View DD StyleFunc. Dec.

Page 31: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Architecture Style

Func. QAReq. ModelUC Model C View Struc. Dec. R View DD StyleFunc. Dec.

Page 32: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Architecture(Plugin based)

Eclipse IDE

UI Workbench

SVN Plug-In

GIT Plug-In

DoxygenPlug-In

DebuggerPlug-In

XtextPlug-In WinCC-OA System

Func. QAReq. ModelUC Model C View Struc. Dec. R View DD StyleFunc. Dec.

Page 33: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Content• Requirements• Xtext over IMP• Importing Grammar• Feature Classification• Features• Challenges• Future work

Eclipse IDE

UI Workbench

SVN Plug-In

GIT Plug-In

DoxygenPlug-In

XtextPlug-In

Page 34: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Requirements• Editor that recognizes the Ctrl language• Supports the user with 28+ features• Provides a friendly programming environment

Requirements FeaturesGrammarXtext Challenges Future Work

Page 35: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Why Xtext• Better documentation• Features derived from Eclipse• Officially supported tool

Requirements FeaturesGrammarXtext Challenges Future Work

Page 36: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Importing grammar• Using lex and yacc files BNF

• Transforming BNF ( avoiding left recursion )

• Restructuring grammar elements for easier feature development

• Using cross reference to reduce the development time

Requirements FeaturesGrammarXtext Challenges Future Work

Page 37: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Feature Classification

Class ExampleContent Assist Auto-complete function names

Smart Refactoring Rules based code reformatting

Syntax Coloring Multiple variable definition

Others Package import, Display call hierarchy

Requirements FeaturesGrammarXtext Challenges Future Work

Page 38: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Auto-complete Function Names

Requirements FeaturesGrammarXtext Challenges Future Work

Page 39: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Rules Based Code Reformatting

Requirements FeaturesGrammarXtext Challenges Future Work

Page 40: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Multiple Variable Definition

Requirements FeaturesGrammarXtext Challenges Future Work

Page 41: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Package Import

Requirements FeaturesGrammarXtext Challenges Future Work

Page 42: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Display Call Hierarchy

Requirements FeaturesGrammarXtext Challenges Future Work

Page 43: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Challenges• Many features are grammar related

– Grammar and feature interdependence• Grammar semantics are imported indirectly

• Grammar elements needed restructuring

• No support for some non-derived features– Few features developed from scratch

• Only few plugins available.Requirements FeaturesGrammarXtext Challenges Future Work

Page 44: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Future work• Grammar, Grammar, Grammar!

– Elegant way of implementing semantics– Restructuring (optimization)

• Optimizing the implementation of some features to achieve better total performance.

Requirements FeaturesGrammarXtext Challenges Future Work

Page 45: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Content• Requirements• Expectation• Design decisions• Reality• Modern Debugger• Features• Ctrl Debugger• Challenges• Future work

Eclipse IDE

UI Workbench

DebuggerPlug-In

WinCC-OA System

Page 46: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Requirements• Make a functional debugger

• Requirements derived from use cases– Execute script– Debug script

• Debug perspective• Stack trace• Variable watch• Log viewer

Req… RealityDDExpec… Modern Features Ctrl. D. Challenges F. Work

Page 47: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Debugger - expectation

Req… RealityDDExpec… Modern Features Ctrl. D. Challenges F. Work

DebuggerPlug-In WinCC-OA System

SVN Plug-In

GIT Plug-In

DoxygenPlug-In

XtextPlug-In

Eclipse IDE

UI Workbench

Communication framework

Page 48: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Design Decisions• Imp vs. Xtext vs. Independent Plugin• Eclipse debug toolbar API vs. Greenfield

implementation• API based at WinCC-OA side• Variable watcher: Tree view vs. Table view• Control manager: code vs. command line

Req… RealityDDExpec… Modern Features Ctrl. D. Challenges F. Work

Page 49: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Debugger - reality

Req… RealityDDExpec… Modern Features Ctrl. D. Challenges F. Work

DebuggerPlug-In WinCC-OA System

Communication framework

Variable watcher

Stack trace

Console log

Parser

API Manager

Ctrl Manager

Page 50: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Modern Debugger

Req… RealityDDExpec… Modern Features Ctrl. D. Challenges F. Work

WinCC

debugger

OOTI Craftsm

anship

Page 51: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Features (desired)• Set/Remove Break Point• Active Row Focus/Highlight• Debug Button• Step Button (step / step into)• Continue Button• Stop Button• Keyboard shortcuts

Req… RealityDDExpec… Modern Features Ctrl. D. Challenges F. Work

Page 52: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Features (necessary)• Log Console• Variable watch• Ctrl & Debug perspectives• Adapt WinCC-OA project to CtrlEclipse• Parser• Multi-level debugging

Req… RealityDDExpec… Modern Features Ctrl. D. Challenges F. Work

Page 53: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

The Ctrl Debugger

Req… RealityDDExpec… Modern Features Ctrl. D. Challenges F. Work

Page 54: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Challenges• Blocking tasks• Every piece in the mosaic is important• Set a breakpoint• WinCC-OA limitations

– Parser– Delay handling

• Thrift interfaces

Req… RealityDDExpec… Modern Features Ctrl. D. Challenges F. Work

Page 55: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Future work• WinCC-OA core functionality

– Remove current workarounds• Parser to be replaced with API to the data

• Communication between CtrlEclipse IDE and WinCC-OA– Non-blocking communication

• Optimization– Coloring– Settings

• Conditional breakpointsReq… RealityDDExpec… Modern Features Ctrl. D. Challenges F. Work

Page 56: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Content• Recap• Challenges• Future work and improvements• Conclusion

Page 57: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Recap-Architecture Process• CAFCR

Customerobjectives

Application Functional Conceptual Realization

CustomerWhat

CustomerHow

ProductWhat

ProductHow

What does Customer needIn a Product and Why?

derives, justifies, needs

enables, supports

Page 58: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Recap-Architecture

Eclipse IDE

UI Workbench

SVN Plug-In

GIT Plug-In

DoxygenPlug-In

DebuggerPlug-In

XtextPlug-In WinCC-OA System

Page 59: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Recap-Editor• Xtext• Grammar • Feature classification

– Content Assist– Smart Refactoring– Syntax Coloring – Validation rules– Others

• 28+ features

Eclipse IDE

UI Workbench

SVN Plug-In

GIT Plug-In

DoxygenPlug-In

XtextPlug-In

Page 60: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Recap Debugger• Custom API manager• Thrift• Eclipse plugin

(independent)

• API based• Ctrl + Debug perspective

– Stack trace– Variable watch– Multilevel debugging

Eclipse IDE

UI Workbench

DebuggerPlug-In

WinCC-OA System

Page 61: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Challenges• Editor

– Requirement elicitation– Grammar-feature dependence– Grammar restructuring

• Debugger– Component communication– Result parsing– Functional interdependence

Page 62: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Future Work• Editor

– Grammar semantics– Static code analysis (OCL rules)– Integrated test framework

• Debugger– Non blocking communication– Natural APIs from WinCC-OA– Conditional breakpoints

Page 63: Boosting your Career CERN-IDE Project. Content PDEng Program Program Structure The trainees Team formation Editor team Debugger team

Thank You