Top Banner
Rigoros and Adap tive ... Information Systems 1 Development of Rigorous Adaptive Information Systems Dr. Nasreddine Aoumeur FIN, ITI, DB group [email protected] Course Site: wwwiti.cs.uni-magdeburg.de/~aoumeur wwwiti.cs.uni-magdeburg.de/iti_db/lehre/oois/inde
35

Development of Rigorous Adaptive Information Systems

Jan 14, 2016

Download

Documents

ivrit

Development of Rigorous Adaptive Information Systems. Dr. Nasreddine Aoumeur FIN, ITI, DB group [email protected] Course Site: wwwiti.cs.uni-magdeburg.de/~aoumeur wwwiti.cs.uni-magdeburg.de/iti_db/lehre/oois/inde. Information Systems: Working definition. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 1

Development of Rigorous Adaptive Information

Systems

Dr. Nasreddine AoumeurFIN, ITI, DB group

[email protected]

Course Site: wwwiti.cs.uni-magdeburg.de/~aoumeur wwwiti.cs.uni-magdeburg.de/iti_db/lehre/oois/inde

Page 2: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 2

Information Systems: Working Information Systems: Working definitiondefinition

– reactive systems (i.e. in continuous interaction with their environment), with

– large amount of immutable and non-immutable data (i.e. fixed and changing) and, with

– processes and activities for exhibiting behaviors on these (state-less and –full) data.

Page 3: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 3

Different generations of CMs : “Entity first”

State-less and -ful DATA

Processes and Rules

IS Conceptual ModelEntity-Relationship[1973..] - Intuitive / Simple - Revolutionary for IS - UoD : Entities+Relations - Mathematically sound - Rich abstraction mechnanisms - Different variants (NIAM / SADT / MERISE / ..)

Process-centric Formalisms - CCS, CSP, DFD, Petri Nets, .. - Synchronous / asynchronous - Mathematically sound - Executable / operational

Page 4: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 4

CMs Generation shift: “Entity To Object”

Processes, Operations and Rules

From E/R to “Object-Object

Entity Name

Attribute1 : Type1

Attribute2 : Type2....Attributei : Typei

Property1

.....

n-m

i-j AssocPART

IS-A

m Entit(ies)

n Entit(ies)

data

data

operation

sop

erations

Page 5: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 5

First generation of CMs : “Entity first”E/R Conceptual Model

Customer

Name : StringBirth-Date : DateAddress : AddressIncome : Money

Open-Date

Bank

1-20-N Own

(Running) Account

Number : NatBalance : MoneyLimit : MoneyHistory : List[Date,Money]

IS-A

Saving Account

Number : NatInterest : PercentBalance

Processes and RulesAccount USE : First open --- then deposit – then (withdraw-deposit)* - then Close-or-be-closed

Page 6: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 6

CMs generation shift : “From Entity to object”From E/R to Object Model : Banking Example

Customer

Name : StringBirth-Date : DateAddress : AddressIncome : Money Open-Date

Bank

1-20-N Own

(Running) Account

Number : NatBalance : MoneyLimit : MoneyHistory : List[Date,Money]

Processes,operations and RulesAccount USE: First open - then deposit –> then (withdraw-deposit)* --> then Close-or-be-closed

+op

en- closed

eposit

with

draw

+open (date, bank)-close(date)-Debit(Amount)-Credit(Amount)

Own(account) : Boolean Deposit (amount) Withdraw(Amount)

Page 7: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 7

CM Generation shift : “From Entity to Object”From E/R Model to Object : ATM example

CustomerName : String

Amount

Date

1-20-N

Withdraw

AutomaticTellerMachine

ATM-Reference : StringCash : HiddenBank : StringTransaction : List[Money]History :List[Card-Nb,Acnt-Nb,Money

Bank-Card

Number : NatAccount-Nb: NatCode : String

Processes, operations and RulesATM-use : First enter-card – then enter-code – then enter-transaction— get money

- Read-card()- Enter-Pin(Code)- Enter-Amount(Money)- Get-Money(Money)

-Create()- Delete()- Accepted()- Rejected()

En

ter-cardE

nter-cod

een

ter-amou

nt

Get-m

oney

-Withdraw (ac, amount)- deposit (ac, amount)

Page 8: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 8

CM Generation shift: “From Entity to Object”From E/R Model to Object : The Library Example

Student

Name : StringSubscription-NbSemester Date-Out

Date-Back

0-N0-3 Borrow

Book

Reference : StringName : StringAuthor : StringPublisher : String

Processes, operations and RulesFirst subscribe-- Get library-card – (Borrow – Return –or– Penality)*--(be)Unsubscribe(d)

- Add()- Suppress()- ToBorrow(Date)- ToReturn(Date)

- Subscribe2Library- Unsubscribe-GetCard- ReceivePenalty

Su

bscrib

eU

nsu

bscrib

eB

orrowR

eturn

Pen

ality

Page 9: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 9

In real world terms:• An object represents an individual entity or

thing.• A class represents a group of objects that

exhibit some common characteristics or behavior.

• Classes are resulted from classification.

OO phylosophy : The real-world consists in a society of interacting objects.

• Examples of classes in real world:– Students– Graduate students– Undergraduate students – MS students– Ph.D. students

Object-Oriented Paradigm : General Overview

Page 10: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 10

• An object has– state: defined by the set of fields or

attributes.– behavior: defined by the set of methods or

operation that can be applied to the object.– identity: determined at the creation time to

uniquely referencing the object.

• Class– A template for creating objects.– Objects of the same class exhibit the same

behavior. – But generally, they posses different states

(attribute values)

Object-Oriented Paradigm : Main concepts

Page 11: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 11

Like in real world:

Book

one can

• Id : IF-43342• Title : „Petri Nets“• Author : „W.Reisig“• State :{available, borrowed, use..}

Object

has

Attributs (state)

Methods(behaviour)

• borrowed• returned• edited• .....

Object-Oriented Paradigm : Main concepts Object and Class

Page 12: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 12

The class MyDate The object d is an instance

of class MyDate

MyDate d:MyDate fieldsday (or:,variables day = 31month state month = 1year attributes) year = 2000

set (d,m,y) set (d,m,y)incDays (nDays) methods incDays (nDays)getWeekDay ( ) getWeekDay ()

Object-Oriented Paradigm : Main concepts

object-class

Page 13: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 13

The class Accounts The object Ac-Nasr instance

Account Ac-Nasr : Account

Number balance (fields, variables Number =

3130888limit state Balance = 1200history attributes) Limit = 20 History =

[20.2.2.07,…]

methods

+ open- Close- debit(amount)- Credit(amount- Tranfer(ac1,ac2)

Object-Oriented Paradigm : Main concepts Object-Class

+ openClose debit(amount)Credit(amountTranfer(ac1,ac2)

Page 14: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 14

- Pin(Id)

debit(Id, Money)

- Balance(Bal) : Money

- Limit(Lm) : Money

- History(Hs) :List[M.D]

The Account Class

credit(Id, Money)

- Transaction(Tr)

- AcntNb(AcN)

- CardNb(AcN)

Insert_Code(InsC)(C)

- Store(Sr) : Money

- State(St) : State

The ATM Class

Insert-Card(InC)()

Choose_Trans(CTr)(M)

Object-Oriented Paradigm : Main concepts Encapsulation

Page 15: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 15

• In general all attributes should be private. • Use EXCLUSIVELY methods such as debit

and credit to access the internal state. • Only methods that are part of the

“interface” should be public. • Instance variables and methods are

visibile within that object and other instances of the class.

• With respect to other objects and classes scope can be modified– private : accessible only within the

concerned class– protected : could be changed at subclasses– public : could be manipulated

everywhere

Object-Oriented Paradigm : Main concepts Encapsulation Principles

Page 16: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 16

ENCAPSULATION

class MyDate { private int day, month, year; public void set (int d, int m, int y) {day=d, month= m, year= y … } public void incDays (int nDays) {. . .} public int getWeekDay ( ) { . . . }}

class OtherClass { void anyMethod { MyDate d = new MyDate ( ) ; d.set (09, 5, 2007) ; d.month = 3; // COMPILATION ERROR !!! }}

Object-Oriented Paradigm : Main concepts Encapsulation At-work

Page 17: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 17

//without encapsulation:

circle k = new circle();k.radius = – 88;// radius negative!

//with encapsulationcircle k = new circle();boolean b =

k.setRadius(– 88);// radius never negative!

class circle{double radius, middlepointX, middlepointY;boolean setRadius(double newRadius){

if(newRadius > 0){radius = newRadius;return true;}

else return false; }

}

Object-Oriented Paradigm : Main concepts Encapsulation At-work

Page 18: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 18

A mechanism to organize classes by commonalities.– subclasses, specialization– superclass, generalization

• Is-a relationExample:

– A graduate student is a student.– A Master student is a graduate student.– A Ph.D. student is a graduate student.– An undergraduate student is a student.

Object-Oriented Paradigm : Main concepts Inheritance Concept

Page 19: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 19

Student

GraduateStudent UndergraduateStudent

MasterStudent PhDStudent

Object-Oriented Paradigm : Main concepts Inheritance concept and illustration

Page 20: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 20

Object-Oriented Paradigm : Main concepts Inheritance concept and illustration Running Account

Number : NatBalance : MoneyLimit : MoneyHistory : List[Date,Money]

+open (date, bank)-close(date)-Debit(Amount)-Credit(Amount)

Saving Account

Interest : PercentBalanceSav : Money

+open (date, bank)-close(date)- IncreaseInterest(Percent)- Money(money,account)

Page 21: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 21

Object-Oriented Paradigm : Main concepts Inheritance concept and illustration (ordinary) book

NumberCode : NatTitle : StringStatus : {available, borrrowed.}NumberCopies : Natural

Toborrow (date)-ToReturn(Date)

ThesisFieldSupervisorMarkDate-defenseGetCoppy

Periodics

EtidorsPublisher

Online-Publications

URLDurationsubscription

+subscribe- unsubscribe

Page 22: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 22

Base

Derived

class Base { Base(){} Base(int i) {} protected void foo() {…}}

class Derived extends Base { protected void foo() {…} Derived(int i) { super(i);… super.foo(); }}

As opposed to C++, it is possible to inherit only from ONE class.Pros avoids many potential problems and bugs.Cons might cause code replication

Object-Oriented Paradigm : Main concepts Inheritance at work

Page 23: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 23

Overloading:• Two or more

methods/constructors with the same name but different numbers or different types of parameters:

void methodB(int i) void methodB(float f)

Overriding– Replacing the implementation of a methods

in the superclass with one of your own.– You can only override a method with the

same signature.

Please Avoid overloading !!!!

Object-Oriented Paradigm:Main constructions Overloading and Polymorphism concept

Page 24: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 24

Object-Oriented Paradigm:Main constructions Overloading and Polymorphism concept

Polymorphism:• Inheritance creates an “is a”

relation:• For example, if B inherits from A,

then we say that “B is kind of an A”.• A same method same defined in the

class hierarchy• How to dynamically choose the right

methods ?

Page 25: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 25

GuiComponent width:int height:int center:point setOptimalSize( ) moveTo(newX, newY)

Editbox Scrollbar

minValue text: String

maxValue getValue( ) append(String)

setOptimalSize( ) getText( )

Object-Oriented Paradigm:Main constructions Polymorphism concept

Page 26: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 26

A subclass inherits all members of its superclass:

Variabls Methods

A subclass can: Add more variables Add more methods Override methods of its superclass

Scrollbar sb = new Scrollbar ( ) ; Q : What are the variables of sb? What are the methods that sb can

execute?

Object-Oriented Paradigm:Main constructions Polymorphism at-work

Page 27: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 27

GuiComponent g ; if (scrollbarWasSelected) g = new Scrollbar ( ) ; else g = new EditBox ( ) ;

g.setOptimalSize ( ) ; / / dynamic binding

• A reference to a superclass can point to objects

of its subclasses.• The pointer g is a polymorphic pointer.

Object-Oriented Paradigm:Main constructions Polymorphic Dynamic binding

Page 28: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 28

GuiComponent [ ] ga = new GuiComponent [3] ; ga[0] = new Scrollbar ( ) ; ga[1] = new Scrollbar ( ) ; ga[2] = new EditBox ( ) ; for (int i=0 ; i<ga.length ; i++) { ga[i] . setOptimalSize ( ) ; //line 6}

Q: Which version of setOptimalSize is called in line 6?

Polymorphism allows us to work with an object

without knowing its exact type

Object-Oriented Paradigm:Main constructions Complex Polymorphic Dynamic binding

Page 29: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 29

CASTING

class GuiComponent { void setOptimalSize ( ) { . . . } } class Scrollbar extends GuiComponent { void setOptimalSize ( ) { . . . } int getMinValue ( ) {. . . }

} guiComponent g ; g = new Scrollbar ( ) ;

Suppose we know that g currently points to a Scrollbar, and we want to call: n = g.getMinValue ( ) ;This will cause a compilation error (why?) …. Casting

problem

Object-Oriented Paradigm:Main constructions Polymorphism at-work (casting problem)

Page 30: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 30

The solution is casting (actually down casting).

Casting = convert a variable from one type to another.

Down Casting = convert from a superclass to one of its subclasses.

sb = ( (Scrollbar) g).getMinValue ( ) ;

Or:Scrollbar sb = (Scrollbar) g ;sb.getMinValue ( ) ;

We “tell” the compiler that g currently points to a Scrollbar.

if g does not currently point to a Scrollbar, a ClassCastException is thrown.

Object-Oriented Paradigm:Main constructions Polymorphism at-work (casting problem)

Page 31: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 31

C D

C D

association

aggregationwhole parta stronger form of association

C DcompositionIf an object d of class D is related to an object c of class C, then d depends existencialy on c.a stronger form of aggregation

C D directed association

Object-Oriented Paradigm:Main constructions Association Types

Page 32: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 32

Association EndsC D Each object of class C is related

to 1 to 5 objects of class DEach object of class D is related to exactly one object of class C

1 1..5

C DEach object of class C is related to at least one object of class DEach object of class D is related to arbitrary many objects of class C

* 1..*

C D Associated objects of class D are ordered*

{ordered}

1..*

Object-Oriented Paradigm:Main constructions Association Types

Page 33: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 33

Line Point

roleused to navigate

0..1 2

lRole determine -pRole

association name

direction2 points determine a line

directed aggregation

Object-Oriented Paradigm:Main constructions Association Types

Page 34: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 34

Class Diagrams

C D

C D InheritanceClass C inherits from class D

dependency relationshipClass C depends on class D

Object-Oriented Paradigm:Main constructions Association Types

Page 35: Development of Rigorous Adaptive Information Systems

Rigoros and Adaptive ... Information Systems 35

Engine Brakes Wheel Searing Wheel

Car

1..1 1..4 41..1 4 1

Object-Oriented Paradigm:Main constructions Association Types : Aggregation