Correctness of Software Models Mira Balaban, Azzam Maraee Computer Science Department Ben-Gurion University Model correctnessFall 20121.

Slides:



Advertisements
Similar presentations
Fraunhofer FOKUS Competence Center MOTION FOKUS VIEW ON MODEL-BASED TEST DESCRIPTION LANGUAGES (TDLS) Alain-G. Vouffo Feudjio.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
User Driven Modelling and Systematic Interaction for End-User Programming Modelling for Engineering Processes Peter Hale UWE.
Restricted © Siemens AG All rights reserved Siemens Corporate Technology | Month 20XX Proposed topics for TDL phase 3.
PathLP – Path-based Logic Programming Mira Balaban, Igal Khitron Computer Science Department Ben-Gurion University Mini-project-course Fall
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Unit 2. Software Lifecycle
Software Processes Overview
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Karlstad University Computer Science Component Based Software Engineering, Västerås Semantic Integrity in Component Based Development Martin.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
1 SWE Introduction to Software Engineering Lecture 5.
HAS. Patterns The use of patterns is essentially the reuse of well established good ideas. A pattern is a named well understood good solution to a common.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
© Copyright Eliyahu Brutman Programming Techniques Course.
Department of Computer Science & Engineering College of Engineering Dr. Betty H.C. Cheng, Laura A. Campbell, Sascha Konrad The demand for distributed real-time.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
Model Driven Integrated Development Environment Barak Agiv Itamar Ben-Zaken Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
Systems Analysis And Design © Systems Analysis And Design © V. Rajaraman MODULE 14 CASE TOOLS Learning Units 14.1 CASE tools and their importance 14.2.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
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.
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
Introduction To System Analysis and Design
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.
1 Introduction to Software Engineering Lecture 1.
A Static Approach to Consistency Verification of UML Models Andrea Baruzzo Department of Computer Science University of Udine MoDeV.
UML-1 3. Capturing Requirements and Use Case Model.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
UML-1 8. Capturing Requirements and Use Case Model.
Lecture 6: Structural Modeling
Dr. Darius Silingas | No Magic, Inc. Domain-Specific Profiles for Your UML Tool Building DSL Environments with MagicDraw UML.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
MNP1163/MANP1163 (Software Construction).  Minimizing complexity  Anticipating change  Constructing for verification  Reuse  Standards in software.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
DS(M)Ls for End-Users and Domain Experts? Panel on Creating DSLs Models in Software Engineering Workshop Zurich, Switzerland June 3, 2012 Jeff Gray University.
Formal Methods in Software Engineering1 Today’s Agenda  Mailing list  Syllabus  Introduction.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
A framework that describes the activities performed at each stage of a software development project. A life-cycle or a software process is the organisational.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
ICS 3UI - Introduction to Computer Science
Chapter3:Software Processes
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Research topics: Mira Balaban
Software Processes.
CS310 Software Engineering Dr.Doaa Sami
UML Design for an Automated Registration System
Software Architecture & Design
Presentation transcript:

Correctness of Software Models Mira Balaban, Azzam Maraee Computer Science Department Ben-Gurion University Model correctnessFall 20121

What is a model? An abstraction of software features An abstraction of software features A structure that singles out selected features A structure that singles out selected features Independent from other software elements Independent from other software elements Independent from marginal software details Independent from marginal software details Usually visual (diagrammatic) Usually visual (diagrammatic) MoDELS-2011October 112

UML Class-Diagram MoDELS-2011October 113 CorpCustomer employeeNum department Company turnover Party name address printLetter() employs 1 0..* Reservation dateBooked status cancel() Course title date totalParticipants maxParticipants addReservation() cancel() Customer custNum participant 0..* giveStatistics() printLetter()

UML Class-Diagram enriched with OCL invariants MoDELS-2011October 114 Company turnover Party name address printLetter() Reservation dateBooked status cancel() Course title date totalParticipants maxParticipants addReservation() cancel() Customer custNum participant 0..* giveStatistics() Context Course inv: totalParticipants < maxParticipants Context Reservation Inv: self.dateBooked < self.course.date Context Customer Inv: self.Course->select{c1,c2|c1.date=c2.date}->isEmpty()

UML Rich Class-Diagram MoDELS-2011October 115 {disjoint, complete} Context Membership Inv: self.Customer.cards-> includes(self.card)

UML interaction diagram MoDELS-2011October 116 addReservation() cancel() x1: Customerx2: Customer c: course :programme maintenance r1: Reservation addReservation() r2: Reservation printLetter() cancel() printLetter()

UML Statechart MoDELS-2011October 117 planned bookable full over cancelled do/ cancel / enter data update release new reservation res. cancelled course cancelled course cancelled [is full] [timeout] is_full: totalParticipants = maxParticipants timeout: today >= date Class "Course" / archive data delete

UML Use-Case diagram MoDELS-2011October 118

Model features Usually (diagrammatic) Usually visual structure (diagrammatic) – But OCL is symbolic Partial Abstract Business level Not necessarily executable – Desirable feature: Testable Platform (technology) independent Difference from Programs: Difference from Programs: – Level of abstraction – Possibly no operational semantics MoDELS-2011October 119

Why modeling? Requirement engineering Elaboration of intended goals Specification of – Restrictions – Priorities – Essential services – Structure Business level and partiality enable – Early structuring before software construction: validation of intentions verification debugging Platform independence enables – Reuse MoDELS-2011October 1110

Unified Modeling Language (UML) Widely accepted as modeling standard – OMG standard: Collection of modeling diagrams – Each describes a view of OO software A UML model = A collection of diagrams Object Constraint Language (OCL) – textual – Invariants – Queries – Pre/post conditions UML standard specification is informal – Much research on its formalization Model correctnessFall

Model-Driven-Engineering (MDE) MDE = MDE = – Software development by repeated transformations of models Motivation Motivation – Growing complexity requires multiple levels of abstraction not supported by programming languages Technologies Technologies – Domain specific modeling languages (DSMLs) – Transformation engines – Model level development platforms EMF, MetaEdit, Epsilon Model correctnessFall

Are models used intensively? Not widely used throughout software evolution life cycle Not widely used throughout software evolution life cycle – Neglected in later stages of software development Users neglect essential modeling features Users neglect essential modeling features – Why bother if features are not translated into the code? Model correctnessFall

The missing link Model-level Integrated Development Environment Model-level Integrated Development Environment – At the level of software IDEs Supports Supports – Reasoning – Verification – Testing – Warnings – Refactoring – Patterns – Integration with code Model correctnessFall

Class-diagrams: Syntax and semantics Model correctnessFall Context User inv: self.ownedTable->select(oclIsTypeOf(SystemTable))-> intersection(self.ownedTable-> select(oclIsTypeOf(UserTable)))->isEmpty() OCL

Object-diagrams: Validation of Class-diagrams Model correctnessFall Mary:User grantedTable T1:Table p1:Permission Fred:User grantedTable p2:Permission grantor A legal but invalid state:

Fall Model correctness