Sistemas Abiertos Annex. Disseny i Enginyeria del Software Pedro García López pgarcia@etse.urv.es
Copyright © University Rovira i Virgili Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; A copy of the license is available at: http://www.fsf.org/licenses/fdl.html
1. Index Enginyeria del Software UML (Unified Modelling Language) Conclusions
2.1 Engineria del software Objectius: Construir programari més robust I fiable Reduir el temps de desenvolupament I augmentar la productivitat Desenvolupament de programari a partir de mòduls ja elaborats Reutilització d’aquests mòduls en altres aplicacions Facilitat de mantenir i adaptar aquests mòduls per produir noves funcionalitats
Components a tot arreu Els objectius són similars en altres enginyeries: Construcció acurada de mòduls robustos, fiables, bé documentats I reutilitzables En aquestes enginyeries els components s'utilitzen des de fa temps Enginyeria electrònica : circuits Enginyeria Industrial: cotxes Enginyeria aeronàutica: avions …
Exemple: la indústria de l’automòbil La construcció de cotxes era una tasca molt costosa, avorrida I lenta Henry Ford proposa una nova idea: Produir cotxes per a tothom mitjançant un model de construcció ràpid El mètode La línia d’acoblament de components(1914)
Per què no aplicar els components al programari ? Els objectius de l’Enginyeria del Software són similars a altres enginyeries Les Enginyeries Industrial o Electrònica desenvolupen productes acabats El programari és un meta-producte que permet crear diferents parametritzacions i instàncies
Estàndards Les enginyeries industrial o electrònica usen components perquè existeixen estàndards i regulacions Abans de la “crisi del programari” (1968) no hi havia estàndards
El programari … Fet a mida Programari estàndard Flexible, competitiu, si funciona Manteniment e interoperabilitat són problemes greus Triga molt a arribar al mercat Programari estàndard Ràpid d’arribar al mercat Manteniment, interoperabilitat i evolució són el negoci del fabricant Difícil ser competitiu
Dues opcions de disseny Dissenyar un sistema de forma monolítica I després definir els submòduls Els mòduls no seran reutilitzables Dissenyar els mòduls i composar-los en un sistema (bottom-up) Mòduls han de ser generals (per a aconseguir la reutilització) Però no massa generals (o no seran pràctics)
Components Mòduls independents desenvolupats per terceres parts que segueixen estàndards d’interacció i composició Mercat del programari i de components Programació orientada a l’acoblament Component A B c
Cicles de desenvolupament Anàlisi de Requeriments Disseny del programari Implementació a partir del disseny Proves de robustesa del programari Tendència: programació orientada a components, reutilització Rols: creador de components, ensamblador de components, venedor de components, consultor, ...
Cicles de desenvolupament Especificació Desenvolupament Validació Evolució
Models Model de cascada Desenvolupament per evolució En cascada i iteratiu Sistemes assemblats amb components reusables ...
Atributs del programari Manteniment: el programari ha de ser desenvolupat per a suportar futurs canvis o extensions que el client necessiti Confiabilitat: integritat, robustesa i seguretat. Eficiència: el programari no ha de fer mal ús dels recursos del sistema.( Memòria i processador). Usabilitat: és la propietat que té el programari de ser utilitzat sense massa esforç per qualsevol usuari
2.2 UML UML és el Llenguatge Unificat de Modelatge- Proporciona una notació gràfica que permet: especificar, construir. Visualitzar i documentar els objectes d’un sistema software. El UML modela un sistema mitjançant l’ús d’objectes que formen part d’ell i les relacions estàtiques o dinàmiques que existeixen entre ells.
Diagrames Diagrama de Casos d’Us Diagrama de Classes Diagrama d’Activitats Diagrama de Seqüència Diagrama de Col·laboració Diagrama d’Estats Diagrama d’Implementació
Diagrama de casos d’ús
Casos d’ús
Diagrama de classes
Diagrama d’estats
Diagrama de col·laboració
Diagrama de seqüència
Diagrames d’implementació
Conclusions El Diseny es important !!! UML es un estàndar en Enginyeria del Software UML no depend del proveïdor: Microsoft Visual Studio + Visio UML Eclipse + Omondo UML Borland + Rational Rose