El procés de desenvolupament

Slides:



Advertisements
Presentaciones similares
TFG – Àrea Enginyeria del programari
Advertisements

1  Introducción a Rational Unified Process (RUP) Profesor Abraham Oliver Jara Miranda – JornSoft S.A.
Proceso Unificado de Desarrollo de Software
Sistema de gestió APPCC
Mètodes d’entrenament de la força
L’ERA DEL MAQUINISME Àlex Mogena.
Treball Fi de Carrera – J2EE
Què és la tecnologia?.
UNA TARDA QUALSEVOL D’UN DIA QUALSEVOL
TFC Intranet Escolar Desenvolupament d’una aplicació Java2 EE
MÚLTIPLES I DIVISORS.
Disseny de la interfície d’un smartwatch i l’aplicació mòbil
Sistemas Abiertos Annex. Disseny i Enginyeria del Software
Tema 2. DIVISIBILITAT.
AVALUAR-QUALIFICAR PER COMPETÈNCIES
Anàlisi econòmica i financera
uoc-domo CONTROL DOMÒTIC AMB ARDUINO UOC-DOMO
TAP PC(g) - TARDOR Construir sobre el construït Assignatures: Composició i Projectes Professors: Enric Granell, Xavier Perxas   OBJECTIUS.
PETITS REPORTERS Títol.
GRUP DE MEDI AMBIENT IES Guillem Sagrera 1997/2008.
TREBALLEM EL SISTEMA SOLAR
GESTIÓ PER PROCESSOS.
Disseny i implementació d’una base de dades relacional
Funcionament See Thecnical.
SISTEMA GESTOR D’EMPRESA D’EXCAVACIONS
ES:E - Objectius Donar una visió inicial de l’Enginyeria del Software
Josep Blat Barcelona, Octubre 2001
COMENTARI DE GRÀFICS.
Desenvolupament d’aplicacions mòbils (HTML5 o Windows Phone)
Avaluació de preparació Agile <nom de la solució>
PLA DE FORMACIÓ DEL CENTRE
IES CAN JOFRESA Terrassa PROCÉS D’ELABORACIÓ D’UN
Víctor Ruiz Marquès Enginyeria en Informàtica   Juan Martínez Bolaños
Eines d’internet per al professorat d’EOI.
La gestió per processos
3. TOTS SOM DIFERENTS..
NUTRICIÓ I PREVENCIÓ DEL CÀNCER DE MAMA
WEBQUEST WEB...QUÈ ? Alumnes de l’Escola ESTEL VALLSECA.
Projecte eTaller Disseny i implementació d’una aplicació de gestió web JEE per a petits tallers de reparació d’automòbils © Jaume López Diaz – Treball.
DISSENY GRÀFIC D’UN PORTAL DE TRANSPARÈNCIA PER AJUNTAMENTS
Enginyeria del software II
Grups interactius a L’Esquitx
Problema 1: Trobar la recta que passa pel punts A(2, -3) i B(-1, 3)
El màrqueting i els seus elements
Framework MVC en PHP Autor: Josep Humet Alsius
Tema 5: Nombres naturals i enters
Projecte final de carrera Què és?
LES XARXES LOCALS i els seus components.
Projecte Gestió de precintes de vehicles
Quan penses que tot està inventat ….
Llorenç Seguí capllonch 11 de juny de 2018
Les taules de multiplicar
La imatge corporativa Una eina fonamental en l’actualitat
Accessibilitat web per a discapacitats visuals
INFORMÀTICA BÀSICA 1r ESO curs
L’organització del temps
Projecte Fi de Carrera - J2EE Alumne: Daniel Clemente Marcè
La literatura i les matemàtiques van de la mà.
Estudiant: Eva Muñoz Altimis
Sistema de descàrrega d’aplicacions per a mòbils intel·ligents
MESURA DEL RADI DE LA TERRA (seguint Eratóstenes)
El Treball de Recerca.
APRENDRE A NEDAR . Les activitats aquàtiques estan classificades per plantejaments de tipus: -UTILITARI: s’obté un aprenentatge útil -HIGIÈNIC: millora.
Promoció de la salut i programació sanitària
Projecte: Videojocs.cat
Màster d’Aplicacions Multimèdia
LES MÀQUINES.
Estils i Plantilles Ms Word.
Elaboració del Pla de formació ajuntament de viladecans
AIGUAMOLLS DE L’ALT EMPORDÀ CdA Empúries.
Transcripción de la presentación:

El procés de desenvolupament Toni Navarrete Enginyeria del Software II – UPF 2002

El procés de desenvolupament de software Comença amb un problema o necessitats (sovint difusos) Acaba amb un codi (provat) ? Problema Codi Procés de desenvolupament de software

El procés de desenvolupament de software “Un procés de desenvolupament de software descriu una aproximació a construir, desplegar i posiblement mantenir software” [1] És “un conjunt d’activitats estructurat per desenvolupar un sistema software” [2] [1] Craig Larman: Applying UML and patterns, 2nd edition. Prentice-Hall [2] Xavier Amatriain: Apunts d’Enginyeria del Software I

Tècniques, mètodes i eines Una tècnica és la manera pre-establerta en què es duu a terme un pas en l’elaboració d’un producte Un mètode (també se’n diu metodologia) és una manera determinada d’aplicar diverses tècniques successivament “Inclouen models de sistema, notacions, regles, recomacions de diseny i guia de processos” [1] Una eina és un instrument de qualsevol tipus que es fa servir en l’aplicació d’una tècnica [1] Xavier Amatriain: Apunts d’Enginyeria del Software I. UPF

Models de procés o cicle de vida Aquest procés de desenvolupament genèricament s’ajusta a un model de procés (també anomenat model de cicle de vida) En cascada Iteratiu Basat en prototipus (i evolutiu) Incremental En espiral Altres Especificacions formals (molt difícil d’aplicar, rarament s’utilitzen) Desenvolupament basat en components Components COTS, Commercial Off-The-Shelf (en castellà es tradueix com a CYD, Comerciales Ya Desarrollados)

El cicle de vida en cascada (també dit tradicional, lineal o seqüencial)

El cicle de vida en cascada: Inconvenients Difícil fer (predir) una “imatge” perfecta de l’aplicació sense fer cap prova abans Ajorna el risc i això fa que els projectes s’acabin allargant Difícil adaptar-se a canvis en els requeriments

Diferents aproximacions: Cicle de vida iteratiu El model iteratiu permet, en base a repetir les etapes d’anàlisi de requeriments, disseny, implementació i proves, adaptar-se millor als canvis en els requeriments Diferents aproximacions: Basat en prototipus (i evolutiu) Iteratiu i incremental En espiral

El cicle de vida basat en prototipus El desenvolupador i el client es troben i defineixen els objectius globals i n’identifiquen els requeriments Es fa un disseny ràpid i es desenvolupa una maqueta El client l’avalua El cicle es repeteix fins a aconseguir el detall dessitjat Escoltar el client Construir/revisar el prototipus El client prova el prototipus

El cicle de vida basat en prototipus: Problemes i aplicacions El client pot no entendre perquè s’ha de tornar a construir una altra versió Sovint es vol reutilitzar més del compte entre una versió i la següent i els sistemes acaben essent poc estructurats Habitualment cal aprendre eines (com llenguatges de programació) específiques per a prototipatge ràpid Quan s’aplica? L’ideal és aplicar-lo només com a una eina per identificar els requeriments. Després el més probable és que es llenci En cas contrari, parlem de desenvolupament evolutiu o exploratori. Això s’utilitza en alguns casos: Per a sistemes interactius de mida petita-mitjana Per a parts de grans sistemes, com la interfície d’usuari Per sistemes de vida molt curta

El cicle de vida iteratiu i incremental El sistema no es fa tot de cop sinó que es divideix en parts, basant-se en la funcionalitat A cada iteració es fa tot el procés per desenvolupar una part concreta i es lliura el software corresponent Es comença per les que tenen un major risc i a les quals el client dóna més importància Així, es redueix el risc global i les funcionalitats més importants estan més provades En principi, un cop acabada un lliurament, ja no es tornen a analitzar els requeriments d’aquesta part És, probablement, el model més utilitzat avui en dia

El cicle de vida iteratiu i incremental Lliurament 1 Requerimets Anàlisi Disseny Implementació Proves Lliur. 2 Requerimets Anàlisi Disseny Implementació Proves ...

El cicle de vida en espiral Una aproximació molt semblant és combinar això amb el desenvolupament basat en prototipus: model espiral El software en desenvolupa en una sèrie de versions incrementals Durant les primeres versions, s’obté un model en paper o un prototipus Durant les darreres iteracions, es produeixen versions cada vegada més completes del sistema

El cicle de vida en espiral

Exemples de mètodes de procés (o metodologies) UP: Unified Process (o RUP, Rational Unified Process) ICONIX Mètodes àgils Crystal XP: eXtreme Programming Un exemple en UP i ICONIX MOLT IMPORTANT: Cap metodologia “estàndard” s’ajusta a les necessitats d’una organització concreta

Unified Process És un mètode iteratiu i incremental Utilitza UML Creat pels creadors d’UML: Booch, Jacobson i Rumbaugh (“the 3 amigos”) Utilitzat per Rational per als seus productes

Unified Process Permet definir un procés en termes de: Qui: treballadors (workers) Exemples: system analyst, designer, test designer Com: activitats (activities) Exemples: plan an iteration, find use cases and actors, review the design, execute a performance test Què: artefactes (artifacts) Exemples: use case model, software architecture development, a sequence diagram Quan: fluxos (workflows) Un flux descriu una seqüència d’activitats que produeix un resultat observable i que mostren interaccions entre treballadors Exemples: business modelling, requirements, analysis and design,...

Unified Process: fases i fluxos Basat en quatre fases: Inici (Inception) Elaboració (Elaboration) Construcció (Construction) Transició (Transition) Cada fase acaba amb una fita (milestone) ben definit on s’han de prendre certes decisions Cada fase es pot dividir en diverses iteracions internes, que normalment duren entre dues setmanes i dos mesos A cada iteració es donen diferents fluxos, depenent del moment en què estigui el procés

Unified Process: fases i fluxos Inici Elaboració Construcció Transició Iteració Iteració . . . d’Elaboració 1 d’Elaboració 2 Model de negoci Anàlisi i Disseny Requeriments Implementació Proves Desplegament Requeriments Normalement de dues setmanes a dos mesos

Unified Process: fases i fluxos Organització al llarg del temps “Fluxos d’Enginyeria” Organització al llarg del contingut “Fluxos de suport”

Unified Process: les quatre fases Inici: Es mesura l’oportunitat i “alcance” del projecte S’identifiquen entitats externes (actors) i la interacció a alt nivell (casos d’ús). D’aquests casos d’ús alguns es desenvolupen Elaboració S’analitza el domini del problema, s’estableix una arquitectura, es desenvolupa un pla de projecte i s’analitzen els elements de major risc És l’etapa més crítica ja que aquí es defineixen els requeriments i plans de desenvolupament

Unified Process: les quatre fases Construcció: Totes les components restants es desenvolupen i integren al producte Tot és provat en profunditat Transició: Es dóna el software desenvolupat a la comunitat d’usuaris

Unified Process: conclusions És molt complet És “configurable”. Exemples: Es podria fer un procés purament seqüencial Es pot definir perquè sigui molt “pesada” o perquè sigui molt “lleugera” En realitat s’usa, més que com una metodologia, com un framework per definir metodologies Després veurem definirem un subconjunt i farem un exemple

El mètode ICONIX “You can model 80% of most problems by using about 20% of UML” [1] Es “use-case driven” Es pot fer de forma iterativa i incremental Dos bons llibres [2] i [3] [1] “3 amigos”: The Unified Modelling User Guide. Addisson-Wesley [2] Dough Rosenberg: Use Case Driven Object Modelling With UML [3] Dough Rosenberg: Applying Use Case Driven Object Modelling With UML

El mètode ICONIX

El mètode ICONIX Els requeriments els expresem amb un model de casos d’ús. Això inclou: el diagrama de casos d’ús la descripció de cada un, en llenguatge natural, amb un paràgraf per a l’escenari principal i un altre per als alternatius

El mètode ICONIX. Exemple de descripció de cas d’ús

El mètode ICONIX Per altra banda, el resultat final del disseny (el model de disseny) inclou dues parts, l’estàtica i la dinàmica, que estan respecticvament representades per diagrames de classes i diagrames d’interacció (seqüència o col·laboració) ? ? ?

El mètode ICONIX Abans d’obtenir les classes del model de disseny, és necessari, en l’etapa de requeriments o inclús abans fer un model del domini per determinar amb quins objectes hem de treballar És un diagrama de classes sense entrar en detalls d’atributs, cardinalitats,... ? ?

El mètode ICONIX La part més complexa del procés és com obtenim un diagrama de seqüència a partir dels casos d’ús A ICONIX es fa introduïnt el que ells anomenen “robustness diagram”, també anomenats diagrames de col·laboració simplificats Veurem altra aproximació per passar del “què” al “com” utilitzant UP

El mètode ICONIX. Robustness diagrams

El mètode ICONIX. Exemplde de diagrama de seqüència

El mètode ICONIX Aquest Robustness diagram ens ajuda a determinar les classes del disseny i a trobar operacions i a realitzar els casos d’ús en diagrames de seqüència En concret ICONIX proposa que els requeriments es facin a partir d’un prototipus de la interfície d’usuari El procés sol ser incremental, decidint abans de cada increment quins casos d’ús es desenvoluparan

El mètode ICONIX: el “mapa” complet

Què són els mètodes àgils? L’objectiu és tenir metodologies efectives i utilitzables Metodologies molt pesades generen gran quantitat de documentació innecessària que retrasa el desenvolupament ICONIX és un exemple de mètode àgil Un procés àgil ha de ser a la vegada lleuger i suficient També ha de ser adaptable (cada organització, cada projecte són diferents) Un bon llibre al respecte: [1] [1] Alistari Cockburn: Agile Software Development

Crystal Com fer per a tenir una metodologia realment adaptable? Crystal recull una col·lecció d’exemples de metodologies àgiles usades amb èxit per la comunitat amb l’objectiu de què serveixin a les organitzacions com exemple per a crear la seva metodologia

Crystal: diferents colors En funció del tipus de projecte s’aplica una metodologia (identificada per un color) o una altra: Clear Yellow Orange Red Per exemple: per a projectes fins a un màxim de sis persones implicades i on hi ha un alt risc econòmic si el producte no surt s’utilitzaria Crystal Clear

Exemple Crystal Clear Rols necessaris: Política: Sponsor Dissenyador-programador senior Dissenyador-programador Usuari (almenys a temps parcial) Política: El software es lliurarà incremental i regularment, cada dos a tres mesos El progrés està controlat per milestones consistents en lliurament de software i preses de decissions importants Hi ha una implicació directa de l’usuari Workshops al principi i meïtat de cada increment ...

Exemple Crystal Clear Artefactes: Eines: Casos d’ús anotats Esborranys de dissenys Esborranys de pantalles Model de classes ... Manual d’usuari Eines: Sistema de versions Una pissarra blanca

XP: eXtreme Programming El cas extrem dels mètodes àgils El disseny és insignificant És un mètode iteratiu i incremental, amb increments molt petits de funcionalitat Es basa en la millora constant del codi El client o usuari està completament integrat en l’equip de desenvolupament, sempre present Programació col·lectiva: tot el codi és de tots i el pot modificar, mitjançant refactorització, qui sigui quan sigui Programació en parella, un dels aspectes més polèmics La “biblia” de XP: [1] Article per comentar a la propera classe [1] Kent Beck: Extreme Programming Explained. Addisson-Wesley

Bibliografia utilitzada Enginyeria del Sofware en general: Pressman: Ingeniería del Software, un enfoque práctico. 5ª edición. McGraw Hill, 2002. Campderrich: Enginyeria del programari I. UOC Campderrich: Enginyeria del programari III. UOC Unified Process Jacobson, Ivar; Booch, Grady; Rumbaugh, James: El proceso unificado de desarrollo de software. Addison Wesley Kruchten, Philippe: The Rational unified process an introduction Philippe Kruchten. Addison-Wesley Larman: Patterns and UML, 2nd edition.

Bibliografia utilitzada ICONIX Doug Rosenberg (amb Kendall Scott): Applying Use Case Driven Object Modeling with UML: An Annotated e-Commerce Example. Addison Wesley (Object Technology Series) Doug Rosenberg (amb Kendall Scott): Use Case Driven Object Modeling With Uml: A Practical Approach. Addison Wesley (Object Technology Series) Mètodes Àgils Alistair Cockburn: Agile Software Development. Addison Wesley Kent Beck: Extreme Programming Explained César F. Acebal, Juan M. Cueva: eXtreme Programming (XP): un nuevo método de desarrollo de software. En Novática, nº 156, març-abril 2002