b'\n_START_ARTICLE_\nProc\xc3\xa9s de desenvolupament de programari\n_START_PARAGRAPH_\nEn l\'enginyeria de programari, el proc\xc3\xa9s de desenvolupament de programari (o cicle de vida del desenvolupament de programari) \xc3\xa9s una part del desenvolupament de programari. Es defineix com una seq\xc3\xbc\xc3\xa8ncia d\'activitats que han de ser seguides per un equip de desenvolupadors per generar o mantenir un conjunt coherent de productes._NEWLINE_Es pot definir un proc\xc3\xa9s com un marc de treball que ajuda el cap del projecte a controlar-ne la gesti\xc3\xb3 i les activitats d\'enginyeria. Aix\xc3\xb2 ajuda a establir el "qui fa qu\xc3\xa8, quan i com" i un mecanisme de control per veure l\'evoluci\xc3\xb3 del projecte.\n_START_SECTION_\nProc\xc3\xa9s Unificat de Rational (RUP)\n_START_PARAGRAPH_\nEl proc\xc3\xa9s unificat de Rational (RUP) \xc3\xa9s un proc\xc3\xa9s del desenvolupament de programari proposat per la companyia Rational Software el qual incorpora els coneixements anomenats best practices i est\xc3\xa0 suportat per un conjunt d\'eines, com el Llenguatge Unificat de Modelatge UML. _NEWLINE_Els m\xc3\xa8todes ofereixen t\xc3\xa8cniques de modelatge per les diferents etapes del proc\xc3\xa9s de desenvolupament, incloent-hi anotacions especials, gr\xc3\xa0fics i criteris per desenvolupar programari de qualitat._NEWLINE_Les eines CASE (Computer Aided Software Engineering) ajuden a l\'automatitzaci\xc3\xb3 de tot el proc\xc3\xa9s de construcci\xc3\xb3 del programari obtenint resultats d\'alta qualitat.\n_START_SECTION_\nAn\xc3\xa0lisi de requisits\n_START_PARAGRAPH_\nL\'objectiu principal d\'aquesta etapa \xc3\xa9s obtenir el document d\'especificaci\xc3\xb3 dels requisits. Aquest document se\'l coneix com a especificaci\xc3\xb3 funcional. S\'ent\xc3\xa9n per especificaci\xc3\xb3 com la tasca d\'escriure detalladament el programari a desenvolupar d\'una forma matem\xc3\xa0ticament rigorosa. Aquestes especificacions es pacten amb els clients, els quals solen tenir una visi\xc3\xb3 molt abstracta del resultat final, per\xc3\xb2 no sobre les funcions que hauria de complir el programari._NEWLINE_L\'an\xc3\xa0lisi de requisits \xc3\xa9s regulat per la IEEE SA 830-1998, document el qual cont\xc3\xa9 pr\xc3\xa0ctiques recomanades per a l\'especificaci\xc3\xb3 dels requeriments del programari.\n_START_SECTION_\nDisseny i arquitectura\n_START_PARAGRAPH_\nAquesta etapa determina el funcionament general del programari sense entrar en detalls concrets sobre la seva implementaci\xc3\xb3 t\xc3\xa8cnica. Tamb\xc3\xa9 es tenen en consideraci\xc3\xb3 les implementacions tecnol\xc3\xb2giques necess\xc3\xa0ries com per exemple el maquinari i la xarxa.\n_START_SECTION_\nProgramaci\xc3\xb3\n_START_PARAGRAPH_\nLa complexitat i durada d\'aquesta etapa dep\xc3\xa8n dels llenguatges de programaci\xc3\xb3 utilitzats, aix\xc3\xad com el disseny previ realitzat. Consisteix en la implementaci\xc3\xb3 _NEWLINE_Un bon disseny inicial simplifica aquesta etapa. Mai s\'hauria d\'arribar a l\'etapa de programaci\xc3\xb3 directament des del principi.\n_START_SECTION_\nProves\n_START_PARAGRAPH_\nEn aquesta etapa els desenvolupadors de programari comproven que aquest funcioni de la manera esperada i especificada en les etapes anteriors. Aquesta \xc3\xa9s una etapa molt important doncs permet detectar errors de funcionament del programari abans de ser lliurat a l\'usuari final. Es considera una bona pr\xc3\xa0ctica que les proves les realitzin persones diferents dels desenvolupadors del programari.\n_START_SECTION_\nModels de desenvolupament de programari\n_START_PARAGRAPH_\nEls models de desenvolupament de programari s\xc3\xb3n una representaci\xc3\xb3 abstracta que han estat utilitzats des dels or\xc3\xadgens de la tecnologia de la informaci\xc3\xb3._NEWLINE_Poden ser adaptats i modificats segons les necessitats del programari durant el proc\xc3\xa9s de desenvolupament._NEWLINE_Podem diferenciar els models de desenvolupament de programari en 3 tipus:\n_START_SECTION_\nModel de desenvolupament iteratiu i incremental\n_START_PARAGRAPH_\nModel obtingut de combinar el model iteratiu amb el model de desenvolupament incremental. La relaci\xc3\xb3 entre ells dos ve determinada per la metodologia de desenvolupament i el proc\xc3\xa9s de construcci\xc3\xb3 del programari._NEWLINE_Facilita el proc\xc3\xa9s de detecci\xc3\xb3 d\'errors i problemes importants abans que es manifestin i puguin causar un desastre (gr\xc3\xa0cies al model iteratiu, permet el backtracking).\n_START_SECTION_\nModel de desenvolupament \xc3\xa0gil\n_START_PARAGRAPH_\nAmb "model de desenvolupament \xc3\xa0gil" ens referim a un grup de metodologies de desenvolupament programari basades en el desenvolupament iteratiu, on requeriments i solucions evolucionen via col\xc2\xb7laboracions entre equips organitzats. _NEWLINE_S\'utilitza el desenvolupament iteratiu com a base per a advocar un punt de vista m\xc3\xa9s lleuger i centrat en les persones que en el cas de les solucions tradicionals. Els processos \xc3\xa0gils utilitzen retroalimentaci\xc3\xb3 en comptes de planificaci\xc3\xb3 com a principal mecanisme de control. Aquesta retroalimentaci\xc3\xb3 es canalitza per mitj\xc3\xa0 de proves peri\xc3\xb2diques i versions freq\xc3\xbcents del programari.\n_START_SECTION_\nCodificaci\xc3\xb3 i correcci\xc3\xb3\n_START_PARAGRAPH_\nLa idea del model de codificaci\xc3\xb3 i correcci\xc3\xb3 \xc3\xa9s crear immediatament un codi i, en cert punt, comen\xc3\xa7ar a provar-lo per detectar els errors inevitables que hi haur\xc3\xa0 abans de l\'entrega final del programari._NEWLINE_Aquest model no \xc3\xa9s tant una estrat\xc3\xa8gia com les que hem conegut fins ara, si no es podria definir com una soluci\xc3\xb3 a causa de falta d\'experi\xc3\xa8ncia o pressi\xc3\xb3 sobre els desenvolupadors quan es van acostant a una data d\'entrega. _NEWLINE_Aquest proc\xc3\xa9s de codificar sense pla se\'l coneix tamb\xc3\xa9 com a cowboy coding.\n_START_SECTION_\nISO/IEC 12207\n_START_PARAGRAPH_\n\xc3\x89s un est\xc3\xa0ndard internacional que descriu el m\xc3\xa8tode per a seleccionar, implementar i monitorar el cicle de vida per al programari.\n_START_SECTION_\nIntegraci\xc3\xb3 de Models de Maduresa de Capacitats (Capability Maturity Model Integration)\n_START_PARAGRAPH_\n\xc3\x89s un dels models l\xc3\xadders basats en millors pr\xc3\xa0ctiques. S\xc3\xb3n avaluacions independents les que confirmen el grau amb el qual una organitzaci\xc3\xb3 segueix els seus propis processos, que no avalua la qualitat dels processos o del programari que es produeix. Aquest model t\xc3\xa9 un \xc3\xa0mbit global i no nom\xc3\xa9s est\xc3\xa0 destinat al desenvolupament del programari.\n_START_SECTION_\nISO 9000\n_START_PARAGRAPH_\nDescriu uns est\xc3\xa0ndards per a un proc\xc3\xa9s formalment organitzat amb la intenci\xc3\xb3 de manufacturar un producte i els m\xc3\xa8todes de comandament i monitoratge del progr\xc3\xa9s. Tot i que aquest est\xc3\xa0ndard va ser creat originalment per al sector de la manufacturaci\xc3\xb3, els est\xc3\xa0ndards ISO 9000 s\'han aplicat al desenvolupament de programari tamb\xc3\xa9. Com el CMMI, no garanteix la qualitat del resultat final, nom\xc3\xa9s que s\'han seguit els processos formals d\'empresa.\n_START_SECTION_\nISO/IEC 15504\n_START_PARAGRAPH_\nTamb\xc3\xa9 conegut com a Software Process Improvement Capability Determination\xc2\xa0(SPICE), determina la capacitat de millora del proc\xc3\xa9s de programari. Aquest est\xc3\xa0ndard t\xc3\xa9 com a objectiu un model clar per a poder comparar processos. SPICE s\'utilitza com en el CMMI. Modela processos per gestionar, controlar, guia i monitorar el desenvolupament del programari. Aquest model s\'utilitza per mesurar el que una organitzaci\xc3\xb3 o projecte fa durant el desenvolupament del programari. Aquesta informaci\xc3\xb3 ajuda a identificar punts d\xc3\xa8bils i definir accions per a fer els canvis de millora. Tamb\xc3\xa9 identifica punts forts que poden adoptar-se a la resta de l\'organitzaci\xc3\xb3.\n_START_SECTION_\nMetodologia de sistemes lleugers (Soft Systems Methodology)\n_START_PARAGRAPH_\nM\xc3\xa8tode general per a la millora de processos de gesti\xc3\xb3, serveix per abordar situacions problem\xc3\xa0tiques en sistemes amb problemes lleugers.\n_START_SECTION_\nEnginyeria del m\xc3\xa8tode\n_START_PARAGRAPH_\nEn el camp de la informaci\xc3\xb3 de sistemes, \xc3\xa9s la disciplina per a construir nous m\xc3\xa8todes de m\xc3\xa8todes ja existents. Se centra en el disseny, construcci\xc3\xb3 i avaluaci\xc3\xb3 dels m\xc3\xa8todes, t\xc3\xa8cniques i eines de suport per al desenvolupament de sistemes d\'informaci\xc3\xb3. Millora la informaci\xc3\xb3 rebuda dels processos del sistema.\n_START_SECTION_\nM\xc3\xa8todes Formals\n_START_PARAGRAPH_\nEls m\xc3\xa8todes formals s\xc3\xb3n solucions matem\xc3\xa0tiques per a resoldre problemes de software i hardware quant a requisits, especificaci\xc3\xb3 i disseny. Exemples de m\xc3\xa8todes formals inclouen el M\xc3\xa8tode B, la xarxa de Petri, la demostraci\xc3\xb3 autom\xc3\xa0tica de teoremes, RAISE i el VDM. Hi ha diverses notacions d\'especificacions formals, tals com el llenguatge Z. M\xc3\xa9s generalment, es pot utilitzar la teoria d\'aut\xc3\xb2mates per a augmentar i validar el comportament de l\'aplicaci\xc3\xb3 dissenyant un sistema d\'aut\xc3\xb2mat finit._NEWLINE_Les metodologies basades en els aut\xc3\xb2mats finits permeten l\'especificaci\xc3\xb3 de programari executable i evitar la creaci\xc3\xb3 convencional de codi._NEWLINE_Els m\xc3\xa8todes formals es poden aplicar en programari d\'aviaci\xc3\xb3, especialment si \xc3\xa9s de seguretat cr\xc3\xadtica. Els est\xc3\xa0ndards d\'assegurament del programari de seguretat, tals com D0178B demanen m\xc3\xa8todes formals en el nivell m\xc3\xa9s alt de categoritzaci\xc3\xb3 (Nivell A)._NEWLINE_La formalitzaci\xc3\xb3 del desenvolupament de programari est\xc3\xa0 guanyant for\xc3\xa7a a poc a poc, en altres \xc3\xa0mbits, amb l\'aplicaci\xc3\xb3 del llenguatge d\'especificaci\xc3\xb3 OCL2.0 (i especialitzacions tals com Java Modeling Language) i particularment amb Model-driven Architecture, que permet l\'execuci\xc3\xb3 de dissenys, fins i tot especificacions._NEWLINE_Una altra tend\xc3\xa8ncia que est\xc3\xa0 sorgint en el desenvolupament del programari \xc3\xa9s la redacci\xc3\xb3 d\'especificacions en algun tius de l\xc3\xb2gica, per a tot seguit executar aquella l\xc3\xb2gica com si es tract\xc3\xa9s d\'un programa. El llenguatge OWL, basat en l\xc3\xb2gica descriptiva, n\'\xc3\xa9s un bon exemple. Tamb\xc3\xa9 s\'est\xc3\xa0 treballant a enlla\xc3\xa7ar un idioma natural de forma autom\xc3\xa0tica amb l\xc3\xb2gica, l\xc3\xb2gica que pot executar-se.'