1. Instituto de educación superior tecnológico publico Túpac Amaru
cusco
Tema:
Docente:
Roque Mamani, Ángel Mario
Alumnos:
Ambur Quispe, Yessenia Frine
Armuto Mamani, Hulderico
Baez Cruz, Raul
Cusco…Perú
Presentación
METODOLOGÍADE DESARROLLO DE SOFTWARE
2. Introducción
En el presente monografía se explica muy brevemente los aspectos queinvolucra el proceso
de desarrollo de software y la metodología
INGENIERÍADELSOFTWARE
Eldesarrollodesistemasdesoftwarecomplejosnoesuna actividad trivial, que
puedaabordarsesin un análisisprevio. Elconsiderarque un proyectode desarrollode softwarepodía
abordarsecomo cualquierotro,hallevado auna serie deproblemasque limitan
nuestracapacidaddeaprovechar losrecursosqueelhardware pone anuestradisposición.
Noexiste una fórmula mágicapara solucionarestosproblemas,pero com-
binandométodosaplicablesacadauna de las fasesdeldesarrollode software, construyendo
herramientaspara automatizarestosmétodos,utilizando técnicaspara garantizarlacalidad de
losproductosdesarrolladosycoordinandotodaslaspersonasinvolucradaseneldesarrollode
unproyecto,podremosavanzarmucho enlasolución deestos.Deelloseencargaladisciplina
llamadaIngeniería delSoftware.
lasiguiente:
Unadelasprimerasdefinicionesque sediodelaingenieríadelsoftwarees
Elestablecimientoyuso de principios de ingeniería robustos,orientados a
obtenersoftware económico,que sea fiableyfuncionedemaneraeficiente sobre
máquinas reales.
Laingenieríadelsoftwareabarcaunconjunto detres elementosclave: mé- todos,
herramientasyprocedimientos,que facilitanalgestorelcontrolelprocesodedesarrollo
ysuministranalosdesarrolladoresbasespara construir de forma productiva softwarede alta calidad.
Los métodosindican cómo construir técnicamenteelsoftware,yabarcan una
amplia serie de tareasque incluyen laplanificación yestimaciónde proyectos,elanálisis de
requisitos,eldiseñode estructurasde datos,programasyprocedimientos,lacodificación, las
pruebasyelmantenimiento.Losmétodosintroducenfrecuentementeuna notaciónespecí- ficapara
latareaencuestión yunaserie decriteriosdecalidad.
Las herramientasproporcionanun soporteautomáticoo semiautomático para
utilizarlosmétodos.Existen herramientasautomatizadaspara cadauna de las fasesvis- tas
anteriormente,ysistemasque integranlas herramientasdecadafase deforma que sirven para
todoelprocesodedesarrollo.EstasherramientassedenominanCASE(ComputerAssis-
tedSoftwareEngineering).
3. Losprocedimientosdefinen lasecuenciaen que seaplican losmétodos,
losdocumentosque serequieren,loscontrolesque permitenasegurarlacalidad ylasdirectrices
quepermitenalosgestoresevaluarlosprogresos.
METODOLOGIAS DE DESARROLLO DE SOFTWARE
Se puededefinirmétodocomo laordenaciónyexplicitación formalde los mediosque
conduceneficazmente allogrodeunobjetivopredeterminadoódeuna tareacon- creta.
Apartirdeestadefinición, sepuededecirque una metodologíaeselcon- juntodemétodosque
seusanenuna determinadaactividad conelfindeformalizarla yoptimizarla.
Las Metodologías de Desarrollo de Software surgen ante la necesidad de utilizar una serie de procedimientos,
técnicas, herramientas y soporte documental a la hora de desarrollar un producto software.
Dichas metodologías pretenden guiar a los desarrolladores al crear un nuevo software, pero los requisitos de un
software a otro son tan variados y cambiantes, que ha dado lugar a que exista una gran variedad de
metodologías para la creación del software.
Conjunto de métodos, de reglas, que por una parte sirven de guía para realizar los trabajos que van dando
forma a los desarrollos y que por otra obligan a la dirección del proyecto y a los componentes de los equipos a
realizar ciertas comprobaciones sistemáticas de modo que el resultado final, al menos desde un punto de vista
formal, no presente incoherencias y esté dirigido a un objetivo claro y prefijado
Es conjunto ordenado de pasos a seguir para llegar a la solución de un problema u obtención de unproducto (el
software), son también los pasos generales que sigue el proceso de desarrollo de unproducto software Las
metodologías de desarrollo de software son un conjunto de procedimientos, técnicas y ayudas a
ladocumentación para el desarrollo de productos software
Una metodología está compuesta por:
Cómo dividir un proyecto en etapas.
Qué tareas se llevan a cabo en cada etapa.
Qué restricciones deben aplicarse.
Qué técnicas y herramientas se emplean.
Cómo se controla y gestiona un proyecto
CLASIFICACIÒN DE DESARROLLO DE SOFTWARE
Las metodologías se clasifican de la siguiente forma:
Estructuradas.
Orientadas a procesos
Orientadas a datos
Mixtas
No estructuradas.
Orientadas a objetos
Sistemas de tiempo real
4. METODOLOGÍAS ESTRUCTURADAS
Se basan en la forma top-Down
-Metodologías orientadas a procesos
La ingeniería del software se basa en el modelo básico de entrada/proceso/salida de un sistema.
Está compuesta por:
Diagrama de flujo de datos (DFD).
Diccionario de datos.
Especificaciones de proceso.
Ejemplos: metodologías de DeMarco, Gene y Sarson, Yourdon.
-Metodologías orientadas a datos
Son metodologías basadas en la información. Primero se definen las estructuras de datos y, a partir de éstos, se
derivan los componentes procedimentales.
Ejemplos: metodologías de Jackson, Warnier, Warnier-Orr.
METODOLOGÍAS NO ESTRUCTURADAS
-Metodologías orientadas a objeto
La orientación a objetos unifica procesos y datos encapsulándolos en el concepto de objetos.
Tiene dos enfoques distintos:
Revolucionario, puro u ortodoxo. Rompen con las metodologías tradicionales.
Ejemplos: metodologías OOD de Booch, CRC/RDD de Wirfs-Brock.
Sintetista o evolutivo. Toman como base los sistemas estructurados y conforman elementos de uno y
otro tipo.
Ejemplos: metodología OMT de Rumbourgh.
-Sistemas de tiempo real
Procesan información orientada al control más que a los datos.
Se caracterizan por concurrencia, priorización de procesos, comunicación entre tareas y acceso simultáneo a
datos comunes.
5. CARACTERISTICAS DE UNA METODOLOGIA DE DESARROLLO DE SOFTWARE
☺ Existencia de reglas predefinidas
☺ Cobertura total del ciclo de desarrollo
☺ Verificaciones intermedias
☺ Planificación y control
☺ Comunicación efectiva
☺ Utilización sobre un abanico amplio de proyectos
☺ Fácil formación
☺ Herramientas CASE
☺ Actividades que mejoren el proceso de desarrollo
☺ Soporte al mantenimiento
☺ Soporte de la reutilización de software
Forma disciplinada de asignar tareas y responsabilidades (quién hace
qué, cuándo y cómo)
Pretende implementar las mejores prácticas en Ingeniería de
Software
Desarrollo iterativo
Administración de requisitos
Uso de arquitectura basada en componentes
Control de cambios
Modelado visual del software
Verificación de la calidad del software
A su vez la misma se caracteriza por ser iterativo e incremental, estar
centrado en la arquitectura y guiado por los casos de uso.
OBJETIVOS DE LA METODOLOGIAS DE SOFTWARE
Lograr la construcción de un sistema informático eficiente,
que cumpla con los requerimientos planteados, es una tarea realmente intensa y sobre todo difícil
de cumplir.
Imponer un proceso disciplinado sobre el desarrollo de software con el fin de hacerlo más
predecible y eficiente.
como principal objetivo aumentar la calidad del software que se produce en todas y cada una de sus
fases de desarrollo.
Mejores Aplicaciones
Un mejor Proceso de Desarrollo que identifique salidas (o
productos intermedios) de cada fase de forma que se pueda
planificar y controlar el proyecto
METODOLOGIAS DE DESARROLLO DE SOFTWARE TRADICIONALES
Estas metodologías tradicionales imponen una disciplina de trabajo sobre el proceso de desarrollo del software,
con el fin de conseguir un software más eficiente. Para ello, se hace énfasis en la planificación total de todo el
6. trabajo a realizar y una vez que está todo detallado, comienza el ciclo de desarrollo del producto software. Se
centran especialmente en el control del proceso, mediante una rigurosa definición de roles, actividades,
artefactos, herramientas y notaciones para el modelado y documentación detallada. Además, las metodologías
tradicionales no se adaptan adecuadamente a los cambios, por lo que no son métodos adecuados cuando se
trabaja en un entorno, donde los requisitos no pueden predecirse o bien pueden variar.
Entre las metodologías tradicionales podemos citar:
• RUP (Rational Unified Procces)
• MSF (Microsoft Solution Framework)
• Win-WinSpiralModel
• Iconix
Las necesidades de un cliente pueden sufrir cambios importantes del momento de contratación de un software
al momento de su entrega; y es mucho más importante satisfacer estas últimas que las primeras. Esto requiere
procesos de software diferentes que en lugar de rechazar los cambios sean capaces de incorporarlos.
METODOLOGIAS DE DESARROLLO DE SOFTWARE ÀGILES
Las metodologías ágiles proporcionan una serie de pautas y principios junto a técnicas pragmáticas que puede
que no curen todos los males pero harán la entrega del proyecto menos complicada y más satisfactoria tanto
para los clientes como para los equipos de entrega. En la figura 1 se muestran los principios que rigen el
desarrollo ágil.
Entre las metodologías ágiles más destacadas hasta el momento se pueden nombrar:
• XP (Extreme Programming)
• Scrum
• Crystal Clear
• DSDM (Dynamic Systems Developmemt Method)
• FDD (Feature Driven Development)
• ASD (Adaptive Software Development)
• XBreed
• Extreme Modeling
Ciclo devidadeldesarrollosoftware
Todo proyectode ingenieríatiene unos fines ligados a laobtenciónde un producto,
procesooservicio que esnecesariogeneraratravés dediversasactividades.Algunas deestas
actividadespuedenagruparseenfasesporqueglobalmentecontribuyenaobtenerunproducto
intermedio,necesariopara continuarhacia elproductofinalyfacilitarlagestión delproyecto.
Alconjunto delasfasesempleadasseledenomina“ciclodevida”.
7. Sinembargo,laforma de agruparlas actividades,losobjetivos de cadafase, lostipos
deproductosintermediosque segeneran,etc.Puedenser muydiferentesdependiendodeltipo
deproductooprocesoagenerarydelastecnologías empleadas.
Lacomplejidaddelasrelacionesentre lasdistintasactividades creceexponencialmente con
eltamaño,con loque rápidamenteseharía inabordablesinofuera porlaviejatáctica de
“divideyvencerás”.Deestaformaladivisióndelosproyectosenfasessucesivasesunprimer pasopara
lareduccióndesucomplejidad,tratándosedeescogerlaspartesdemaneraquesus relaciones entre
síseanlomás simples posibles.
8. Ladefinicióndeunciclodevidafacilitaelcontrolsobrelos tiemposenque esnece-
sarioaplicarrecursosdetodotipo(personal,equipos,suministros,etc.)alproyecto.
Elcontroldecalidadtambiénsevefacilitadosilaseparaciónentre fasessehaceco-
rrespondercon puntosen los que éstadebaverificarse(mediantecomprobacionessobrelos
productos parcialesobtenidos).
Por ciclodevidareferido aldesarrollosoftware,seentiendelasucesióndeetapaspor
lasquepasaelsoftwaredesdequeunnuevo proyectoesconcebidohastaquesedejadeusar.
Cadauna de estasetapasllevaasociadauna seriede tareasque debenrealizarse,y una serie
de documentos(en sentidoamplio: software)que seránlasalida de cadauna de
estasfasesyservirándeentradaenlafase siguiente.
Existen diversostipos de ciclode vida,esdecir, diversasformas de verelprocesode
desarrollode software,ycadauno de ellos va asociadoa un paradigmade laingenieríadel
software,esdecir,aunaserie demétodos,herramientasyprocedimientosquedebemosusar a
lolargodeunproyecto.
Laeleccióndeunparadigmauotroserealizadeacuerdoconlanaturalezadelproyectoydelaaplicaci
ón,losmétodosausar yloscontrolesyentregasrequeridos.
Ingenieríayanálisisdelsistema
Elsoftwareessiempreparte deunsistemamayor, porloque siemprevaainterrelacio- narsecon
otros elementos,yaseahardware,máquinasopersonas.Por esto, elprimer paso del ciclode vida de un
proyectoconsisteen un análisisde las característicasyelcomporta-
9. mientodelsistemadelcualelsoftwarevaaformarparte. Enelcasodequequeramosconstruir
unsistemanuevo, porejemplo unsistemadecontrol,deberemosanalizarcuálesson losrequi-
sitosylafuncióndelsistema,yluego seasignaránunsubconjuntode estosrequisitosalsoft- ware. En el
casode un sistema ya existente (supongamos, por ejemplo, que queremos informatizar una
empresa)sedebeanalizarelfuncionamientode lamisma −las operaciones que sellevan a cabo en
ella−, yasignaremosal softwareaquellas funcionesque vamosa automatizar.
Laingenieríadelsistemacomprende,portanto, losrequisitosglobalesaniveldelsis-tema,así
como una cierta cantidaddeanálisisydediseñoanivelsuperior,esdecirsinentrar enmucho detalle.
Análisisderequisitosdelsoftware
Elanálisisde requisitosdebeser más detalladopara aquelloscomponentesdelsiste- maque
vamosaimplementarmediantesoftware.Elingenierodelsoftware debecomprender cuálesson
losdatosque sevan amanejar,cuál vaaser lafunción que tiene que cumplirel software,cuálesson
lasinterfaces requeridosycuáleselrendimientoqueseesperalograr.
Los requisitos,tanto del sistemacomo del softwaredebendocumentarseyrevisarse
conelcliente.
Diseño
Eldiseñoseaplica acuatro característicasdistintasdelsoftware:laestructurade los
datos,laarquitecturade las aplicaciones,laestructurainterna de losprogramasylas interfa- ces.
Eldiseñoeselprocesoque traducelosrequisitosen una representacióndelsoftware de forma
que puedaconocerselaarquitectura,funcionalidade incluso lacalidad del mismo
antesdecomenzarlacodificación.
Aligualque elanálisis,eldiseñodebedocumentarseyforma parte de laconfigura- cióndel
software(elcontrol de configuracionesesloque nos permite realizar cambiosen el
softwaredeformacontroladaynotraumáticapara elcliente).
10. Codificación
Lacodificación consiste enlatraduccióndeldiseño aunformato quesealegiblepara la
máquina.Sieldiseñoeslosuficientementedetallado,lacodificación esrelativamentesencilla,
ypuedehacerse−almenosenparte− deformaautomática,usandogeneradoresdecódigo.
Podemosobservarque estasprimerasfasesdel ciclode vidaconsistenbásicamente en una
traducción:en elanálisisdelsistema,losrequisitos,lafunciónylaestructurade este
setraducenaundocumento:elanálisisdelsistemaqueestáformado enparte pordiagramas y enparte
pordescripcionesenlenguajenatural.Enelanálisisderequisitosseprofundizaenel
estudiodelcomponentesoftwaredelsistemayesto setraduceaundocumento,tambiénfor-
madopordiagramasydescripcionesen lenguajenatural.Eneldiseño,losrequisitosdelsoft-
waresetraducenauna serie dediagramasque representanlaestructuradelsistemasoftware, desus
datos,desus programasydesus interfaces.Por último,enlacodificación setraducen
estosdiagramasdediseñoaunlenguajefuente,que luego setraduce−secompila− para obte-
nerunprogramaejecutable.
Prueba
Unavezque yatenemoselprogramaejecutable,comienzalafase depruebas. Elobje-
tivoescomprobarque nosehayanproducidoerroresenalgunadelasfasesdetraducciónan-
teriores,especialmenteen lacodificación. Paraellodebenprobarsetodaslas sentencias,no
sóloloscasosnormalesytodos losmódulosqueformanparte delsistema.
Utilización
Una vez superadalafase de pruebas,elsoftwareseentregaalcliente ycomienzala
vidaútildelmismo. Lafasedeutilización sesolapaconlasposteriores−elmantenimientoyla
sustitución−ydurahastaqueelsoftware,yareemplazado porotro,dejedeutilizarse.
Mantenimiento
Elsoftwaresufrirácambiosalolargodesuvidaútil. Estoscambiospuedenser debidos
atrescausas:
−Que, durantelautilización, elcliente detecteerroresenelsoftware:loserroreslaten- tes.
−Que seproduzcancambiosen alguno de loscomponentesdelsistema informático:
porejemplo cambios enlamáquina, enelsistemaoperativooenlosperiféricos.
11. −Que el cliente
requieramodificacionesfuncionales(normalmenteampliaciones)no
contempladasenelproyecto.
Encualquiercaso,elmantenimientosuponevolveratrásen elciclode
vida,alas etapas
decodificación,diseñooanálisisdependiendodelamagnituddelcambio.
Elmodelo en cascada,a pesarde ser lineal, contieneflujos que permitenla
vuelta atrás.Así,desdeelmantenimientosevuelve
alanálisis,eldiseñoolacodificación,ytambién desdecualquierfase
sepuedevolveralaanterior sisedetectanfallos.
DiferenciasentreMetodología,CiclodeVidayMétodo
–Una Metodologíapuede seguir unoo varios modelos de
CiclodeVida
–UnCiclo de Vidaindicaqué obtener, pero nocómo
–UnaMetodologíaes unconcepto másamplioqueMétodo
ƒSepuedeconsiderarcomounconjuntodemétodos.
ƒUnametodologíapuedeenglobarunconjuntodemétodos(de
análisis,diseño,programación,etc.)paraabarcarelciclodevida
completo
Conclusiones
Recomendación
Una metodología para el desarrollo de software debe ser un instrumento
que permita gestionar un proceso dado, existen hoy en día diferentes
12. METODOLOGÍA DE DESARROLLO DE SOFTWARE 29 DE MAYO DE 2013
1
metodologías las cuales no son en forma absoluta comparable, es decir, no
existe en forma absoluta una metodología mejor a otra sino que la
metodología debe estar alineadas a la cultura de la organización, tamaño y
complejidad del proyecto, así como al ciclo de vida del producto que
pretende desarrollar.
Bibliografía
•AnálisisyDiseñodeSistemas.EditorialMcGraw-Hill.
•IngenieríadelSoftware.EditorialMcGraw-Hill.
•GAIL,Linda,CHRISTIE, John. Enciclopediade Términosde
Computación. Edito- rialPHH,PenticeHall.
•PHANTHU.MeriseApliquée.Eyrolles.
•MATHERON,Merise. Metodologíadedesarrollo
deSistemas.Paraninfo.
•FISHER, A.C.A.S.E.UsingSoftwareDevelopmentTools.Wiley.
•WILSON,P.ComputerSupportedCooperativeWork.IntellectOxford.
Anexos.