Bevezetés: A szoftverfejlesztési életciklusban a tervezési fázis célja, hogy megoldást találjon az SRS (Software Requirement Specification) dokumentumban megadott problémára. A tervezési fázis kimenete a Sofware Design Document (SDD).

A tervezés alapvetően egy két részből álló iteratív folyamat. Az első rész a koncepcionális tervezés, amely megmondja az ügyfélnek, hogy mit fog tenni a rendszer. A második rész a műszaki tervezés, amely lehetővé teszi a rendszerépítők számára, hogy megértsék az ügyfél problémájának megoldásához szükséges tényleges hardvert és szoftvert.

A rendszer koncepcionális tervezése:

  • Egyszerű nyelven, azaz az ügyfél számára érthető nyelven íródott.
  • A rendszer jellemzőinek részletes magyarázata.
  • A rendszer működését írja le.
  • Ez független a megvalósítástól.
  • Kapcsolódik a követelménydokumentummal.

A rendszer műszaki tervezése:

  • Hardverkomponens és kialakítása.
  • Szoftverkomponens funkcionalitása és hierarchiája.
  • Szoftverarchitektúra
  • Hálózati architektúra
  • Adatszerkezet és adatáramlás.
  • A rendszer I/O komponense.
  • Mutat interfész.

Modularizáció: A modularizálás egy szoftverrendszer több független modulra való felosztása, ahol az egyes modulok egymástól függetlenül működnek. A modularizációnak számos előnye van a szoftverfejlesztésben. Ezek közül néhányat az alábbiakban ismertetünk:

  • Egyszerű a rendszer megértése.
  • A rendszer karbantartása egyszerű.
  • Egy modul többször is felhasználható az igényeiknek megfelelően. Nem kell újra és újra megírni.

Kapcsolás: A csatolás a modulok közötti kölcsönös függőség mértékét jelöli. Egy jó szoftverben alacsony a csatolás.

A csatolás típusai:

  • Adatkapcsolás: Ha a modulok közötti függőség azon alapul, hogy csak adatok átadásával kommunikálnak, akkor a modulokat adatkapcsoltnak mondjuk. Adatkapcsolás esetén a komponensek egymástól függetlenek, és adatokon keresztül kommunikálnak egymással. A modulok kommunikációja nem tartalmaz tramp adatokat. Példa: Ügyfélszámlázó rendszer.
  • Bélyegcsatolás A bélyegcsatolásban a teljes adatstruktúra átadásra kerül egyik modulból a másik modulba. Ezért tramp adatokat tartalmaz. Erre hatékonysági tényezők miatt lehet szükség – ezt a döntést az éleslátó tervező hozta, nem egy lusta programozó.
  • Vezérlőcsatolás: Ha a modulok vezérlési információk átadásával kommunikálnak, akkor azt mondjuk, hogy vezérléssel összekapcsoltak. Ez lehet rossz, ha a paraméterek teljesen eltérő viselkedést jeleznek, és lehet jó, ha a paraméterek lehetővé teszik a funkcionalitás faktorálását és újrafelhasználását. Példa- sort függvény, amely összehasonlító függvényt vesz argumentumként.
  • Külső csatolás: Külső csatolás esetén a modulok más, a fejlesztendő szoftveren vagy egy adott hardvertípuson kívüli moduloktól függenek. Pl. protokoll, külső fájl, eszközformátum stb.
  • Közös csatolás: A modulok közös adatokkal rendelkeznek, például globális adatstruktúrákkal.A globális adatokban bekövetkező változások az összes olyan modulra való visszavezetést jelentik, amelyek hozzáférnek ezekhez az adatokhoz, hogy kiértékeljék a változás hatását. Így olyan hátrányai vannak, mint a modulok újrafelhasználásának nehézségei, az adathozzáférések ellenőrzésének csökkent képessége és a karbantarthatóság csökkenése.
  • Tartalmi csatolás: A tartalmi csatolásban az egyik modul módosíthatja egy másik modul adatait, vagy a vezérlésáramlás az egyik modulból a másik modulba kerül. Ez a csatolás legrosszabb formája, és kerülendő.

Kohézió: A kohézió annak mértéke, hogy a modul elemei funkcionálisan milyen mértékben kapcsolódnak egymáshoz. Ez az a mérték, amely szerint az egyetlen feladat elvégzésére irányuló összes elemet a komponens tartalmazza. Alapvetően a kohézió az a belső ragasztó, amely összetartja a modult. A jó szoftvertervezés magas kohézióval rendelkezik.

A kohézió típusai:

  • Funkcionális kohézió: Egyetlen számítás minden lényeges elemét tartalmazza a komponens. A funkcionális kohézió elvégzi a feladatot és a funkciókat. Ez egy ideális helyzet.
  • Szekvenciális kohézió: Egy elem kimeneti valamilyen adatot, amely más elem bemenetévé válik, azaz adatáramlás a részek között. A funkcionális programozási nyelvekben természetes módon fordul elő.
  • Kommunikációs kohézió: Két elem ugyanazzal a bemeneti adattal operál, vagy ugyanahhoz a kimeneti adathoz járul hozzá. Példa – rekord frissítése az adatbázisban és elküldése a nyomtatónak.
  • Procedurális kohézió: Az eljárási kohézió elemei biztosítják a végrehajtás sorrendjét. A műveletek még mindig gyengén kapcsolódnak egymáshoz, és nem valószínű, hogy újrafelhasználhatók. Pl. a hallgatói átlagérték kiszámítása, hallgatói rekord nyomtatása, összesített átlagérték kiszámítása, összesített átlagérték nyomtatása.
  • Időbeli kohézió: Az elemek az időzítésük által kapcsolódnak egymáshoz. Az időbeli kohézióval összekapcsolt modul minden feladatát ugyanabban az időintervallumban kell végrehajtani. Ez a kohézió tartalmazza a rendszer összes részének inicializálására szolgáló kódot. Rengeteg különböző tevékenység történik, mindegyik init időben.
  • Logikai kohézió: Az elemek logikailag és nem funkcionálisan kapcsolódnak egymáshoz. Pl- Egy komponens bemeneteket olvas be szalagról, lemezről és hálózatról. Ezeknek a funkcióknak az összes kódja ugyanabban a komponensben van. A műveletek kapcsolódnak, de a funkciók jelentősen különböznek.
  • Véletlenszerű kohézió: Az elemek nem kapcsolódnak egymáshoz(függetlenek). Az elemeknek a forráskódban való elhelyezkedésen kívül nincs más fogalmi kapcsolatuk. Ez véletlenszerű és a kohézió legrosszabb formája. Pl. a következő sor kiírása és egy karakterlánc karaktereinek megfordítása egyetlen komponensben.

Attention reader! Ne hagyja most abba a tanulást! Szerezze meg az összes fontos CS elmélet fogalmát az SDE interjúkhoz a CS elmélet tanfolyammal diákbarát áron, és váljon ipari készségűvé.

Cikk Címkék :

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.