Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:szoftvertervezes

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

oktatas:programozas:szoftvertervezes [2019/08/22 11:21] (aktuális)
admin létrehozva
Sor 1: Sor 1:
 +[[oktatas:​programozás|<​ Programozás]]
 +
 +====== Szoftvertervezés ======
 +
 +  * **Szerző:​** Sallai András
 +  * Copyright (c) Sallai András, 2014
 +  * Licenc: GNU Free Documentation License 1.3
 +  * Web: http://​szit.hu
 +
 +===== Szoftvertervezés folyamata =====
 +
 +Grady Booch: A szoftverfejlesztő dolga az egyszerűség illúziójának megtervezése.
 +
 +
 +{{:​oktatas:​programozás:​a_tervezesi_folyamat_altalanos_modellje.png|}}
 +
 +
 +===== Szoftverkövetelmények =====
 +{{:​oktatas:​programozás:​kovetelmenytevezes_folyamata.png|}}
 +===== Követelmények meghatározása =====
 +
 +Követelménytípusok:​
 +  * felhasználói követelmények
 +  * rendszer követelmények
 +
 +{{:​oktatas:​programozás:​kovetelmenyekfelosztasa.png|}}
 +==== Felhasználói követelmények ====
 +
 +Technikai részletek nélküli leírás.
 +
 +  * funkcionális
 +  * nem funkcionális - megszorítások
 +
 +==== Rendszerkövetelmények ====
 +
 +Részletes leírás.
 +
 +  * funkcionális
 +  * nem funkcionális - megszorítások
 +    * termék követelmények
 +      * hatékonyság
 +      * megbízhatóság
 +      * hordozhatósági
 +    * szervezeti követelmények
 +      * szállítási
 +      * megvalósítási
 +      * szabvánnyal kapcsolatos
 +    * külső követelmények
 +      * jogi
 +      * etikai
 +      * együttműködési
 +
 +{{:​oktatas:​programozás:​nem-funkcionalis_kovetelmenyek.png|}}
 +===== A követelményelemzés eszközei =====
 +
 +  * interjú
 +  * kérdőív
 +    * nyílt kérdőív - nincs előre megadott válasz
 +    * zárt kérdőív - a válaszok előre adottak
 +    * vegyes kérdőív
 +  * dokumentumok gyűjtése, elemzése
 +  * ötletbörzék szervezése
 +  * etnográfia
 +    * a felhasználók tevékenységeinek figyelése
 +  * hasonlóságok kutatása más rendszerekkel
 +  * gyakorlat az adott területen
 +  * diagram készítése - ok-okozati összefüggések rajzolása
 +
 +Ügyelni kell az ellentmondások feldolgozására.
 +
 +{{:​oktatas:​programozás:​kovetelmenyelemzes_eszkozei.png|}}
 +
 +
 +{{:​oktatas:​programozás:​kovetelmenyelemzes_kerdoivvel.png|}}
 +===== Megvalósíthatósági tanulmány =====
 +
 +A követelménytervezés első lépése. ​
 +
 +A megvalósíthatósági tanulmány bemenetei a **rendszer körvonalazott leírása** és a **kezdeti üzleti követelmények**.
 +
 +A kimenet egy rövid, tömör dokumentum, amely a következő kérdésekre keresi a választ:
 +  * Az ügyfél célkitűzéseit támogatja a szoftver?
 +  * Megvalósítható-e az adott technológia,​ költségvetés és ütemezés mellett?
 +  * A már meglévő rendszerekkel integrálható?​
 +
 +{{:​oktatas:​programozás:​megvalosithatosagi_tanulmany.png|}}
 +===== Követelmény specifikáció =====
 +
 +A kívánt eljárások hivatalos leírása. Része lehet a felhasználói és a rendszerkövetelmények.
 +A követelmény specifikáció az alapja az ügyfél és a szoftverfejlesztő között létrejövő szerződésnek.
 +
 +Kik **használják** a követelmény specifikációt?​
 +  * megrendelő
 +  * menedzserek
 +  * rendszertervezők
 +  * rendszerteszt tervezők
 +  * rendszerkarbantartás tervezők
 +
 +
 +
 +
 +{{:​oktatas:​programozás:​kovetelmenyspecifikaciohasznaloi.png|}}
 +
 +
 +
 +A követelmény **dokumentumot** szabvány is előírja: IEEE/ANSI 830-1993
 +
 +  - Bevezetés
 +    - célok
 +    - felhasználási terület
 +    - szakkifejezések
 +    - rövidítések
 +    - más dokumentumokra hivatkozások
 +    - a dokumentum hátralévő részéről áttekintés
 +  - Általános leírás
 +    - miért van szükség a termékre
 +    - funkciók
 +    - használati jellemzők
 +    - megszorítások
 +    - feltételezések és függőségek
 +  - Speciális követelmények
 +    - más rendszerekhez kapcsolódás lehetőségei
 +  - Függelék
 +    - hardver leírás
 +    - adatbázis leírás
 +  - Tárgymutató
 +    - hagyományos betűrendes
 +    - funkciók
 +    - diagramok indexe
 +
 +
 +{{:​oktatas:​programozás:​kovetelmenyek_feltarasa_elemzes.png|}}
 +
 +===== A papír prototípus =====
 +
 +==== A papír prototípusról ====
 +
 +Egy papírra rajzoljuk le a felülettel vagy más terveinkkel kapcsolatos elképzeléseinket.
 +
 +Egy széles körben alkalmazott módszer a felhasználó-központú tervezési folyamatban. Az eldobható, kézzel rajzolt prototípusoknak nagy jelentősége van.
 +
 +A papír prototípus az egyszerűsége ellenére nagyon fontos lehet a tervezési, tesztelési folyamatban,​ amelynek eredménye egy jobb termék. A papír prototípus hasznosságát sok szakember támassza alá.
 +
 +A papír prototípus pénzt és időt takarít meg. Lehetővé teszi a fejlesztők számára a felület tesztelését. ​
 +
 +
 +==== Mikor használjuk?​ ====
 +
 +  * Amikor a tervező eszközök éppen nem állnak rendelkezésre.
 +  * A fejlesztésben kevésbé jártas csapattagok is részt vehessenek a felület kialakításában.
 +  * A tervezés nagy rajzokat eredményez.
 +
 +
 +===== Architekturális tervezés =====
 +
 +Egy magas szintű terv, amelyben meghatározzuk az elkészítendő rendszereket és alrendszereket.
 +
 +Az architektúra a komponensek és a közöttük lévő kapcsolat.
 +
 +Leírjuk vagy rajzoljuk milyen komponensek vannak és azok között van-e kapcsolat.
 +
 +
 +A következő kérdések segítenek az architekturális tervezésben. ​
 +  * Létezik már **hasonló rendszer**?
 +  * Milyen **tárolási modell** alkalmazunk?​
 +    * az alrendszerek saját adatbázist használnak
 +    * központi adatbázis használata
 +  * Milyen **meghibásodási** lehetőségek vannak?
 +  * Milyen **biztonsági** elveket kövessünk,​ ezeket hogyan teszteljük?​
 +  * Mit **naplózzunk** és hova?
 +  * Kelle-e **menteni**,​ ki, mikor, hova?
 +
 +
 +A következőkben UML segítségével megrajzolt terveket látunk:
 +
 +{{:​oktatas:​programozás:​program_db.png|}}
 +
 +{{:​oktatas:​programozás:​program_db_alrendszerek.png|}}
 +
 +
 +{{:​oktatas:​programozás:​kliens_db.png|}}
 +
 +{{:​oktatas:​programozás:​kliens_szerver_db.png|}}
 +
 +{{:​oktatas:​programozás:​kliens_szerver_web_db.png|}}
 +
 +{{:​oktatas:​programozás:​bongeszo_kliens_webszerver_db.png|}}
 +
 +
 +{{:​oktatas:​programozás:​levelezo_kliens_pelda002.png|}}
 +
 +{{:​oktatas:​programozás:​levelezo_szerver_pelda003.png|}}
 +
 +Egy konkrét megvalósított rendszer kész levelezőrendszer rendszer:
 +
 +{{:​oktatas:​programozás:​bongeszo_kliens_webszerver_db_pelda001.png|}}
 +
 +
 +===== Szoftver specifikáció =====
 +
 +Egy magas szintű terv, amelyben meghatározzuk az elkészítendő alrendszereket részletesen.
 +
 +
 +{{:​oktatas:​programozás:​szoftver_specifikacio_bemenetei.png|}}
 +
 +
 +==== Minőségi követelmények ====
 +
 +Mire kell gondolni?
 +  * szabványok
 +  * hibajegyek kezelése
 +  * verziókövetés
 +  * tesztelés
 +  * biztonság
 +==== Példa specifikáció ====
 +
 +A szoftvernek a következő funkciókat kell tudnia.
 +
 +
 +  - felhasználók kezelése
 +  - felhasználók csoportokra bontása
 +  - felhasználói adminisztráció
 +  - bejelentkezés
 +  - áru kezelése
 +  - eladás
 +  - számlázás
 +  - naplózás
 +  - kimutatás készítés
 +
 +=== Felhasználók kezelése ===
 +
 +A szoftvert csak felhasználói azonosítás után lehet elérni, amely felhasználónév jelszó párost jelent. ​
 +A felhasználók MySQL adatbázisban vannak tárolva, titkosítva. A felhasználók csoportokra ​
 +oszthatók, minden csoport más más felületet érhet el. A következő csoportok vannak:
 +  * vezetés
 +  * dolgozó
 +  * pénztáros
 +  * admin
 +A felhasználók adminisztrálást a rendszergazda végzi, az adminisztrációs felületen.
 +A rendszergazda a szoftver bármely felületét elérheti, de eladási és készletezési
 +tevékenységet nem tud végezni. ...
 +
 +
 +===== Interfész tervezés =====
 +
 +==== Az interfész tervezésről ====
 +
 +
 +{{:​oktatas:​programozás:​interfesz_terv.png|}}
 +
 +A felhasználói interfészt mindig a felhasználóhoz igazítjuk. ​
 +Általánosságban a következő elveket fogalmazhatjuk meg:
 +  * a felhasználók ismereteihez tervezzük a felületet
 +  * konzisztens felületek - a felületek, menük legyenek hasonlóak
 +  * a viselkedés is legyen hasonló
 +  * legyen útmutató (help rendszer)
 +  * számítsunk a felhasználói hibákra
 +  * akadálymentesítési lehetőség
 +  * visszavonási lehetőség
 +  * egyszerűség
 +  * a túlzott effektek kerülése
 +
 +Adatbevitel felületeken fontos helyes sorrend. Fentről lefele,
 +jobbról balra haladjon. A következő képen egy jó sorrendet látunk:
 +
 +{{:​oktatas:​programozás:​adatbeviteli_sorrend.png|}}
 +
 +
 +Helytelen össze-vissza ugrálás.
 +
 +A bevitt adatokat ellenőrizzük. ​
 +  * szintaktikai
 +  * szemantikai - Az adtok megfelelő intervallumba esnek?
 +
 +A hibákról tájékoztatjuk a felhasználót.
 +
 +==== UCD ====
 +
 +=== Az UCD-ről ===
 +
 +
 +A User-centered design szavakból alkotott betűszó.
 +
 +Tágabb értelemben felhasználói felület tervezés egy típusa, ahol a felhasználói kívánságok nagy figyelmet kapnak.
 +
 +=== Szabvány ===
 +
 +
 +A tervezési folyamatot az ISO is szabványba foglalta.
 +A szabvány száma: ISO 9241-210, 2010
 +
 +=== Az alapelvek ===
 +
 +Az ISO szabvány hat alapelvet ír le:
 +  - A tervezés a felhasználók,​ a feladatok és a környezet konkrét megismerésével folyik.
 +  - A felhasználók is részt vesznek a tervezés egyes szakaszaiban.
 +  - A felületet a felhasználók is értékelik.
 +  - A folyamat ismétlődik.
 +  - A tervezésben a teljes felhasználói élménnyel foglalkozunk.
 +  - A projektben résztvevők többféle tudományos nézőponttal és készségekkel rendelkeznek.
 +
 +=== Kérdések ===
 +A következő kérdések segítenek a megvalósításban:​
 +
 +  * Kik a felhasználók?​
 +  * Mik a felhasználók feladati és céljai?
 +  * Milyen szinten van a felhasználók szakértelme?​
 +  * Milyen funkciókra van szüksége a felhasználóknak?​
 +  * Milyen információkra és milyen formában lehet szüksége a felhasználóknak?​
 +  * Mit gondolnak a felhasználók,​ hogyan kellene működnie az egésznek?
 +  * Milyen különös körülmények merülhetnek fel?
 +  * A felhasználók más feladatokat is végeznek?
 +  * A felhasználói felületnek kezelnie kell olyan beviteli módokat mint érintés, beszéd, gesztusok, irányok?
 +
 +=== Fontos elemek ===
 +
 +
 +== Láttatás ==
 +
 +A felhasználók jól átlátható programmodellel találják magukat szembe. A navigációs lehetőségek legyenek kiemelve. A felhasználók számára azonnal derüljön ki mit tehetnek meg és mit nem.
 +
 +== Olvashatóság ==
 +
 +A szöveg legyen olvasható. Szükséges a megfelelő tipográfiai ismeret. Tudni kell milyen fontokat érdemes használni, mikor engedhetünk meg magunknak díszes fontokat. A fontok esetén a sans serif használata ajánlott 10-12 pixeles nagyságban. Serif esetén 12-16 pixeles méretek az ajánlottak.
 +Növeli az olvashatóságot a megfelelő kontraszt. A legolvashatóbb sötét szöveg világos háttéren.
 +
 +== Nyelv ==
 +
 +A nyelv megválasztásánál a megcélzott felhasználók döntőek. A mondatok legyenek rövidek, szerkezetük legyen egyszerű. Kivételt képezhet, ha valamiféle szakzsargon miatt bővebb kifejtés szükséges. Passzív mondatszerkezetek helyett az aktív szerkezetek és igék használata ajánlott főnevek és névszók helyett.
 +
 +  * Aktív mondat: Az fájl letöltődött.
 +  * Passzív mondat: A fájl le van töltve.
 +
 +=== A felhasználói központú tervezés egyéb eszközei ===
 +
 +== Személy ==
 +Egy kitalált személy a felhasználó minden tulajdonságával.
 +
 +== Forgatókönyv ==
 +Bizonyos események sorozata amely az adott személlyel kapcsolatos. ​
 +
 +== Használati eset ==
 +
 +Egy kölcsönhatás a felhasználó és a világ között.
 +
 +
 +
 +=== Az érzelmekről ===
 +
 +A fejlesztett felületet jó esetben élvezetes használni. A felület megtervezése ezért kiemelt fontossággal jár.
 +
 +===== Linkek =====
 +
 +  * http://​www.tankonyvtar.hu/​hu/​tartalom/​tamop425/​0046_szoftverfejlesztes
 +  * http://​www.inf.unideb.hu/​kmitt/​konvkmitt/​szoftverfejlesztes/​book.xml.html
  
oktatas/programozas/szoftvertervezes.txt · Utolsó módosítás: 2019/08/22 11:21 szerkesztette: admin