Információs környezetek a szervezésben és a tervezésben

Preview:

DESCRIPTION

Információs környezetek a szervezésben és a tervezésben. Vég Csaba Veg.Csaba@xsys.hu. I. A probléma. OO?. Pont és Egyenes osztály? Illeszkedés vizsgálat: Pont osztályban? Egyenes osztályban? statikus metódus?. Kör és Egyenes metszéspontjai?. OO?. - PowerPoint PPT Presentation

Citation preview

www.xsys.hu

Információs környezetek a szervezésben és a tervezésben

Vég CsabaVeg.Csaba@xsys.hu

www.xsys.hu

I. A probléma

www.xsys.hu

OO?

Pont és Egyenes osztály?

Illeszkedés vizsgálat:Pont osztályban?Egyenes osztályban?statikus metódus?

Kör és Egyenes metszéspontjai?

www.xsys.hu

OO?

Játékprogram: szobában felrobbanó bomba megsérti a játékost

1. Játékos ellenőrzi, hogy hat-e rá valami2. A Bomba kezdeményez:

Bomba.robban: játékosok megkeresése Játékos.sérülés: hatás felvétele

Hogyan lehet módosítani/szűrni a hatást (varázsszoba)?

www.xsys.hu

OO?

Készítsünk olyan programot, amelyben egy billiárdgolyó halad egy téglalapban, és az oldalaknál irányt vált.Készítsünk olyan programot, amelyben két billiárdgolyó halad egy téglalapban, és az oldalaknál irányt vált. Ütközés?

Készítsünk olyan programot, amelyben tetszőleges számú billiárdgolyó halad egy téglalapban, és az oldalaknál irányt vált. Ütközés?

www.xsys.hu

Információs környezet

Információs környezet: Pont, Egyenes, Kör: Sík Játékos, Bomba: Szoba Biliárdgolyók: Biliárdasztal

Legalapvetőbb jellemzők ismerheti a tulajdonságait ismerheti az elemek viszonyait felelős a hatások átviteléért: közeg ismerheti a benne elhelyezkedő elemeket

www.xsys.hu

Információs környezet

„design pattern”

tradícionális OO egyszerű kiegészítése

szemlélet: OO: alkalmazás széttöredezése objektumokra Információs környezetek: viszonyokban való

gondolkodás

www.xsys.hu

Példák

JavaScript: „külső”-„belső” objektumok

Java belső osztályok: elérik a külső objektum attribútumait és műveleteit

BeanContext: a környezetek szolgáltatásokat definiálhatnak

www.xsys.hu

II. Jellemzők

www.xsys.hu

A szerkezet…

a csomag-hierarchiákhoz hasonlóak, de változókkal és műveletekkel („szolgáltatásokkal”) is rendelkeznek Java csomag: nem alkalmas

általában hierarchikus, ritkább esetben „dag” szerkezetet alkotnak JScript: hierarchikus objektum-rendszer

az alkörnyezet eléri a tartalmazó „szülő” környezet(ek)et JScript

egyetlen elem is tekinthető környezetként külső környezet elérhetőségének biztosítása

www.xsys.hu

Viszonyok...

A környezet definiálhatja az objektumok közötti viszonyokatstatikus metódus: „konstans” viszonynem statikus metódus (szűrési lehetőség):

átdefiniálhatókörnyezeti változók/más elemek

Egyetlen elem adott tulajdonsága

www.xsys.hu

Attribútumok…

a környezeteknek lehetnek aktuális értékeik, pl. az aktuálisan kezelt üzleti objektumok

a környezetek alapértelmezésként elérik a külső környezet aktuális értékeit, ill. átdefiniálhatják azokat

www.xsys.hu

Műveletek…

A környezeteken keresztül elérhetők szolgáltatások (műveletek) A környezethez kapcsolódó szolgáltatásnak célszerű

transzparensnek lenni: a környezetben meg kell ismételni a műveletet és a hívást delegálni kell

Az alkörnyezet elérheti a külső szolgáltatásait az alkörnyezetben célszerű megismételni a műveletet és a

hívást delegálni kell

Az alkörnyezet újabb szolgáltatásokat definiálhatAz alkörnyezet átdefiniálhatja a külső szolgáltatásait

www.xsys.hu

Származtatás-tartalmazás…

Attribútumok: a környezetek alapértelmezésként elérik a külső

környezet aktuális értékeit, ill. átdefiniálhatják azokat

Szolgáltatások: Az alkörnyezet elérheti a külső szolgáltatásait Az alkörnyezet újabb szolgáltatásokat definiálhat Az alkörnyezet átdefiniálhatja a külső

szolgáltatásait

www.xsys.hu

Elemek és hatások…

Ismerhetik az elemeket

A környezetek alkalmasak a hatások átvitelére, ill. esetleges szűrésére

EseménykezelésBubbling: DOM2

www.xsys.hu

III. Információs környezetek a fejlesztésben

www.xsys.hu

Ipari minőségű szoftver

környezetek: architektúra vázlépéssorozategzakt,egyszerűen alkalmazható

áttekinthető technológiafüggetlen rétegskálázható design

www.xsys.hu

ApplicationService

Service

Service

ModuleModule Service

Service

Model

UIModel

UI

Model

UI ServiceModule

www.xsys.hu

Alkalmazás ("videon")

VideonBase

VideonData Service

Service

Videon

VideonBaseTools

.sql.VideonData

VideonSqlData facade

működtetés

Business rules/procs

Service

Service

www.xsys.hu

Alkalmazás - kliens

VideonBase

VideonData Service

Service

Videon

VideonClientTools

.ejb.VideonData

Videon Service

Service

www.xsys.hu

Működtetés

Alkalmazás/ModulokElérik a felsők definícióit

Model (konkrét)EseménykezelésAktuális értékek (property-change jellegű)

Model

UI

Model

UI

Service

www.xsys.hu

ApplicationService

Service

Service

ModuleModule Service

Service

Model

UI

Model

UI

Model

UI

ServiceModule

www.xsys.hu

Business Facade:Business Rules

Környezetek alapján elhelyezésData Acces Facade

Data Facade + Data ItemTechnológiafüggetlen elérés + Scalable Design

www.xsys.hu

import xsys.*;

public interface Casette extends Entity {

public String getCode(); public void setCode( String code );

public Date getBorrowDate(); public void setBorrowDate( Date borrowDate ); public Movie getMovie(); // Kapcsolat! public void setMovie( Movie movie );

public Customer getCustomer(); // Kapcsolat! public void setCustomer( Customer customer );}

www.xsys.hu

public interface Movie extends xsys.Entity { public String getTitle(); public void setTitle(String title);

public String getOriginalTitle(); public void setOriginalTitle(String originalTitle);

public String getDistributor(); public void setDistributor(String distributor);

public int getReleaseDate(); public void setReleaseDate(int releaseDate); public String getReleaseDateString(); public void setReleaseDate(String releaseDate);

public String getDirector(); public void setDirector(String director);

public String getActors(); public void setActors(String actors);

public Casette eachCasette(); // több multiplicitás

public Advance eachAdvance(); // több multiplicitás}

www.xsys.hu

public interface Entity extends java.util.Iterator { public Object id(); // id public void save();

public int size(); // Collection-like public boolean isEmpty(); public void removeAll(); public void add(Object data); public void remove(Object data);

public boolean hasNext(); // Iterator/Cursor public Object next(); public void remove();}

www.xsys.hu

Használat

Movie movie=videon.getMovie(movieId);//for(Movie movie=videon.eachMovie(); movie.hasNext(); ){ movie.next(); ... if(…) movie.remove(); … } //movie.eachCasette().add( videon.createCasette( code ) );//movie.eachCasette().removeAll();//customer.eachCasette().isEmpty()

www.xsys.hu

Data Access Facade Teljes: összes strukturális művelet Kiterjesztés elemi adatokra ( Values ) Legalapvetőbb nyelvi eszközök Minimális redundancia! Tiszta („elvi”) kép a kliens/BusinessLayer felé Scalable Design

közvetlen adatelérés (JDBC) távoli adatelérés (RMI) J2EE EJB

www.xsys.huVeg.Csaba@xsys.hu

Köszönöm a figyelmet!