SlideShare una empresa de Scribd logo
En la ingeniería del software el término fases de desarrollo expresa cómo ha 
progresado el desarrollo de un software y cuánto desarrollo puede requerir. Cada 
versión importante de un producto pasa generalmente a través de una etapa en la 
que se agregan las nuevas características (etapa alfa), después una etapa donde 
se eliminan errores activamente (etapa beta), y finalmente una etapa en donde se 
han quitado todos los bugs importantes (etapa estable). Las etapas intermedias 
pueden también ser reconocidas. Las etapas se pueden anunciar y regular 
formalmente por los desarrolladores del producto, pero los términos se utilizan a 
veces de manera informal para describir el estado de un producto. Normalmente 
muchas compañías usan nombres en clave para las versiones antes del 
lanzamiento de un producto, aunque el producto y las características reales son 
raramente secretas. 
Fases para la elaboración de un programa informático 
He decidido crear este documento para que todos tengamos claros las fases que 
tiene la creación de una aplicación, así que sin más voy al grano. 
El desarrollo de un programa o de un conjunto de aplicaciones se basa en un 
concepto llamado ciclo de vida. Son una serie de etapas o fases que hay que 
seguir secuencialmente. 
Las fases o etapas son: 
• Análisis. 
 Diseño y arqui tectura 
 Programación 
 Pruebas 
 Documentación 
 Mantenimiento 
 Codificación o construcción. 
• Implantación o explotación.
ANÁLISIS 
En esta fase se establece el producto a desarrollar, siendo necesario especificar los procesos y 
estructuras de datos que se van a emplear. Debe existir una gran comunicación entre el usuario 
y el analista para poder conocer todas las necesidades que precisa la aplicación. En el caso de 
falta de información por parte del usuario se puede recurrir al desarrollo de prototipos para saber 
con más precisión sus requerimientos. 
En el análisis estructurado se pueden emplear varias técnicas como: 
Diagramas de flujo de datos: Sirven para conocer el comportamiento del sistema mediante 
representaciones gráficas. 
Modelos de datos: Sirven para conocer las estructuras de datos y sus características. (Entidad 
relación y formas normales) 
Diccionario de datos: Sirven para describir todos los objetos utilizados en los gráficos, así como 
las estructuras de datos. 
Definición de los interfaces de usuario: Sirven para determinar la información de entrada y salida 
de datos. 
Al final de esta fase tenemos que tener claro las especificaciones de la aplicación. 
Diseño y arquitectura 
Se refiere a determinar como funcionará de forma general sin entrar en detalles. Consiste en 
incorporar consideraciones de la implementación tecnológica, como el hardware, la red, etc. Se 
definen los Casos de Uso para cubrir las funciones que realizará el sistema, y se transforman las 
entidades definidas en el análisis de requisitos en clases de diseño, obteniendo un modelo 
cercano a la programación orientada a objetos.
Programación 
Reducir un diseño a código puede ser la parte más obvia del trabajo de ingeniería de software, 
pero no es necesariamente la porción más larga. La complejidad y la duración de esta etapa 
está intimamente ligada al o a los lenguajes de programación utilizados. 
Pruebas 
Consiste en comprobar que el software realice correctamente las tareas indicadas en la 
especificación. Una técnica de prueba es probar por separado cada módulo del software, y luego 
probarlo de forma integral,para así llegar al objetivo. Se considera una buena practica el que las 
pruebas sean efectuadas por alguien distinto al desarrollador que la programó, idealmente un 
área de pruebas; sin perjuicio de lo anterior el programador debe hacer sus propias pruebas. En 
general hay dos grandes formas de organizar un area de pruebas, la primera es que esté 
compuesta por personal inexperto y que desconozca el tema de pruebas, de esta forma se 
evalúa que la documentación entregada sea de calidad, que los procesos descritos son tan 
claros que cualquiera puede entenderlos y el software hace las cosas tal y como están descritas. 
El segundo enfoque es tener un area de pruebas conformada por programadores con 
experiencia, personas que saben sin mayores indicaciones en que condiciones puede fallar una 
aplicación y que pueden poner atención en detalles que personal inexperto no consideraría. 
Documentación 
Todo lo concerniente a la documentación del propio desarrollo del software y de la gestión del 
proyecto, pasando por modelaciones (UML), diagramas, pruebas, manuales de usuario, 
manuales técnicos, etc; todo con el propósito de eventuales correcciones, usabilidad, 
mantenimiento futuro y ampliaciones al sistema. 
Mantenimiento 
Mantener y mejorar el software para enfrentar errores descubiertos y nuevos requisitos. Esto 
puede llevar más tiempo incluso que el desarrollo inicial del software. Alrededor de 2/3 de toda la 
ingeniería de software tiene que ver con dar mantenimiento. Una pequeña parte de este trabajo 
consiste en arreglar errores, o bugs. La mayor parte consiste en extender el sistema para hacer 
nuevas cosas. 
CODIFICACIÓN 
Consiste en traducir los resultados obtenidos a un determinado lenguaje de programación,
teniendo en cuenta las especificaciones obtenidas en el cuaderno de carga. Se deben de 
realizar las pruebas necesarias para comprobar la calidad y estabilidad del programa. 
Las pruebas se pueden clasificar en: 
Pruebas unitarias: Sirven para comprobar que cada módulo realice bien su tarea. 
Pruebas de interconexión: Sirven para comprobar en el programa el buen funcionamiento en 
conjunto de todos sus módulos. 
Pruebas de integración: Sirven para comprobar el funcionamiento correcto del conjunto de 
programas que forman la aplicación. (el funcionamiento de todo el sistema) 
EXPLOTACIÓN 
En esta fase se realiza la implantación de la aplicación en el sistema o sistemas físicos donde 
van a funcionar habitualmente y su puesta en marcha para comprobar el buen funcionamiento.
Actividades a tener en cuenta o realizar: 
• Instalación del/los programa/s. 
• Pruebas de aceptación al nuevo sistema. 
• Conversión de la información del antiguo sistema al nuevo (si hay una aplicación 
antigua) 
• Eliminación del sistema anterior. 
Al final de esta fase se debe de completar la información al usuario respecto al nuevo sistema y 
su uso. Así como facilitarle toda la documentación necesaria para una correcta explotación del 
sistema (manual de ayuda, manual de uso, guía de la aplicación, etc.) 
Análisis de requisitos 
Extraer los requisitos de un producto de software es la primera etapa para crearlo. Mientras que 
los clientes piensan que ellos saben lo que el software tiene que hacer, se requiere de habilidad 
y experiencia en la ingeniería de software para reconocer requisitos incompletos, ambiguos o 
contradictorios. El resultado del análisis de requisitos con el cliente se plasma en el documento 
ERS, Especificación de Requerimientos del Sistema, cuya estructura puede venir definida por 
varios estándares, tales como CMM-I. Asimismo, se define un diagrama de Entidad/Relación, en 
el que se plasman las principales entidades que participarán en el desarrollo del software. La 
captura, análisis y especificación de requisitos (incluso pruebas de ellos), es una parte crucial; 
de esta etapa depende en gran medida el logro de los objetivos finales. Se han ideado modelos 
y diversos procesos de trabajo para estos fines. Aunque aun no está formalizada, ya se habla de 
la Ingeniería de Requisitos. La IEEE Std. 830-1998 normaliza la creación de las Especificaciones 
de Requisitos Software (Software Requirements Specification).
Elaborado por: Graciela González Medina MCA: Margarita Romero Alvarado

Más contenido relacionado

La actualidad más candente

Jose gpe act4
Jose gpe act4Jose gpe act4
Jose gpe act4
lupinmtzrincon
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software'Jorge Martinez
 
Verificación y Validación del Diseño
Verificación y Validación del DiseñoVerificación y Validación del Diseño
Verificación y Validación del Diseño
Juan Pablo Bustos Thames
 
Presentación de software
Presentación de softwarePresentación de software
Presentación de software
IINSTITUTO TECNOLOGICO CENTROAMERICANO
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
T.I.C
 
Ciclos de vida del software
Ciclos de vida del softwareCiclos de vida del software
Ciclos de vida del softwareGUEOVANNY20
 
Fases en el desarrollo de un programa
Fases en el desarrollo de un programaFases en el desarrollo de un programa
Fases en el desarrollo de un programa
Beydasanchezhernandez
 
Fases de un proyecto de desarrollo de software
Fases de un proyecto de desarrollo de softwareFases de un proyecto de desarrollo de software
Fases de un proyecto de desarrollo de software
Eugenio Del Pozo Dipre
 
Desarrollo de software diapositiva
Desarrollo  de software diapositivaDesarrollo  de software diapositiva
Desarrollo de software diapositivaNorma Rodriguez
 
Software & Hardware Erick
Software & Hardware ErickSoftware & Hardware Erick
Software & Hardware Erickerick
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
marianela0393
 
Modelo espiral win win
Modelo espiral win winModelo espiral win win
Modelo espiral win winkhinkhe
 
Definición de ingeniería del software
Definición de ingeniería del softwareDefinición de ingeniería del software
Definición de ingeniería del software
hdfkjshdkf
 
Modelo V
Modelo VModelo V
Modelo V
Melissa Ortega
 

La actualidad más candente (18)

Jose gpe act4
Jose gpe act4Jose gpe act4
Jose gpe act4
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software
 
Verificación y Validación del Diseño
Verificación y Validación del DiseñoVerificación y Validación del Diseño
Verificación y Validación del Diseño
 
Presentación de software
Presentación de softwarePresentación de software
Presentación de software
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
 
Ciclos de vida del software
Ciclos de vida del softwareCiclos de vida del software
Ciclos de vida del software
 
Modelos de proceso de software
Modelos de proceso de softwareModelos de proceso de software
Modelos de proceso de software
 
Fases en el desarrollo de un programa
Fases en el desarrollo de un programaFases en el desarrollo de un programa
Fases en el desarrollo de un programa
 
Fases de un proyecto de desarrollo de software
Fases de un proyecto de desarrollo de softwareFases de un proyecto de desarrollo de software
Fases de un proyecto de desarrollo de software
 
Capitulo2
Capitulo2Capitulo2
Capitulo2
 
Desarrollo de software diapositiva
Desarrollo  de software diapositivaDesarrollo  de software diapositiva
Desarrollo de software diapositiva
 
Modelo cascada
Modelo cascadaModelo cascada
Modelo cascada
 
Software & Hardware Erick
Software & Hardware ErickSoftware & Hardware Erick
Software & Hardware Erick
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Modelo espiral win win
Modelo espiral win winModelo espiral win win
Modelo espiral win win
 
Definición de ingeniería del software
Definición de ingeniería del softwareDefinición de ingeniería del software
Definición de ingeniería del software
 
Modelo V
Modelo VModelo V
Modelo V
 
MetodologíAs Y Ciclos De Vida
MetodologíAs Y Ciclos De VidaMetodologíAs Y Ciclos De Vida
MetodologíAs Y Ciclos De Vida
 

Similar a XXXS

Análisis de requisitos
Análisis de requisitosAnálisis de requisitos
Análisis de requisitos
Elizabeth Reyna
 
Modelo de cascadaa
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaamendez45
 
ciclo-de-vida-de-un-software (1).pptx
ciclo-de-vida-de-un-software (1).pptxciclo-de-vida-de-un-software (1).pptx
ciclo-de-vida-de-un-software (1).pptx
Nicolas Ormeño
 
Ensayo de software
Ensayo de softwareEnsayo de software
Ensayo de software
Nixon Gomez
 
Tarea 2 de fundamentos del computador
Tarea 2 de fundamentos del computadorTarea 2 de fundamentos del computador
Tarea 2 de fundamentos del computador
Diogenes Gomez Santana
 
Proceso de desarrollo de si
Proceso de desarrollo de siProceso de desarrollo de si
Proceso de desarrollo de siDidier Alexander
 
Software
SoftwareSoftware
Fundamentos del computado2
Fundamentos del computado2Fundamentos del computado2
Fundamentos del computado2
Pedro Torres
 
Tarea 3 fundamentos del computador
Tarea 3 fundamentos del computador Tarea 3 fundamentos del computador
Tarea 3 fundamentos del computador
Ramis Collado Ramirez
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
michellchia11
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobarEdwin Alexander
 
Etapas del diseño .pdf
Etapas del diseño .pdfEtapas del diseño .pdf
Etapas del diseño .pdf
JonathanSevilla10
 
Ensayo Software
Ensayo SoftwareEnsayo Software
Ensayo Softwaremarialej90
 
Analiss de sistemas
Analiss de sistemasAnaliss de sistemas
Analiss de sistemas
Jessica Quilca
 
Analiss de sistemas
Analiss de sistemasAnaliss de sistemas
Analiss de sistemas
Jessica Quilca
 
FASES DEL DESARROLLO DE UN PROGRAMA
FASES DEL DESARROLLO DE UN PROGRAMAFASES DEL DESARROLLO DE UN PROGRAMA
FASES DEL DESARROLLO DE UN PROGRAMA
Brendita Martinez
 
Software & Hardware Erick
Software & Hardware ErickSoftware & Hardware Erick
Software & Hardware Erickerick
 
Edwin merma 5 c
Edwin merma 5 cEdwin merma 5 c
Edwin merma 5 c
podoskil
 
Tipos de software
Tipos de softwareTipos de software
Tipos de software
59681271
 

Similar a XXXS (20)

Análisis de requisitos
Análisis de requisitosAnálisis de requisitos
Análisis de requisitos
 
Modelo de cascadaa
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaa
 
ciclo-de-vida-de-un-software (1).pptx
ciclo-de-vida-de-un-software (1).pptxciclo-de-vida-de-un-software (1).pptx
ciclo-de-vida-de-un-software (1).pptx
 
Ensayo de software
Ensayo de softwareEnsayo de software
Ensayo de software
 
Metodologia Programación
Metodologia ProgramaciónMetodologia Programación
Metodologia Programación
 
Tarea 2 de fundamentos del computador
Tarea 2 de fundamentos del computadorTarea 2 de fundamentos del computador
Tarea 2 de fundamentos del computador
 
Proceso de desarrollo de si
Proceso de desarrollo de siProceso de desarrollo de si
Proceso de desarrollo de si
 
Software
SoftwareSoftware
Software
 
Fundamentos del computado2
Fundamentos del computado2Fundamentos del computado2
Fundamentos del computado2
 
Tarea 3 fundamentos del computador
Tarea 3 fundamentos del computador Tarea 3 fundamentos del computador
Tarea 3 fundamentos del computador
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobar
 
Etapas del diseño .pdf
Etapas del diseño .pdfEtapas del diseño .pdf
Etapas del diseño .pdf
 
Ensayo Software
Ensayo SoftwareEnsayo Software
Ensayo Software
 
Analiss de sistemas
Analiss de sistemasAnaliss de sistemas
Analiss de sistemas
 
Analiss de sistemas
Analiss de sistemasAnaliss de sistemas
Analiss de sistemas
 
FASES DEL DESARROLLO DE UN PROGRAMA
FASES DEL DESARROLLO DE UN PROGRAMAFASES DEL DESARROLLO DE UN PROGRAMA
FASES DEL DESARROLLO DE UN PROGRAMA
 
Software & Hardware Erick
Software & Hardware ErickSoftware & Hardware Erick
Software & Hardware Erick
 
Edwin merma 5 c
Edwin merma 5 cEdwin merma 5 c
Edwin merma 5 c
 
Tipos de software
Tipos de softwareTipos de software
Tipos de software
 

Más de Joselyn Aguirre

Presentacion del video (1)
Presentacion del video (1)Presentacion del video (1)
Presentacion del video (1)
Joselyn Aguirre
 
Fondo de-pantalla
Fondo de-pantallaFondo de-pantalla
Fondo de-pantalla
Joselyn Aguirre
 
Presentacion del video
Presentacion del videoPresentacion del video
Presentacion del video
Joselyn Aguirre
 
Como subir una_imagen_eclipse
Como subir una_imagen_eclipseComo subir una_imagen_eclipse
Como subir una_imagen_eclipse
Joselyn Aguirre
 
Presentación12
Presentación12Presentación12
Presentación12
Joselyn Aguirre
 
Presentación13
Presentación13Presentación13
Presentación13
Joselyn Aguirre
 
Presentación11 vejc
Presentación11 vejc Presentación11 vejc
Presentación11 vejc
Joselyn Aguirre
 
Tutoria
TutoriaTutoria
Programa5
Programa5Programa5
Programa5
Joselyn Aguirre
 

Más de Joselyn Aguirre (20)

Presentacion del video (1)
Presentacion del video (1)Presentacion del video (1)
Presentacion del video (1)
 
Fondo de-pantalla
Fondo de-pantallaFondo de-pantalla
Fondo de-pantalla
 
Presentacion del video
Presentacion del videoPresentacion del video
Presentacion del video
 
Video
VideoVideo
Video
 
Como subir una_imagen_eclipse
Como subir una_imagen_eclipseComo subir una_imagen_eclipse
Como subir una_imagen_eclipse
 
Presentación12
Presentación12Presentación12
Presentación12
 
Presentación13
Presentación13Presentación13
Presentación13
 
Programa14
Programa14Programa14
Programa14
 
Programa5
Programa5Programa5
Programa5
 
Presentación11 vejc
Presentación11 vejc Presentación11 vejc
Presentación11 vejc
 
Programa 10
Programa 10Programa 10
Programa 10
 
sPrograma 9
sPrograma 9sPrograma 9
sPrograma 9
 
Programa8
Programa8Programa8
Programa8
 
Programa4
Programa4Programa4
Programa4
 
Programa 6
Programa 6Programa 6
Programa 6
 
Tutoria
TutoriaTutoria
Tutoria
 
Programa5
Programa5Programa5
Programa5
 
Programa 6
Programa 6Programa 6
Programa 6
 
Programa 2
Programa 2Programa 2
Programa 2
 
Programa 1
Programa 1Programa 1
Programa 1
 

Último

experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
cuentauniversidad34
 
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA  DE TRABAJO DE CREACION DE TABLAS EN WORDFICHA  DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
RobertSotilLujn
 
Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMs
Federico Toledo
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docx
lasocharfuelan123
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
infografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de softwareinfografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de software
oscartorres960914
 

Último (10)

experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
 
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA  DE TRABAJO DE CREACION DE TABLAS EN WORDFICHA  DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
 
Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMs
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docx
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
infografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de softwareinfografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de software
 

XXXS

  • 1. En la ingeniería del software el término fases de desarrollo expresa cómo ha progresado el desarrollo de un software y cuánto desarrollo puede requerir. Cada versión importante de un producto pasa generalmente a través de una etapa en la que se agregan las nuevas características (etapa alfa), después una etapa donde se eliminan errores activamente (etapa beta), y finalmente una etapa en donde se han quitado todos los bugs importantes (etapa estable). Las etapas intermedias pueden también ser reconocidas. Las etapas se pueden anunciar y regular formalmente por los desarrolladores del producto, pero los términos se utilizan a veces de manera informal para describir el estado de un producto. Normalmente muchas compañías usan nombres en clave para las versiones antes del lanzamiento de un producto, aunque el producto y las características reales son raramente secretas. Fases para la elaboración de un programa informático He decidido crear este documento para que todos tengamos claros las fases que tiene la creación de una aplicación, así que sin más voy al grano. El desarrollo de un programa o de un conjunto de aplicaciones se basa en un concepto llamado ciclo de vida. Son una serie de etapas o fases que hay que seguir secuencialmente. Las fases o etapas son: • Análisis.  Diseño y arqui tectura  Programación  Pruebas  Documentación  Mantenimiento  Codificación o construcción. • Implantación o explotación.
  • 2. ANÁLISIS En esta fase se establece el producto a desarrollar, siendo necesario especificar los procesos y estructuras de datos que se van a emplear. Debe existir una gran comunicación entre el usuario y el analista para poder conocer todas las necesidades que precisa la aplicación. En el caso de falta de información por parte del usuario se puede recurrir al desarrollo de prototipos para saber con más precisión sus requerimientos. En el análisis estructurado se pueden emplear varias técnicas como: Diagramas de flujo de datos: Sirven para conocer el comportamiento del sistema mediante representaciones gráficas. Modelos de datos: Sirven para conocer las estructuras de datos y sus características. (Entidad relación y formas normales) Diccionario de datos: Sirven para describir todos los objetos utilizados en los gráficos, así como las estructuras de datos. Definición de los interfaces de usuario: Sirven para determinar la información de entrada y salida de datos. Al final de esta fase tenemos que tener claro las especificaciones de la aplicación. Diseño y arquitectura Se refiere a determinar como funcionará de forma general sin entrar en detalles. Consiste en incorporar consideraciones de la implementación tecnológica, como el hardware, la red, etc. Se definen los Casos de Uso para cubrir las funciones que realizará el sistema, y se transforman las entidades definidas en el análisis de requisitos en clases de diseño, obteniendo un modelo cercano a la programación orientada a objetos.
  • 3. Programación Reducir un diseño a código puede ser la parte más obvia del trabajo de ingeniería de software, pero no es necesariamente la porción más larga. La complejidad y la duración de esta etapa está intimamente ligada al o a los lenguajes de programación utilizados. Pruebas Consiste en comprobar que el software realice correctamente las tareas indicadas en la especificación. Una técnica de prueba es probar por separado cada módulo del software, y luego probarlo de forma integral,para así llegar al objetivo. Se considera una buena practica el que las pruebas sean efectuadas por alguien distinto al desarrollador que la programó, idealmente un área de pruebas; sin perjuicio de lo anterior el programador debe hacer sus propias pruebas. En general hay dos grandes formas de organizar un area de pruebas, la primera es que esté compuesta por personal inexperto y que desconozca el tema de pruebas, de esta forma se evalúa que la documentación entregada sea de calidad, que los procesos descritos son tan claros que cualquiera puede entenderlos y el software hace las cosas tal y como están descritas. El segundo enfoque es tener un area de pruebas conformada por programadores con experiencia, personas que saben sin mayores indicaciones en que condiciones puede fallar una aplicación y que pueden poner atención en detalles que personal inexperto no consideraría. Documentación Todo lo concerniente a la documentación del propio desarrollo del software y de la gestión del proyecto, pasando por modelaciones (UML), diagramas, pruebas, manuales de usuario, manuales técnicos, etc; todo con el propósito de eventuales correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema. Mantenimiento Mantener y mejorar el software para enfrentar errores descubiertos y nuevos requisitos. Esto puede llevar más tiempo incluso que el desarrollo inicial del software. Alrededor de 2/3 de toda la ingeniería de software tiene que ver con dar mantenimiento. Una pequeña parte de este trabajo consiste en arreglar errores, o bugs. La mayor parte consiste en extender el sistema para hacer nuevas cosas. CODIFICACIÓN Consiste en traducir los resultados obtenidos a un determinado lenguaje de programación,
  • 4. teniendo en cuenta las especificaciones obtenidas en el cuaderno de carga. Se deben de realizar las pruebas necesarias para comprobar la calidad y estabilidad del programa. Las pruebas se pueden clasificar en: Pruebas unitarias: Sirven para comprobar que cada módulo realice bien su tarea. Pruebas de interconexión: Sirven para comprobar en el programa el buen funcionamiento en conjunto de todos sus módulos. Pruebas de integración: Sirven para comprobar el funcionamiento correcto del conjunto de programas que forman la aplicación. (el funcionamiento de todo el sistema) EXPLOTACIÓN En esta fase se realiza la implantación de la aplicación en el sistema o sistemas físicos donde van a funcionar habitualmente y su puesta en marcha para comprobar el buen funcionamiento.
  • 5. Actividades a tener en cuenta o realizar: • Instalación del/los programa/s. • Pruebas de aceptación al nuevo sistema. • Conversión de la información del antiguo sistema al nuevo (si hay una aplicación antigua) • Eliminación del sistema anterior. Al final de esta fase se debe de completar la información al usuario respecto al nuevo sistema y su uso. Así como facilitarle toda la documentación necesaria para una correcta explotación del sistema (manual de ayuda, manual de uso, guía de la aplicación, etc.) Análisis de requisitos Extraer los requisitos de un producto de software es la primera etapa para crearlo. Mientras que los clientes piensan que ellos saben lo que el software tiene que hacer, se requiere de habilidad y experiencia en la ingeniería de software para reconocer requisitos incompletos, ambiguos o contradictorios. El resultado del análisis de requisitos con el cliente se plasma en el documento ERS, Especificación de Requerimientos del Sistema, cuya estructura puede venir definida por varios estándares, tales como CMM-I. Asimismo, se define un diagrama de Entidad/Relación, en el que se plasman las principales entidades que participarán en el desarrollo del software. La captura, análisis y especificación de requisitos (incluso pruebas de ellos), es una parte crucial; de esta etapa depende en gran medida el logro de los objetivos finales. Se han ideado modelos y diversos procesos de trabajo para estos fines. Aunque aun no está formalizada, ya se habla de la Ingeniería de Requisitos. La IEEE Std. 830-1998 normaliza la creación de las Especificaciones de Requisitos Software (Software Requirements Specification).
  • 6. Elaborado por: Graciela González Medina MCA: Margarita Romero Alvarado