Gaudi software process Ralph Back CREST CREST: Center for Reliable Software Technology Åbo Akademi.

Slides:



Advertisements
Similar presentations
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Advertisements

Software Life Cycle Requirements analysis System design Program design Program implementation (coding) Unit testing Integration testing System testing.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
SPECIFYING COGNITIVE MODELS Using Patterns and Conflicts A. Macklem, F. Mili Oakland University S. Dungrani TARDEC June, 2004.
Gaudí Software Factory Ralph Back Ivan Porres. Gaudí Software Factory It is a place to build good software and to find the best way to build good software.
Gaudí Software Factory Ralph Back Ivan Porres. Gaudí Software Factory It is a place to build good software and to find the best way to build good software.
CSE 111: Object Oriented Design. Design “To program is human but to design is divine” (WEH)
Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
Chapter 1 Principles of Programming and Software Engineering.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
Package design and the Iterative process model. What is a package? Classes are not sufficient to group code –Some classes collaborate, implying dependencies.
Chapter 1 The Systems Development Environment
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Computer Architecture The Concept Ola Flygt V ä xj ö University
Principles of Object Technology Module 1: Principles of Modeling.
The Systems Development Environment. Learning Objectives Define information systems analysis and design. Describe the different types of information systems.
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Chapter 1 The Systems Development Environment
1. 2  Have a basic understanding of the fundamental principles of object-oriented software development.  Understand a selection of the design patterns.
Rational Unified Process Fundamentals Module 4: Disciplines II.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Agile Test-based Modeling 資工 聶順成. Outline  Introduction : Modeling meets Programming  Agile Modeling: Using Models in Agile Projects  Model-based.
1 System Analysis and Design Using UML INSTRUCTOR: Jesmin Akhter Lecturer, IIT, JU.
Frameworks CompSci 230 S Software Construction.
IWSFT /11/ A Layered Formal Specification of Contactless IC Card "FeliCa" Kyushu University (JAPAN) Xiaojing ZHANG, Yoichi OMORI and Keijiro.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Object-Oriented Programming © 2013 Goodrich, Tamassia, Goldwasser1Object-Oriented Programming.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
CHAPTER 3 MODELING COMPONENT-LEVEL DESIGN.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
1 Here are some quotations to get an overview of the kinds of issues of interest.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
PI2134 Software Engineering IT Telkom.  Layered technology  Software Process  Generic Process (by Pressman)  Fundamental activities (by Sommerville)
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software.
 Description of Inheritance  Base Class Object  Subclass, Subtype, and Substitutability  Forms of Inheritance  Modifiers and Inheritance  The Benefits.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Principles of Programming & Software Engineering
Software Development.
Chapter3:Software Processes
Principles of Programming and Software Engineering
UML: Unified modeling language
Rational Worldwide Software Symposium
Logical architecture refinement
Chapter 20 Object-Oriented Analysis and Design
Rational Worldwide Software Symposium
Appendix A Object-Oriented Analysis and Design
Design Tips.
Vocabulary Algorithm - A precise sequence of instructions for processes that can be executed by a computer Low level programming language: A programming.
Extreme Programming.
Rational Worldwide Software Symposium
Appendix A Object-Oriented Analysis and Design
Chapter 10 – Component-Level Design
Presentation transcript:

Gaudi software process Ralph Back CREST CREST: Center for Reliable Software Technology Åbo Akademi

The Ladder:Specification and implementation Specification – customer Implementation – programmer Ladder model – cooperation between customer/specifier and implementer/programmer Implementation is done using extreme programming  with short iteration cycles  using design by contract (for internal consistency)  and extensive unit testing (checking internal consistency) Specification is done in layers  defining each layer with a new feature  deciding on the order in which the layers are introduced  checking the correctness of the implementation of each level (by functional testing)

Formalization Relationsship specification- implementation need not be one-to- one, but expressed so here for simplicity Comparing level stacks with each other, not individual levels  Spec0 ref Impl0  Spec0+Spec1 ref Impl0+Impl1  etc. In the end, by induction, we prove that Spec0+...+Spec3 ref Impl0+...+Impl3  In general, implementation and specification hierarchies do not need to be the same, it is sufficient that there is a correspondence between these two. Spec0 Spec1 Spec2 Spec3 Impl0 Impl1 Impl2 Impl3

Software evolution We construct the software by building the ladder higher and higher  Each ladder provides one release of the software system Each ladder consists of the specification and implementation stacks, together with verification that these two are related by refinement Successive ladders do not need to be related to each other in any way  May completely change the structure of the software from one ladder (release) to the next one  However, the next release has to be structured as a ladder  This means that there are identified levels in the specification and the implementation, that the consistency of each level has been checked, and that the refinement of the specification by the implementation has also been checked. This means that the specifications can change between releases, to match changing goals for the software Ladder0Ladder1Ladder2Ladder3Ladder4

Software evolution 2 Subsequent ladders can have different structures and goals Reuse part of the ladder (specification or implementation) No need to fix the overall purpose of the software in advance  Software is allowed to evolve freely  The work that has gone into building layers, establishing internal consistency and functional correctness is preserved when possible Software evolution process can be forking into independent developments with different targets.  The ladder can also fork into independent extensions Ladder0Ladder10Ladder2Ladder3Ladder4Ladder5

Ladder structure Can have independent extensions of a layer Can have joint extension of two or more layers (multiple inheritance) This allows parallel construction of independent layers It also allows different extensions to the same basic platform application 1 application 2 application 3 a pplication 4 common platform parallel extensions

Specifications and implementations Specifications and implementations are in principle expressed in the same language (unified framework) In both cases, we have UML class diagrams + behavioral specification Can use more abstract constructs in modelling (specification) and more concrete in programs (implementation) For both specifications and implementations:  we need to check for internal consistency  having an executable description is good (can simulate/test)  having an exact description is very important (cannot check anything else)  we need tools for simulation-testing-verification Also, need tools to check that implementation is correct with respect to specification  this means that the ladder is internally consistent Note that internal consistency of the ladder is what is preserved from one release to the next.

Software hierarchy ConstructRelation relation, predicate, function, truth value inclusion, equality, implication statementrefinement procedurerefinement classrefinement system (collection of classes) refinement stack (of systems)refinement ladderconsistency preserving

Ladders A ladder may be followed by another ladder that has the same functionality, but where the structure has been refactored.  There may be fewer or more layers  The functionality in the different layers may be different Terminology:  layer refer to the modules at a certain height in the hierarchy  level refers to the modules at or below a certain height in the hierarchy

The ladder may be extended sideways by more efficient implementations Spec0 Spec1 Spec2 Spec3 Impl0 Impl1 Impl2 Impl3 Optm0 Optm1 Optm2 Optm3