MLR5011 | Ingineria sistemelor soft |
Titularii de disciplina |
Prof. Dr. PÂRV Bazil, bparv![]() Lect. Dr. LAZAR Ioan, ilazar ![]() Lect. BARABAS Laszlo, lbarabas ![]() Lect. Dr. EGRI Edith, egriedit ![]() |
Obiective |
La terminarea cursului, studentii trebuie sa posede: a) cunostinte sistematice despre metodologiile de realizare a produselor soft b) familiarizarea cu conceptele si preocuparile moderne în scrierea softului de aplicatie c) cunostinte despre tipurile de modele si instrumentele de modelare folosite în dezvoltarea aplicatiilor soft d) motivatia necesara privind importanta documentarii produselor soft, în toate fazele ciclului de viata |
Célkitűzések |
Az eloadássorozat befejezése után a diákok: gyakorlati és rendszeres ismeretekkel kell, hogy rendelkezzenek a software-fejlesztésben gyakorlatiasan kell tudniuk alkalmazni a software-fejlesztésben eloforduló fo és támogató folyamatokat ismerniük kell a software-fejlesztésben használt eszközöket és képesek kell legyenek használni oket |
Aims |
At the completion of this course, the students will/should: a) have a systematic knowledge concerning application development methodologies b) be familiar with the modern concepts and techniques in the field of software development c) know the models developed and modeling tools used in the software development process d) understand the importance of documentation during the whole software development process. |
Continutul |
Activitati de curs: 2 ore saptamânal Sapt. 1. Probleme organizatorice. Cap. 1. Ciclul de viata al unui program. Ingineria programarii: evolutie, definitii. Ciclul de viata clasic (modelul cascada). Prototipizarea. Modelul spirala, Boehm. Modelul etapizat (staged). Modelul incremental. Programarea extrema (Extreme Programming, XP) Sapt. 2. Cap. 2. Problem solving si dezvoltarea de soft: asemanari si deosebiri. Comunicarea: principii si sarcini generice. Principii si sarcini generice pentru planificare, modelarea în analiza, modelarea în proiectare, constructia si exploatarea. Sapt. 3. Cap. 3. Modelarea sistemelor. Domeniul aplicatiei: procese si produse. Instrumente folosite în modelarea sistemelor soft. Sapt. 4. Cap. 4 UML. Prezentare generala. Modelarea cerintelor. Modelarea claselor. Sapt. 5. Lucrarea de control 1. Cap. 4. UML. Modelarea dinamica. Modelarea arhitecturii Sapt. 6. Cap. 5. Procesul de analiza a cerintelor. Initierea analizei cerintelor. Tehnici de comunicare si de stabilire a cerintelor. Structurarea, specificarea ?i validarea cerintelor. Cap. 6. Definitii, metode, elemente, etape. Modelarea cazurilor de utilizare Sapt. 7. Cap. 6. Modelarea statica. Modelarea dinamica. Modelarea fluxurilor. Cap. 7. Fundamentele proiectarii. Pasii proiectarii Sapt. 8. Cap. 7. Concepte de proiectare. Modele de proiectare. Cap. 8. Arhitectura si dependente. Principii de proiectare a claselor. Principii de proiectare a arhitecturii (reutilizarea modulelor, cuplarea modulelor). Sabloane de proiectare arhitecturale sumar (lectura acasa). Sapt. 9. Cap. 9. Proiectarea arhitecturii. Proiectarea datelor. Proiectarea prelucrarilor Sapt. 10. Cap. 10. Arhitectura logica a sistemului. Proiectarea dirijata de responsabilitati. Pasii proiectarii OO Sapt. 11. Lucrarea de control 2. Cap. 11. Sarcinile proiectarii interfetei cu utilizatorul. Prelucrare manuala, batch si on-line. Proiectarea documentelor de intrare si a rapoartelor. Sapt. 12. Cap. 11. Interactiunea om-calculator Cap. 12. Verificarea si validarea. Testarea softului: etape Sapt. 13. Cap. 12. Metode de testare. Cap. 13. Impachetarea si instalarea. Punerea în exploatare si întretinerea Sapt. 14. Cap. 14. Factorii umani implicati în dezvoltarea aplicatiilor soft. Organizarea procesului de realizare a aplicatiei soft. Alte activitati de planificare. Planul proiectului soft Activitati de seminar: 2 ore în doua saptamâni – 7 seminarii S1. Studiu de caz: analiza cerintelor (1) - cerinte generale tehnici de comunicare: tehnici de comunicare.doc documentul de specificare a cerintelor: speccerinte.doc S2. Studiu de caz: analiza cerintelor (2) - modelarea conceptuala a datelor S3. Studiu de caz: analiza cerintelor (3) - modelarea prelucrarilor S4. Midterm exam. Studiu de caz: analiza cerintelor (4) - modelarea OO S5. Studiu de caz: proiectare (1)- modelarea logica a datelor si prelucrarilor S6. Studiu de caz: proiectare (2) - modelarea OO S7. Studii de caz complete Activitati de laborator: 2 ore în doua saptamâni – 7 laboratoare L1. Probleme organizatorice L2. Lansare miniproiect faza 1 L3. Pregatire miniproiect faza 1 L4. Predare miniproiect faza 1. Lansare miniproiect faza 2. L5. Pregatire miniproiect faza 2 L6. Predare miniproiect faza 2. Lansare miniproiect faza 3. L7. Predare miniproiect faza 3. Cursurile se desfasoara sub forma unor prezentari PowerPoint. Studentii sunt invitati sa citeasca în avans materialele de curs si de seminar. La activitatea de laborator studentii vor realiza trei mini-proiecte de analiza/proiectare/codificare. Materialele de curs si de seminar/laborator sunt disponibile pe serverul Win, în directorul \win\labor\Romana\an2\ISS |
Tartalom |
SOFTWARE TECHNOLÓGIA BEVEZETÉS Software technológia történeti háttere Software technológia kihívásai Software technológia, mint tudomány Software fejlesztés életciklusa SOFTWARE KÖVETELMÉNYEK Software követelmények definíciója Software követelmények osztályozása Software követelmény folyamatok Software követelmény meghatározási technikák Software követelmény validálás SOFTWARE ARCHITEKTÚRA Software architektúra meghatározása Software architektúrát alkotó elemek meghatározása Software architektúra folyamatok Software architektúra ismertebb típusainak és mintáinak ismertetése Software architektúra nem azonos a software design-al (tervezéssel) SOFTWARE MODELLEZÉS Modellezés fogalma Modellezés UML nyelvezet segítségével UML ismertetése Software tervezés statikus elemei Objektum orientált tervezés SOFTWARE TERVEZÉS Objektum orientált analízis Software tervezési modell dinamikus elemei SOFTWARE TERVEZÉS ÉS ADATMODELLJEI Software tervezési modell komponens elemei Software tervezési modell telepítés elemei Adatmodellezés SOFTWARE IMPLEMENTÁLÁS Implementálás eloírásai Formai követelmények Fejlesztési prioritások Review Statikus és dinamikus ellenorzés Unit ellenorzés SOFTWARE TESZTELÉS Software tesztelés meghatározása Software tesztelési módszerek Tesztspecifikáció és teszteredmény Hiba és változás követo rendszerek Verifikáció nem azonos a validácóval SOFTWARE FOLYAMAT Tevékenység és folyamat fogalmak meghatározása Ismertebb folyamatok ismertetése ismertetése Vízesés és társai folyamatok ismertetése Inkrementáló folyamatok ismertetése Iteratív folyamatok ismertetése Inkrementáló és iteratív folyamatok ismertetése AGILIS SOFTWARE FOLYAMATOK Agilis software folyamat meghatározása Folyamat orientált versus Változás és ember centrikus folyamat Inkrementáló és iteratív folyamat SCRUM ismertetése XP ismertetése Tervezés és Agilis folyamat kapcsolata PROJEKT FOGALMA Projekt fogalmának a meghatározása Projekt jellemzoi Projekt típusok Projekt életciklusai Projekt folyamatcsoportok Projekt tervezés és ütemezés KONFIGURÁCIÓ MANAGEMENT Konfiguráció management meghatározása Verziókövetés fogalma Subvesion és ClearCase ismertetése MINOSÉG BIZTOSÍTÁS Minoség biztosítási rendszer meghatározása ISO 9001 rendszer ismertetése Fo és támogató folyamatok CMMI ismertetése PROJEKT MANAGEMENT Projekt management meghatározása Szervezetek és tervezésük Embertípusok és csapatépítés Motivációs elméletek Rizikó management Konfliktuskezelés Vezetési stílusok Szemináriumi tevékenységek: Esettanulmány: követelmények meghatározása Esettanulmány: architektúra meghatározása UML nyelvezet, UML modellezés Esettanulmány: Software tervezés UML segítségével Projekttervezés, ütemezés Esettanulmány: Tesztelés megtervezése Esettanulmány: Kiértékelés Laborgyakorlatok: Dokumentumkezelés Verzióköveto eszköz használata Modellezo eszköz használata UML modell megalkotása, statikus elemek UML modell megalkotása, dinamikus elemek Hiba és változás kezelo rendszer használata Projekttervezo eszköz használata Az eloadásokat PowerPoint típusú prezentációk kísérik. A prezentációk és az eloadásokat kíséro dokumentumok a diákok rendelkezésére állnak. |
Content |
1. SOFTWARE PROCESS The life-cycle of a computer program Software engineering: history, definitions Waterfall life cycle Prototyping The spiral model, Boehm The staged model Incremental change Extreme Programming, XP 2. SOFTWARE DEVELOPMENT: PRINCIPLES AND ACTIVITIES Problem solving and software development Communication: principles and tasks Planning: principles and tasks Analysis modeling: principles and tasks Design modeling: principles and tasks Construction: principles and tasks Deployment and operation: principles and tasks 3. MODELING SOFTWARE PROCESSES AND SYSTEMS System modeling Business process modeling Tools for software modeling 4. UNIFIED MODELING LANGUAGE UML. General issues Modeling requirements Modeling classes Modeling behavior Modeling architecture 5. REQUIREMENTS GATHERING, ENGINEERING, AND SPECIFICATION Requirements analysis process Starting requirements analysis Communication techniques Requirements synthesis Requirements specification Requirements validation 6. ANALYSIS MODELING Definitions, steps, elements, methods Use case modeling Static modeling Dynamic modeling Data flow modeling 7. SOFTWARE DESIGN: CONCEPTS AND MODELS Fundamentals of software design Design steps Design concepts Design models 8. PRINCIPLES OF O-O DESIGN Architecture and dependencies Class design: principles Architectural design: principles (module reuse, module coupling) Arhchitectural patterns 9. DESIGNING ARCHITECTURE, DATA, AND PROCESSES Architecture design. Software components Data design Process design 10. COMPONENT DESIGN Logical architecture of the software system Responsibility-driven design OO design: steps 11. USER INTERFACE DESIGN Human-computer interaction Interface design rules User interface models User interface construction 12. SOFTWARE TESTING: TECHNIQUES AND METHODS Verification and validation Software testing: steps and techniques Testing methods 13. DEPLOYMENT Packing and installing Software maintenance 14. SOFTWARE PROJECT PLANNING Human factors involved in the software development process The organization of the software development process Other planning activities The software project plan |
Bibliografie |
1. FLAATEN, P.O., MCCUBBREY, D.J., O'RIORDAN, P.D., BURGESS, K.: Foundations of Business Systems, Dryden Press, 1st ed. 1989, 2nd ed. 1997. 2. FOWLER, M., SCOTT, K.: UML Distilled: A Brief Guide to the Standard Object Modeling Language, Addison-Wesley, 2nd ed., 1999. 3. IACOBSON, I., BOOCH, G., RUMBAUGH, J.: The Unified Software Development Process, Addison-Wesley, 1999. 4. MARTIN, R.C.: Agile Software Development: Principles, Patterns, and Practices, Prentice Hall, 2002. 5. PÂRV, B.: Analiza si proiectarea sistemelor, Univ. Babes-Bolyai, CFCID, Facultatea de Matematica si Informatica, Cluj-Napoca, 2002, 2003, 2004. 6. PRESSMAN, R.S.: Software Engineering - A Practitioners Approach, McGraw-Hill, 3rd ed. 1992; 4th ed. 1996, 5th ed. 2001, 6th ed. 2005. 7. SCHACH, S.R.: Object-Oriented and Classical Software Engineering, McGraw-Hill, 5th ed., 2002, 6th ed. 2005. 8. SOMMERVILLE, I.: Software Engineering, Addison-Wesley, 5th ed. 1996, 6th ed. 2000, 7th ed. 2004. |
Evaluare |
Activitatile de evaluare sunt urmatoarele 2 lucrari de control periodice, la curs (10%) 3 mini-proiecte de modelare/programare (45%) examen partial, scris (20%) examen final, scris (25%) Nota finala se calculeaza ca medie ponderata a notelor obtinute la activitatile de mai sus (ponderile sunt trecute în paranteze). Tematica examenelor si a lucrarilor de control include materialul predat la curs si bibliografia obligatorie. Proiectele de modelare/programare includ modele UML de analiza ?i proiectare folosind instrumente CASE. |
Felmérés |
A hallgatók a félév során csoportokba szervezodve egy konkrét software projektet valósítanak meg. A projekt életciklusa során dokumentálják a projekt: Projekttervét Software követelményeit Software architektúráját Software design-át Tesztspecifikációját Teszteredményét A hallgatók a szesszióban írásbeli vizsgán vesznek részt. A végso jegy kiszámítása a félév során teljesített projekttevékenység és dokumentációi (70 %) és az írásbeli vizsgán (30 %) során elért eredmény összege. |
Assessment |
The grading activities are: 2 quizzes during lectures (10%) 3 programming projects (45%) written midterm exam (20%) written final exam (25%) The final mark is computed as weighted average of the individual marks obtained. (the weights are given in brackets). Exam and quiz questions refer to the teaching material and mandatory readings. Programming projects involve small incremental changes to an existing open source project. |