Modern Aspects in Software Engineering 4. Object-Oriented SE Prof. Dr

Slides:



Advertisements
Similar presentations
Introduction to Object Orientation System Analysis and Design
Advertisements

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Reiner R. Dumke Professor in Software Engineering OTTO-VON-GUERICKE-UNIVERSITÄT MAGDEBURG FAKULTÄT FÜR INFORMATIK Slide 1 UCLV, Santa Clara, March 2003.
Software system modeling
Formal Methods of Systems Specification Logical Specification of Hard- and Software Prof. Dr. Holger Schlingloff Institut für Informatik der.
Introduction To System Analysis and Design
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
Software Testing and Quality Assurance
Software Testing and Quality Assurance
Software Testing and Quality Assurance: The Testing Perspective Reading Assignment: –John McGregor and David A. Sykes, A Practical Guide to Testing Object-Oriented.
Object Oriented System Development with VB .NET
© Wolfgang Pelz Introduction Object-Oriented Methods: Analysis, Design & Programming Dr. Wolfgang Pelz Dr. Yingcai Xiao The University of Akron.
Chapter 10 Class and Method Design
1 CS1001 Lecture Overview Object Oriented Design Object Oriented Design.
Slide 1 Chapter 10 Class and Method Design. Slide 2 REVISITING THE BASIC CHARACTERISTICS OF OBJECT-ORIENTATION.
Unified Modeling Language(UML) BY
The Unified Modeling Language (UML) Class Diagrams.
Object-Oriented Analysis and Design
2015/8/221 Data Types & Operators Lecture from (Chapter 3,4)
Ranga Rodrigo. Class is central to object oriented programming.
Introduction To System Analysis and design
Slide 12.1 © The McGraw-Hill Companies, CS 4310: Software Engineering Lecture 7 Systems Analysis Object-Oriented Design.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 4 - System modelling Dr Richard Clayton.
Object-Oriented Software Testing. C-S 5462 Object-Oriented Software Testing Research confirms that testing methods proposed for procedural approach are.
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 3 The Structure and Syntax of Java.
OBJECT ORIENTED PROGRAMMING CONCEPTS ISC 560. Object-oriented Concepts  Objects – things names with nouns  Classes – classifications (groups) of similar.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
CS 360 Lecture 6.  A model is a simplification of reality  We build models to better understand the system being developed.  We build models of complex.
Introduction To System Analysis and Design
Object-Oriented Analysis and Design An Introduction.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
UML The Unified Modeling Language A Practical Introduction Al-Ayham Saleh Aleppo University
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Information System Development Courses Figure: ISD Course Structure.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 Object-oriented and Structured System Models.
 A software application is like a city  Modeling = Architecture  OOP = Civil Engineering  UML Classes = Blueprints of Buildings  UML is a common.
Object-Oriented Analysis and Design NGSSC Object-Oriented Scientific Programming, June 2012.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 03. Classes,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
1 OCL The Role of OCL in UML. 2 רשימת הנושאים  מבוא  מרכיבי השפה  דוגמאות  מקורות.
Basic OOP Concepts and Terms. In this class, we will cover: Objects and examples of different object types Classes and how they relate to objects Object.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
CONTENT 1.Software Process 2.Object Technology 3.UML 4.UML For Java.
Software Engineering Lecture 8 Object-Oriented Analysis.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
Chapter 16 UML Class Diagrams 1CS6359 Fall 2012 John Cole.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Coming up: Unified Modeling Language Introduction.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Introduction to the Unified Modeling Language.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
Sadegh Aliakbary Sharif University of Technology Fall 2010.
Chapter 0: Introduction
Object-oriented and Structured System Models
The Movement To Objects
Software Engineering: A Practitioner’s Approach, 6/e Chapter 11 Component-Level Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
UML - Unified Modeling Language
Lecture 5 from (Chapter 4, pages 73 to 96)
אפיון ועיצוב מערכות מוכוון עצמים
Slides by Steve Armstrong LeTourneau University Longview, TX
Introduction to Computer Science for Majors II
Review CSE116 2/21/2019 B.Ramamurthy.
Copyright 2007 Oxford Consulting, Ltd
Presentation transcript:

Modern Aspects in Software Engineering 4. Object-Oriented SE Prof. Dr Modern Aspects in Software Engineering 4. Object-Oriented SE Prof. Dr.-Ing. habil. Reiner Dumke Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik, Institut für Verteilte Systeme AG Softwaretechnik http://ivs.cs.uni-magdeburg.de/sw-eng/agruppe/

OOSE - Introduction Functions or functional structures, Interfaces between the system components, Functions or functional structures, Data basis and/or data structures, Problem related objects. Changing

OOSE - Introduction Effectiveness of Programming: Simula 67 Smalltalk Eiffel etc.

OOSE - Introduction Abstract data types opns 0,1:  Bit type Bit is Boolean opns 0,1:  Bit + : Bit, Bit  Bit eq: Bit,Bit  Boolean eqns 0 + 1 = 1 + 0 = 1 1 + 1 = 0 + 0 = 0 0 eq 0 = 1 eq 1 = true 1 eq 0 = 0 eq 1 = false endtype

OOSE - Introduction Basic notions: Object: abstraction of the problem area with states (attributes) and behavior (services/methods) Message: a call of a service of an object in the form method(par1, …, parn) Role: the possible behavior of an object in a special context Scenario: a sequence of messages which explain the operationality

OOSE - Introduction Basic notions: Class: a summarizing of objects with semantical equivalency Class hierarchy: inheritance structure (mostly: tree) Class library: an implemented set of classes Polymorphism: the possibility of two or more methods with the same name

OOSE - Introduction Class diagram: Book title author Cover keywords displayContents SEBook TextBook pages

OOSE – Development Methodologies

OOSE – Analysis & Specification Dear Developer, I like to count. I want to have a software system for counting including incrementing and decrementing. I want to count a lot of things in different number systems. Just I have a red plastic counter with an increment button, a decrement button and – I see – a reset button. Best regards Your customer

OOSE – Analysis & Specification Number countValue resetValue reset increment decrement presenting Not counter!

OOSE – Analysis & Specification Analysis pattern: Party Portfolio Post Contract Scenario etc.

OOSE - Design Number countValue resetValue MyCounter reset + - R increment decrement presenting MyCounter + - R display

OOSE - Design

OOSE – Design Pattern

OOSE – Implementation (Java)

OOSE – Implementation (Forte4J)

OOSE – Implementation (Forte4J)

OOSE - Implementation

OOSE - Testing Classical test example: All Ci cases and all numbers: Java-Code: for (int i=0; i < n; i++) { if (a.get(i) == b.get(i)) x[i] = x[i] + 100; else x[i] = x[i]/2; } All Ci cases and all numbers: Billion of years test time

OOSE - Testing Test example 2: Proof if a, b, c builds a triangle

OOSE - Testing Added test cases: missing constructor overwritten methods overloaded attributes incorrect inheritance inheritance cycle missing class variables etc.

Test Pattern Description OOSE – Test Pattern Test Pattern Description Intent Context Fault Model Strategy Entry/Exit Criteria Consequences Known uses

Test Design Pattern - Examples OOSE – Test Pattern Test Design Pattern - Examples Test area Identification Content Class methods Category-Partition Test case for I/O Combinational Function Logical based test sequences Recursive Function Test cases for recursive funktions Polymorphic Message Test cases for a client to a pol. server Classes Invariant Boundaries Identification of test vectors Nonmodal Class Class test cases without constraints Quasi-modal Class Class test cases with constraints Transitive Operation Test cases for transitive methods Class integration … Components … System … Application …

OOSE – Unified Modeling Language

OOSE – Rational Unified Process

OOSE – UML - OCL Object Constraint Language (OCL): Typ1::operation(arg : Typ2) : ReturnTyp pre : arg.attribut1 = true post: result = arg.attribut1 xor arg.attribut2 Customer sex = #female implies calling=‘Senior‘

OOSE – UML - CASE

OOSE – UML - CASE

OOSE – UML - CASE

OOSE – UML - Example Housekeeping Book

Housekeeping Book – Behavior modelling OOSE – UML - Example Housekeeping Book – Behavior modelling

Housekeeping Book – Component design OOSE – UML - Example Housekeeping Book – Component design

OOSE – UML - Example Housekeeping Book – Implementation characteristics: Number of Requirements: 20 verbal description, Test cases: 28 , Diagrams: 1 Use Case diagram, 8 State diagrams, 4 Sequence diagrams, 4 Collaboration diagrams, 3 Class diagrams, 1 Component diagram, Algorithm description: ca. 150 Lines of pseudocode, Classes: 21 implemented Java Classes, Program lines: ca. 4600 Java LOC, Dokumentation: Web-based hypertext description Effort: ca. 3 Person month

Questions, Remarks !!!