Descripció
L'assignatura dona una visió general sobre les diferents teories
i pràctiques que conformen la disciplina de l'Enginyeria de Software.
Per això, partint del paradigma orientat a objectes com a nexe d'unió,
s'estudia el concepte de cicle de vida i les seves parts i models,
amb un énfasi especial en la fase de recollida de requeriments i
la utilització de UML i de patrons software.
Objectius
L'alumne ha de:
- Entendre el significat i la utilitat de l’Enginyeria de Software
com a disciplina a mig camí entre la Informàtica i l'Enginyeria
tradicional.
- Entendre el concepte de Cicle de Vida, conèixer els models més
habituals i els processos involucrats.
- Aprendre a realitzar una recollida de requeriments i elaborar
un document de requeriments complert i estructurat.
- Entendre la aplicabilitat dels models incrementals i el eXtreme
Programming.
- Entendre la utilitat del modelatge visual i assolir un coneixement
complert d’UML com a exemple paradigmàtic del modelatge visual
- Aprofundir els seus coneixements en els conceptes de la programació
Orientada a Objectes.
- Utilitzar els coneixements teòrics d'analisi i disseny per a resoldre
casos pràctics.
- Entendre la utilitat dels patrons de software.
- Conèixer algun dels principals catàlegs de patrons i poder-los
aplicar en situacions pràctiques.
Temari
Part A. Teoria de l'Enginyeria del Software
A.1. Introducció
A.1.1. Què és l'enginyeria de software?
A.2. Enginyeria de Software
A.2.1. Models de cicle de vida
A.2.2. Iteració de procesos
A.2.3. Especificacions de software
A.2.4. Disseny i implementació
A.2.5. Validació
A.2.6. Evolució
A.2.7. Suport automàtic per l'ES
A.3. Especificació de requeriments
Part B. Anàlisi i Disseny OO
B.1. Modelatge Visual i UML
B.1.1. Modelatge Visual
B.1.2. Historia breu d'UML
B.1.3. Què és i qué no és l'UML
B.1.4. Vistes i diagrames UML
B.1.4.1. Diagrama de Casos d'Us
B.1.4.2. Diagrama de Classes
B.1.4.3. Diagrama d'Objectes
B.1.4.4. Diagrama de Seqüència
B.1.4.5. Diagrama de Col·laboració
B.1.4.6. Diagrama d'Estats
B.1.4.7. Diagrama d'Activitat
B.1.4.8. Diagrama de Paquets
B.1.4.9. Diagrama de Components
B.1.4.10. Diagrama de Distribució
B.2. Anàlisi i Disseny Orientat a Objectes
B.2.1. Concepte d'Objecte i Classe
B.2.2. Encapsulament
B.2.3. Relacions: associació, agregació, composició…
B.2.4. Jerarquies de Generalització/Especialització
B.2.5. Altres conceptes importants de les relacions d'herència:
Herència múltiple, delegació, polimorfisme…
B.2.6. Classes paramètriques
B.3. Els patrons software
B.3.1. El concepte de patró
B.3.2. Classificacions i documentació de patrons
B.3.3. Selecció i utilització de patrons
B.3.4. Catàleg de patrons GRASP
B.3.5. Catàleg de patrons GOF
Organització
Es tracta d'una assignatura de forta càrrega (9 crèdits). S'organitza
segons el pla establert de 5 hores de teoria i 4 de pràctiques a
la setmana. A la part de teoria es veuen en paral·lel ja des del
primer dia dues parts. Una més teòrica i conceptual (la A) i una
altra més pràctica (la B). D'aquesta manera es pretén que l'alumne
pugui anar assolint els coneixements que també aplicarà a la part
pràctica i a més que prengui la consideració de que aquesta assignatura,
degut al seu volum, és en realitat equivalent a dues assignatures
habituals. A la part de pràctiques es formen grups de 2-3 persones
que treballen sobre un projecte d'anàlisi i disseny realista, començant
per l'anàlisi de requeriments i acabant amb la implementació i la
aplicació de patrons de disseny adients.
Pràctiques
1. Utilització d'eines CASE bàsiques.
2. De l'especificació de requeriments a la implementació
Mètode d'avaluació
La part de teoria equival a un 65% del total i les pràctiques a
un 35%. Dins de la teoria, hi ha tres parts diferenciades. A l'examen
hi ha un test que conta un 35% i un problema que conta un 65%. Qualsevol
de les dues parts ha de ser superior a 4 perque es pugui fer mitja
tot i que es guarden les parts aprovades per a la convocatòria de
setembre. A més es dona la possibilitat opcional d'escriure un article
sobre un dels temes de l'assignatura. Aquest article pot arribar
a pujar 1,5 punts la nota de la teòrica. A la pràctica, l'avaluació
es fa a partir d'un seguiment continu i un procés d'entregues al
llarg de tot el trimestre.
Bibliografia bàsica
SOMMERVILLE, IAN: Software engineering; 6th ed.; Harlow Addison-Wesley
2000
MEYER, BERTRAND: Construcción de software orientado a objetos. Traducción:
Miguel Katrib Mora, Rafael García Bermejo, Salvador Sánchez revisión
técnica: Jesús García Molina 2ª ed.Madrid [etc.] Prentice Hall 1998
FOWLER, MARTIN: UML distilled a brief guide to the standard object
modeling language 2nd ed. Reading (Mass.) Addison-Wesley cop. 2000
Bibliografia complementària
PRESSMAN, ROGER S.: Ingeniería de Software, Un enfoque práctico.
5ª edición. Mc.Graw Hill. 2001
COSTAL, DOLORS: Enginyeria del software especificació especificació
de sitemes orientats a objectes amb la notació UML ; EDICIÓ 1a ed.
Barcelona Edicions UPC 2000
PERALTA GIMÉNEZ, ALLEN J.: Enginyeria del software programació orientada
a objectes Allen Barcelona Edicions UPC 1994
SCHACH, STEPHEN R.: Software engineering; 2nd ed. Boston Irwin cop.
1993
JOYANES AGUILAR, LUIS: Programación orientada a objetos; 2ª ed.
Madrid Osborne/McGraw-Hill cop. 1998
LIËNS, ANTON: Principles of object-oriented software development;
Workingham Addison-Wesley 1995
LARMAN, CRAIG: Applying UML and patterns an introduction to object-oriented
analysis and design; Upper Saddle River, N.J. Prentice Hall PTR
cop. 1998 Design patterns elements of reusable object-oriented software
Erich Gamma ... [et al.] ;Reading, MA [etc.] Addison-Wesley cop.
1995 STROUSTRUP, BJARNE: The C++ programming language; 3rd ed. Reading
(Mass.) Addison-Wesley cop. 1997
SHTERN, VICTOR: Core C++ a software engineering approach Victor
Shtern; Upper Saddle River Prentice Hall PTR cop. 2000
Observacions
L'assignatura està recomanada també per a alumnes de la carrera
tècnica que hagin de realitzar el seu projecte final de carrera.