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

Post on 13-Jan-2016

227 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Boosting your CareerSoftware Technology

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

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

The Trainees

Seventeen TraineesTwelve nationalities

LearnSoftware architecture & design

&Project management

PDEng TeamTraineesStructure 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

Konstantinos

Tarun Miroslav

PDEng TeamTraineesStructure E-Team D-Team

Editor Team

Christos

Surafel

Jonathan (Tester) Abelneh Parisa

Vadim (Tester) Panagiotis (Designer)

PDEng TeamTraineesStructure E-Team D-Team

Debugger Team

Vladimir

Mohsen

Fangyi (Tester) Mari Bayasgalan

Djohan (Tester) Suleyman (Designer)

PDEng TeamTraineesStructure E-Team D-Team

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

Context

Context TimeReq…Scope Archi… Editor Debugger Results

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

– Isolated windows– Primitive editor– Separate debugger

Scope

Context TimeReq…Scope Archi… Editor Debugger Results

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

Requirements

Context TimeReq…Scope Archi… Editor Debugger Results

• Integrated windows• Editor

– Smart refactoring– Referencing– Coding standards

• Debugger– Usable debugger (integrated)

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

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

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

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

Context TimeReq…Scope Archi… Editor Debugger Results

Results• IDE

– Feature rich code editor– integrated debugger

• POC for IDE for DSL

Context TimeReq…Scope Archi… Editor Debugger Results

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

Architecture Process

Customerobjectives

Application Functional Conceptual Realization

CustomerWhat

CustomerHow

ProductWhat

ProductHow

What does Customer needIn a Product and Why?

derives, justifies, needs

enables, supports

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

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

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.

Use Case Model

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

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.

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.

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

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

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.

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.

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

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

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.

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.

Architecture Style

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

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.

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

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

Requirements FeaturesGrammarXtext Challenges Future Work

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

Requirements FeaturesGrammarXtext Challenges Future Work

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

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

Auto-complete Function Names

Requirements FeaturesGrammarXtext Challenges Future Work

Rules Based Code Reformatting

Requirements FeaturesGrammarXtext Challenges Future Work

Multiple Variable Definition

Requirements FeaturesGrammarXtext Challenges Future Work

Package Import

Requirements FeaturesGrammarXtext Challenges Future Work

Display Call Hierarchy

Requirements FeaturesGrammarXtext Challenges Future Work

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

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

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

Eclipse IDE

UI Workbench

DebuggerPlug-In

WinCC-OA System

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

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

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

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

Modern Debugger

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

WinCC

debugger

OOTI Craftsm

anship

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

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

The Ctrl Debugger

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

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

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

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

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

Recap-Architecture

Eclipse IDE

UI Workbench

SVN Plug-In

GIT Plug-In

DoxygenPlug-In

DebuggerPlug-In

XtextPlug-In WinCC-OA System

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

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

Challenges• Editor

– Requirement elicitation– Grammar-feature dependence– Grammar restructuring

• Debugger– Component communication– Result parsing– Functional interdependence

Future Work• Editor

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

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

Thank You

top related