Szoftver tervezés és design Irodalom Frederick Brooks: Design of design, Addison-Wesley, 2010 M. Imaz, D. Benyon: Designing with blends, MIT Press, 2007 2
A mérnöki folyamat iterációk követelmények analízis szintézis értékelés, végrehajtás megoldás tapasztalat er!források tudás 3 Klasszikus tervezési, elemzési megközelítés System Function (focus) System Function (background) Observer Observer Collaborating objects (background) Funkció megfigyelése Collaborating objects Funkció azonosítása 4
A mérnöki- és a tudományos folyamat Tudományos folyamat Mérnöki folyamat Redukcionizmus Holizmus Érték mentes kijelentések Érték-töltött tevékenységek Pontosságra törekv! modellezés Sikerességhez elégséges modellezés Elmélet és pontos adatok alapján levont következtetések Megfelel! döntések pontatlan adatok és közelít! modellek alapján Oksági viszonyok meghatározása Folyamatok létrehozása 5 A (mérnöki) tervezési terület változása Technológia 1 Üzlet 4 2 Humán faktorok 3 6
Design vs. tervezés Tervezés (planning) tudományos módszer, pozitivista megközelítés, objektív valóság komplexitási korlátok (nem hatékony) nem kezelhet! rossz (soft) problémák nem megfelel! probléma identifikálás Design elhalasztott probléma identifikálás kísérleti megoldások összehasonlítása, megértés 7 Design Kognitív tevékenység fennálló helyzet kívánatossá alakítása probléma megoldási tevékenység rosszul struktúrált problémák analízis + szintézis + értékelés kielégít! megoldások (vs. opt.) opportunisztikus dekompozíció, struktúrálás magkoncepció 8
Design (folyt.) Iteratív folyamat Szisztematikus generálás, értékelés Termékei: konstrukciók (fogalmak) modellek (reprezentációk) módszerek (algoritmusok) példányosítások (implementációk) 9 Design (folyt.) Design decisions Célok (Taszk) Design space State DESIGN D D Lehet!ségek (Eszközök) F SP DD: Desirable for Designer DC: Desirable for Customer SP: Still Posible D C Conceivable outcomes 10
A design folyamat Ötletek (nyelv) Cél (nyelv) Tervezési tevékenység Eszközök Reprezentációk (nyelv) Design decisions Tudás (nyelv) Design space State D D F SP DD: Desirable for Designer DC: Desirable for Customer SP: Still Posible D C Conceivable outcomes 11 Design tevékenységek F! tervezési folyamatok Piac Specifikálás Koncepcionális tervezés Részletes tervezés Gyártás Eladások Piac elemzés Szintetizálás Döntéshozás Optimalizálás Árazás 12
Design tevékenységek (folyt.) Iteratív fejlesztési tevékenységek szükséglet elemzés durva design koncepció kialakítás korai interakció vizsgálat részletes tervezés implementálás integrálás 13 Kényszerek, kívánalmak, lehet!ségek Kényszerek Lehet!ségek Kényszerek Lehet!ségek Kényszerek Lehet!ségek Kívánalmak Kívánalmak Kívánalmak koncepciók elemzése ajánlattétel Ötlet Tender felhívás Szerz!dés design implementáció Terv Implementált rendszer 14
Tervezési tér Tervezési, design döntések kidolgozás, redukció Design fejl!dési út konvergens Kényszerek terhek (betartás) könnyítés (tervezési tér korlátozása) Ötlet Végs! terv Döntés Döntés Döntés Tervezési tér 15 Kényszerek 16
Design evolúció Az ötlett!l a megvalósításig az id!vel a befektetés n!, tervezési tér keskenyedik Ötletelés: széles perspektíva, rossz ötletek korai elvetése Design taktika Választási lehet!ségek számbavétele (kidolgozás) Választás (redukció) 17 Design evolúció (folyt.) 18
Design eszközök Vázlatok (sketch) Prototípus El!idéz! Didaktív Javaslat Leírás Felfedezés Finomítás Ajánl Tesztel Provokál Megold 19 Design és információrendszer tervezés IS tervezési problémák instabil követelmények komponensek komplex interakciói rugalmasság igénye függés emberi kognitív képességekt!l fontos szociális aspektusok sokféle alkalmazási terület Szoftver design által elérend! jellemz!k: szilárdság, eladhatóság, élmény =>kreatív, innovatív, új megoldások szükségesek 20
Komplexitás Rendszer elemei közötti viszonyok változatossága Rendszer elemeinek száma Rendszer elemeinek változatossága Rendszer elemei közötti csatolás Komplikáltság Komplexitás A rendszer környezetének turbulenciája A rendszer m!ködési dinamizmusának foka 21 Szoftver tervezés F! kérdések: Hogyan kell egy programot, rendszert egy robusztus, tesztelt, dokumentált, támogatott termékként létrehozni? Hogyan lehet intellektuálisan kezelni az igen nagy komplexitást? 22
Szoftver tervezés (folyt.) Két réteg szoftver struktúrák mutatott, érzékelhet! jellemz!k Problémák implicit tervezési döntések tervezés szétken!dése az életcikluson eltér! nyelvek, reprezentációk domén függ! technikák dokumentálatlan korábbi tervezési tapasztalat nem megfelel! tervezési környezetek 23 Szoftver tervezés (folyt.) Alkalmazás/rendszer tervezés Mit csináljon a rendszer? Célok, alkalmazás domén Architektúra tervezés Megrendel! Implementáció tervezés Mit csináljon a megvalósító? Megvalósítási technológiák Modul tervezés Programozók, tesztel!k 24
A designer szerepe Megrendel!, felhasználó Szoftver folyamat Designer Menedzser Mérnök, fejleszt! 25 Tervezési szempontok Különböz! szempontok és érdekek eltér! fontosság és hatások különböz! megoldások tervezési mélység 26
Tervezési paradigmák El!író tervezési módszerek szoftver módszertanok top-down, finomítás Jelölés rendszerek tervezési formalizmusok Tapasztalati tudás tervezési minták HCI tervezés bottom-up, cognitive engineering 27 Modern tervezési módszerek Agilis módszerek participatory design (felhasználó bevonása) tesztelés-vezérelt fejlesztés design a teljes életciklusban Komponens-alapú tervezés újra felhasználható, standard komponensek, rendszer integrálás 28
Szolgáltatás tervezés IS szolgáltatások tranzakciók, információ, szórakoztatás Szolgáltatás ökológia szolgáltatás+kontextus (szerepl!k, viszonyok) -> lehet!ségek értékcsere szolgáltatás igénybevételi pontok 29 Informatikai szolgáltatások Üzletág 1 Üzletág 2 Üzleti folyamatok Üzleti folyamatok Érintkezési pontok Kliens Szolgáltatás interfész Szervezet Infrasruktúra HW rendszer Adatok SW rendszer Szolgáltatások Alkalmazások Adatbázisok SLA-k Környezet OLA-k Támogató szolgáltatások Támogató szolgáltatások Szerz!dések Támogató teamek Szállítók Küls! támogatás 30
Támogató szolgáltatások 31 Interakció tervezés Technológia-használati állomások kialakulási szakasz, professzionális használati szakasz, fogyasztói használat Hangsúly a felhasználói élményen értékek, hatás Id!beli lefolyás, dinamika események szegmentálása Használhatóság ~ használat közbeni min!ség 32
Interakció tervezés (folyt.) Kapcsolódó területek formatervezés ergonómia kognitív pszichológia HCI (human-computer interaction) tudomány felhasználói felülettervezés 33 Interakció tervezési megközelítés System User Observer 34