Escolta l'àudio del tema:
1. Sistemes d'Informació i Programari
Sistemes d'Informació (SI)
Conjunt de procediments (manuals o automatitzats) dirigits al tractament i manipulació de la informació.
Objectiu: Promoure el flux d'informació per generar valor i donar suport a la presa de decisions.
- Part Física: Maquinari (Hardware)
- Part Lògica: Programari (Software)
- Part Humana: Usuaris i procediments
El Programari
Conjunt d'instruccions que proporcionen el comportament esperat d'un sistema informàtic.
Components integrals:
- Instruccions (codi executable)
- Estructures de dades
- Documentació (descriu l'ús)
2. Evolució i Crisi del Programari
L'Evolució del Desenvolupament
Desenvolupament a mida per a grans corporacions.
Compra de paquets estàndard (COTS).
Composició i Arquitectures SOA.
Big Data i Intel·ligència Artificial.
La Crisi del Programari
Neix per una frustració constant on els sistemes lliurats:
- No compleixen les expectatives del client
- Presenten altes taxes d'error
- Superen els pressupostos fixats
- Incompleixen els terminis
El Con de la Incertesa
Demostra que a l'inici d'un projecte les estimacions de costos i temps tenen un marge d'error extremadament alt.
3. Enginyeria del Programari
Concepte encunyat al congrés de l'OTAN del 1968 a Garmisch. Aplicació de principis d'enginyeria per obtenir un programari fiable i eficient sobre màquines reals.
Els Tres Pilars
Mètodes
Com es construeix el programari i quines tècniques s'hi apliquen.
Eines
El suport automàtic o semi-automàtic als mètodes.
Procediments
Com s'organitzen les seqüències i el control de qualitat dins l'organització.
Principis Rectors a Retenir
- La qualitat ha de ser built-in — incorporada des del principi del projecte, no provada al final.
- Una bona gestió és molt més important que la pròpia tecnologia empleada.
- El temps i les persones no són intercanviables. Incorporar més personal a un projecte retardat pot reduir la productivitat global per la corba d'aprenentatge.
4. Tipus de Manteniment
Alta Probabilitat TestSegons les Lleis de Lehman, el manteniment és tractat com un desenvolupament evolutiu, sent la fase que acaba consumint més recursos al llarg de la vida útil del sistema.
| Tipus | Descripció Clau |
|---|---|
| Correctiu | Orientat a corregir errors o funcionalitats que operen de manera defectuosa. |
| Evolutiu / Augmentatiu | Incorporació de noves funcionalitats al sistema o modificació directa sobre les ja existents. |
| Adaptatiu | Adaptar el programari a canvis en el seu entorn operatiu (ex: canvis de S.O., versions de BBDD, obsolescència de la JVM). |
| Perfectiu | Millora de factors interns de qualitat (refactorització, simplificació del codi, millora d'indexacions) sense alterar la funcionalitat visible per l'usuari. |
| Preventiu | Accions per augmentar la capacitat de manteniment futur i la fiabilitat, evitant problemes abans que esdevinguin crítics. |
5. Models de Cicle de Vida
Conjunt d'etapes des de la concepció fins al retir del programari. No hi ha un model únic perfecte; s'ha de seleccionar segons el context, l'equip i la certesa de requisits.
A. Models Clàssics i Variants
Model en Cascada
- Fases completament seqüencials (Anàlisi, Disseny, Codi, Proves)
- Requereix lliurables tancats per passar a la fase següent
⚠️ Inconvenients:
- Seqüencialitat massa estricta
- Assumeix requisits 100% coneguts
- Retarda el feedback del client
Model Sashimi
- Cascada amb encavalcament (solapament) entre fases
- Redueix l'impacte dels canvis de personal
- Fomenta un equip més estable i paral·lelitzat
Models en V i W
- Model V: Mapeja cada fase de disseny amb la seva corresponent fase de proves (unitàries, integració).
- Model W: Verificació i validació exhaustiva. Ideal per sistemes crítics.
B. Models Basats en Prototips
Prototipat Clàssic (D'un sol ús)
Tècnica de descobriment: Usat quan el client no té clars els requisits. La variable clau és el temps (s'ignora la qualitat del codi). Un cop validat, el prototip es llença.
Prototipat Evolutiu
S'aplica quan es té ~90% de certesa dels requisits. Es construeix el producte real (codi net i mantenible), el qual s'anirà adaptant iterativament.
Prototipat Incremental
Requisits completament coneguts. Es divideix el sistema per valor i es fan lliuraments planificats (releases), on cada increment aporta una funcionalitat acabada.