Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă

FISA DISCIPLINEI

Codul
Denumirea disciplinei
MLR5011 Ingineria sistemelor soft
Specializarea
Semestrul
Ore: C+S+L+P
Statutul
Informatică
4
2+1+1+0
obligatorie
Matematică informatică
6
2+1+1+0
obligatorie
Titularii de disciplina
Prof. Dr. PÂRV Bazil,  bparvcs.ubbcluj.ro
Lect. Dr. LAZAR Ioan,  ilazarcs.ubbcluj.ro
Lect. BARABAS Laszlo,  lbarabascs.ubbcluj.ro
Lect. Dr. EGRI Edith,  egrieditcs.ubbcluj.ro
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.
Syllabus-urile tuturor disciplinelor