Who am I? Univ.-Prof. Dr. Alexander Egyed. Why Software Projects Fail. Why Software Projects Fail. Software Defects enjoy high Visibility



Similar documents
Automatically Detecting and Tracking Inconsistencies in Software Design Models

Classical Software Life Cycle Models

How To Manage Project Management

Fundamentals of Measurements

Software Engineering for Software-Intensive Systems: III The Development Life Cycle

Advanced Software Engineering FYI!

Outline. III The Development Life Cycle. Characteristics of Software Development Methodologies. The Prototyping Process

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Overview of: A Guide to the Project Management Body of Knowledge (PMBOK Guide) Fourth Edition

4. Software Project Management

Agile Software Engineering Practice to Improve Project Success

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

SOFTWARE PROCESS MODELS

FHIM Model Content Overview

Requirements Engineering Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 7 Slide 1

Modernized and Maintainable Code. Frank Weil, Ph.D. UniqueSoft, LLC

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

Software Process for QA

Test Cases Design for Software Database Provisioning Development

Process Models and Metrics

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

Requirements Engineering: A Roadmap

Chap 1. Introduction to Software Architecture

Software Development Life Cycle (SDLC)

3.2 Scenarios and Observations. 3.1 VOD System and Model

Formalization of Functional Requirements and Their Traceability in UML Diagrams A Z Notation Based Approach

CSC340: Information Systems Analysis and Design. About the Course

Progress Corticon BRMS

ATSBA: Advanced Technologies Supporting Business Areas

Configuration & Build Management

What is a life cycle model?

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

Software Engineering. Software Testing. Based on Software Engineering, 7 th Edition by Ian Sommerville

Document Control in an ISO Environment

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Fuld Skolerapport for Hunderupskolen, i Odense kommune, for skoleår 2013/2014 for klassetrin(ene) 7. med reference Tilsvarende klassetrin i kommunen

Fuld Skolerapport for Søhusskolen, i Odense kommune, for skoleår 2013/2014 for klassetrin(ene) 9. med reference Tilsvarende klassetrin i kommunen

Basic Trends of Modern Software Development

What SOA can do for Software Dependability. Karl M. Göschka Vienna University of Technology

Total Quality Management (TQM) Quality, Success and Failure. Total Quality Management (TQM) vs. Process Reengineering (BPR)

Software Configuration Management. Addendum zu Kapitel 13

Software Test Plan (STP) Template

Classification of Cells Based on Mobile Network Context Information

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective

Do you know? "7 Practices" for a Reliable Requirements Management. by Software Process Engineering Inc. translated by Sparx Systems Japan Co., Ltd.

Generating Aspect Code from UML Models

Agile Software Development Methodologies and Its Quality Assurance

Evaluating OO-CASE tools: OO research meets practice

Requirements Engineering Process

Integrated Development of Distributed Real-Time Applications with Asynchronous Communication

Process-Based Business Transformation. Todd Lohr, Practice Director

A Capability Maturity Model (CMM)

Architecture Definitions

Software Testing, Mythology & Methodologies

CS 6361, SPRING 2010 Advanced Requirements Engineering Web Based Meeting Scheduler- Project Plan

Johannes Sametinger. C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria

Classes and Objects. Agenda. Quiz 7/1/2008. The Background of the Object-Oriented Approach. Class. Object. Package and import

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management?

A Business Analysis Perspective on Business Process Management

Service Development and Architecture Management for an Enterprise SOA

Method CRM Evaluation / Reviewers Guide

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

Model Checking based Software Verification

Development Process Automation Experiences in Japan

MDE Adoption in Industry: Challenges and Success Criteria

Software Engineering. Introduction. Software Costs. Software is Expensive [Boehm] ... Columbus set sail for India. He ended up in the Bahamas...

Comparing Plan-Driven and Agile Project Approaches

Darshan Institute of Engineering & Technology Unit : 10

Testing automation of projects in telecommunication domain

SWEBOK Certification Program. Software Engineering Management

London: capital of debt. Reducing the health consequences of personal debt

Bio-Organic Chemistry

Unum s Business Rules Journey

Conferencing Moderator Guide

Anatomy of an Enterprise Software Delivery Project

Lluis Belanche + Alfredo Vellido. Intelligent Data Analysis and Data Mining. Data Analysis and Knowledge Discovery

Business Analyst Work Plan. Presented by: Billie Johnson, CBAP CSM

The SPES Methodology Modeling- and Analysis Techniques

White Paper Software Quality Management

DDI Lifecycle: Moving Forward Status of the Development of DDI 4. Joachim Wackerow Technical Committee, DDI Alliance

Requirements engineering

Model-Driven Health Tools (MDHT) CDA Tools Overview.

Information for Applicants for a Professorship in the field of Networks and Security

Planning and Budgeting Cloud Service

CDC UNIFIED PROCESS PRACTICES GUIDE

Transcription:

Detecting and Fixing Inconsistencies during Model-Driven Software Development Univ.-Prof. Dr. Alexander Egyed Johannes Kepler Universität, Linz (JKU) http://www.sea.jku.at 1 Who am I? Current Affiliations: Professor at Johannes Kepler University, Austria 2008 Head of Institute for Systems Engineering and Automation (11 Staff Members) Doctorate Degree: University of Southern California, USA 2000 (under Dr. Barry Boehm) Past Affiliations: Research Fellow at University College London, UK 2007 Research Scientist at Teknowledge Corporation, USA 2000 2 Why Software Projects Fail Why Software Projects Fail Lack of Communication Problem not understood Where is: Wrong Programming Language Chosen?.NET vs. Java Things Change 3 4 Software Defects enjoy high Visibility Embarrassing Software Defects London Ambulance System (LAS)-1992 [Finkelstein96] Mars Climate Orbiter-1998 [Breitman99] Therac 25, Medical Linear Accelerator-1985 [Leveson93] Siemens: Possible Hearing Damage in Some Cell Phones-2004 [Siemens05] Mercedes A-Class capsize in corners [Mercedes97] Ariane 5: code reuse and the dimensions of variables Denver Airport Baggage Handling: Reset lost data How many companies can afford to let the customer test their software? 5 6 1

Sklds Df a Eafejflkals;fj afj asd Dadfad lfa kdlfksd;f ka;lksd;fla kfl;akfa Df A kflka kfa Kf Af adl fka;ldkfa;fk as;sdfk alkdflsdkf;lsdk ss F dsf A fadfsddfsk f;a lkf;a dkfa;lfdk af Af fsdfsd Affsdfsdsd fsdfkj sdlfjaslkf;ja dlfajlljl faj dslja lja akjdflaklaj lkdj lakjf lasjfk ak A dkj alfjlkasdjf a A klafjaldjflajlkj alkaj lkajl jlk aklajd lkalfjl as A kdla aljf alf jlkajf lksjfkfjf aldjlkajflkajlroei a ja k lkaj lka f A kalfaj kla Af akflkajdlfjas ieuaij a a A kfajfa A fkaflafjlaljfafa Kajdfladj flkadj faj Sklds Df a Eafejflkals;fj afj asd Dadfad lfa kdlfksd;f ka;lksd;fla kfl;akfa Df A kflka kfa Kf Af adl fka;ldkfa;fk as;sdfk alkdflsdkf;lsdk ss F dsf A fadfsddfsk f;a lkf;a dkfa;lfdk af Af fsdfsd Affsdfsdsd fsdfkj sdlfjaslkf;ja dlfajlljl faj dslja lja akjdflaklaj lkdj lakjf lasjfk ak A dkj alfjlkasdjf a A klafjaldjflajlkj alkaj lkajl jlk aklajd lkalfjl as A kdla aljf alf jlkajf lksjfkfjf aldjlkajflkajlroei a ja k lkaj lka f A kalfaj kla Af akflkajdlfjas ieuaij a a A kfajfa A fkaflafjlaljfafa Kajdfladj flkadj faj Models take on Difficulties Complexity Software models abstract and simplify Conformity Software models show context Changeability Software models separate concerns Invisibility Software models depict what is otherwise hidden Slide taken from Grady Booch 7 8 Model Software/System Model Source Code+Documentation Source Code+Documentation 9 10 Relative Costs of Fixing Software Faults 200 Separation of Concerns Ease of Understanding Software models are analyzable before implementation 30 1 2 3 4 10 11 + Code + + Domain Adaptations Software models provide different views for different stakeholders Choose all not one! From http://en.wikipedia.org/wiki/unified_modeling_language 12 2

Sklds Df a Eafejflkals;fj afj asd Dadfad lfa kdlfksd;f ka;lksd;fla kfl;akfa Df A kflka kfa Kf Af adl fka;ldkfa;fk as;sdfk alkdflsdkf;lsdk ss F dsf A fadfsddfsk f;a lkf;a dkfa;lfdk af Af fsdfsd Affsdfsdsd fsdfkj sdlfjaslkf;ja dlfajlljl faj dslja lja akjdflaklaj lkdj lakjf lasjfk ak A dkj alfjlkasdjf a A klafjaldjflajlkj alkaj lkajl jlk aklajd lkalfjl as A kdla aljf alf jlkajf lksjfkfjf aldjlkajflkajlroei a ja k lkaj lka f A kalfaj kla Af akflkajdlfjas ieuaij a a A kfajfa A fkaflafjlaljfafa Kajdfladj flkadj faj The Benefits of Modeling BUT! Overcome the requirements/code gap Reduce the Cost of Fixing Errors Exploring the Problem Separation of Concerns Ease of Understanding Maintenance To hide implementation details To emphasize limitations and assumptions To think the problem through Assess Requirement Changes Correct Implementation guarantees Analyzable Integrate disciplines Modeling tools are like a hammer Can do good but, if used wrong, they are useless! Require training, guidance, and automation Have witnessed many companies introducing modeling only to fail because they do not understand model-driven software development 13 14 If software models no longer reflect the code or requirements Model Software/System Model Source Code+Documentation 15 Model-Driven Software Development Change in paradigm analysis => Modeling is the creative part and answers questions generation => Coding is filling in details not in models => multi-view programming consistency Living Models Not documentation but path to solution Used/Useful throughout the software life cycle why how where 16 Change, Inconsistencies, and their Impact What Engineers Need Source Code (1) Identify Inconsistencies Quickly [ICSE 2006] (2) Fixing Inconsistencies Quickly [ASE 2008][ICSE 2007] Changes cause Inconsistencies and we can help the developer detect and fix them! Demo of Model Analyzer developed at the Johannes Kepler University Linz 17 By Alexander 2009 Egyed, Alexander Emmanuel, Egyed and Anthony Finkelstein 18 3

Model Analyzer Approach Some Consistency Rules Rule 1: Name of message must match an operation in receiver s class operations=message.receiver.base.operations return (operations->name->contains(message.name)) Rule 2: Sequence of object messages must correspond to events Rule 3: Calling direction of association must match calling direction of messages Model and Inconsistencies 19 Rule 100+ Many rules impossible to maintain consistency manually 20 Existing Approaches Unscalable Model Analyzer Approach n milliseconds evaluation time in Changes and Consistency Checking 21 22 n milliseconds evaluation time in Before n milliseconds evaluation time in After 23 24 4

Model Analyzer Approach No Special Language Required Wrapper Consistency Checker (1) Instant Consistency Checker (2) (3) Modeling Tool UML Model 1) Must use an obscure (and limited) rule language (who understands that language?) 2) Must annotate constraints (who has the time and experience to do that?) Scope 25 26 Model Analyzer Approach What Engineers Need (1) Identify Inconsistencies Quickly [ICSE 2006] (2) Fixing Inconsistencies Quickly [ASE 2008][ICSE 2007] New Consistency Rules easily definable Or, how can you help an engineer resolve inconsistencies if arbitrary constraints can be defined 27 By Alexander 2009 Egyed, Alexander Emmanuel, Egyed and Anthony Finkelstein 28 29 30 5

Model Analyzer Approach Finding Locations where to Fix Inconsistencies 31 Locations for fixing this inconsistency: 1) rename message play 2) Change receiver of message play 3) add a new method to the class Streamer 4) change the ownership of object st 6) rename method connect 7) rename method stream 8) rename method wait 9) delete message play (makes rule obsolete) 32 Choices for fixing this inconsistency: 1) rename message play to stream 2) Change receiver of message play to object d 3) add a new method play to the class Streamer 4) change the ownership of object s to Display 6) rename method connec to play 7) rename method stream to play 8) rename method wai to play 9) delete message play (makes rule obsolete) 33 Problem: Wrong Choices! Why is stream the only valid choice? 34 connect stream wait st:streamer u:user d:display 35 36 6

Fixes for 7 Other Locations Change, Inconsistencies, and their Impact Source Code Fix 1 Fix 2 37 38 Change, Inconsistencies, and their Impact Source Code Contact Me to Download and Test the Model Analyzer Interested in other Technologies? - Traceability (/Code) - Optimizing User Input - Product Line Modeling - Model Analyses and Generation 39 Univ.-Prof. Dr. Alexander Egyed alexander.egyed@jku.at 40 7