Advanced Topics in model-based Software Development

Size: px
Start display at page:

Download "Advanced Topics in model-based Software Development"

Transcription

1 Advanced Topics in model-based Software Development Prof. Dr. Bernhard Rumpe Technische Universität Braunschweig

2 Seite 1 Trends in software development Size and complexity of systems continually increase: Isolated solutions company-wide integration E-Commerce Systems-Of-Systems World-Wide Cyber-Infrastructure New technologies: EJB, XML,.Net,... Diversification of application domains: Embedded systems, business systems, telecommunication, mobility, ad-hoc changing infrastructures Growing methodological experience how to deal with challenges Agile Methods, e.g, address unstable requirements, time-to-market pressure, lean and effective development for small projects Improved analytical techniques Portfolio of software development processes / techniques etc.

3 Seite 2 Very short overview of Extreme Programming Best Practices. Abandons many software development elements Activities (among others) Coding Incremental Coding standards Runs of all tests Refactoring Testing Tests developed together with the code Functional tests Customers develop business logic tests

4 Seite 3 Idealized View on Model Driven Architecture Requirement use cases and scenarios: sequence diagram describes users viewpoint application classes define data structures (PIM) T T T T T T T T state machines describe states and behavior class diagram Nr. 2 ( PSM ): adaptation, extension, technical design + behavior for technical classes code generation + integration with manually written code system complete and running system

5 Seite 4 Problems of Model Driven Architecture Requirement No reuse Tool chain too long No efficient tools Tracing problems Evolution is awkward T T T T T T T T Lot of information missing, e.g. - Design rationale - Non-functional reqs. Agile development is not possible SE-Models are not integrated with other Models (spatial, biological,...) system

6 Seite 5 Core elements of an agile modelling method Incremental modelling Modelling tests Automatic analysis: Types, dataflow, control flow,... Code generation for system and tests from compact models Small increments Intensive simulation with customer participation for feedback Refactoring for incremental extension and optimisation Common ownership of models... This approach uses elements of agile methods based on the UML notation

7 Seite 6 Model-based programming Two kinds of models are used for the system and the executable tests object deployment diagram class diagrams statecharts C++, Java OCL diagrams : : : sequence diagrams consistency analyser parameterized code generator test code generator smells & errors system tests siehe: B. Rumpe: Agile Modellierung mit UML, Springer Verlag 2004

8 Seite 7 How the approach supports agile development Core characteristics of agility: Efficiency of the developers Reactivity: flexibility to deal with changes Customer focus Rely on individuals Simplicity Quality is an emerging property Improvement through use of UML: + increased through advanced notation & tools + incremental, small cycles + model-based refactoring + even more rapid feedback + less tedious work? skilled people are necessary + refactoring increases extensibility + automated tests + better review-able designs + common ownership & pairwise development of models

9 Seite 8 Agile Model-Based Testing

10 Seite 9 Typical infrastructure of an automated test Principle: use relatively complete object diagram (OD) for test data partial OD and OCL as oracle sequence diagram (SD) or Java as test driver test data test driver expected result and/or OCL-contract as test oracle o1 o3 o2 o4 OD objects under test SD or Java o5 o1 o3 o2 o4 + OD OCL

11 Seite 10 Sequence diagram: test driver and interaction description linear structure of an exemplaric system run + OCL for property description copper912: Auction «trigger» handlebid(bid) validatebid(bid) bidpol: BiddingPolicy timepol: TimingPolicy SD test driver return OK newcurrentclosingtime(copper912, bid) return t OCL constraints describe properties during the test run t.time == bid.time + extensiontime

12 Seite 11 Test pattern Systems need to be testable Example: Side effects like file protocol must be captured Protocol void setlogfile (String filename) void writetolog (String text) method with side effects logs its text in a file ProtocolDummy String loglastline = int logcount = 0 void writetolog (String text) redefined method stores arguments in attribute: no side effects and results can be checked Test pattern describe typical processes & structures for test definition

13 Seite 12 Test pattern for standard problems side effects (DB, GUI) capsule with adapter & dummies static attributes capsule with singleton object object creation factory frameworks separation of application and framework through adapter time simulation through controllable clock concurrency simulation through explicit scheduling distribution simulation in one process space

14 Seite 13 Testing of embedded software through simulation

15 Seite 14 Simulation for autonomic driving Caroline, an autonomously driving car in the DARPA Urban Challenge 2007 Testing the intelligence The context is: a street map pedestrians other cars driving... Use of SE-models (e.g. state machines) and other kinds of models (e.g. maps) to feed the simulation engine Simulation as technology to early capture problems and validate (as well understand) requirements.

16 Seite 15 Simulation Runs virtual journeys in complex traffic situations automatic regression tests ID = 22 v = 4m/s loc = (23.4; -12.2) Schematic drawing showing Caroline approaching an intersection.

17 Seite 16 Simulation Runs virtual journeys in complex traffic situations automatic regression tests, various scenarios

18 Seite 17 Model-based simulation for SE Test-Infrastructure needs simulation of its context: context can be: geographical, sociological, etc. Simulation helps to understand complexity deployment diagram class diagrams statecharts Further DSLs C++, Java OCL object diagrams Further : : DSLs : sequence diagrams system tests

19 Seite 18 Model-Based Evolution / Refactoring

20 Seite 19 Software Evolution Software evolution is the key problem in software development. Oscar Nierstrasz Requirements change Platforms and system contexts evolve Bugs needs to be fixed Time and space optimisations are desired Existing software needs to be evolved Code as well as models need to be adapted to keep them consistent

21 Seite 20 Refactoring as a special form of transformation Refactoring is a technique to improve internal structure / architecture of a system, while preserving observable behaviour Refactoring rules: series of systematically applicable, goal directed steps Powerful through simplicity of piecewise application and flexibility of combination of systematic steps Roots: Opdyke/Johnson 1992 had 23 refactorings on C++ Fowler 1999 has 72 refactoring rules for Java

22 Seite 21 Refactoring example 1 Person CD Person CD Bidder Guest Refactoring checkpasswd() long ident checkpasswd() checkpasswd() long ident Bidder Guest Pull Up Attribute ident into superclass: structural generalization Factor Method checkpasswd() and adapt it Preservation of observable behaviour? depends on viewpoint: class, component, system

23 Seite 22 Principle of refactoring Refactoring is orthogonal to adding functionality An idealised diagram: functionality 100% target: 100% of the functionality, acceptable design programming refactoring 100% quality of design

24 Seite 23 Example: moving an attribute Attribute att shall be moved from class A to B A att B CD // code a.att Code a.exp is the navigation path from A to B {frozen} A /connection 1 1 att B CD context A a inv: OCL a.connection == a.exp; context A a1, A a2 inv: a1!= a2 implies a1.connection!= a2.connection A att B CD // Code a.exp.att Code

25 Seite 24 Refactoring example: changing data structures A series of steps to apply: 1. Identify old data structure: here: long to be replaced by Money Auction long currentbidincent 2. Add new datastructure + queries + compile Auction long currentbidincent Money bestbid 3. Identify invariants to relate both context Auction inv M: currentbidincent == bestbid.valueincent() 4. Add code for new data structure & invariants wherever old data structure is changed + compile & run tests currentbidincent =... bestbid.setvalue... assert M 5. Modify places where old data structure was used + compile & run tests =... currentbidincent... =... bestbid.valueincent() Simplify + compile & run tests 7. Remove old data structure + compile & run tests Auction Money bestbid

26 Seite 25 Test as observation for refactoring Both structure and behaviour are observed by tests test = driver and observer setup & call observe creation observe interaction check property compare with expected result snapshots of the test run time axis

27 Seite 26 Validation of refactorings using tests Observation remains invariant under refactoring test: driver and observer Observation Refactoring Test result Ok. test: driver and observer Observation

28 Seite 27 Evolution as strategic refactoring Evolution in the small supports evolution in the large Evolution in the small: Transformation rules = small, manageable and systematic steps General goals of transformations: reasoning, deriving implementation oriented artefacts, building abstractions e.g. for reengineering, evolutionary improvement Transformation calculi can serve as technical basis for an evolutionary approach to software development

29 Seite 28 Examples for Transformational Development Mathematical calculi for reasoning State machine transformations for error completion, determinism, Stepwise refinement of programs (Bauer, Partsch) for software development Hoare calculus for reasoning over programs Refactoring (Opdyke, Fowler) for evolution.

30 Seite 29 Streams & Behaviors Communication histories over channels are modeled by streams: streams s = <1,2,a,3,b,b,...> Channel valuations assign streams to channel names: C = C M ℵ An I/O behavior relates input and output channel valuations: β : I P( O ) Composition of behaviors can be modeled graphically:

31 Seite 30 Kinds of Transformations Behavioral Refinement: A behavior β is a refinement of a behavior β Structural Refinement (Decomposition) x : β (x) β(x) Evolution of architecture (Refactoring)

32 Seite 31 Semantics of Transformations Blackbox behavior Transformation rules: Add or remove components Add or remove channels Refine component behavior Fold and unfold subsystems Refinement relation =, Blackbox behavior

33 Seite 32 Example: Communication System In Stub Data RDB Key Req Data (Consisting of key and value) is accepted via In and transmitted to the Remote Data Base (RDB) Upon sending a key, the requested value is sent Problem: Transmission from Stub to RDB shall be encrypted Solution: We evolve the part of the system, we are currently focusing on

34 Seite 33 Example: Communication System In Stub Data RDB Key Req Step 0: Decide what observed behavior will be that is not changed. Here, we group the observed channels into a component

35 Seite 34 Example: Communication System In Stub Data RDB Key Req ENC DEC Step 1: Add encryption and decryption components No connection to the rest of the system: Nothing bad can happen

36 Seite 35 Example: Communication System In Stub Data RDB Key ENC CData DEC Data Req Step 2: Define signature and behavior of new components (may be we reuse of the shelf components?) Still no connection to the rest of the system: Nothing bad can happen

37 Seite 36 Example: Communication System In Stub Data RDB Key ENC CData DEC Data Req Step 3: connect Input and output channels RDB now has an additional input channel, but doesn t use it yet Still nothing bad can happen

38 Seite 37 Example: Communication System In Stub Data RDB Key ENC CData DEC Data Req Step 4: establish invariant between channels: CData = encrypt* (Data) Data = Data (modulo time) RDB now can use Data instead of Data

39 Seite 38 Example: Communication System In Stub RDB Key ENC CData DEC Data Req Step 5: Remove unused channel Data

40 Seite 39 Example: Communication System In Stub RDB Key ENC CData DEC Data Req Step 6: Fold new parts into subcomponents

41 Seite 40 Conclusion: Constructive use of Models + Evolution deployment diagram class diagrams statecharts C++, Java object diagrams : : sequence diagrams OCL : consistency analyser parameterized code generator test code generator smells & errors system tests siehe: B. Rumpe: Agile Modellierung mit UML, Springer Verlag 2004

42 Seite 41 Conclusion Further diversification of SE techniques / tools / methods leads to a portfolio of SE techniques Intelligent use of models allows to improve development Methodical knowledge allows more efficient processes correctness by construction automated tests over documentation and reviews evolutionary development (refactoring) over big-upfront-design phase Model engineering

43 Seite 42 Attachment

44 Seite 43 State machines A state machine is a tupel A=(S,M,δ,I) consisting of: set of states S, set of input and output messages M, state transition relation δ: (S M) 2 (S M*) and set I S M * of initial states and outputs Nondeterminism = underspecification Partiality = total underspecification (chaos)

45 Seite 44 State machines A state machine is a tupel A=(S,M,δ,I) consisting of: set of states S, set of input and output messages M, state transition relation δ: (S M) 2 (S M*) and set I S M * of initial states and outputs Nondeterminism = underspecification Partiality = total underspecification (chaos)

46 Seite 45 Semantics of a state machine One transition contains one input message and a sequence of output messages Semantics is a relationship between input and output streams M : (S,M,δ,I) 2 (M* M*) Behavioral refinement between automata: A 1 A 2 iff M[A 1 ] M[A 2 ] Refinement rules can be used to constrain (detail) behavior description inherit state machines implementation of an interface

47 Seite 46 Example transformation rule Remove a transition: if there is an alternative A A foo foo foo B C B C If preconditions are present, the remaining transition must overlap the removed transition. This must be proven.

48 Seite 47 Example transformation rule 2 Split a state A A foo foo foo B B1 B2 Multiplies transitions useful to remove unwanted transitions

49 Seite 48 Example: Statemachine for class Figure /draw deselect/ NotSel select/render Sel 1. Intro. state Sel(ected) 2. Intro. state NotSel(ected) 3. Define init states 4. Constrain method select in state NotSel /draw&render deselect/error deselect/unrender 5. deselect in state Sel 6. introduce error state 7. error completion using underspecification Error deselect/ select/

50 Seite 49 Example: Statemachine for class Figure /draw deselect/ NotSel select/render Sel 1. Intro. state Sel(ected) 2. Intro. state NotSel(ected) 3. Define init states 4. Constrain method select in state NotSel /draw&render deselect/error deselect/unrender Error deselect/ select/ 5. deselect in state Sel 6. introduce error state 7. error completion using underspecification 8. specialize deselect: remove transition 9. remove error state 10. specialize initial states

51 Seite 50 Example: Statemachine for class Figure deselect/ NotSel select/render Sel 1. Intro. state Sel(ected) 2. Intro. state NotSel(ected) 3. Define init states 4. Constrain method select in state NotSel /draw&render deselect/unrender Each step is a refinement of the observable behavior of that class 5. deselect in state Sel 6. introduce error state 7. error completion using underspecification 8. specialize deselect: remove transition 9. remove error state 10. specialize initial states

Agile Test-based Modeling

Agile Test-based Modeling Agile Test-based Modeling Bernhard Rumpe Software Systems Engineering TU Braunschweig, Germany www.sse.cs.tu-bs.de Model driven architecture (MDA) concentrates on the use of models during software development.

More information

Agile Modeling with the UML

Agile Modeling with the UML Agile Modeling with the UML Bernhard Rumpe Software & Systems Engineering, Technische Universität München 85748 Munich/Garching, Germany, This paper discusses a model-based approach to software development.

More information

The SPES Methodology Modeling- and Analysis Techniques

The SPES Methodology Modeling- and Analysis Techniques The SPES Methodology Modeling- and Analysis Techniques Dr. Wolfgang Böhm Technische Universität München [email protected] Agenda SPES_XT Project Overview Some Basic Notions The SPES Methodology SPES_XT

More information

Über die Semantik von Modellierungssprachen

Über die Semantik von Modellierungssprachen Über die Semantik von Modellierungssprachen und des UML-Standards Prof. Dr. Bernhard Rumpe Technische Universität Braunschweig http://www.sse.cs.tu-bs.de/ Seite 2 What is a model? And why do we need modeling

More information

UML-based Test Generation and Execution

UML-based Test Generation and Execution UML-based Test Generation and Execution Jean Hartmann, Marlon Vieira, Herb Foster, Axel Ruder Siemens Corporate Research, Inc. 755 College Road East Princeton NJ 08540, USA [email protected] ABSTRACT

More information

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements

More information

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The

More information

Chapter 4 Software Lifecycle and Performance Analysis

Chapter 4 Software Lifecycle and Performance Analysis Chapter 4 Software Lifecycle and Performance Analysis This chapter is aimed at illustrating performance modeling and analysis issues within the software lifecycle. After having introduced software and

More information

How To Test Automatically

How To Test Automatically Automated Model-Based Testing of Embedded Real-Time Systems Jan Peleska [email protected] University of Bremen Bieleschweig Workshop 7 2006-05-05 Outline Technologie-Zentrum Informatik Objectives Basic concepts

More information

Chapter 8 Software Testing

Chapter 8 Software Testing Chapter 8 Software Testing Summary 1 Topics covered Development testing Test-driven development Release testing User testing 2 Program testing Testing is intended to show that a program does what it is

More information

Enterprise Architecture: Practical Guide to Logical Architecture

Enterprise Architecture: Practical Guide to Logical Architecture Objecteering Practical Guides Enterprise Architecture: Practical Guide to Logical Architecture Author: Version: 1.0 Copyright: Softeam Softeam Consulting Team Supervised by Philippe Desfray Softeam 21

More information

Java (12 Weeks) Introduction to Java Programming Language

Java (12 Weeks) Introduction to Java Programming Language Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short

More information

Model-Based Requirements Engineering with AutoRAID

Model-Based Requirements Engineering with AutoRAID Model-Based Requirements Engineering with AutoRAID Bernhard Schätz, Andreas Fleischmann, Eva Geisberger, Markus Pister Fakultät für Informatik, Technische Universität München Boltzmannstr. 3, 85748 Garching,

More information

Chapter 5. Regression Testing of Web-Components

Chapter 5. Regression Testing of Web-Components Chapter 5 Regression Testing of Web-Components With emergence of services and information over the internet and intranet, Web sites have become complex. Web components and their underlying parts are evolving

More information

A UML 2 Profile for Business Process Modelling *

A UML 2 Profile for Business Process Modelling * A UML 2 Profile for Business Process Modelling * Beate List and Birgit Korherr Women s Postgraduate College for Internet Technologies Institute of Software Technology and Interactive Systems Vienna University

More information

The Software Development Process

The Software Development Process Systeme hoher Qualität und Sicherheit Universität Bremen WS 2015/2016 Lecture 03 (26.10.2015) The Software Development Process Christoph Lüth Jan Peleska Dieter Hutter Your Daily Menu Models of software

More information

Software Engineering Reference Framework

Software Engineering Reference Framework Software Engineering Reference Framework Michel Chaudron, Jan Friso Groote, Kees van Hee, Kees Hemerik, Lou Somers, Tom Verhoeff. Department of Mathematics and Computer Science Eindhoven University of

More information

.NET and J2EE Intro to Software Engineering

.NET and J2EE Intro to Software Engineering .NET and J2EE Intro to Software Engineering David Talby This Lecture.NET Platform The Framework CLR and C# J2EE Platform And Web Services Introduction to Software Engineering The Software Crisis Methodologies

More information

Foundations of Model-Driven Software Engineering

Foundations of Model-Driven Software Engineering Model-Driven Software Engineering Foundations of Model-Driven Software Engineering Dr. Jochen Küster ([email protected]) Contents Introduction to Models and Modeling Concepts of Model-Driven Software

More information

Use Cases. Massimo Felici. Massimo Felici Use Cases c 2004 2011

Use Cases. Massimo Felici. Massimo Felici Use Cases c 2004 2011 Use Cases Massimo Felici Use Cases 1 Support requirements engineering activities and the requirement process Capture what a system is supposed to do, i.e., systems functional requirements Describe sequences

More information

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems 1 2 Model-Based Development of -Critical Systems Miguel A. de Miguel 5/6,, 2006 modeling Stakes 3 Context 4 To increase the industrial competitiveness in the domain of software systems To face the growing

More information

Course Syllabus For Operations Management. Management Information Systems

Course Syllabus For Operations Management. Management Information Systems For Operations Management and Management Information Systems Department School Year First Year First Year First Year Second year Second year Second year Third year Third year Third year Third year Third

More information

UNIFACE Component-based. Development Methodology UNIFACE V7.2. 151157206-00 Revision 0 Dec 2000 UMET

UNIFACE Component-based. Development Methodology UNIFACE V7.2. 151157206-00 Revision 0 Dec 2000 UMET UNIFACE Component-based Development Methodology UNIFACE V7.2 151157206-00 Revision 0 Dec 2000 UMET UNIFACE Component-based Development Methodology Revision 0 Restricted Rights Notice This document and

More information

TEST AUTOMATION FRAMEWORK

TEST AUTOMATION FRAMEWORK TEST AUTOMATION FRAMEWORK Twister Topics Quick introduction Use cases High Level Description Benefits Next steps Twister How to get Twister is an open source test automation framework. The code, user guide

More information

Six ways to accelerate Android mobile application development

Six ways to accelerate Android mobile application development Six ways to accelerate Android mobile application Creating an integrated solution for collaboration among teams Contents 1 Weaving the invisible thread of innovation 2 Android : vast opportunities and

More information

Introducing Formal Methods. Software Engineering and Formal Methods

Introducing Formal Methods. Software Engineering and Formal Methods Introducing Formal Methods Formal Methods for Software Specification and Analysis: An Overview 1 Software Engineering and Formal Methods Every Software engineering methodology is based on a recommended

More information

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Business-Driven Software Engineering Lecture 3 Foundations of Processes Business-Driven Software Engineering Lecture 3 Foundations of Processes Jochen Küster [email protected] Agenda Introduction and Background Process Modeling Foundations Activities and Process Models Summary

More information

Model-based Testing: Next Generation Functional Software Testing

Model-based Testing: Next Generation Functional Software Testing Model-based Testing: Next Generation Functional Software Testing By Dr. Bruno Legeard Model-based testing (MBT) is an increasingly widely-used technique for automating the generation and execution of tests.

More information

Compliance and Requirement Traceability for SysML v.1.0a

Compliance and Requirement Traceability for SysML v.1.0a 1. Introduction: Compliance and Traceability for SysML v.1.0a This document provides a formal statement of compliance and associated requirement traceability for the SysML v. 1.0 alpha specification, which

More information

Formal Verification and Linear-time Model Checking

Formal Verification and Linear-time Model Checking Formal Verification and Linear-time Model Checking Paul Jackson University of Edinburgh Automated Reasoning 21st and 24th October 2013 Why Automated Reasoning? Intellectually stimulating and challenging

More information

i. Node Y Represented by a block or part. SysML::Block,

i. Node Y Represented by a block or part. SysML::Block, OMG SysML Requirements Traceability (informative) This document has been published as OMG document ptc/07-03-09 so it can be referenced by Annex E of the OMG SysML specification. This document describes

More information

1 Business Modeling. 1.1 Event-driven Process Chain (EPC) Seite 2

1 Business Modeling. 1.1 Event-driven Process Chain (EPC) Seite 2 Business Process Modeling with EPC and UML Transformation or Integration? Dr. Markus Nüttgens, Dipl.-Inform. Thomas Feld, Dipl.-Kfm. Volker Zimmermann Institut für Wirtschaftsinformatik (IWi), Universität

More information

Design by Contract beyond class modelling

Design by Contract beyond class modelling Design by Contract beyond class modelling Introduction Design by Contract (DbC) or Programming by Contract is an approach to designing software. It says that designers should define precise and verifiable

More information

Seamless Method- and Model-based Software and Systems Engineering

Seamless Method- and Model-based Software and Systems Engineering Seamless Method- and Model-based Software and Systems Engineering Manfred Broy Institut für Informatik, Technische Universität München D-80290 München Germany, [email protected] http://wwwbroy.informatik.tu-muenchen.de

More information

Roadmap. Software Engineering. Software Engineering. Project Life Cycle. Database. Project Lifecycle

Roadmap. Software Engineering. Software Engineering. Project Life Cycle. Database. Project Lifecycle Database Project Lifecycle Philippe Bonnet, 2006 2 Software Engineering The implementation of a database application is a significant engineering endeavor The project must complete On time On budget The

More information

UML TUTORIALS THE USE CASE MODEL

UML TUTORIALS THE USE CASE MODEL UML TUTORIALS THE USE CASE MODEL www.sparxsystems.com.au Sparx Systems 2004 Page 1/5 describes the proposed functionality of the new system. A Use Case represents a discrete unit of interaction between

More information

Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer

Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer Generate Results. Real Models. Real Code. Real Fast. Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer Andreas Henriksson, Ericsson [email protected]

More information

Information Systems Analysis and Design CSC340. 2004 John Mylopoulos. Software Architectures -- 1. Information Systems Analysis and Design CSC340

Information Systems Analysis and Design CSC340. 2004 John Mylopoulos. Software Architectures -- 1. Information Systems Analysis and Design CSC340 XIX. Software Architectures Software Architectures UML Packages Client- vs Peer-to-Peer Horizontal Layers and Vertical Partitions 3-Tier and 4-Tier Architectures The Model-View-Controller Architecture

More information

VDM vs. Programming Language Extensions or their Integration

VDM vs. Programming Language Extensions or their Integration VDM vs. Programming Language Extensions or their Integration Alexander A. Koptelov and Alexander K. Petrenko Institute for System Programming of Russian Academy of Sciences (ISPRAS), B. Communisticheskaya,

More information

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software... 1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering Software is intangible Hard to understand

More information

Object-Oriented Systems Analysis and Design

Object-Oriented Systems Analysis and Design Object-Oriented Systems Analysis and Design Noushin Ashrafi Professor of Information System University of Massachusetts-Boston Hessam Ashrafi Software Architect Pearson Education International CONTENTS

More information

Object Oriented Programming. Risk Management

Object Oriented Programming. Risk Management Section V: Object Oriented Programming Risk Management In theory, there is no difference between theory and practice. But, in practice, there is. - Jan van de Snepscheut 427 Chapter 21: Unified Modeling

More information

Web Presentation Layer Architecture

Web Presentation Layer Architecture Chapter 4 Web Presentation Layer Architecture In this chapter we provide a discussion of important current approaches to web interface programming based on the Model 2 architecture [59]. From the results

More information

SOA Testing Services. Enabling Business Agility and Digital Transformation

SOA Testing Services. Enabling Business Agility and Digital Transformation SOA Testing Services Enabling Business Agility and Digital Transformation Getting Value From Service Oriented Architecture (SOA) Many organisations have chosen a Service Oriented Architecture (SOA) middleware

More information

Benefits of Test Automation for Agile Testing

Benefits of Test Automation for Agile Testing Benefits of Test Automation for Agile Testing Manu GV 1, Namratha M 2, Pradeep 3 1 Technical Lead-Testing Calsoft Labs, Bangalore, India 2 Assistant Professor, BMSCE, Bangalore, India 3 Software Engineer,

More information

Runtime Verification - Monitor-oriented Programming - Monitor-based Runtime Reflection

Runtime Verification - Monitor-oriented Programming - Monitor-based Runtime Reflection Runtime Verification - Monitor-oriented Programming - Monitor-based Runtime Reflection Martin Leucker Technische Universität München (joint work with Andreas Bauer, Christian Schallhart et. al) FLACOS

More information

Software Component Specification Using Design by Contract

Software Component Specification Using Design by Contract Software Component Specification Using Design by Contract Yi Liu and H. Conrad Cunningham Department of Computer and Information Science University of Mississippi 237 Kinard Hall University, MS 38677 USA

More information

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology Peter Mileff PhD SOFTWARE ENGINEERING The Basics of Software Engineering University of Miskolc Department of Information Technology Introduction Péter Mileff - Department of Information Engineering Room

More information

Karunya University Dept. of Information Technology

Karunya University Dept. of Information Technology PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main

More information

Independent Insight for Service Oriented Practice. An SOA Roadmap. John C. Butler Chief Architect. A CBDI Partner Company. www.cbdiforum.

Independent Insight for Service Oriented Practice. An SOA Roadmap. John C. Butler Chief Architect. A CBDI Partner Company. www.cbdiforum. Independent Insight for Oriented Practice An SOA Roadmap John C. Butler Chief Architect A CBDI Partner Company www.cbdiforum.com Agenda! SOA Vision and Opportunity! SOA Roadmap Concepts and Maturity Levels!

More information

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

Model Driven Interoperability through Semantic Annotations using SoaML and ODM Model Driven Interoperability through Semantic Annotations using SoaML and ODM JiuCheng Xu*, ZhaoYang Bai*, Arne J.Berre*, Odd Christer Brovig** *SINTEF, Pb. 124 Blindern, NO-0314 Oslo, Norway (e-mail:

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 5 Integrated Object-Oriented Methodologies: OPM and Catalysis 1 Object Process Methodology (OPM) Introduced by Dori in 1995 Primarily intended

More information

Formal Software Testing. Terri Grenda, CSTE IV&V Testing Solutions, LLC www.ivvts.com

Formal Software Testing. Terri Grenda, CSTE IV&V Testing Solutions, LLC www.ivvts.com Formal Software Testing Terri Grenda, CSTE IV&V Testing Solutions, LLC www.ivvts.com Scope of Testing Find defects early Remove defects prior to production Identify Risks Unbiased opinion When Should Testing

More information

To introduce software process models To describe three generic process models and when they may be used

To introduce software process models To describe three generic process models and when they may be used Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software

More information

An Agile Formal Development Methodology

An Agile Formal Development Methodology An Agile Formal Development Methodology George Eleftherakis 1 and Anthony J. Cowling 2 1 Computer Science Department City Liberal Studies Affiliated College of the University of Sheffield 13 Tsimiski Str.,

More information

How to bridge the gap between business, IT and networks

How to bridge the gap between business, IT and networks ericsson White paper Uen 284 23-3272 October 2015 How to bridge the gap between business, IT and networks APPLYING ENTERPRISE ARCHITECTURE PRINCIPLES TO ICT TRANSFORMATION A digital telco approach can

More information

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering Prof. Dr. Armin B. Cremers Sascha Alda Overview Phases during Software Development

More information

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci Software Engineering Software Development Process Models Lecturer: Giuseppe Santucci Summary Modeling the Software Process Generic Software Process Models Waterfall model Process Iteration Incremental

More information

Software Engineering

Software Engineering Software Engineering Lecture 06: Design an Overview Peter Thiemann University of Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Software Engineering SWT 1 / 35 The Design Phase Programming in

More information

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g Systems Integration: Component-based software engineering Objectives To explain that CBSE is concerned with developing standardised components and composing these into applications To describe components

More information

Oracle Real Time Decisions

Oracle Real Time Decisions A Product Review James Taylor CEO CONTENTS Introducing Decision Management Systems Oracle Real Time Decisions Product Architecture Key Features Availability Conclusion Oracle Real Time Decisions (RTD)

More information

Information and Communications Technology Courses at a Glance

Information and Communications Technology Courses at a Glance Information and Communications Technology Courses at a Glance Level 1 Courses ICT121 Introduction to Computer Systems Architecture This is an introductory course on the architecture of modern computer

More information

Chap 1. Introduction to Software Architecture

Chap 1. Introduction to Software Architecture Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)

More information

System Modeling / Class Diagra Diagr m a Week 6

System Modeling / Class Diagra Diagr m a Week 6 System Modeling / Class Diagram Week 6 System modeling Agenda (Lecture) Agenda (Lab) Create CRC cards for your group project Create a system level (analysis level) class diagram (Lab Assignment #6) for

More information

Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011

Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011 QAI /QAAM 2011 Conference Proven Practices For Managing and Testing IT Projects Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011 Format This presentation is a journey When Bill and

More information

Java Programming (10155)

Java Programming (10155) Java Programming (10155) Rationale Statement: The world is full of problems that need to be solved or that need a program to solve them faster. In computer, programming students will learn how to solve

More information

Generation and Handcoding

Generation and Handcoding Farbe! Generative Software Engineering 3. Integrating Handwritten Code Prof. Dr. Bernhard Rumpe University http://www.se-rwth.de/ Page 2 Generation and Handcoding Not everything shall and can be generated

More information

Division of Mathematical Sciences

Division of Mathematical Sciences Division of Mathematical Sciences Chair: Mohammad Ladan, Ph.D. The Division of Mathematical Sciences at Haigazian University includes Computer Science and Mathematics. The Bachelor of Science (B.S.) degree

More information

Difference Between Model-Driven and Traditional Iterative Software Development

Difference Between Model-Driven and Traditional Iterative Software Development Process Implications of Model-Driven Software Development Author: Jorn Bettin Version 1.0 September 2004 Copyright 2003, 2004 SoftMetaWare Ltd. SoftMetaWare is a trademark of SoftMetaWare Ltd. All other

More information

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design I. Automated Banking System Case studies: Outline Requirements Engineering: OO and incremental software development 1. case study: withdraw money a. use cases b. identifying class/object (class diagram)

More information

Chapter 9 Software Evolution

Chapter 9 Software Evolution Chapter 9 Software Evolution Summary 1 Topics covered Evolution processes Change processes for software systems Program evolution dynamics Understanding software evolution Software maintenance Making changes

More information

Structure of Presentation. Stages in Teaching Formal Methods. Motivation (1) Motivation (2) The Scope of Formal Methods (1)

Structure of Presentation. Stages in Teaching Formal Methods. Motivation (1) Motivation (2) The Scope of Formal Methods (1) Stages in Teaching Formal Methods A. J. Cowling Structure of Presentation Introduction to Issues Motivation for this work. Analysis of the Role of Formal Methods Define their scope; Review their treatment

More information

Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.

Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program. Software Testing Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program. Testing can only reveal the presence of errors and not the

More information

The consumer purchase journey and the marketing mix model

The consumer purchase journey and the marketing mix model Dynamic marketing mix modelling and digital attribution 1 Introduction P.M Cain Digital media attribution aims to identify the combination of online marketing activities and touchpoints contributing to

More information

Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008

Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008 Professional Organization Checklist for the Computer Science Curriculum Updates Association of Computing Machinery Computing Curricula 2008 The curriculum guidelines can be found in Appendix C of the report

More information

Approach of Unit testing with the help of JUnit

Approach of Unit testing with the help of JUnit Approach of Unit testing with the help of JUnit Satish Mishra [email protected] About me! Satish Mishra! Master of Electronics Science from India! Worked as Software Engineer,Project Manager,Quality

More information

CS4507 Advanced Software Engineering

CS4507 Advanced Software Engineering CS4507 Advanced Software Engineering Lectures 2 & 3: Software Development Lifecycle Models A O Riordan, 2015 Some diagrams from Sommerville, some notes from Maciaszek/Liong Lifecycle Model Software development

More information

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2).

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2). 0305203 0305280 0305301 0305302 Software Engineering/Courses Description Introduction to Software Engineering Prerequisite: 0306211(Computer Programming 2). This course introduces students to the problems

More information

OVERVIEW OF THE PROJECT...

OVERVIEW OF THE PROJECT... SYSTEMS ENGINEERING DESIGN PROJECT ENPM 643, Fall 2006 Instructor Authors ENPM643 Dr. M Austin Atul Mehta & Felipe Leite Fall 2006 TABLE OF CONTENTS Section Page 1 OVERVIEW OF THE PROJECT... 3 1.1 PURPOSE...

More information

Applying 4+1 View Architecture with UML 2. White Paper

Applying 4+1 View Architecture with UML 2. White Paper Applying 4+1 View Architecture with UML 2 White Paper Copyright 2007 FCGSS, all rights reserved. www.fcgss.com Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was

More information

Becoming a Business Analyst

Becoming a Business Analyst Becoming a Business Analyst What is Business Analysis? The practice of enabling change in an organizational context by defining needs and recommending solutions that delivers value to stakeholders When

More information

MDA and Analysis of Web Applications

MDA and Analysis of Web Applications MDA and Analysis of Web Applications Behzad Bordbar and Kyriakos Anastasakis School of Computer Science, University of Birmingham, Birmingham, B15 2TT, UK {B.Bordbar,K.Anastasakis}@cs.bham.ac.uk Abstract.

More information

Generating Enterprise Applications from Models

Generating Enterprise Applications from Models Generating Enterprise Applications from Models Vinay Kulkarni, R Venkatesh, Sreedhar Reddy Tata Research Development and Design Centre, 54, Industrial estate, Hadapsar, Pune, 411 013, INDIA { vinayk, rvenky,

More information

Real Time Embedded Software Development Using Agile Technology An Experience Report

Real Time Embedded Software Development Using Agile Technology An Experience Report Real Time Embedded Software Development Using Agile Technology An Experience Report Vincent Rivas Joseph N Frisina BAE SYSTEMS Information and Electronic Systems Integration Inc CNIR Agile Development

More information

SOFTWARE ENGINEERING PROGRAM

SOFTWARE ENGINEERING PROGRAM SOFTWARE ENGINEERING PROGRAM PROGRAM TITLE DEGREE TITLE Master of Science Program in Software Engineering Master of Science (Software Engineering) M.Sc. (Software Engineering) PROGRAM STRUCTURE Total program

More information

Challenges and Opportunities for formal specifications in Service Oriented Architectures

Challenges and Opportunities for formal specifications in Service Oriented Architectures ACSD ATPN Xi an China June 2008 Challenges and Opportunities for formal specifications in Service Oriented Architectures Gustavo Alonso Systems Group Department of Computer Science Swiss Federal Institute

More information

Engineering Process Software Qualities Software Architectural Design

Engineering Process Software Qualities Software Architectural Design Engineering Process We need to understand the steps that take us from an idea to a product. What do we do? In what order do we do it? How do we know when we re finished each step? Production process Typical

More information