Modeling SPARK Systems with UML Xavier Sautejeau SigAda’05 © Sodius.

Slides:



Advertisements
Similar presentations
Major Influences on the Design of ODM Dan Chang (IBM) Elisa Kendall (Sandpiper) MDSW 2004.
Advertisements

Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel.
Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
Automated Test Design ™ © 2011 Conformiq, Inc. CONFORMIQ DESIGNER On ES v1.2.1 Stephan Schulz MBT Working Meeting/MTS#56, Göttingen.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
SIGAda Copyright © 2001 Praxis Critical Systems Limited  Peter Amey Praxis Critical Systems A Language for Systems not Just Software.
Copyright W. Howden1 Lecture 11: UML Terminology and Additional Models and Notation.
IMS1805 Systems Analysis Topic 3: Doing Analysis (continued from previous weeks)
A Formal Foundation Supporting MDD --- ZOOM Approach Hongming Liu Lizhang Qin 11/08/2003.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
® Eurostep.ESUKPC v0.1©Copyright Eurostep Limited An Introduction to ISO STEP Part 25 David Price.
10 December, 2013 Katrin Heinze, Bundesbank CEN/WS XBRL CWA1: DPM Meta model CWA1Page 1.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Spectra Software Defined Radio Products Applying Model Driven Design, Generative Programming, and Agile Software Techniques to the SDR Domain OOPSLA '05.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 4 - System modelling Dr Richard Clayton.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
C++ Code Analysis: an Open Architecture for the Verification of Coding Rules Paolo Tonella ITC-irst, Centro per la Ricerca Scientifica e Tecnologica
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
Mathematical Modeling and Formal Specification Languages CIS 376 Bruce R. Maxim UM-Dearborn.
MDE Model Driven Engineering Xavier Blanc Université Pierre et Marie Curie
Introduction to MDA (Model Driven Architecture) CYT.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Agenda 1. Introduction 2. Overview of SU-MoVal 3. OCL-based Model Validation 4. QVT-based Transformations 5. Demo of SU-MoVal 6. Conclusion and Future.
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
ISO/IEC CD and WD : Core Model and Model Mapping ISO/IEC JTC1/SC32/WG September 2005, Toronto SC32/WG2 Japan (Kanrikogaku Ltd) Masaharu.
SaveUML System design. System overview Possible...
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Methodology - Conceptual Database Design. 2 Design Methodology u Structured approach that uses procedures, techniques, tools, and documentation aids to.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Selected Topics in Software Engineering - Distributed Software Development.
Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.
A language to describe software texture in abstract design models and implementation.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
Dr. Darius Silingas | No Magic, Inc. Domain-Specific Profiles for Your UML Tool Building DSL Environments with MagicDraw UML.
Verification of behavioural elements of UML models using B Truong, Ninh-Thuan and Souquieres, Jeanine In Proceedings of the 2005 ACM Symposium on.
High Integrity Ada in a UML and C world Peter Amey, Neil White Presented by Liping Cai.
CS 772: Global Knowledge Networks V. “Juggy” Jagannathan CSEE, West Virginia University.
Sheet 1 DocEng’03, Grenoble, November 2003 Model Driven Architecture based XML Processing Ivan Kurtev, Klaas van den Berg University of Twente, the Netherlands.
Toolbased Language Development J. Fischer, E. Holz, A. Prinz, M. Scheidgen.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
The Unified Modeling Language (UML)
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
® A Proposed UML Profile For EXPRESS David Price Seattle ISO STEP Meeting October 2004.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CSCI 3428: Software Engineering Tami Meredith UML Unified Modeling Language.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
© 2009 Artisan Software Tools. All rights reserved. Testing Solutions with UML/SysML Andrew Stuart, Matthew Hause.
Page 1 Hitachi Ltd. – FhI FOKUS TTCN-3 User Conference, June 2005 MDA based approach for generation of TTCN-3 test specifications Hideto Ogawa, Hitachi.
Defects of UML Yang Yichuan. For the Presentation Something you know Instead of lots of new stuff. Cases Instead of Concepts. Methodology instead of the.
SysML 2.0 Requirements for Visualization
SysML v2 Formalism: Requirements & Benefits
Systems Analysis and Design With UML 2
Daniel Amyot and Jun Biao Yan
Seminar 1 Design of Informatics Systems
Specifying collaborative decision-making systems
The Extensible Tool-chain for Evaluation of Architectural Models
Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel
Design of Transmission Pipeline Modelling Language
UML profiles.
Software Architecture & Design
Presentation transcript:

Modeling SPARK Systems with UML Xavier Sautejeau SigAda’05 © Sodius

2 Contents Rationale Mapping Overview Tool support Conclusion

3 Rationale SPARK Overview UML Overview Why is a mapping useful ? Rationale - Mapping Overview - Tool Support - Conclusion

4 SPARK Overview Description –Programming language Safe(r) Ada subset Comments with added-value safety semantics Usage –Save money on defect detection –« Correctness by construction » Further info – Rationale - Mapping Overview - Tool Support - Conclusion

5 UML Overview Description –(Mainly) graphical notation Usage –Model OO aspects of systems Further info – Rationale - Mapping Overview - Tool Support - Conclusion

6 Combining perspectives –OO focus –Safety focus Smoothening transitions between development phases –Automate UML to SPARK transformation through code generation rules Why is a mapping useful ? Better architecture Rationale - Mapping Overview - Tool Support - Conclusion

7 Mapping overview Comparing UML and SPARK Mapping individual elements Mapping structure Evaluation criteria Rationale - Mapping Overview - Tool Support - Conclusion

8 Comparing UML and SPARK similarities Domain –Represent SW development concepts and their relations Composition rules –SPARK Ada based on a formal grammar Defines the authorized combinations of syntactical elements –UML based on a metamodel Defines the authorized combinations of modeling concepts Rationale - Mapping Overview - Tool Support - Conclusion

9 Comparing UML and SPARK differences Goal –UML => modeling activities –SPARK => defect prevention Audience –UML => humans –SPARK => computer Rationale - Mapping Overview - Tool Support - Conclusion

10 Mapping individual elements "Natural" mapping of main concepts Customizing UML via profiles Enhancing the fit Rationale - Mapping Overview - Tool Support - Conclusion

11 Mapping elements "Natural" mapping Rationale - Mapping Overview - Tool Support - Conclusion SPARK constructUML model element PackageClass | Package Operation VariableAttribute AnnotationConstraint | Dependency | TaggedValue | Stereotype Some possible equivalences from SPARK to UML

12 Mapping elements Customizing UML via profiles Native UML not rich enough to represent SPARK systems Profile –set of stereotypes, tagged values and constraints –To bring additional descriptive power to the UML notation Rationale - Mapping Overview - Tool Support - Conclusion

13 Mapping elements Customizing UML via profiles Rationale - Mapping Overview - Tool Support - Conclusion Profile element(s) [kind] SPARK constructUML construct > [stereotype] Proof type | Proof Operation Type | Operation OwnMode [tagged value, Enum (None, In, Out)] Own variable modeAttribute globalSpec, globalBody [tagged value, String] Global annotation(s)Operation > [stereotype] Global annotation(s)Dependency ( from operation to attribute) SPARK Profile Candidate Elements

14 Mapping elements Enhancing the fit Rationale - Mapping Overview - Tool Support - Conclusion A UML Model of the Stack class Stack class operations properties

15 Mapping elements Enhancing the fit Rationale - Mapping Overview - Tool Support - Conclusion Stack class operations properties Implicit “this” parameter passing mode in UML can only translate to “in” or “in out” in SPARK

16 Mapping elements Enhancing the fit Rationale - Mapping Overview - Tool Support - Conclusion -- partial specification of the Stack class package Stacks is type Stack is private; procedure Clear(S: out Stack); --# derives S from ; procedure Pop (S : in out stack;X : out Integer); --# derives S, X from S; procedure Push (S : in out stack;X : in Integer); --# derives S from S, X; end Stacks; Stack class operations properties

17 Mapping structure Declaration order considerations Composition rules Rationale - Mapping Overview - Tool Support - Conclusion

18 Mapping structure declaration order A definition –“A metamodel is an “abstract language” for describing different kinds of data; that is, a language without a concrete syntax or notation." – OMG, Meta Object Facility, Version 1.4 In programming languages, concrete syntax is essential –for compilation –for static-analysis (core of SPARK) Rationale - Mapping Overview - Tool Support - Conclusion

19 Mapping structure declaration order Rationale - Mapping Overview - Tool Support - Conclusion package Stacks is type Stack is private; private Stack_Size : constant := 100; type Pointer_Range is range 0..Stack_Size; subtype Index_Range is Pointer_Range range 1..Stack_Size; type Vector is array (Index_Range) of Integer; type Stack is record Stack_Vector: Vector; Stack_Pointer: Pointer_Range; end record; end Stacks;

20 Mapping structure declaration order Rationale - Mapping Overview - Tool Support - Conclusion package Stacks is type Stack is private; private Stack_Size : constant := 100; type Pointer_Range is range 0..Stack_Size; subtype Index_Range is Pointer_Range range 1..Stack_Size; type Vector is array (Index_Range) of Integer; type Stack is record Stack_Vector: Vector; Stack_Pointer: Pointer_Range; end record; end Stacks; This type declaration depends on the “Stack_Size” constant declaration How do you represent this declaration order dependency in UML ?

21 Mapping structure declaration order Inherent to SPARK Grammar –Built-in total ordering UML –Only partial ordering For elements of the same kind (e.g. attributes) Rationale - Mapping Overview - Tool Support - Conclusion

22 Mapping structure composition rules Operations membership –Class members in UML –Package or other operation member or standalone in SPARK Operation as a namespace –In SPARK/Ada –Not in UML UML is class-centric Rationale - Mapping Overview - Tool Support - Conclusion

23 Evaluation criteria No canonical mapping Criteria are a combination of –Semantic proximity E.g « UML constraint  SPARK annotation » vs « UML tagged value  SPARK annotation » –Workflow integration process people tools Rationale - Mapping Overview - Tool Support - Conclusion

24 Tool support Evaluation criteria –Dedicated/customizable user interface –Generators/leveraging model data –Compensating UML limitations Implementation –Rhapsody in Ada (RiA) Rationale - Mapping Overview - Tool Support - Conclusion

25 Evaluation Criteria dedicated user interface Writer/Input Perspective –Facilitate the modeling of SPARK aspects of a model Reader/Output perspective –Highlight « SPARKness » of elements on diagrams Rationale - Mapping Overview - Tool Support - Conclusion

26 Evaluation Criteria Leveraging model data Generate –Code –Documentation –Make files –CM commands –… Rationale - Mapping Overview - Tool Support - Conclusion

27 Evaluation Criteria Compensating UML limitations Via profiles By offering more than a strictly UML compliant CASE tool Rationale - Mapping Overview - Tool Support - Conclusion

28 Implementation on RiA User interface « Model-oriented » and « Capture- oriented » styles –Annotation = dependencies + stereotypes + tags –Annotation = tag Graphical(UML) vs Textual(SPARK) Rationale - Mapping Overview - Tool Support - Conclusion

29 Implementation on RiA Code generator UML Meta-Model based implementation –Rules-based generation engine –Flexible, but limited by the MM itself Unusual approach for SPARK –Limit the amount of auto-generated code –To limit the information-flow –Enforces design based on conscious decisions from user Rationale - Mapping Overview - Tool Support - Conclusion

30 Implementation on RiA Interfacing with the examiner Optimize user workflow Integrate Examiner into Rhapsody –Generate examiner commands –Invoke directly from CASE tool –Redirect output Error navigability Rationale - Mapping Overview - Tool Support - Conclusion

31 Conclusion Concepts promoted by SPARK –Make Ada a better language –Are applicable across a large abstraction spectrum From business logic domain (information flow analysis) Down to implementation (proof annotations) –Are just as important as OO aspects Rationale - Mapping Overview - Tool Support - Conclusion

32 Conclusion Static analysis integration in UML –Requires an evolution of the Meta Model From a platform independent perspective –Information flow is applicable at a high level of abstraction From a platform specific perspective –Proof relies on code and not on mere specs –Justified by current model driven practices MDA technologies requalify some systems aspects as valuable modeling flow sources Rationale - Mapping Overview - Tool Support - Conclusion

33 Conclusion Exploitable mapping –native UML + Profile –Associated tooling Room for progression Rationale - Mapping Overview - Tool Support - Conclusion

34 A word of Thanks

Questions ? Xavier Sautejeau