Szoftverfejlesztés lépései

Ebben a témában: Alapok, Fejleszto eszkozok

Nézzük meg kicsit részletesebben, hogyan is néz ki ma, egy nagyvállalati szoftver fejlesztése a gyakorlatban. Milyen életciklusa van a terméknek és kiknek a kezén megy át, mielőtt a vásárló a kezébe veheti.

 

1.      Vevői Specifikáció

          A fejlesztést megelőzi magának a terméknek a megrendelése. Ekkor a vevő elküldi a részletes specifikációját a terméknek. Régebben ezek a specifikációt mindenféle változatos formátumban jutottak el a gyártókhoz, azonban ma már gyakorlatilag minden fontos piaci szereplő a Doors nevű IBM-es követelménykezelő rendszert használja erre a célra. A program maga nem túl bonyolult, gyakorlatilag táblázatos formában érkeznek a követelmények, illetve különböző követelmények tudnak mutatni egymásra. Ezen felül még képes tárolni az egyes követelmények verzióit is. A vevőtől kapott követelményeket általában Customer Requirement Specification-nek (CRS) nevezzük.

 

2.      Szoftveres Specifikáció

       A következő lépés a vevői követelmények kiegészítése. A megrendelő által küldött követelményeket általában még több iteráción keresztül kell egyeztetni illetve kiegészíteni. Ezeket az egyeztetéseket és kiegészítéseket általában nem maga a programozó végzi (bár aktívan részt vesz a folyamatban), hanem az erre a feladatra kijelölt emberek, a vevői kapcsolattartók. Ha ez a lépés megvan, akkor már az is megvan, hogy pontosan mit is kell lefejleszteni. Ezt a csomagot nevezzük általában Software Requirement Specification-nek (SRS).

 

3.      Rendszertervezés

        A következő lépés, annak a szoftver rendszernek a megtervezése, ami majd képes lesz megvalósítani az SRS minden követelményét.

        Tervezésnek számít az is, ha egy A4-es papírra lerajzolom, hogy, hogyan fog kinézni a rendszer. Azonban ma már ettől sokkal komolyabbak az elvárások megrendelői oldalról is, valamint a mai projektek már általában nem férnek rá egy A4-es lapra. Éppen ezért már nagyon ügyes modellező programok vannak a piacon. Ezekben rengeteg féle aspektusból lehet lerajzolni a rendszert vagy annak egy szeletét. Nincs igazán egyeduralkodó modellező keretrendszer, a legelterjedtebbek a Rhapsody, MagicDraw, Enterprise Architect. Illetve léteznek különböző modellező nyelvek is, ezek között egyeduralkodónak mondanám az UML-t. Ha jól megterveztük a rendszerünket, akkor már van lehetőségünk, hogy egy gombnyomásra tudjunk kódot generálni. Az előbb említett modellező szoftverek már beépítve nyújtanak kódgenerálási lehetőségeket. Azonban ezeket nehéz jól használni, ezért általában csak a teljes rendszer egy kis része generálható.

 

4.      Implementáció

          A tervezési fázis után következik (végre) az implementálási fázis, amikor is már ténylegesen kódot „gyártunk”. Ez, a már korábban bemutatott programozási keretrendszerekben történik, a szükséges programozási nyelven. Ha a rendszerünket a tervezési fázisban jól átgondoltuk, akkor ebben a lépésben már kevesebb dolgunk lesz, mivel gyakorlatilag „csak” le kell kódolni a tervrajzokat.


(more…)

Szoftverfejlesztés az alapoktól

Ebben a témában: Alapok, Fejleszto eszkozok

Tudod, hogyan működik egy telefonos applikáció? Miért nyílik magától a fotocellás ajtó, vagy miért indul el a lift, ha megnyomsz benne egy gombot? Hogyan tudja vezetni a robotpilóta a Tesla autóit vagy éppen egy repülőt?

 

 

Sok érdekes, látszólag különböző kérdés, azonban a válasz mindegyikre ugyanaz. Ezekben az elektronikai eszközökben programok futnak melyek bizonyos bemenetek hatására bizonyos dolgokat hajtanak végre.

 Szoftverfejlesztes az Alapoktol

 

A programot magát, a CPU, a Processzor fogja végrehajtani. Mire a CPU elkezdi végrehajtani a programot, addigra az már csak 0-k és 1-esek véges hosszú sorozata lesz, ugyanis a CPU csak ezt a két értéket tudja értelmezni. Tehát mondhatnám, hogy egy Programozónak csupán egy két gombos billentyűzetre van szüksége.

Na de persze a valóságban ez nem így működik, ugyanis erre a feladatra találták ki a különböző programozási nyelveket. A programozási nyelv nem más, mint különböző utasítások halmaza. Képzeld el a programozási nyelvet úgy, mint az emberi nyelvet, ahol a használható szavak az utasítások. Az ezen utasítások véges hosszú sorozata pedig a program maga, mint egy szöveg a szavak segítségével. Minden utasításhoz tartozik egy egyedi azonosító, ami nem más, mint egy bináris szám. A számok sorozatát a programból pedig, egy úgynevezett fordító vagy Compiler tudja előállítani. Ez a számsorozat lesz a 0-k és 1-esek véges hosszú sorozata.

                                                                                   Programozo Billentyuzete

 

A trükk pedig ott van, hogy rengeteg féle programozási nyelv létezik. Ugyanis másfajta utasításokat érdemes használni a fotocellás ajtóhoz és megint másfajtákat egy telefonos applikációhoz. A teljesség igénye nélkül:

  • Web programozáshoz: HTML, PHP, Javascript, Python
  • Telefonos alkalmazásokhoz: Objective-C, Java
  • Beágyazott rendszerekhez (autók, repülők, robotok, …): Assembly, C, C++
  • Számítógépes alkalmazások: C#, Java
  • Adatbázisok: SQL


(more…)

Mit csinál egy Programozó?

Ebben a témában: Alapok

Egy programozó napi munkája igen sokrétű. A legnagyobb része a különböző problémák megértése, analízise illetve egy megoldás kidolgozása, a kisebbik része pedig a tényleges programozási feladatok elvégzése.

 

A legtöbb esetben már nem is igazán a programozáson van a hangsúly hanem, hogy kitaláljunk egy jó, működőképes koncepciót az adott problémára. Azonban, ahhoz hogy kialakuljon egy ilyen problémamegoldó képesség, mindenképpen alapfeltétel egy releváns programozási nyelv alapos ismerete. Egy programozási nyelv pedig nem más mint olyan utasítások halmaza amit a számítógép értelmezni tud. Hasonlóan az emberi beszédhez, a programozási nyelv is szavakból tevődik össze és ezután ezeket kell egy értelmes sorrendbe tennünk. Azért fontos egy programozási nyelv alapos ismerete, hiszen ha nem vagyunk tisztában a saját eszközeinkkel, akkor semmilyen problémát sem fogunk tudni hatékonyan megoldani. Egy jó orvos sem tud jó diagnózist, vizsgálatokat felírni anélkül, hogy ismerné a lehetséges eszközöket, műszereket.

 

Tehát mit is csinál egy programozó pontosan? Leginkább olvas, kutat, értelmez, ötleteket gyárt majd azokat megpróbálja átültetni a gyakorlatba a programozás által, így letesztelve, hogy az elméletben kitalált megoldás valóban működőképes-e. Ezek jelentik számomra az izgalmas napokat, ami után még sokszor otthon is azon gondolkozok, hogy másnap hogyan tovább. (Azonban az igazsághoz hozzátartozik, hogy vannak unalmasabb napok is, amikor bizony kicsit kevésbé kreatív, úgynevezett favágó munkákat kell elvégeznünk. Ezen szerintem kár háborogni, az ilyen feladatokon egyszerűen túl kell esni, szerencsére azért általában ez ritkábban fordul elő.)

Ezzel el is értünk az én kedvenc gondolatomhoz, miszerint A Programozás, A Programozói szakma az egyik legkreatívabb szakma amit csak ismerek. A semmiből kell egy valódi problémára egy számítógép által is értelmezhető algoritmust kitalálni és megvalósítani. A valódi probléma pedig bármi, de tényleg bármi lehet. Lehet ez egy 1000 éves matematikai probléma, egy világhírű közösségi háló, egy új szuper applikáció ami mindenki számára nélkülözhetetlen lesz nemsokára, egy hihetetlenül élethű játék, egy önvezető autó vagy egy teljesen új banki rendszer megtervezése.

 

Azt hiszem én ezért a kreativitás miatt szerettem meg ezt a szakmát és én mindenkit bíztatok, hogy bátran vágjon bele, mert ugyan egy programozási nyelv elsajátítása beletelhet néhány hónapba, de szerintem megéri. Ha pedig te is ezt a cikket olvasod, akkor már az első lépéseket sikeresen meg is tetted, egy új szakma megismerése felé. A programozási nyelv pedig nem más csupán, mint egy eszköz, hogy a számítógép is megértse, hogy pontosan milyen utasításokat is kell végrehajtania. Azonban a programozási nyelv nagyon fontos, ezért alaposan ismerni kell, különben ott állsz majd a műtőben szike nélkül, ami kellemetlen lehet.

De mégis hogyan kell elképzelni, egy-egy konkrét feladatot a hétköznapokban? A „feladat” mérete rengeteget változott az elmúlt 10-15 évben. A mai komplexitással rendelkező programokat már általában nem 1 ember csinálja, sőt! Ma már inkább a több tucat fős projektek a jellemzőek, ahol csapatban kell dolgozni.

(more…)