sdlc phases
Què és el cicle de vida de desenvolupament de programari (SDLC)? Apreneu fases, metodologies, processos i models SDLC
El cicle de vida de desenvolupament de programari (SDLC) és un marc que defineix els passos implicats en el desenvolupament de programari en cada fase. Cobreix el pla detallat de construcció, desplegament i manteniment del programari.
SDLC defineix el cicle complet de desenvolupament, és a dir, totes les tasques implicades en la planificació, creació, prova i desplegament d’un producte de programari.
Què aprendreu:
- Procés de cicle de vida de desenvolupament de programari
- Cicle SDLC
- Fases SDLC
- Models de cicle de vida de desenvolupament de programari
- Conclusió
Procés de cicle de vida de desenvolupament de programari
SDLC és un procés que defineix les diverses etapes implicades en el desenvolupament de programari per lliurar un producte d'alta qualitat. Les etapes SDLC cobreixen el cicle de vida complet d'un programari, és a dir, des del començament fins a la retirada del producte.
L’adhesió al procés SDLC condueix al desenvolupament del programari de manera sistemàtica i disciplinada.
Propòsit:
L’objectiu de SDLC és oferir un producte d’alta qualitat segons els requisits del client.
SDLC ha definit les seves fases com: Reunió de requisits, Disseny, Codificació, Proves i Manteniment. És important adherir-se a les fases per proporcionar el producte de manera sistemàtica.
Per exemple, Cal desenvolupar un programari i un equip es divideix per treballar en una característica del producte i se li permet treballar tal com vulguin. Un dels desenvolupadors decideix dissenyar primer, mentre que l'altre decideix codificar primer i l'altre a la part de documentació.
Això comportarà un fracàs del projecte, per la qual cosa és necessari tenir un bon coneixement i comprensió entre els membres de l'equip per lliurar el producte esperat.
Cicle SDLC
SDLC Cycle representa el procés de desenvolupament de programari.
A continuació es mostra la representació diagramàtica del cicle SDLC:
Fases SDLC
A continuació es detallen les diverses fases:
- Recopilació i anàlisi de requisits
- Disseny
- Implementació o codificació
- Proves
- Desplegament
- Manteniment
# 1) Reunió i anàlisi de requisits
Durant aquesta fase, es recull tota la informació rellevant del client per desenvolupar un producte segons les seves expectatives. Les ambigüitats només s'han de resoldre en aquesta fase.
L’analista de negocis i el gestor de projectes van establir una reunió amb el client per reunir tota la informació, com ara el que vol construir el client, qui serà l’usuari final i quin és el propòsit del producte. Abans de construir un producte, és molt important entendre o conèixer bàsicament el producte.
Per exemple, Un client vol tenir una aplicació que impliqui transaccions amb diners. En aquest cas, el requisit ha de ser clar: quin tipus de transaccions es faran, com es faran, en quina moneda es faran, etc.
Un cop feta la recopilació de requisits, es fa una anàlisi per comprovar la viabilitat del desenvolupament d’un producte. En cas d’ambigüitat, s’estableix una trucada per a una discussió posterior.
Un cop entès clarament el requisit, es crea el document SRS (Software Requirement Specification). Els desenvolupadors haurien d’entendre aquest document a fons i també el client hauria de revisar-lo per a futures consultes.
# 2) Disseny
En aquesta fase, el requisit recollit al document SRS s'utilitza com a entrada i es deriva l'arquitectura de programari que s'utilitza per implementar el desenvolupament del sistema.
# 3) Implementació o codificació
La implementació / codificació s’inicia un cop el desenvolupador obté el document de disseny. El disseny del programari es tradueix en codi font. En aquesta fase s’implementen tots els components del programari.
com convertir-se en un provador de nous productes
# 4) Proves
Les proves comencen un cop finalitzada la codificació i els mòduls es deixen a prova. En aquesta fase, el programari desenvolupat es prova a fons i els defectes trobats s’assignen als desenvolupadors per solucionar-los.
Les proves de regressió i de prova es realitzen fins al punt en què el programari és segons les expectatives del client. Els verificadors remeten el document SRS per assegurar-se que el programari és conforme a l’estàndard del client.
# 5) Desplegament
Un cop provat el producte, es desplega a l’entorn de producció o primer UAT (proves d'acceptació d'usuaris) es fa en funció de les expectatives del client.
En el cas d’UAT, es crea una rèplica de l’entorn de producció i el client juntament amb els desenvolupadors fan les proves. Si el client troba l'aplicació com s'esperava, el client el proporcionarà la sessió per publicar-la.
# 6) Manteniment
Després del desplegament d’un producte a l’entorn de producció, els desenvolupadors tenen cura del manteniment del producte, és a dir, si apareix algun problema i s’ha de solucionar o s’ha de fer alguna millora.
Models de cicle de vida de desenvolupament de programari
Un model de cicle de vida del programari és una representació descriptiva del cicle de desenvolupament de programari. Els models SDLC poden tenir un enfocament diferent, però les fases bàsiques i l’activitat segueixen sent les mateixes per a tots els models.
# 1) Model de cascada
Model de cascada és el primer model que s'utilitza a SDLC. També es coneix com a model seqüencial lineal.
En aquest model, el resultat d'una fase és l'entrada de la següent fase. El desenvolupament de la següent fase només comença quan la fase anterior ha finalitzat.
- En primer lloc, es fa la recollida i anàlisi de requisits. Quan es congela el requisit, només es pot iniciar el disseny del sistema. En aquest document, el document SRS creat és la sortida de la fase de requisits i actua com a entrada per al disseny del sistema.
- A l'arquitectura i el disseny de programari de disseny de sistemes, es creen documents que actuen com a entrada per a la següent fase, és a dir, implementació i codificació.
- A la fase d’implementació, es realitza la codificació i el programari desenvolupat és l’entrada de la següent fase, és a dir, la prova.
- En la fase de proves, el codi desenvolupat es prova a fons per detectar els defectes del programari. Els defectes es registren a l'eina de seguiment de defectes i es tornen a provar un cop solucionats. El registre d’errors, la prova de nou i les proves de regressió continuen fins que el programari es troba en funcionament.
- A la fase de desplegament, el codi desenvolupat es trasllada a la producció després que el client hagi donat la sortida.
- Qualsevol problema a l’entorn de producció el resolen els desenvolupadors que es troben en manteniment.
Avantatges del model de cascada:
- El model de cascada és el model senzill que es pot entendre fàcilment i que es fa pas a pas totes les fases.
- Els lliuraments de cada fase estan ben definits i això no comporta cap complexitat i facilita la gestió del projecte.
Desavantatges del model de cascada:
- El model de cascada requereix molt de temps i no es pot utilitzar en els projectes de curta durada, ja que en aquest model no es pot iniciar una nova fase fins que no es completi la fase en curs.
- El model de cascada no es pot utilitzar per als projectes amb requisits incerts o en què el requisit continua canviant, ja que aquest model espera que el requisit sigui clar en la pròpia fase de recollida i anàlisi de requisits i qualsevol canvi en les etapes posteriors comportaria un cost més elevat caldria fer canvis en totes les fases.
# 2) Model en forma de V.
V- Model també es coneix com a model de verificació i validació. En aquest model, la verificació i la validació van de la mà, és a dir, el desenvolupament i les proves van paral·leles. El model V i el model de cascada són els mateixos, tret que la planificació i la prova de les proves comencen en una etapa inicial del model V.
a) Fase de verificació:
(i) Anàlisi de requisits:
En aquesta fase, es recopila i analitza tota la informació necessària. Les activitats de verificació inclouen la revisió dels requisits.
(ii) Disseny del sistema:
Un cop clar el requisit, es dissenya un sistema, és a dir, arquitectura, els components del producte es creen i es documenten en un document de disseny.
(iii) Disseny d'alt nivell:
El disseny d’alt nivell defineix l’arquitectura / disseny dels mòduls. Defineix la funcionalitat entre els dos mòduls.
(iv) Disseny de baix nivell:
El disseny de baix nivell defineix l'arquitectura / disseny de components individuals.
(v) Codificació:
El desenvolupament del codi es realitza en aquesta fase.
b) Fase de validació:
(i) Proves unitàries:
Proves d’unitat es realitza utilitzant els casos de prova unitària dissenyats i realitzats en la fase de disseny de baix nivell. Les proves d’unitats les realitza el propi desenvolupador. Es realitza en components individuals que condueixen a la detecció precoç de defectes.
(ii) Proves d'integració:
Proves d'integració es realitza mitjançant casos de prova d’integració en fase de disseny d’alt nivell. Les proves d’integració són les proves que es fan en mòduls integrats. És realitzat per provadors.
(iii) Proves del sistema:
Proves del sistema es realitza en la fase de disseny del sistema. En aquesta fase, es prova el sistema complet, és a dir, es prova tota la funcionalitat del sistema.
(iv) Proves d’acceptació:
Les proves d’acceptació s’associen a la fase d’anàlisi de requisits i es fan a l’entorn del client.
Avantatges del model V:
- És un model senzill i fàcil d’entendre.
- L’enfocament del model V és bo per a projectes més petits en què es defineix el requisit i es congela a la primera fase.
- És un model sistemàtic i disciplinat que dóna com a resultat un producte d’alta qualitat.
Inconvenients del model V:
- El model en forma de V no és bo per als projectes en curs.
- El canvi de requisits en una etapa posterior costaria massa.
# 3) Model de prototipus
El model de prototip és un model en què el prototip es desenvolupa abans del programari real.
Els models de prototips tenen capacitats funcionals limitades i un rendiment ineficient en comparació amb el programari real. Les funcions fictícies s’utilitzen per crear prototips. Aquest és un mecanisme valuós per entendre les necessitats dels clients.
Els prototips de programari es creen abans del programari real per obtenir valuosos comentaris del client. S’implementen comentaris i el client torna a revisar el prototip per a qualsevol canvi. Aquest procés continua fins que el client accepta el model.
Un cop feta la recopilació de requisits, es crea el disseny ràpid i es crea el prototip que es presenta al client per a la seva avaluació.
La modificació del prototip s’utilitza la retroalimentació dels clients i el requisit refinat i es torna a presentar al client per a la seva avaluació. Un cop el client aprova el prototip, s’utilitza com a requisit per construir el programari real. El programari real es crea mitjançant l’enfocament del model Waterfall.
Avantatges del model de prototip:
- El model de prototip redueix el cost i el temps de desenvolupament, ja que els defectes es troben molt abans.
- La característica o la funcionalitat que falten o un canvi en els requisits es poden identificar a la fase d'avaluació i es poden implementar al prototip refinat.
- La participació d’un client des de la fase inicial redueix qualsevol confusió en el requisit o la comprensió de qualsevol funcionalitat.
Desavantatges del model de prototip:
- Com que el client participa en totes les fases, el client pot canviar el requisit del producte final, cosa que augmenta la complexitat de l'abast i pot augmentar el termini de lliurament del producte.
# 4) Model en espiral
El model en espiral inclou enfocament iteratiu i prototip.
Les fases del model espiral es segueixen a les iteracions. Els bucles del model representen la fase del procés SDLC, és a dir, el bucle més intern consisteix en la recollida i anàlisi de requisits que segueix la planificació, anàlisi, desenvolupament i avaluació de riscos. El següent bucle és Disseny seguit d'implementació i després de proves.
El model en espiral té quatre fases:
- Planificació
- Anàlisi de riscos
- Enginyeria
- Avaluació
(i) Planificació:
La fase de planificació inclou la recollida de requisits en què es recopila tota la informació necessària del client i es documenta. El document d’especificacions de requisits de programari es crea per a la següent fase.
(ii) Anàlisi de riscos:
En aquesta fase, es selecciona la millor solució per als riscos implicats i l’anàlisi es realitza construint el prototip.
Per exemple , el risc que comporta l'accés a les dades des d'una base de dades remota pot ser que la velocitat d'accés a les dades sigui massa lenta. El risc es pot resoldre construint un prototip del subsistema d’accés a dades.
(iii) Enginyeria:
Un cop feta l’anàlisi del risc, es realitza la codificació i la prova.
(iv) Avaluació:
El client avalua el sistema desenvolupat i planeja la propera iteració.
Avantatges del model en espiral:
- L’anàlisi de riscos es fa àmpliament mitjançant els models de prototips.
- Qualsevol millora o canvi en la funcionalitat es pot fer a la següent iteració.
Desavantatges del model en espiral:
- El model en espiral és el més adequat només per a grans projectes.
- El cost pot ser elevat, ja que pot suposar un gran nombre d’iteracions que poden portar a un temps elevat per arribar al producte final.
# 5) Model incremental iteratiu
El model incremental iteratiu divideix el producte en petits trossos.
Per exemple , La funció que es desenvoluparà en la iteració es decideix i s’implementa. Cada iteració passa per les fases: anàlisi de requisits, disseny, codificació i proves. No es requereix una planificació detallada a les iteracions.
Un cop finalitzada la iteració, es verifica un producte i es lliura al client per a la seva avaluació i retroalimentació. Els comentaris dels clients s’implementen a la següent iteració juntament amb la nova funció afegida.
Per tant, el producte augmenta en termes de característiques i un cop finalitzades les iteracions, la versió final conté totes les característiques del producte.
Fases del model de desenvolupament iteratiu i incremental:
- Fase inicial
- Fase d’elaboració
- Fase de construcció
- Fase de Transició
(i) Fase inicial:
La fase inicial inclou el requisit i l'abast del projecte.
(ii) Fase d'elaboració:
A la fase d’elaboració, s’ofereix l’arquitectura de treball d’un producte que cobreix el risc identificat en la fase inicial i també compleix els requisits no funcionals.
(iii) Fase de construcció:
A la fase de construcció, l'arquitectura s'omple amb el codi que es pot desplegar i es crea mitjançant l'anàlisi, el disseny, la implementació i la prova del requisit funcional.
(iv) Fase de transició:
A la fase de transició, el producte es desplega a l’entorn de producció.
Avantatges del model iteratiu i incremental:
- Qualsevol canvi en el requisit es pot fer fàcilment i no costaria, ja que hi ha l’abast d’incorporar el nou requisit a la següent iteració.
- El risc s’analitza i s’identifica a les iteracions.
- Els defectes es detecten en una fase inicial.
- Com que el producte es divideix en trossos més petits, és fàcil gestionar-lo.
Desavantatges del model iteratiu i incremental:
- Es requereixen requisits complets i comprensió d’un producte per desglossar-se i construir-se progressivament.
# 6) Model de Big Bang
El model Big Bang no té cap procés definit. Els diners i els esforços es combinen a mesura que l’entrada i la sortida es presenten com un producte desenvolupat que pot ser o no el mateix que el client necessita.
El model Big Bang no requereix molta planificació i programació. El desenvolupador realitza l'anàlisi i codificació de requisits i desenvolupa el producte segons el seu enteniment. Aquest model s’utilitza només per a projectes petits. No hi ha cap equip de proves i no es fan proves formals, i això podria ser una causa del fracàs del projecte.
Avantatges del model Big Bang:
- És un model molt senzill.
- Es requereix menys planificació i programació.
- El desenvolupador té la flexibilitat necessària per crear el seu propi programari.
Desavantatges del model Big Bang:
- Els models Big Bang no es poden utilitzar per a projectes grans, en curs i complexos.
- Alt risc i incertesa.
# 7) Model àgil
El model àgil és una combinació del model iteratiu i incremental. Aquest model se centra més en la flexibilitat en desenvolupar un producte que en el requisit.
A Agile, un producte es divideix en petites versions incrementals. No es desenvolupa com un producte complet d'una sola vegada. Cada compilació augmenta en termes de característiques. La següent versió es basa en la funcionalitat anterior.
En les iteracions àgils s’anomenen sprints. Cada esprint dura entre 2 i 4 setmanes. Al final de cada sprint, el propietari del producte verifica el producte i, després de la seva aprovació, el lliura al client.
Els comentaris dels clients es prenen per millorar i els seus suggeriments i millores es treballen en el proper sprint. Les proves es fan a cada sprint per minimitzar el risc de fallades.
Avantatges del model Agile:
- Permet més flexibilitat per adaptar-se als canvis.
- La nova característica es pot afegir fàcilment.
- La satisfacció del client, ja que els comentaris i suggeriments es prenen en cada etapa.
Desavantatges:
- Manca de documentació.
- Àgil necessita recursos experimentats i altament qualificats.
- Si un client no té clar com vol exactament que sigui el producte, el projecte fallaria.
Conclusió
L’adhesió a un cicle de vida adequat és molt important per a la finalització amb èxit del projecte. Això, al seu torn, facilita la gestió.
Els diferents models de cicle de vida de desenvolupament de programari tenen els seus propis avantatges i inconvenients. El millor model per a qualsevol projecte es pot determinar segons factors com el requisit (si és clar o poc clar), la complexitat del sistema, la mida del projecte, el cost, la limitació d’habilitats, etc.
Exemple, en cas d'un requisit poc clar, és millor utilitzar els models espiral i àgil, ja que el canvi necessari es pot adaptar fàcilment en qualsevol etapa.
El model Waterfall és un model bàsic i tots els altres models SDLC només es basen en això.
Espero que hagueu adquirit un coneixement immens de SDLC.
Lectura recomanada
- Model en espiral: què és el model en espiral SDLC?
- Què és el model de cascada SDLC?
- Què és el cicle de vida de proves de programari (STLC)?
- Prova de programari Treball d'assistent de control de qualitat
- 10 MILLORS empreses i serveis personalitzats per al desenvolupament de programari el 2021
- Prova pràctica de programari: nou llibre electrònic gratuït [Descarregar]
- Onsite: model offshore de projectes de proves de programari (i com fer-lo funcionar)
- Per què el programari té errors?