Szoftver tervezés és design
Szoftver-technológia I.
Szoftver-technológia I.
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
Szoftver-technológia I.
iterációk
követelmények
analízis
értékelés, végrehajtás
szintézis
megoldás
tapasztalat
er!források
tudás
3
Klasszikus tervezési, elemzési megközelítés
Szoftver-technológia I.
Function (focus)
Function (background)
System
System
Observer Observer Collaborating objects (background)
Funkció megfigyelése
Collaborating objects
Funkció azonosítása
4
Szoftver-technológia I.
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
Szoftver-technológia I.
A (mérnöki) tervezési terület változása Technológia
1
Üzlet
2 3 4 Humán faktorok
6
Design vs. tervezés
Szoftver-technológia I.
•
•
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
Szoftver-technológia I.
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.)
Szoftver-technológia I.
• 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.)
Szoftver-technológia I.
Design decisions
Célok (Taszk)
Design space State
DESIGN DD
Lehet!ségek (Eszközök)
F SP
DD: Desirable for Designer DC: Desirable for Customer SP: Still Posible
DC Conceivable outcomes
10
A design folyamat
Szoftver-technológia I.
Ötletek (nyelv)
Cél (nyelv)
Tervezési tevékenység
Reprezentációk (nyelv)
Eszközök
Design decisions
Tudás (nyelv)
Design space State
DD
DD: Desirable for Designer DC: Desirable for Customer SP: Still Posible
F SP
DC
11
Conceivable outcomes
Szoftver-technológia I.
Design tevékenységek F! tervezési folyamatok
Piac
Koncepcionális tervezés
Specifikálás
Piac elemzés
Szintetizálás
Részletes tervezés
Döntéshozás
Gyártás
Optimalizálás
Eladások
Árazás
12
Szoftver-technológia I.
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
Szoftver-technológia I.
Kényszerek, kívánalmak, lehet!ségek Kényszerek
Kényszerek
Lehet!ségek
Kényszerek Lehet!ségek
Lehet!ségek
Kívánalmak
Kívánalmak
koncepciók elemzése
Ötlet
ajánlattétel
Tender felhívás
design
Kívánalmak
Szerz!dés
implementáció
Terv
Implementált rendszer
14
Tervezési tér
Szoftver-technológia I.
• 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) Végs! terv Ötlet Döntés Döntés Döntés
Tervezési tér
15
Szoftver-technológia I.
Kényszerek
16
Szoftver-technológia I.
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
Szoftver-technológia I.
Design evolúció (folyt.)
18
Design eszközök
Szoftver-technológia I.
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
Szoftver-technológia I.
•
• •
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
Szoftver-technológia I.
Rendszer elemei közötti viszonyok változatossága Rendszer elemeinek változatossága
Rendszer elemei közötti csatolás Komplexitás
Rendszer elemeinek száma
Komplikáltság
A rendszer környezetének turbulenciája
A rendszer m!ködési dinamizmusának foka
21
Szoftver-technológia I.
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.)
Szoftver-technológia I.
•
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-technológia I.
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
Szoftver-technológia I.
A designer szerepe Megrendel!, felhasználó
Szoftver folyamat
Designer
Menedzser
Mérnök, fejleszt!
25
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
Üzletág 1
Üzletág 2
Üzleti folyamatok
Üzleti folyamatok
Kliens
Szolgáltatás interfész
Érintkezési pontok Szervezet
Szolgáltatások
Adatok
Infrasruktúra HW rendszer
OLA-k
SW rendszer
Támogató szolgáltatások
Támogató teamek
SLA-k
Alkalmazások
Környezet
Adatbázisok
Támogató szolgáltatások
Szerz!dések
Szállítók Küls! támogatás
30
Támogató szolgáltatások
Szoftver-technológia I.
31
Interakció tervezés
Szoftver-technológia I.
• 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
Szoftver-technológia I.
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
Szoftver-technológia I.
Interakció tervezési megközelítés System
User
Observer 34