A programozás technológiája

A tantárgy angol neve: Software Engineering

Adatlap utolsó módosítása: 2006. július 1.

Tantárgy lejárati dátuma: 2015. január 31.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar

Műszaki Informatika Szak

keresztfélév

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIFO2228 3 4/0/0/v 5 1/1
3. A tantárgyfelelős személy és tanszék Dr. László Zoltán Ferenc,
4. A tantárgy előadója

Név:

Beosztás:

Tanszék, Int.:

dr. László Zoltán

adjunktus

Irányítástechnika és Informatika

5. A tantárgy az alábbi témakörök ismeretére épít

- programozási gyakorlat

- digitális technika

- diszkrét matematika (számelmélet alapjai)

6. Előtanulmányi rend
Kötelező:
TárgyEredmény( "BMEVIEE1227" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIAU1227" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIMH1507" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIEE1240" , "jegy" , _ ) >= 2 VAGY Szakirány2R( "KIEG", "2004/05/1" ) >0 VAGY Szakirány2R( "KIEG", "2005/06/1" ) >0 VAGY TárgyEredmény( "BMEVIEEA112" , "jegy" , _ ) >= 2 VAGY Szakirány( ahol a SzakirányKód = "KIEGI", ahol a Ciklus = "2006/07/1")

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

Ajánlott:

A tárgyat csak azok vehetik fel, akik korábban hallgatták a következő tárgyakat:

viee1227 Programozás alapjai II. kredit

7. A tantárgy célkitűzése

A tárgy nagy méretü szoftver rendszerek tervezésének, fejlesztésének, karbantartásának tanitását tüzi ki célul, bemutatva a szoftver, mint termék elöállitásához szükséges mérnöki tevékenység technikáit és módszereit. A tárgy a technikai aspektusok kiemelése mellett foglalkozik a technológiák adminisztrativ vonatkozásaival is ( management ).

A tárgyat abszolválva a hallgatók képesek

- megérteni és kezelni a nagy méretü szoftver rendszerek fejlesztésének problémáit;

- részt venni nagy projektekben.

A tárgy kidolgozásánál - a korábbi évek tapasztalataiból kiindulva - két-lépcsős Software Engineering oktatási modellt vettünk alapul, ahol a hallgatók egy félév alatt előadásokon keresztül megismerik a technikákat és metodológiákat, majd a következö félévben a számítógép labor keretében alkalmazzák a tanultakat.

8. A tantárgy részletes tematikája

Hét Téma

  1. Mi a software engineering ? A szoftver technológia kialakulása, fejlödése. Technológia, tudomány, oktatás. A szoftver krizis. A problémák, az okok, a hitek és a megoldások.
  2. A rendszerfejlesztés folyamata, annak dimenziói. Absztrakció és formalizálás, fogalmi és implementációs modellek. A szoftver, mint termék. Életciklusmodellek. A szoftver projekt tervezése. A fejlesztési folyamat érettségi modellje (CMM). A fontosabb költségelemek és becslésük. Projekt terv.
  3. Követelmények elemzése, definiálása. A specifikáció nézőpontjai: funkcionális, strukturális, dinamikus. Specifikációs módszerek: adatfolyamábra, adatszerkezetek leirása, entitás relációs diagrammok.
  4. Dinamikus viselkedés specifikálása, kiterjesztett állapotgép. Formalizálási lehetőségek: algebrai axiómák, Petri-gráfok.
  5. A programtervezés elvei. Absztrakció és információ rejtés. Döntések és absztrakciók. Föbb absztrakciós stratégiák. Dijkstra-elv. Modul. Modularizálás. Kohézió és csatolás.
  6. Szoftver architektúrák. Data-flow, Call-and-return, Data-centered, Virtual machines. Adatfolyam és adatstruktúra orientált tervezés.
  7. Jackson System Development (JSD). Specifikációs eszközök, az eljárás lépéseinek lényege.
  8. Az objektum orientált programtervezés alapfogalmai: objektum, üzenet, metódus, adatbeágyazás, polimorfizmus, dinamikus kötés, példány, osztály, prototipus, tipus, öröklés. A Unified Modeling Language.
  9. Objektum orientált rendszerek UML modellezése.
  10. OO Unified Process. Tervezési feladat megoldása.
  11. Felhasználói felület tervezése. Metaforák, WIMP, direkt manipulációk. Parancsnyelvi interfész. Hibajelzések, help, hipermédia rendszerek. Implementálás, kódolás, programozási technikák. Hordozhatóság, újrahasznosithatóság.
  12. Integráció, verifikáció és validáció. Verifikációs módszerek. Tesztelés és debug technikák. A megbizhatóság alapfogalmai. Rendelkezésre állás.
  13. A szoftver management. A szoftver minősége, szabványok. A szoftver karbantartása. A karbantartási feladatok, és mellékhatások. Konfigurációs management.
9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

előadás

10. Követelmények
  1. A szorgalmi időszakban:

Nincs követelmény

b. A vizsgaidőszakban:

A vizsga írásbeli.

11. Pótlási lehetőségek

A vizsgák a TVSZ-nek megfelelően pótolhatók

12. Konzultációs lehetőségek

Tanulmányi időszakban az előadások után, vizsgaidőszakban nincs.

13. Jegyzet, tankönyv, felhasználható irodalom

Kondorosi, László, Szirmay-Kalos: Objektum orientált szoftver fejlesztés, ComputerBooks, Bp., 1997

A tárgy weboldaláról (http://kfarkas.iit.bme.hu/~ptuser/) letölthető kb. 600 darab előadás fólia (magyar és angol nyelven egyaránt), az ugyanonnan letölthető segédletek, kidolgozott mintafeladatok és vizsgasorok.

Sommerville, I. – Szoftver rendszerek fejlesztése (Software Engineering, 6th ed) Panem kiadó, Debrecen, 2002

Sommerville, I. - Software Engineering, 6th ed. Addison-Wesley PC. Reading Massachusettes, 2001.

Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modeling Language User Guide, Addison-Wesley, 1999.

Fairly, R.E. - Software Engineering Concepts, McGraw-Hill, New York, 1985.

14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka

:

Kontakt óra

56

Félévközi készülés órákra

44

Vizsgafelkészülés

50

Összesen

150

15. A tantárgy tematikáját kidolgozta

Név:

Beosztás:

Tanszék, Int.:

dr. László Zoltán

adjunktus

Irányítástechnika és Informatika