Title: UCLV, Santa Clara, March 2003
1Modern Aspects in Software Engineering4.
Object-Oriented SEProf. Dr.-Ing. habil. Reiner
DumkeOtto-von-Guericke-Universität
MagdeburgFakultät für Informatik, Institut für
Verteilte SystemeAG Softwaretechnikhttp//ivs.cs
.uni-magdeburg.de/sw-eng/agruppe/
2OOSE - Introduction
- Interfaces between the system components,
- Functions or functional structures,
- Data basis and/or data structures,
- Problem related objects.
Changing
3OOSE - Introduction
- Effectiveness of Programming
- Simula 67
- Smalltalk
- C
- Eiffel
- etc.
4OOSE - Introduction
Abstract data types 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
5OOSE - 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
6OOSE - 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
7OOSE - Introduction
Class diagram Book title
author Cover keywords
displayContents SEBook
TextBook pages
8OOSE Development Methodologies
9OOSE 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
10OOSE Analysis Specification
Number countValue resetValue reset increment dec
rement presenting
Not counter!
11OOSE Analysis Specification
- Analysis pattern
- Party
- Portfolio
- Post
- Contract
- Scenario
- etc.
12OOSE - Design
Number countValue resetValue reset increment d
ecrement presenting
MyCounter -
R display
13OOSE - Design
14OOSE Design Pattern
15OOSE Implementation (Java)
16OOSE Implementation (Forte4J)
17OOSE Implementation (Forte4J)
18OOSE - Implementation
19OOSE - Testing
Classical test example Java-Code for (int
i0 i lt n i) if (a.get(i)
b.get(i)) xi xi 100
else xi xi/2
All Ci cases and all numbers Billion of years
test time
20OOSE - Testing
Test example 2 Proof if a, b, c builds a
triangle
21OOSE - Testing
- Added test cases
- missing constructor
- overwritten methods
- overloaded attributes
- incorrect inheritance
- inheritance cycle
- missing class variables
- etc.
22OOSE Test Pattern
- Test Pattern Description
- Intent
- Context
- Fault Model
- Strategy
- Entry/Exit Criteria
- Consequences
- Known uses
23OOSE 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-moda
l Class Class test cases with
constraints Transitive Operation
Test cases for transitive methods Class
integration Components System
Application
24OOSE Unified Modeling Language
25OOSE Rational Unified Process
26OOSE UML - OCL
Object Constraint Language (OCL) Typ1operatio
n(arg Typ2) ReturnTyp pre arg.attribut1
true post result arg.attribut1 xor
arg.attribut2 Customer sex female implies
callingSenior
27OOSE UML - CASE
28OOSE UML - CASE
29OOSE UML - CASE
30OOSE UML - Example
Housekeeping Book
31OOSE UML - Example
Housekeeping Book Behavior modelling
32OOSE UML - Example
Housekeeping Book Component design
33OOSE 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
34Questions, Remarks !!!