ensayo ing. de software

10
¿SOFTWARE? ANALIZA Y DESARRÓLLALO YADIRA MEDINA COMETA SENA

Upload: 574224

Post on 02-Aug-2015

49 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ensayo ing. de software

¿SOFTWARE? ANALIZA Y DESARRÓLLALO

YADIRA MEDINA COMETA

SENA

ADSI

NEIVA 05/11/201

Page 2: Ensayo ing. de software

¿SOFTWARE? ANALIZA Y DESARRÓLLALO

YADIRA MEDINA COMETA

INSTRUCTOR: ROGER MAURICIO TOVAR

SENA

ADSI

NEIVA 05/11/201

Page 3: Ensayo ing. de software

¿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

Page 4: Ensayo ing. de software

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

Page 5: Ensayo ing. de software

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.

Page 6: Ensayo ing. de software

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 hombre-má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

Page 7: Ensayo ing. de software

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