Enginyeria en Informàtica (3371)
Enginyeria del Software I (12460)
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
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.