SlideShare ist ein Scribd-Unternehmen logo
1 von 7
¿SOFTWARE? ANALIZA Y DESARRÓLLALO

YADIRA MEDINA COMETA

SENA
ADSI
NEIVA 05/11/201
¿SOFTWARE? ANALIZA Y DESARRÓLLALO

YADIRA MEDINA COMETA
INSTRUCTOR: ROGER MAURICIO TOVAR

SENA
ADSI
NEIVA 05/11/201
¿SOFTWARE? ANALIZA Y DESARRÓLLALO

El tiempo pasa, mientras tanto en la nueva sociedad se van generando cambios
de todo tipo, el mundo no se queda quieto y cada día que transcurre es una
oportunidad más para que aquellos que deseen, lleven a cabo sus ideas, sus
proyectos; debido a esto la tecnología ha tenido un gran desarrollo lo que me hace
pensar en la importancia de conocer este tema. Lo que mencionaré más adelante
se centrará específicamente en todo lo referente al software como tecnología
informática, a las distintas metodologías y ciclos de vida de desarrollo que existen ,
haciendo especial hincapié en el desarrollo ágil.
¿Desarrollo de software? Probablemente muchos no tienen ni las más mínima
idea a lo que esto hace referencia, y es que en su momento yo estaba igual, no
significa que ahora soy una experta, pero de lo que pude añadir a mis
conocimientos lo compartiré con ustedes. En esta época en la que todo avanza,
más en el campo tecnológico yo creo que todos deberíamos adquirir
conocimientos acerca del tema, el avance tecnológico se ha convertido en un
aspecto muy importante para el mundo y en lo que, de hecho, se está basando la
nueva sociedad.
Ahora bien, comienzo por dar una definición de software: Software son
programas, datos y documentación asociados, relacionados con la operación de
un sistema informático, ¿qué significa esto? Significa que los programas
proporcionan la funcionalidad requerida, los datos prueban los programas y los
documentos describen las operaciones y uso del programa, como características
del software tenemos que es un elemento lógico; se desarrolla, no se fabrica; cada
software es diferente debido a que se constituyen para cumplir requisitos únicos
de un cliente, esto se logra mediante coordinación, es un esfuerzo en equipo. Un
software puede desarrollarse con éxito, así como puede fallar; cuando un software
es exitoso es porque se tuvo disciplina, es decir, se tuvo un enfoque de ingeniería;
así pues la ingeniería del software cuyo término apareció por primera vez en la
conferencia de software de la OTAN en 1968, son conocimientos y técnicas que
permiten aplicar el saber científico a la utilización de la materia y de las fuentes de
energía.
Ingeniería del software; ¿saben? No es una simple frase, abarca más de lo que
imaginamos. Partiré con el hecho de que desarrollar un software requiere, como lo
mencioné anteriormente, disciplina, ¿para qué disciplina? Depende del resultado
que usted espere, y la clase de resultado que deseamos es evidente. ¿Lo ven? No
es difícil deducir que para que un software resulte exitoso debe trabajarse en ello
de la manera más correcta usando lo necesario, y precisamente el objetivo
primario de la ingeniería del software es construir un producto de alta calidad de
una manera oportuna, añadiendo que representa un proceso formal que incorpora
una serie de métodos bien definidos para el análisis, diseño, implementación y
pruebas del software y sistemas. Por otro lado, a pesar de la importancia que tiene
la ingeniería del software muchos perciben y opinan que no es necesaria, he allí el
dilema; hoy en día la prioridad más alta de las compañías es reducir el tiempo de
salida al mercado, toman la ingeniería como demasiado formal que consume
demasiado tiempo lo contrario a lo que se desea, desarrollar productos en forma
rápida. Ahora podemos preguntarnos si entonces es recomendable usar la
ingeniería del software y por qué, y realmente el hecho es que las personas que
mencionan tales objeciones sobre la ingeniería es porque la consideran una
disciplina estática y piensan que no se puede adaptar a las necesidades
cambiantes del negocio y la industria, pero la verdad es, que sin embargo, la
ingeniería del software es adaptativa y por lo tanto, relevante para cualquiera que
construya un producto software; aparte de ser adaptable cuenta con un
compromiso organizacional con la calidad, identifica cambios que se traduzcan en
los mayores beneficios, y comienza a implementarlos.
Por consiguiente mencionaré algo muy interesante que es, los ciclos de vida de
desarrollo del software. Esto puede ser extraño para algunos; pero es como todo,
no solo la naturaleza ni los humanos, entre otros tienen un ciclo de vida. En fin,
retomando pasare a decir qué es un ciclo de vida, pues es un conjunto de fases
por las que pasa el sistema que se está desarrollando desde que nace la idea
inicial hasta que el software es retirado o remplazado (muere), este concepto
como ven, no es algo complicado de entender; ahora veamos que además los
ciclos de vida de desarrollo del software tienen modelos, existen varios pero yo les
mencionare los más tradicionales y utilizados.
Modelo cascada: se cree que fue el primer modelo de proceso introducido y
seguido ampliamente en la ingeniería del software. A pesar que ha sido
ampliamente criticado desde el ámbito académico y la industria, sigue siendo el
paradigma más seguido el día de hoy, y es precisamente porque lo han sabido
manejar, esto significa que para que el proyecto tenga éxito deben desarrollarse
todas las fases las cuales continúan hasta que los objetivos se han cumplido, si se
cambia el orden de las fases, el producto final será de inferior calidad.
Modelo en v: El modelo en v se desarrolló para terminar con algunos de los
problemas que se vieron utilizando el enfoque de cascada tradicional. Los
defectos estaban siendo encontrados demasiado tarde en el ciclo de vida, ya que
las pruebas no se introducían hasta el final del proyecto. El modelo en v dice que
las pruebas necesitan empezarse lo más pronto posible en el ciclo de vida. El
modelo en v describe las actividades y resultados que han de ser producidos
durante el desarrollo del producto. La parte izquierda de la v representa la
descomposición de los requisitos y la creación de las especificaciones del sistema.
El lado derecho de la v representa la integración de partes y su verificación. V
significa “Validación y Verificación”. Por ende es un modelo simple y fácil de
utilizar, tiene una alta oportunidad de éxito sobre el modelo en cascada debido al
desarrollo de planes de prueba en etapas tempranas del ciclo de vida.
Modo iterativo: Es un modelo derivado del ciclo de vida en cascada. Este modelo
busca reducir el riesgo que surge entre las necesidades del usuario y el producto
final por malos entendidos durante la etapa de recogida de requisitos. En otras
palabras la iteración consiste en el acto de repetir varios ciclos de vida en este
caso en cascada. El cliente es quien después de cada iteración evalúa el producto
y lo corrige o propone mejoras. Estas iteraciones se repetirán hasta obtener un
producto que satisfaga las necesidades del cliente.
Modelo de desarrollo incremental: El modelo incremental combina elementos
del modelo en cascada con la filosofía interactiva de construcción de prototipos.
Se basa en la filosofía de construir incrementando las funcionalidades del
programa. Este modelo aplica secuencias lineales de forma escalonada mientras
progresa el tiempo en el calendario. Cada secuencia lineal produce un incremento
del software. A modo de conclusión podemos decir que un modelo incremental
lleva a pensar en un desarrollo modular, con entregas parciales del producto
Software denominados "incrementos" del sistema, que son escogidos en base a
prioridades predefinidas de algún modo. El modelo permite una implementación
con
refinamientos
sucesivos
(ampliación
y/o
mejoras).
Con cada incremento se agrega nueva funcionalidad o se cubren nuevos
requisitos o bien se mejora la versión previamente implementada del producto
software.
Modelo en espiral: Las actividades de este modelo se conforman en una espiral,
cada bucle representa un conjunto de actividades. Las actividades no están fijadas
a priori, sino que las siguientes se eligen en función del análisis de riesgos,
comenzando por el bucle anterior. El ciclo de vida en espiral tiene en cuenta
fuertemente el riesgo que aparece a la hora de desarrollar software. Para ello, se
comienza mirando las posibles alternativas de desarrollo, se opta por la de riesgos
más asumibles y se hace un ciclo de la espiral. Si el cliente quiere seguir haciendo
mejoras en el software, se vuelven a evaluar las nuevas alternativas y riesgos y se
realiza otra vuelta de la espiral, así hasta que llegue un momento en el que el
producto software desarrollado sea aceptado y no necesite seguir mejorándose
con otro nuevo ciclo.
Modelo de prototipos: Un cliente, a menudo, define un conjunto de objetivos
generales para el software, pero no identifica los requisitos detallados de entrada,
proceso o salida. En otros casos, el responsable del desarrollo del software puede
no estar seguro de la eficiencia de un algoritmo, de la calidad de adaptación de un
sistema operativo, o de la forma en que debería tomarse la interacción hombremáquina; y es que el modelo de prototipos ofrece visibilidad del producto desde el
inicio del ciclo de vida con el primer prototipo. Esto puede ayudar al cliente a
definir mejor los requisitos y a ver las necesidades reales del producto. Permite
introducir cambios en las iteraciones siguientes del ciclo. Permite la realimentación
continua del cliente. En estas y en otras muchas situaciones, un paradigma de
construcción de prototipos puede ofrecer el mejor enfoque.
Muy bien, los conceptos no son tan difíciles de comprender como lo mencioné en
alguna ocasión, y es que cada quien toma por optar un modelo de acuerdo a las
características del proyecto teniendo en cuenta que todos los modelos tienen sus
ventajas y desventajas.
El desarrollo de software no es una tarea fácil. Prueba de ello es que existen
numerosas propuestas metodológicas que inciden en distintas dimensiones del
proceso de desarrollo. La metodología para el desarrollo de software en un modo
sistemático de realizar, gestionar y administrar un proyecto para llevarlo a cabo
con altas posibilidades de éxito, la metodología se refiere al entorno usado para
llevar a cabo todo el proceso de desarrollo de un sistema de información, decimos
que no existe una metodología universal para hacer frente con éxito a cualquier
proyecto de desarrollo de software. Toda metodología debe ser adaptada al
contexto del proyecto (recursos técnicos y humano, tiempo de desarrollo, tipo de
sistema, etc.) como nos indica la guía. Por un lado están las propuestas más
tradicionales las cuales han demostrado ser efectivas y necesarias, pero también
han presentado problemas en algunos proyectos. Algo que podríamos hacer para
mejorar, es incluir mas actividades, artefactos y restricciones centrándose en los
puntos débiles, esto conlleva a que el proceso sea más complejo por ende trae
sus desventajas. Otra aproximación es centrarse en otras dimensiones, como por
ejemplo el factor humano o el producto software, precisamente a esto es lo que
hace referencia específica las metodologías ágiles en su contenido, las cuales dan
un valor primordial al individuo, a la colaboración con el cliente y al desarrollo
incremental del software con iteraciones muy cortas. Este enfoque es de hecho
muy interesante ya que demuestra ser efectivo en proyectos con requisitos
cambiantes más aun cuando se requiere reducir en gran manera los tiempos eso
sí, manteniendo siempre una alta calidad. Es por esto que en la mayoría de casos
se tiene en cuenta la metodologías ágiles debido a su sencillez que por ende
reduce costos; sobra mencionar que existe una serie de inconvenientes y
restricciones que posee y que hay que tener en cuenta a la hora de utilizarla,
como por ejemplo que están dirigidas a equipos pequeños o medianos, debe
haber comunicación y colaboración entre todos los miembros del equipo durante
todo el tiempo, cualquier resistencia del cliente o del equipo de desarrollo hacia las
practicas y principios puede llevar el proceso al fracaso. Creo que con esto queda
más que claro lo referente a las metodologías, no significa que el tema no sea más
extenso, de hecho hay cosas de las cuales prescindí para mencionar en breve el
tema.
Espero que hayan sido aclaradas muchas dudas, es bueno tener en cuenta que
tanto la idea de un buen proyecto como su desarrollo es realizar un buen análisis
de lo que nos piden, usando las herramientas, restricciones, etc., adecuadas y
requeridas para obtener un producto de alta calidad y exitoso.

BIBLIOGRAFIA

GUIA DE INGENIERIA DEL SOFTWARE

Weitere ähnliche Inhalte

Was ist angesagt?

Desarrollo del software
Desarrollo del softwareDesarrollo del software
Desarrollo del softwarejotak1604
 
1 estado arte_software
1 estado arte_software 1 estado arte_software
1 estado arte_software Delita Paulina
 
Licenciatura en desarrollo de software
Licenciatura en desarrollo de softwareLicenciatura en desarrollo de software
Licenciatura en desarrollo de softwareignacio palacios
 
Ingenieria de software. (mitos, leyendas y factores)
Ingenieria de software. (mitos, leyendas y factores)Ingenieria de software. (mitos, leyendas y factores)
Ingenieria de software. (mitos, leyendas y factores)Marcos Omar Cruz Ortrega
 
Universidad tecnológica del estado de zacateca
Universidad tecnológica del estado de zacateca Universidad tecnológica del estado de zacateca
Universidad tecnológica del estado de zacateca elfranckin
 
Factores!!! (reparado) 222
Factores!!! (reparado) 222Factores!!! (reparado) 222
Factores!!! (reparado) 222brenddaa
 
Frank estaba ensayo.pdf
Frank estaba ensayo.pdfFrank estaba ensayo.pdf
Frank estaba ensayo.pdfID Z
 
Trabajo final calidad Adrian Aguilar / Jairo Martinez
Trabajo final calidad Adrian Aguilar / Jairo MartinezTrabajo final calidad Adrian Aguilar / Jairo Martinez
Trabajo final calidad Adrian Aguilar / Jairo MartinezJairo Martinez Molina
 
Licenciatura en desarrollo de software.
Licenciatura en desarrollo de software.Licenciatura en desarrollo de software.
Licenciatura en desarrollo de software.ignacio palacios
 
Enfoque de la ingeniería dentro de la informática
Enfoque de la ingeniería dentro de la informáticaEnfoque de la ingeniería dentro de la informática
Enfoque de la ingeniería dentro de la informáticaSamantha Arguello Valdes
 
A1 u1 tabla comparativa de organizaciones normalizadoras
A1 u1 tabla comparativa de organizaciones normalizadorasA1 u1 tabla comparativa de organizaciones normalizadoras
A1 u1 tabla comparativa de organizaciones normalizadorasSusi Perez Gallegos
 

Was ist angesagt? (20)

Mitos del software
Mitos del softwareMitos del software
Mitos del software
 
Desarrollo del software
Desarrollo del softwareDesarrollo del software
Desarrollo del software
 
1 estado arte_software
1 estado arte_software 1 estado arte_software
1 estado arte_software
 
Licenciatura en desarrollo de software
Licenciatura en desarrollo de softwareLicenciatura en desarrollo de software
Licenciatura en desarrollo de software
 
Reseña ponencia españoles
Reseña ponencia españolesReseña ponencia españoles
Reseña ponencia españoles
 
Ronald bello ing
Ronald bello ingRonald bello ing
Ronald bello ing
 
Ingenieria de software. (mitos, leyendas y factores)
Ingenieria de software. (mitos, leyendas y factores)Ingenieria de software. (mitos, leyendas y factores)
Ingenieria de software. (mitos, leyendas y factores)
 
INGENIERIA DE SOFTWARE
INGENIERIA DE SOFTWAREINGENIERIA DE SOFTWARE
INGENIERIA DE SOFTWARE
 
Universidad tecnológica del estado de zacateca
Universidad tecnológica del estado de zacateca Universidad tecnológica del estado de zacateca
Universidad tecnológica del estado de zacateca
 
Factores!!! (reparado) 222
Factores!!! (reparado) 222Factores!!! (reparado) 222
Factores!!! (reparado) 222
 
Mitos de-software.
Mitos de-software.Mitos de-software.
Mitos de-software.
 
Frank estaba ensayo.pdf
Frank estaba ensayo.pdfFrank estaba ensayo.pdf
Frank estaba ensayo.pdf
 
Trabajo final calidad Adrian Aguilar / Jairo Martinez
Trabajo final calidad Adrian Aguilar / Jairo MartinezTrabajo final calidad Adrian Aguilar / Jairo Martinez
Trabajo final calidad Adrian Aguilar / Jairo Martinez
 
Mitos del software
Mitos del softwareMitos del software
Mitos del software
 
Licenciatura en desarrollo de software.
Licenciatura en desarrollo de software.Licenciatura en desarrollo de software.
Licenciatura en desarrollo de software.
 
Mitos del software
Mitos del softwareMitos del software
Mitos del software
 
Enfoque de la ingeniería dentro de la informática
Enfoque de la ingeniería dentro de la informáticaEnfoque de la ingeniería dentro de la informática
Enfoque de la ingeniería dentro de la informática
 
Mahikel peñuela ensayo
Mahikel peñuela ensayoMahikel peñuela ensayo
Mahikel peñuela ensayo
 
Mariannysbermudez ing
Mariannysbermudez ingMariannysbermudez ing
Mariannysbermudez ing
 
A1 u1 tabla comparativa de organizaciones normalizadoras
A1 u1 tabla comparativa de organizaciones normalizadorasA1 u1 tabla comparativa de organizaciones normalizadoras
A1 u1 tabla comparativa de organizaciones normalizadoras
 

Ähnlich wie Ensayo ing. de software

Trabajo de sistemas de software
Trabajo de sistemas de softwareTrabajo de sistemas de software
Trabajo de sistemas de softwareJhonJairoPerez
 
Modelos de Ing de soft
Modelos de Ing de softModelos de Ing de soft
Modelos de Ing de softJazmin Cr
 
Ciclo de Vida del Software (Para SAIA)
Ciclo de Vida del Software (Para SAIA)Ciclo de Vida del Software (Para SAIA)
Ciclo de Vida del Software (Para SAIA)ManuelJimnez56
 
Modelos de Desarrollo
Modelos de DesarrolloModelos de Desarrollo
Modelos de DesarrolloALLSOFT
 
MODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWAREMODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWAREJesus Yepez
 
Zuleinis guerrero ensayo SISTEMAS 1
Zuleinis guerrero ensayo SISTEMAS 1Zuleinis guerrero ensayo SISTEMAS 1
Zuleinis guerrero ensayo SISTEMAS 1zuleinis23guerrero
 
Ciclo de vida del Software
Ciclo de vida del SoftwareCiclo de vida del Software
Ciclo de vida del Softwareximenatrabajos
 
Metodología Cascada
Metodología CascadaMetodología Cascada
Metodología CascadaJesus Zuñiga
 
II Corte Tarea 1 Presentación Slideshare (Metodología de Desarrollo de Sistemas)
II Corte Tarea 1 Presentación Slideshare (Metodología de Desarrollo de Sistemas)II Corte Tarea 1 Presentación Slideshare (Metodología de Desarrollo de Sistemas)
II Corte Tarea 1 Presentación Slideshare (Metodología de Desarrollo de Sistemas)anthonycaraballo6
 
1 ingeniería de software
1 ingeniería de software1 ingeniería de software
1 ingeniería de softwareUVM
 
Mariannys bermudez ensayo.pdf,
Mariannys bermudez ensayo.pdf,Mariannys bermudez ensayo.pdf,
Mariannys bermudez ensayo.pdf,mariannys bermudez
 
Modelos de desarrollo de software
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de softwareAlejandro Silva
 
metodologia de prototipos
metodologia de prototiposmetodologia de prototipos
metodologia de prototiposKeiner Valerio
 

Ähnlich wie Ensayo ing. de software (20)

Trabajo de sistemas de software
Trabajo de sistemas de softwareTrabajo de sistemas de software
Trabajo de sistemas de software
 
Modelos de Ing de soft
Modelos de Ing de softModelos de Ing de soft
Modelos de Ing de soft
 
Ciclo de Vida del Software (Para SAIA)
Ciclo de Vida del Software (Para SAIA)Ciclo de Vida del Software (Para SAIA)
Ciclo de Vida del Software (Para SAIA)
 
Inf162 diapositiva...
Inf162 diapositiva...Inf162 diapositiva...
Inf162 diapositiva...
 
Modelos de Desarrollo
Modelos de DesarrolloModelos de Desarrollo
Modelos de Desarrollo
 
MODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWAREMODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWARE
 
Zuleinis guerrero ensayo SISTEMAS 1
Zuleinis guerrero ensayo SISTEMAS 1Zuleinis guerrero ensayo SISTEMAS 1
Zuleinis guerrero ensayo SISTEMAS 1
 
Ciclo de vida del Software
Ciclo de vida del SoftwareCiclo de vida del Software
Ciclo de vida del Software
 
Metodología Cascada
Metodología CascadaMetodología Cascada
Metodología Cascada
 
Wen
WenWen
Wen
 
C iclos de vida del software
C iclos de vida del softwareC iclos de vida del software
C iclos de vida del software
 
SDLC.pptx
SDLC.pptxSDLC.pptx
SDLC.pptx
 
ciclo_de_vida_software
ciclo_de_vida_softwareciclo_de_vida_software
ciclo_de_vida_software
 
Modelos del software
Modelos del softwareModelos del software
Modelos del software
 
II Corte Tarea 1 Presentación Slideshare (Metodología de Desarrollo de Sistemas)
II Corte Tarea 1 Presentación Slideshare (Metodología de Desarrollo de Sistemas)II Corte Tarea 1 Presentación Slideshare (Metodología de Desarrollo de Sistemas)
II Corte Tarea 1 Presentación Slideshare (Metodología de Desarrollo de Sistemas)
 
Programacion 2
Programacion 2Programacion 2
Programacion 2
 
1 ingeniería de software
1 ingeniería de software1 ingeniería de software
1 ingeniería de software
 
Mariannys bermudez ensayo.pdf,
Mariannys bermudez ensayo.pdf,Mariannys bermudez ensayo.pdf,
Mariannys bermudez ensayo.pdf,
 
Modelos de desarrollo de software
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de software
 
metodologia de prototipos
metodologia de prototiposmetodologia de prototipos
metodologia de prototipos
 

Mehr von 574224

Sena mision vision
Sena mision visionSena mision vision
Sena mision vision574224
 
Mision vision sena
Mision vision senaMision vision sena
Mision vision sena574224
 
Mapa de procesos...
Mapa de procesos...Mapa de procesos...
Mapa de procesos...574224
 
Proyecto de vida
Proyecto de vidaProyecto de vida
Proyecto de vida574224
 
Reglamento del aprendiz
Reglamento del aprendizReglamento del aprendiz
Reglamento del aprendiz574224
 
Proyecto de vida
Proyecto de vidaProyecto de vida
Proyecto de vida574224
 
2 dominios previos yadira
2   dominios previos yadira2   dominios previos yadira
2 dominios previos yadira574224
 
3.1 exposición de conceptos.
3.1   exposición de conceptos.3.1   exposición de conceptos.
3.1 exposición de conceptos.574224
 
Diseño curricular
Diseño curricularDiseño curricular
Diseño curricular574224
 
Mapa de procesos...
Mapa de procesos...Mapa de procesos...
Mapa de procesos...574224
 

Mehr von 574224 (10)

Sena mision vision
Sena mision visionSena mision vision
Sena mision vision
 
Mision vision sena
Mision vision senaMision vision sena
Mision vision sena
 
Mapa de procesos...
Mapa de procesos...Mapa de procesos...
Mapa de procesos...
 
Proyecto de vida
Proyecto de vidaProyecto de vida
Proyecto de vida
 
Reglamento del aprendiz
Reglamento del aprendizReglamento del aprendiz
Reglamento del aprendiz
 
Proyecto de vida
Proyecto de vidaProyecto de vida
Proyecto de vida
 
2 dominios previos yadira
2   dominios previos yadira2   dominios previos yadira
2 dominios previos yadira
 
3.1 exposición de conceptos.
3.1   exposición de conceptos.3.1   exposición de conceptos.
3.1 exposición de conceptos.
 
Diseño curricular
Diseño curricularDiseño curricular
Diseño curricular
 
Mapa de procesos...
Mapa de procesos...Mapa de procesos...
Mapa de procesos...
 

Ensayo ing. de software

  • 1. ¿SOFTWARE? ANALIZA Y DESARRÓLLALO YADIRA MEDINA COMETA SENA ADSI NEIVA 05/11/201
  • 2. ¿SOFTWARE? ANALIZA Y DESARRÓLLALO YADIRA MEDINA COMETA INSTRUCTOR: ROGER MAURICIO TOVAR SENA ADSI NEIVA 05/11/201
  • 3. ¿SOFTWARE? ANALIZA Y DESARRÓLLALO El tiempo pasa, mientras tanto en la nueva sociedad se van generando cambios de todo tipo, el mundo no se queda quieto y cada día que transcurre es una oportunidad más para que aquellos que deseen, lleven a cabo sus ideas, sus proyectos; debido a esto la tecnología ha tenido un gran desarrollo lo que me hace pensar en la importancia de conocer este tema. Lo que mencionaré más adelante se centrará específicamente en todo lo referente al software como tecnología informática, a las distintas metodologías y ciclos de vida de desarrollo que existen , haciendo especial hincapié en el desarrollo ágil. ¿Desarrollo de software? Probablemente muchos no tienen ni las más mínima idea a lo que esto hace referencia, y es que en su momento yo estaba igual, no significa que ahora soy una experta, pero de lo que pude añadir a mis conocimientos lo compartiré con ustedes. En esta época en la que todo avanza, más en el campo tecnológico yo creo que todos deberíamos adquirir conocimientos acerca del tema, el avance tecnológico se ha convertido en un aspecto muy importante para el mundo y en lo que, de hecho, se está basando la nueva sociedad. Ahora bien, comienzo por dar una definición de software: Software son programas, datos y documentación asociados, relacionados con la operación de un sistema informático, ¿qué significa esto? Significa que los programas proporcionan la funcionalidad requerida, los datos prueban los programas y los documentos describen las operaciones y uso del programa, como características del software tenemos que es un elemento lógico; se desarrolla, no se fabrica; cada software es diferente debido a que se constituyen para cumplir requisitos únicos de un cliente, esto se logra mediante coordinación, es un esfuerzo en equipo. Un software puede desarrollarse con éxito, así como puede fallar; cuando un software es exitoso es porque se tuvo disciplina, es decir, se tuvo un enfoque de ingeniería; así pues la ingeniería del software cuyo término apareció por primera vez en la conferencia de software de la OTAN en 1968, son conocimientos y técnicas que permiten aplicar el saber científico a la utilización de la materia y de las fuentes de energía. Ingeniería del software; ¿saben? No es una simple frase, abarca más de lo que imaginamos. Partiré con el hecho de que desarrollar un software requiere, como lo mencioné anteriormente, disciplina, ¿para qué disciplina? Depende del resultado que usted espere, y la clase de resultado que deseamos es evidente. ¿Lo ven? No es difícil deducir que para que un software resulte exitoso debe trabajarse en ello
  • 4. de la manera más correcta usando lo necesario, y precisamente el objetivo primario de la ingeniería del software es construir un producto de alta calidad de una manera oportuna, añadiendo que representa un proceso formal que incorpora una serie de métodos bien definidos para el análisis, diseño, implementación y pruebas del software y sistemas. Por otro lado, a pesar de la importancia que tiene la ingeniería del software muchos perciben y opinan que no es necesaria, he allí el dilema; hoy en día la prioridad más alta de las compañías es reducir el tiempo de salida al mercado, toman la ingeniería como demasiado formal que consume demasiado tiempo lo contrario a lo que se desea, desarrollar productos en forma rápida. Ahora podemos preguntarnos si entonces es recomendable usar la ingeniería del software y por qué, y realmente el hecho es que las personas que mencionan tales objeciones sobre la ingeniería es porque la consideran una disciplina estática y piensan que no se puede adaptar a las necesidades cambiantes del negocio y la industria, pero la verdad es, que sin embargo, la ingeniería del software es adaptativa y por lo tanto, relevante para cualquiera que construya un producto software; aparte de ser adaptable cuenta con un compromiso organizacional con la calidad, identifica cambios que se traduzcan en los mayores beneficios, y comienza a implementarlos. Por consiguiente mencionaré algo muy interesante que es, los ciclos de vida de desarrollo del software. Esto puede ser extraño para algunos; pero es como todo, no solo la naturaleza ni los humanos, entre otros tienen un ciclo de vida. En fin, retomando pasare a decir qué es un ciclo de vida, pues es un conjunto de fases por las que pasa el sistema que se está desarrollando desde que nace la idea inicial hasta que el software es retirado o remplazado (muere), este concepto como ven, no es algo complicado de entender; ahora veamos que además los ciclos de vida de desarrollo del software tienen modelos, existen varios pero yo les mencionare los más tradicionales y utilizados. Modelo cascada: se cree que fue el primer modelo de proceso introducido y seguido ampliamente en la ingeniería del software. A pesar que ha sido ampliamente criticado desde el ámbito académico y la industria, sigue siendo el paradigma más seguido el día de hoy, y es precisamente porque lo han sabido manejar, esto significa que para que el proyecto tenga éxito deben desarrollarse todas las fases las cuales continúan hasta que los objetivos se han cumplido, si se cambia el orden de las fases, el producto final será de inferior calidad. Modelo en v: El modelo en v se desarrolló para terminar con algunos de los problemas que se vieron utilizando el enfoque de cascada tradicional. Los defectos estaban siendo encontrados demasiado tarde en el ciclo de vida, ya que las pruebas no se introducían hasta el final del proyecto. El modelo en v dice que las pruebas necesitan empezarse lo más pronto posible en el ciclo de vida. El
  • 5. modelo en v describe las actividades y resultados que han de ser producidos durante el desarrollo del producto. La parte izquierda de la v representa la descomposición de los requisitos y la creación de las especificaciones del sistema. El lado derecho de la v representa la integración de partes y su verificación. V significa “Validación y Verificación”. Por ende es un modelo simple y fácil de utilizar, tiene una alta oportunidad de éxito sobre el modelo en cascada debido al desarrollo de planes de prueba en etapas tempranas del ciclo de vida. Modo iterativo: Es un modelo derivado del ciclo de vida en cascada. Este modelo busca reducir el riesgo que surge entre las necesidades del usuario y el producto final por malos entendidos durante la etapa de recogida de requisitos. En otras palabras la iteración consiste en el acto de repetir varios ciclos de vida en este caso en cascada. El cliente es quien después de cada iteración evalúa el producto y lo corrige o propone mejoras. Estas iteraciones se repetirán hasta obtener un producto que satisfaga las necesidades del cliente. Modelo de desarrollo incremental: El modelo incremental combina elementos del modelo en cascada con la filosofía interactiva de construcción de prototipos. Se basa en la filosofía de construir incrementando las funcionalidades del programa. Este modelo aplica secuencias lineales de forma escalonada mientras progresa el tiempo en el calendario. Cada secuencia lineal produce un incremento del software. A modo de conclusión podemos decir que un modelo incremental lleva a pensar en un desarrollo modular, con entregas parciales del producto Software denominados "incrementos" del sistema, que son escogidos en base a prioridades predefinidas de algún modo. El modelo permite una implementación con refinamientos sucesivos (ampliación y/o mejoras). Con cada incremento se agrega nueva funcionalidad o se cubren nuevos requisitos o bien se mejora la versión previamente implementada del producto software. Modelo en espiral: Las actividades de este modelo se conforman en una espiral, cada bucle representa un conjunto de actividades. Las actividades no están fijadas a priori, sino que las siguientes se eligen en función del análisis de riesgos, comenzando por el bucle anterior. El ciclo de vida en espiral tiene en cuenta fuertemente el riesgo que aparece a la hora de desarrollar software. Para ello, se comienza mirando las posibles alternativas de desarrollo, se opta por la de riesgos más asumibles y se hace un ciclo de la espiral. Si el cliente quiere seguir haciendo mejoras en el software, se vuelven a evaluar las nuevas alternativas y riesgos y se realiza otra vuelta de la espiral, así hasta que llegue un momento en el que el producto software desarrollado sea aceptado y no necesite seguir mejorándose con otro nuevo ciclo.
  • 6. Modelo de prototipos: Un cliente, a menudo, define un conjunto de objetivos generales para el software, pero no identifica los requisitos detallados de entrada, proceso o salida. En otros casos, el responsable del desarrollo del software puede no estar seguro de la eficiencia de un algoritmo, de la calidad de adaptación de un sistema operativo, o de la forma en que debería tomarse la interacción hombremáquina; y es que el modelo de prototipos ofrece visibilidad del producto desde el inicio del ciclo de vida con el primer prototipo. Esto puede ayudar al cliente a definir mejor los requisitos y a ver las necesidades reales del producto. Permite introducir cambios en las iteraciones siguientes del ciclo. Permite la realimentación continua del cliente. En estas y en otras muchas situaciones, un paradigma de construcción de prototipos puede ofrecer el mejor enfoque. Muy bien, los conceptos no son tan difíciles de comprender como lo mencioné en alguna ocasión, y es que cada quien toma por optar un modelo de acuerdo a las características del proyecto teniendo en cuenta que todos los modelos tienen sus ventajas y desventajas. El desarrollo de software no es una tarea fácil. Prueba de ello es que existen numerosas propuestas metodológicas que inciden en distintas dimensiones del proceso de desarrollo. La metodología para el desarrollo de software en un modo sistemático de realizar, gestionar y administrar un proyecto para llevarlo a cabo con altas posibilidades de éxito, la metodología se refiere al entorno usado para llevar a cabo todo el proceso de desarrollo de un sistema de información, decimos que no existe una metodología universal para hacer frente con éxito a cualquier proyecto de desarrollo de software. Toda metodología debe ser adaptada al contexto del proyecto (recursos técnicos y humano, tiempo de desarrollo, tipo de sistema, etc.) como nos indica la guía. Por un lado están las propuestas más tradicionales las cuales han demostrado ser efectivas y necesarias, pero también han presentado problemas en algunos proyectos. Algo que podríamos hacer para mejorar, es incluir mas actividades, artefactos y restricciones centrándose en los puntos débiles, esto conlleva a que el proceso sea más complejo por ende trae sus desventajas. Otra aproximación es centrarse en otras dimensiones, como por ejemplo el factor humano o el producto software, precisamente a esto es lo que hace referencia específica las metodologías ágiles en su contenido, las cuales dan un valor primordial al individuo, a la colaboración con el cliente y al desarrollo incremental del software con iteraciones muy cortas. Este enfoque es de hecho muy interesante ya que demuestra ser efectivo en proyectos con requisitos cambiantes más aun cuando se requiere reducir en gran manera los tiempos eso sí, manteniendo siempre una alta calidad. Es por esto que en la mayoría de casos se tiene en cuenta la metodologías ágiles debido a su sencillez que por ende reduce costos; sobra mencionar que existe una serie de inconvenientes y
  • 7. restricciones que posee y que hay que tener en cuenta a la hora de utilizarla, como por ejemplo que están dirigidas a equipos pequeños o medianos, debe haber comunicación y colaboración entre todos los miembros del equipo durante todo el tiempo, cualquier resistencia del cliente o del equipo de desarrollo hacia las practicas y principios puede llevar el proceso al fracaso. Creo que con esto queda más que claro lo referente a las metodologías, no significa que el tema no sea más extenso, de hecho hay cosas de las cuales prescindí para mencionar en breve el tema. Espero que hayan sido aclaradas muchas dudas, es bueno tener en cuenta que tanto la idea de un buen proyecto como su desarrollo es realizar un buen análisis de lo que nos piden, usando las herramientas, restricciones, etc., adecuadas y requeridas para obtener un producto de alta calidad y exitoso. BIBLIOGRAFIA GUIA DE INGENIERIA DEL SOFTWARE