DEL SOFTWARE MSc. Andrea Teresa Cubillos Johnen FACULTAD DE CIENCIAS Y TECNOLOGIA CARRERA: INGENIERIA DE SISTEMAS MATERIA: INGENIERIA DEL SOFTWARE INTRODUCCION Las dos actividades ms importantes que forman parte del desarrollo de software son: la verificacin y la validacin !i ya se "a escrito al#$n peque%o pro#rama& se sa'e que e(isten una cantidad de actividades que que "ay que llevar a ca'o& lo mismo sucede con los #randes desarrollos& solo que se a%aden elementos adicionales )l#unas de las actividades son las si#uientes: *studio de facti'ilidad In#enier+a de Requerimientos Dise%o de las interfaces de usuario Dise%o arquitectnico Dise%o detallado ,ro#ramacin Inte#racin de !istemas -erificacin -alidacin ,roduccin Documentacin .antenimiento /estin de ,royecto .!c )ndrea Teresa Cu'illos 1o"nen INTRODUCCION Un modelo de procesos es un plan que "ace provisin de esas actividades y 'usca incorporar las etapas de una forma metdica .!c )ndrea Teresa Cu'illos 1o"nen L)! T)R*)! ESTUDO DE FACT!LDAD *l estudio de facti'ilidad esta'lece si un proyecto procede o no ,uede ser que el sistema sea innecesario& muy caro o muy ries#oso *l enfoque a un proyecto de facti'ilidad involucra reali2ar un anlisis costo3'eneficio *l costo del sistema propuesto es estimado& lo cual puede involucrar nuevo "ardware o nuevo software& y comparado con el costo de los a"orros posi'les *sta comparacin entonces determina si el proyecto se lleva o no aca'o .!c )ndrea Teresa Cu'illos 1o"nen L)! T)R*)! "#E"ERA DE RE$UERME"TOS %ES&ECFCACO"' )l comien2o de un proyecto& el desarrollador averi#ua lo que el usuario 4cliente o consumidor5 desea que el software "a#a y re#istra los requerimientos lo ms claro posi'le *l producto de esta etapa es una especificacin de requerimientos DSE(O DE LA "TERFA) DE USUARO .uc"os de los software tienen una interfa2 #rfica& la cual de'e ser cuidadosamente dise%ada para que sea fcil de usar DSE(O AR$UTECTO"CO %A #RA" ESCALA' Un sistema de software puede ser #rande y comple6o ) veces es muy #rande como para ser escrito en un pro#rama *l software de'e ser construido por mdulos o componentes Un dise%o arquitectnico& o a #ran escala divide el sistema en mdulos simples Los productos de esta actividad son un dise%o arquitectnico y un modulo de especificaciones .!c )ndrea Teresa Cu'illos 1o"nen L)! T)R*)! DSE(O DETALLADO *l dise%o de cada modulo o componente es llevado a ca'o Los productos son los dise%os detallados de cada modulo &RO#RAMACO" %CODFCACO"' *l dise%o detallado es convertido en instrucciones escritas en un len#ua6e de pro#ramacin ,uede "a'er una eleccin de len#ua6es de pro#ramacin& de los cuales uno de'e ser seleccionado *l producto es el cdi#o "TE#RACO" DEL SSTEMA Los componentes individuales del sistema son com'inados 4enla2ados5 *l producto es el sistema completo .!c )ndrea Teresa Cu'illos 1o"nen L)! T)R*)! *ERFCACO" *sto ase#ura que el software es confia'le De acuerdo a 7arry 7oe"m& la verificacin responde a la si#uiente pre#unta: *stamos construyendo 'ien el producto8 Una pie2a de software que cumple con las especificaciones es de uso limitado si se cuel#a constantemente La verificacin concierne con el punto de vista del desarrollador& la implementacin interna del sistema Los dos tipos de verificacin son las prue'as de unidad y prue'as del sistema *n las prue'as de unidad& cada modulo del software es testeado aisladamente Las entradas de las prue'as de unidad son: 9 La especificacin de la unidad : *l cdi#o de la unidad ; Una lista de resultados esperados Los productos de las prue'as de unidad son los resultados de las prue'as Las prue'as de unidad verifican que el comportamiento del cdi#o est de acuerdo a las especificaciones .!c )ndrea Teresa Cu'illos 1o"nen L)! T)R*)! *n las prue'as del sistema o prue'as de inte#racin& los mdulos son enla2ados y el sistema completo es pro'ado Las entradas de las prue'as del sistema son las especificaciones del sistema y el cdi#o del sistema comple6o Los resultados de las prue'as de sistema es el software pro'ado& verificando que el sistema cumple con las especificaciones .!c )ndrea Teresa Cu'illos 1o"nen L)! T)R*)! *ALDACO" !e 'usca que el software cumpla con las necesidades de los usuarios De acuerdo a 7arry 7oe"m& la validacin responde a la si#uiente pre#unta: *stamos construyendo el producto correcto8 La verificacin concierne con el punto de vista del cliente& la vista e(terna del sistema No es $til crear una pie2a de software que funcione perfectamente si no "ace lo que el usuario desea Un e6emplo importante de una actividad de validacin es la aceptacin de prue'a *sto ocurre al final del proyecto cuando el software es considerado completado& es demostrado a sus clientes y aceptados por ellos como satisfactorio Las entradas para la aceptacin de prue'a son el cliente y el software completado Los productos son un documento firmado y un sistema aceptado o una lista de fallas *l resultado es que el sistema cumple o no con los requerimientos del cliente .!c )ndrea Teresa Cu'illos 1o"nen L)! T)R*)! *videncia actual su#iere que muc"os sistemas de computacin no cumplen con las necesidades de sus usuarios& por lo que la validacin e(itosa es uno de los mayores pro'lemas en in#enier+a de software *s una e(periencia com$n que los usuarios piensen que "an articulado sus necesidades al in#eniero de software *l in#eniero se tomar meses "asta a%os desarrollando el sistema solo para encontrar& cuando es demostrado& que no era lo que el usuario quer+a *sto no es solo desmorali2ador para el usuario y los desarrolladores& pero es masivamente costoso en t<rminos de esfuer2o necesario para corre#ir las deficiencias Como una alternativa e(trema& el sistema es a'andonado .!c )ndrea Teresa Cu'illos 1o"nen L)! T)R*)! *s muy fcil culpar la etapa anlisis de requerimientos& cuando la realidad es que el pro'lema 'sico es la calidad en la comunicacin entre los usuarios y los desarrolladores Los usuarios no sa'en 4y usualmente no les interesa5 acerca de las tecnicalidades& mientras que el in#eniero de software espera instrucciones detalladas Lo peor de todo es el pro'lema de al#un len#ua6e en com$n para descri'ir con acierto lo que el usuario quiere ,ro'a'lemente los usuarios estan ms felices con el len#ua6e natural& mientras el in#eniero de software pro'a'lemente prefiere al#$n len#ua6e ri#uroso que ser incomprensi'le para los usuarios *sta es una 'rec"a cultural .!c )ndrea Teresa Cu'illos 1o"nen L)! T)R*)! &RODUCCO" *l sistema es puesto en uso Los usuarios necesitan entrenamiento MA"TE"ME"TO Cuando el sistema esta en funcionamiento& necesitar arre#los o me6oras =aciendo estos cam'ios constituye el mantenimiento .!c )ndrea Teresa Cu'illos 1o"nen L)! T)R*)! DOCUME"TACO" La documentacin es requerida por dos tipos de personas: los usuarios y los desarrolladores Los usuarios necesitan informacin so're cmo instalar el software y de cmo utili2arlo )$n en la era de la computacin& los manuals son siempre 'ienvenidos ,ara el software de propsito #eneral& como un procesador de te(to& usualmente se provee un sistema de ayuda La documentacin de usuario se concentra en el >que? 4el punto de vista e(terno5 del software& no el >como? 4el tra'a6o interno5 .!c )ndrea Teresa Cu'illos 1o"nen L)! T)R*)! Los desarrolladores necesitan documentacin para poder continuar el desarrollo y para llevar a ca'o el mantenimiento *sto t+picamente involucra la especificacin& el dise%o arquitectnico& el dise%o detallado& el cdi#o& anotaciones dentro del codi#o 4comentarios5& crono#rama de prue'as& resultados de las prue'as y el plan de proyecto #ESTO" DE &RO+ECTO )l#uien necesita crear y mantener planes& resolver pro'lemas& asi#nar tra'a6o y verificar que <ste "a sido completado DSE(O DE LA !ASE DE DATOS .uc"os sistemas utili2an una 'ase de datos para almacenar informacin *l dise%ar la 'ase de datos es un tema aparte y no es normalmente considerado parte de la in#enier+a de software .!c )ndrea Teresa Cu'illos 1o"nen L)! T)R*)! *l dividir el tra'a6o en una serie de actividades distintas& pareciera ser que el tra'a6o se esta llevando a ca'o estrictamente en secuencia !in em'ar#o& en #randes proyectos& es usual que muc"as actividades se realicen en paralelo *n particular& esto sucede una ve2 que el dise%o a #ran escala 4arquitectnico5 este completo *s en esta etapa que los mayores componentes de software "an sido identificados l tra'a6o de desarrollar los componentes puede a"ora proceder en paralelo& usualmente emprendidos por diferentes individuos .!c )ndrea Teresa Cu'illos 1o"nen *L .OD*LO D* ,ROC*!O! =emos visto que los sistemas de software son usualmente #randes y comple6os *(iste una clara necesidad de ser or#ani2ado al em'arcarse al desarrollo Cuando se esta'lece un proyecto de software& es necesario: Una serie de m<todos y "erramientas Un plan o estrat<#ia #eneral *l ,lan de )ccin es conocido como el modelo de proceso *s un plan de identifica qu< etapas se llevarn a ca'o mientras procede el desarrollo .!c )ndrea Teresa Cu'illos 1o"nen *L .OD*LO D* ,ROC*!O! *l t<rmino modelo de procesos deriva como si#ue: Un proceso es un paso o una serie de pasos Un modelo de procesos es un modelo en el mismo sentido de que es una representacin de la realidad Como cualquier modelo& un modelo es solo una apro(imacin de la realidad Un modelo de proceso tiene dos usos distintos: ,uede ser utili2ado como 'ase para el plan o proyecto )qu+ el o'6etivo es predecir que ser "ec"o ,uede ser utili2ado para anali2ar que pasa realmente durante el proyecto )qu+ el o'6etivo es me6orar el proceso para los proyectos actuales y futuros .!c )ndrea Teresa Cu'illos 1o"nen *L .OD*LO D* ,ROC*!O! *(isten varios modelos de procesos: Cascada ,rototipado Incremental )#il Codi#o )'ierto .!c )ndrea Teresa Cu'illos 1o"nen .*TODOLO/I) *n len#ua6e com$n& la pala'ra metodolo#+a si#nifica el estudio de un m<todo y responde a las si#uientes pre#untas: Cul es la 'ase del modelo (8 @u< tan 'ueno es el m<todo (8 !in em'ar#o& en el desarrollo de software el t<rmino metodolo#+a "a sido secuestrado y si#nifica un paquete completo de t<cnicas& "erramientas y notaciones Dic"o paquete se le asi#na un nom're& di#amos& la metodolo#+a ABC& y con frecuencia es comerciali2ado por una empresa& 6unto con li'ros& manuales y capacitacin Los consultores tam'i<n van de la mano para #uiar a una or#ani2acin en la utili2acin de la metodolo#+a .!c )ndrea Teresa Cu'illos 1o"nen =)CDIN/ =ay un enfoque conocido para el desarrollo de software& llamado "acEin# *n realidad e(isten dos tipos de "acEers: *l "acEer malicioso que irrumpe en los sistemas informticos& a menudo "aciendo uso de Internet para cometer fraude& causar da%o o simplemente por diversin *l "acEer pro#ramador& que utili2a "a'ilidades supremas& pero nin#$n m<todo& para desarrollar de software .!c )ndrea Teresa Cu'illos 1o"nen