SlideShare uma empresa Scribd logo
1 de 34
1
Para el desarrollo del software:
Métodos
Herramientas
Consideraciones Generales:
Ciclo de Vida del Software
Modelos
Análisis Requerimientos
Prototipaje
2
Método del ciclo de vida clásico:
Actividades que son realizadas por el analista para desarrollar e implantar un
sistema.
Método de desarrollo por análisis estructurado:
Incorpora elementos tanto de análisis como de diseño.
Especifica lo que se requiere que haga el sistema o la aplicación.
Permite que las personas observen los elementos lógicos (lo que hará el sistema)
separados de los componentes físicos (computadora, terminales, sistemas de
almacenamiento, etc.).
Desarrolla un diseño físico eficiente para la situación donde será utilizado.
Es un método para el análisis de sistemas manuales o automatizados, que conduce
al desarrollo de especificaciones para sistemas nuevos o para efectuar
modificaciones a los ya existentes.
Métodos para desarrollar software
3
Métodos para desarrollar software
Método del desarrollo por prototipos:
Pueden desarrollarse con métodos y lenguajes de programación
convencionales
Los informes no tienen un encabezados, logos, etc., faltan controles de
entradas y procesamiento. Lo importante es el ensayo, y hallar los
requerimientos.
Métodos de análisis orientado a objetos:
Es un método de análisis que examina los requerimientos desde la
perspectiva de las clases y objetos
Se basa en conceptos como objetos y atributos, clases y miembros un
todo y partes.
4
Herramientas para desarrollar software
Las herramientas de desarrollo de software diseñan y construyen
aplicaciones y dan soporte al desarrollo e implantación de las mismas.
1.Calidad del Software
Herramientas que tratan todos los aspectos de
la calidad de software: funcionalidad, fiabilidad
y rendimiento.
2. Construcción y Diseño
Herramientas para la arquitectura y el
modelado, el desarrollo dirigido por modelos,
componentes, verificación de componentes,
actividades de análisis de ejecución.
3. Gestión de cambios y configuración
Gestión del ciclo de vida de los activos, como
la automatización de procesos, el control de
cambios, el rastreo y los informes.
4. Gestión de proceso y portafolio
Herramientas integradas para gestionar
requisitos, modelos y pruebas, implementar un
proceso de desarrollo y progresos de informes
y valoraciones.
5. Requisitos y análisis
Herramientas integradas para la gestión de
requisitos, de desarrollo de casos de estudio,
los modelos de negocios y modelos de datos.
5
Herramientas para desarrollar software
Herramientas para análisis
Éstas herramientas ayudan a los especialistas en sistemas a documentar un
sistema existente, ya sea manual o automatizado. También sirve para
determinar los requerimientos de una nueva aplicación. Incluye:
Herramientas para recolección de datos: capturan detalles que
describen sistemas y procedimientos en uso. Documentan procesos y
actividades de decisión, se utilizan para apoyar la tarea de identificar
requerimientos.
Herramientas para diagramación: crean representaciones gráficas de
sistemas y actividades. Apoyan el dibujo y revisión de diagramas de flujos
de datos e iconos asociados con el análisis estructurado. Incluyen
programas para representación en diagramas de flujo.
6
Herramientas para desarrollar software
Herramientas CASE :(Computer Aided/Assisted Software/System Engineering) se
puede definir como:
“ el conjunto de herramientas y metodologías que soportan un enfoque de
ingeniería para las distintas fases del desarrollo de software”
En primer lugar se suele distinguir, atendiendo a la fase del ciclo de vida que
soportan, entre:
•CASE frontales ("front-end") o superiores ("Upper CASE"), abarcan las primeras
fases de análisis y diseño. Automatizan las primeras actividades del proceso de
desarrollo de sistemas. Esta herramienta proporciona soporte para el desarrollo de
modelos gráficos de sistemas y procesos. Los diagramas de flujo son representativos
de este tipo de herramientas.
•CASE dorsales ("back-end") o inferiores ("Lower CASE"), cuyo objetivo suele ser
el diseño detallado y la generación de código
Categorias de herramientas CASE mas frecuentes:
a)Herramientas de análisis y diseño
b) Generación de código y documentación
c)Herramientas de prueba
d)Herramientas de gestión de configuración
e) Herramientas de ingeniería inversa
Herramientas de prototipado:Como son los diseñadores de pantallas, generadores
de menús, generadores de informes y lenguajes de especificación ejecutables.
7
Actividades en el proceso de desarrollo de
software
Para desarrollar un producto de software se
realizan diversas actividades que se estructuran y
relacionan de acuerdo a un modelo y se
desarrollan siguiendo un método.
Los modelos
encadenan las diversas
actividades
8
Actividades usuales
9
Acerca de las actividades
La ingeniería de requerimientos es el proceso que
lleva a la especificación del software
Los procesos de diseño e implementación
transforman la especificación en un programa
ejecutable
La validación involucra chequear que el sistema
cumple su especificación y las expectativas del
usuario
La evolución concierne con la modificación del
sistema después que está en uso
10
Las actividades en el proceso de desarrollo de
software :
se relacionan conformando
se desarrollan aplicando
El método se fundamenta en
El método puede ser soportado por
principio(s) - método(s) - herramienta(s) - modelo(s)
un modelo
un método
principios
herramientas
11
Ciclo de vida del software
Comprensión del
problema
Desarrollo del
software
Liberación del
producto
Análisis del
problema
12
Mantenimiento
del producto
...casi siempre...!!
Transición
Ciclo de vida del software
13
Obsolescencia del producto
Fin del ciclo de vida
14
¿Cómo encadenar las actividades del proceso de desarrollo
de software?
Modelos (ciclo de vida)
Ej.: Modelo de la cascada, UP....
¿Cómo realizar las actividades del proceso de desarrollo de
software?
Métodos
Ej.: Orientado a objeto, ...
¿Cuáles principios se aplican en el proceso de desarrollo de
software?
Ej.: Incrementable, iterativo,...
Actividades – Modelos - Procesos
15
Modelos de desarrollo de software
 La cascada
Separa y secuencia las fases
 Evolutivo
Especificación y desarrollo son intercalados
 De transformaciones
Un modelo formal del sistema es transformado en otro
modelo de más bajo nivel de abstracción
 Basado en reuso
El sistema es producto de ensamblaje de componentes
16
Análisis de
Requerimientos
Diseño del
Sistema
Diseño de
Programas
Construcción
de Programas
Validación
de componentes
Validación
del Sistema
Mantenimiento
Liberación
Integración
¿Cuál modelo han usado?
17
Modelo de la cascada
• Encadenamiento
secuencial de las
actividades
• Cada etapa produce
documentos que son la
entrada a la siguiente
• Para desarrollar una etapa
debe concluirse la anterior
• Popular en la década 70.
Análisis de
requerimientos
Diseño
Implementación
Validación de
componentes
Integración y
validación del
sistema
Liberación y
mantenimiento
18
Modelo de la cascada (cont.)
• El modelo original no se
adapta a ciertas
aplicaciones
• Los costos al descubrir
errores en etapas
avanzadas son muy altos
• Es rígido
• Se incorporan variantes
al modelo.
Análisis de
requerimientos
Diseño
Implementación
Validación de
componentes
Integración y
validación del
sistema
Liberación y
mantenimiento
19
Análisis de requerimientos
Datos provistos por
los expertos en el
dominio y usuarios
potenciales
Documentos
orientados al
usuario y útiles
para el analista:
Es una actividad
requerida en
cualquier
modelo
- Comprensibles
- Precisos
- Completos
- Consistentes
- Fáciles de modificar
20
Análisis de requerimientos
Identificar el problema
Documentar los requerimientos
Involucrar a los usuarios y expertos en el dominio
de aplicación (requiere diálogo y comunicación)
Existen estándares para la especificación de los
requerimientos
Esta actividad puede mantenerse a lo largo del
proceso.
21
Requerimientos de software:
sub áreas
1. Proceso de ingeniería de requerimientos:
modelos de proceso, actores, soporte y gerencia y mejora
de calidad de proceso
2. Captura de requerimientos:
origen de requerimientos, como capturarlos; incluye
fuentes y técnicas.
3. Análisis de requerimientos:
Detectar y resolver conflictos. Limites del sistema y como
interactúa con el medio. Trasladar requerimientos de
sistema a requerimientos de software
22
4.Especificación de requerimientos de software:
Calidad, estructura y verificabilidad del documento de
especificación
5.Validación de requerimientos:
Proceso para examinar documento de requerimientos a fin
de asegurar que define el sistema esperado.
6.Gerencia de requerimientos:
Abarca todo el ciclo de vida. Gerencia de cambios y
mantenimiento de requerimientos de software
Requerimientos de software:
sub áreas
23
Prototipaje
Resultados
parciales del
análisis
Prototipo
(esbozo parcial, no
definitivo,..)
Desarrollo rápido de
partes del sistema
Prototipo
-a nivel de la interfaz
- a nivel de componentes
del sistema
24
 Esbozo parcial de partes del sistema
 Permite experimentar
 Permite validar y precisar la especificación de
requerimientos y características del futuro sistema
 Indispensable para el desarrollo de la interfaz
 Indispensable en el modelo evolutivo.
Prototipaje
25
Especificación
Datos resultantes del
análisis de requerimientos
y consideraciones técnicas
Descripción
orientada al
desarrollador
Describe en
forma precisa
el sistema a
desarrollar
26
Diseño
Resultados del
análisis, de la
especificación y
consideraciones
técnicas
Descripción
detallada
orientada al
implementador
Constituye un
refinamiento
del análisis
27
Programación
Diseño y
consideraciones
técnicas
Componentes de
programas
-Código - en un LP
“echar código”...
28
Integración y gestión de configuraciones
Componentes de
programa
Ensamblaje de
versiones coherentes
de
los componentes
Obtener el
sistema
ejecutable
29
Validación y verificación
Documentos
(textos, programas,
etc)
Documentos
validados/
verificados
Permite
determinar la
confiabilidad o
correctitud del
producto
30
Validación: el software responde a lo que espera
el usuario
•Verificación: el software satisface la
especificación
•Técnicas diversas :
–Pruebas formales: garantizar que el programa
satisface la especificación
–Chequeo “testing” : búsqueda de errores en los
componentes, en la integración, en el sistema
–Pruebas de usabilidad: “medir” la satisfacción del
usuario al usar el producto
Validación y verificación
31
Tipos de pruebas
•Test unitario
Chequeo de componentes individuales
•Test de módulo
Chequeo de colecciones de componentes dependientes
•Test de sub-sistemas
Prueba de Módulos integrados en sub-sistemas .
El centro es la prueba de las interfaces
•Test de sistemas
Se prueba el sistema como un todo
•Test de aceptación
Pruebas con datos del cliente para chequear las expectativas
del usuario
32
Prueba de software
•Verificación dinámica del comportamiento de un programa sobre un
número finito de casos de prueba seleccionados del dominio de
ejecuciones usualmente infinito.
•Conceptos básicos: terminología, fundamentos teóricos, relaciones de la
prueba con otras actividades.
•Técnicas de prueba: criterios para la generación de datos de prueba.
•Mediciones relacionadas con pruebas: evaluación de programa en prueba,
evaluación de las pruebas realizadas
•Gerencia: tópicos gerenciales y de actividades de prueba
33
Mantenimiento de software
• Conceptos básicos: definiciones, actividades y
problemas de mantenimiento
• Procesos de mantenimiento basados en estándares
• Factores clave: técnicos, gerenciales, costos,
estimaciones y mediciones
• Técnicas: incluyen comprensión de programas,
reingeniería, ingeniería reversa y análisis de
impacto
Bibliografía
- Ghezzi &al, “Fundamentals of Software
Engineering”. PrenticeHall. Cap.7
- Sommerville . Ingeniería de software.
Addison Wesley 2002. Cap. 3

Mais conteúdo relacionado

Semelhante a clases3metodmetodlgiaherra.ppt

Ciclo Vida Sw
Ciclo Vida SwCiclo Vida Sw
Ciclo Vida Sw
msc080277
 
Curso ingeniería de software parte i
Curso ingeniería de software parte iCurso ingeniería de software parte i
Curso ingeniería de software parte i
parafernalico
 

Semelhante a clases3metodmetodlgiaherra.ppt (20)

Ciclo Vida Sw
Ciclo Vida SwCiclo Vida Sw
Ciclo Vida Sw
 
Respuestas de analisis de sistema
Respuestas de analisis de sistemaRespuestas de analisis de sistema
Respuestas de analisis de sistema
 
Ciclo de vida
Ciclo de vidaCiclo de vida
Ciclo de vida
 
Ciclo de vida
Ciclo de vidaCiclo de vida
Ciclo de vida
 
unidad 4
unidad 4unidad 4
unidad 4
 
Modelos de proceso del software-Metodologias de Desarrollo de Software.pdf
Modelos de proceso del software-Metodologias de Desarrollo de Software.pdfModelos de proceso del software-Metodologias de Desarrollo de Software.pdf
Modelos de proceso del software-Metodologias de Desarrollo de Software.pdf
 
Curso ingeniería de software parte i
Curso ingeniería de software parte iCurso ingeniería de software parte i
Curso ingeniería de software parte i
 
unidad 4..
unidad 4..unidad 4..
unidad 4..
 
Sistemas De Informacion IV
Sistemas De Informacion IVSistemas De Informacion IV
Sistemas De Informacion IV
 
Ciclo de vida y diseño de sistemas de informacion
Ciclo de vida y diseño de sistemas de informacionCiclo de vida y diseño de sistemas de informacion
Ciclo de vida y diseño de sistemas de informacion
 
Metodología de desarrollo
Metodología de desarrolloMetodología de desarrollo
Metodología de desarrollo
 
Ciclo de Vida y roles
Ciclo de Vida y roles Ciclo de Vida y roles
Ciclo de Vida y roles
 
ALEXIS GARCIA
ALEXIS GARCIAALEXIS GARCIA
ALEXIS GARCIA
 
Presentaciã³n1
Presentaciã³n1Presentaciã³n1
Presentaciã³n1
 
Acti deaprendizaje equipo_software1
Acti deaprendizaje equipo_software1Acti deaprendizaje equipo_software1
Acti deaprendizaje equipo_software1
 
Modelos de Proceso de Software
Modelos de Proceso de SoftwareModelos de Proceso de Software
Modelos de Proceso de Software
 
Fundamentos de ingenieria de software - metodologias.pdf
Fundamentos de ingenieria de software - metodologias.pdfFundamentos de ingenieria de software - metodologias.pdf
Fundamentos de ingenieria de software - metodologias.pdf
 
AMSI
AMSIAMSI
AMSI
 
Ciclo De Vida De Los Sistemas
Ciclo De Vida De Los SistemasCiclo De Vida De Los Sistemas
Ciclo De Vida De Los Sistemas
 
Ciclo De Vida De Los Sistemas
Ciclo De Vida De Los SistemasCiclo De Vida De Los Sistemas
Ciclo De Vida De Los Sistemas
 

Mais de ronald flores

520313818-Metodologias-Agiles.pptx
520313818-Metodologias-Agiles.pptx520313818-Metodologias-Agiles.pptx
520313818-Metodologias-Agiles.pptx
ronald flores
 
539818872-Metodologia-Agile.pptx
539818872-Metodologia-Agile.pptx539818872-Metodologia-Agile.pptx
539818872-Metodologia-Agile.pptx
ronald flores
 
492830746-Metodologias-Agiles-Detalle.ppt
492830746-Metodologias-Agiles-Detalle.ppt492830746-Metodologias-Agiles-Detalle.ppt
492830746-Metodologias-Agiles-Detalle.ppt
ronald flores
 
docdownloader.com-pdf-metodologias-para-el-desarrollo-de-software-y-sistemas-...
docdownloader.com-pdf-metodologias-para-el-desarrollo-de-software-y-sistemas-...docdownloader.com-pdf-metodologias-para-el-desarrollo-de-software-y-sistemas-...
docdownloader.com-pdf-metodologias-para-el-desarrollo-de-software-y-sistemas-...
ronald flores
 
492822989-Metodologias-de-Desarrollo-de-Software.pptx
492822989-Metodologias-de-Desarrollo-de-Software.pptx492822989-Metodologias-de-Desarrollo-de-Software.pptx
492822989-Metodologias-de-Desarrollo-de-Software.pptx
ronald flores
 
Huamanchumo Becerra Heily Indira.pdf
Huamanchumo Becerra Heily Indira.pdfHuamanchumo Becerra Heily Indira.pdf
Huamanchumo Becerra Heily Indira.pdf
ronald flores
 
Santiago Trujillo Piter Marcelino.pdf
Santiago Trujillo Piter Marcelino.pdfSantiago Trujillo Piter Marcelino.pdf
Santiago Trujillo Piter Marcelino.pdf
ronald flores
 
507690503-Lab09-Uso-de-Reproductor-en-AppInventor.pdf
507690503-Lab09-Uso-de-Reproductor-en-AppInventor.pdf507690503-Lab09-Uso-de-Reproductor-en-AppInventor.pdf
507690503-Lab09-Uso-de-Reproductor-en-AppInventor.pdf
ronald flores
 
especificaciones+de+caso+de+uso+versión+2.0.pdf
especificaciones+de+caso+de+uso+versión+2.0.pdfespecificaciones+de+caso+de+uso+versión+2.0.pdf
especificaciones+de+caso+de+uso+versión+2.0.pdf
ronald flores
 
Dialnet-FactoresQueAfectanLaParticipacionDeLosEstudiantesA-3167969.pdf
Dialnet-FactoresQueAfectanLaParticipacionDeLosEstudiantesA-3167969.pdfDialnet-FactoresQueAfectanLaParticipacionDeLosEstudiantesA-3167969.pdf
Dialnet-FactoresQueAfectanLaParticipacionDeLosEstudiantesA-3167969.pdf
ronald flores
 
Presentation first-steps (1)
Presentation first-steps (1)Presentation first-steps (1)
Presentation first-steps (1)
ronald flores
 
Presentation events-management (1)
Presentation events-management (1)Presentation events-management (1)
Presentation events-management (1)
ronald flores
 

Mais de ronald flores (17)

520313818-Metodologias-Agiles.pptx
520313818-Metodologias-Agiles.pptx520313818-Metodologias-Agiles.pptx
520313818-Metodologias-Agiles.pptx
 
539818872-Metodologia-Agile.pptx
539818872-Metodologia-Agile.pptx539818872-Metodologia-Agile.pptx
539818872-Metodologia-Agile.pptx
 
492830746-Metodologias-Agiles-Detalle.ppt
492830746-Metodologias-Agiles-Detalle.ppt492830746-Metodologias-Agiles-Detalle.ppt
492830746-Metodologias-Agiles-Detalle.ppt
 
docdownloader.com-pdf-metodologias-para-el-desarrollo-de-software-y-sistemas-...
docdownloader.com-pdf-metodologias-para-el-desarrollo-de-software-y-sistemas-...docdownloader.com-pdf-metodologias-para-el-desarrollo-de-software-y-sistemas-...
docdownloader.com-pdf-metodologias-para-el-desarrollo-de-software-y-sistemas-...
 
492822989-Metodologias-de-Desarrollo-de-Software.pptx
492822989-Metodologias-de-Desarrollo-de-Software.pptx492822989-Metodologias-de-Desarrollo-de-Software.pptx
492822989-Metodologias-de-Desarrollo-de-Software.pptx
 
Huamanchumo Becerra Heily Indira.pdf
Huamanchumo Becerra Heily Indira.pdfHuamanchumo Becerra Heily Indira.pdf
Huamanchumo Becerra Heily Indira.pdf
 
Santiago Trujillo Piter Marcelino.pdf
Santiago Trujillo Piter Marcelino.pdfSantiago Trujillo Piter Marcelino.pdf
Santiago Trujillo Piter Marcelino.pdf
 
507690503-Lab09-Uso-de-Reproductor-en-AppInventor.pdf
507690503-Lab09-Uso-de-Reproductor-en-AppInventor.pdf507690503-Lab09-Uso-de-Reproductor-en-AppInventor.pdf
507690503-Lab09-Uso-de-Reproductor-en-AppInventor.pdf
 
especificaciones+de+caso+de+uso+versión+2.0.pdf
especificaciones+de+caso+de+uso+versión+2.0.pdfespecificaciones+de+caso+de+uso+versión+2.0.pdf
especificaciones+de+caso+de+uso+versión+2.0.pdf
 
Dialnet-FactoresQueAfectanLaParticipacionDeLosEstudiantesA-3167969.pdf
Dialnet-FactoresQueAfectanLaParticipacionDeLosEstudiantesA-3167969.pdfDialnet-FactoresQueAfectanLaParticipacionDeLosEstudiantesA-3167969.pdf
Dialnet-FactoresQueAfectanLaParticipacionDeLosEstudiantesA-3167969.pdf
 
Presentation first-steps (1)
Presentation first-steps (1)Presentation first-steps (1)
Presentation first-steps (1)
 
Presentation events-management
Presentation events-managementPresentation events-management
Presentation events-management
 
Presentation events-management (1)
Presentation events-management (1)Presentation events-management (1)
Presentation events-management (1)
 
Presentation data
Presentation dataPresentation data
Presentation data
 
Presentation data (1)
Presentation data (1)Presentation data (1)
Presentation data (1)
 
Presentation course
Presentation coursePresentation course
Presentation course
 
Presentation course (1)
Presentation course (1)Presentation course (1)
Presentation course (1)
 

Último

Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdfAntenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
perezreyesalberto10
 

Último (6)

Biología Células Musculares presentación
Biología Células Musculares presentaciónBiología Células Musculares presentación
Biología Células Musculares presentación
 
Presentacion Seguridad y Privacidad en la Web
Presentacion Seguridad y Privacidad en la WebPresentacion Seguridad y Privacidad en la Web
Presentacion Seguridad y Privacidad en la Web
 
Corte de luz 2024 Guayaquil Guayas ecuad
Corte de luz 2024 Guayaquil Guayas ecuadCorte de luz 2024 Guayaquil Guayas ecuad
Corte de luz 2024 Guayaquil Guayas ecuad
 
Emprende en SPA Segundo día CENEC Mexico
Emprende en SPA Segundo día CENEC MexicoEmprende en SPA Segundo día CENEC Mexico
Emprende en SPA Segundo día CENEC Mexico
 
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdfAntenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
 
¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...
¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...
¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...
 

clases3metodmetodlgiaherra.ppt

  • 1. 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje
  • 2. 2 Método del ciclo de vida clásico: Actividades que son realizadas por el analista para desarrollar e implantar un sistema. Método de desarrollo por análisis estructurado: Incorpora elementos tanto de análisis como de diseño. Especifica lo que se requiere que haga el sistema o la aplicación. Permite que las personas observen los elementos lógicos (lo que hará el sistema) separados de los componentes físicos (computadora, terminales, sistemas de almacenamiento, etc.). Desarrolla un diseño físico eficiente para la situación donde será utilizado. Es un método para el análisis de sistemas manuales o automatizados, que conduce al desarrollo de especificaciones para sistemas nuevos o para efectuar modificaciones a los ya existentes. Métodos para desarrollar software
  • 3. 3 Métodos para desarrollar software Método del desarrollo por prototipos: Pueden desarrollarse con métodos y lenguajes de programación convencionales Los informes no tienen un encabezados, logos, etc., faltan controles de entradas y procesamiento. Lo importante es el ensayo, y hallar los requerimientos. Métodos de análisis orientado a objetos: Es un método de análisis que examina los requerimientos desde la perspectiva de las clases y objetos Se basa en conceptos como objetos y atributos, clases y miembros un todo y partes.
  • 4. 4 Herramientas para desarrollar software Las herramientas de desarrollo de software diseñan y construyen aplicaciones y dan soporte al desarrollo e implantación de las mismas. 1.Calidad del Software Herramientas que tratan todos los aspectos de la calidad de software: funcionalidad, fiabilidad y rendimiento. 2. Construcción y Diseño Herramientas para la arquitectura y el modelado, el desarrollo dirigido por modelos, componentes, verificación de componentes, actividades de análisis de ejecución. 3. Gestión de cambios y configuración Gestión del ciclo de vida de los activos, como la automatización de procesos, el control de cambios, el rastreo y los informes. 4. Gestión de proceso y portafolio Herramientas integradas para gestionar requisitos, modelos y pruebas, implementar un proceso de desarrollo y progresos de informes y valoraciones. 5. Requisitos y análisis Herramientas integradas para la gestión de requisitos, de desarrollo de casos de estudio, los modelos de negocios y modelos de datos.
  • 5. 5 Herramientas para desarrollar software Herramientas para análisis Éstas herramientas ayudan a los especialistas en sistemas a documentar un sistema existente, ya sea manual o automatizado. También sirve para determinar los requerimientos de una nueva aplicación. Incluye: Herramientas para recolección de datos: capturan detalles que describen sistemas y procedimientos en uso. Documentan procesos y actividades de decisión, se utilizan para apoyar la tarea de identificar requerimientos. Herramientas para diagramación: crean representaciones gráficas de sistemas y actividades. Apoyan el dibujo y revisión de diagramas de flujos de datos e iconos asociados con el análisis estructurado. Incluyen programas para representación en diagramas de flujo.
  • 6. 6 Herramientas para desarrollar software Herramientas CASE :(Computer Aided/Assisted Software/System Engineering) se puede definir como: “ el conjunto de herramientas y metodologías que soportan un enfoque de ingeniería para las distintas fases del desarrollo de software” En primer lugar se suele distinguir, atendiendo a la fase del ciclo de vida que soportan, entre: •CASE frontales ("front-end") o superiores ("Upper CASE"), abarcan las primeras fases de análisis y diseño. Automatizan las primeras actividades del proceso de desarrollo de sistemas. Esta herramienta proporciona soporte para el desarrollo de modelos gráficos de sistemas y procesos. Los diagramas de flujo son representativos de este tipo de herramientas. •CASE dorsales ("back-end") o inferiores ("Lower CASE"), cuyo objetivo suele ser el diseño detallado y la generación de código Categorias de herramientas CASE mas frecuentes: a)Herramientas de análisis y diseño b) Generación de código y documentación c)Herramientas de prueba d)Herramientas de gestión de configuración e) Herramientas de ingeniería inversa Herramientas de prototipado:Como son los diseñadores de pantallas, generadores de menús, generadores de informes y lenguajes de especificación ejecutables.
  • 7. 7 Actividades en el proceso de desarrollo de software Para desarrollar un producto de software se realizan diversas actividades que se estructuran y relacionan de acuerdo a un modelo y se desarrollan siguiendo un método. Los modelos encadenan las diversas actividades
  • 9. 9 Acerca de las actividades La ingeniería de requerimientos es el proceso que lleva a la especificación del software Los procesos de diseño e implementación transforman la especificación en un programa ejecutable La validación involucra chequear que el sistema cumple su especificación y las expectativas del usuario La evolución concierne con la modificación del sistema después que está en uso
  • 10. 10 Las actividades en el proceso de desarrollo de software : se relacionan conformando se desarrollan aplicando El método se fundamenta en El método puede ser soportado por principio(s) - método(s) - herramienta(s) - modelo(s) un modelo un método principios herramientas
  • 11. 11 Ciclo de vida del software Comprensión del problema Desarrollo del software Liberación del producto Análisis del problema
  • 14. 14 ¿Cómo encadenar las actividades del proceso de desarrollo de software? Modelos (ciclo de vida) Ej.: Modelo de la cascada, UP.... ¿Cómo realizar las actividades del proceso de desarrollo de software? Métodos Ej.: Orientado a objeto, ... ¿Cuáles principios se aplican en el proceso de desarrollo de software? Ej.: Incrementable, iterativo,... Actividades – Modelos - Procesos
  • 15. 15 Modelos de desarrollo de software  La cascada Separa y secuencia las fases  Evolutivo Especificación y desarrollo son intercalados  De transformaciones Un modelo formal del sistema es transformado en otro modelo de más bajo nivel de abstracción  Basado en reuso El sistema es producto de ensamblaje de componentes
  • 16. 16 Análisis de Requerimientos Diseño del Sistema Diseño de Programas Construcción de Programas Validación de componentes Validación del Sistema Mantenimiento Liberación Integración ¿Cuál modelo han usado?
  • 17. 17 Modelo de la cascada • Encadenamiento secuencial de las actividades • Cada etapa produce documentos que son la entrada a la siguiente • Para desarrollar una etapa debe concluirse la anterior • Popular en la década 70. Análisis de requerimientos Diseño Implementación Validación de componentes Integración y validación del sistema Liberación y mantenimiento
  • 18. 18 Modelo de la cascada (cont.) • El modelo original no se adapta a ciertas aplicaciones • Los costos al descubrir errores en etapas avanzadas son muy altos • Es rígido • Se incorporan variantes al modelo. Análisis de requerimientos Diseño Implementación Validación de componentes Integración y validación del sistema Liberación y mantenimiento
  • 19. 19 Análisis de requerimientos Datos provistos por los expertos en el dominio y usuarios potenciales Documentos orientados al usuario y útiles para el analista: Es una actividad requerida en cualquier modelo - Comprensibles - Precisos - Completos - Consistentes - Fáciles de modificar
  • 20. 20 Análisis de requerimientos Identificar el problema Documentar los requerimientos Involucrar a los usuarios y expertos en el dominio de aplicación (requiere diálogo y comunicación) Existen estándares para la especificación de los requerimientos Esta actividad puede mantenerse a lo largo del proceso.
  • 21. 21 Requerimientos de software: sub áreas 1. Proceso de ingeniería de requerimientos: modelos de proceso, actores, soporte y gerencia y mejora de calidad de proceso 2. Captura de requerimientos: origen de requerimientos, como capturarlos; incluye fuentes y técnicas. 3. Análisis de requerimientos: Detectar y resolver conflictos. Limites del sistema y como interactúa con el medio. Trasladar requerimientos de sistema a requerimientos de software
  • 22. 22 4.Especificación de requerimientos de software: Calidad, estructura y verificabilidad del documento de especificación 5.Validación de requerimientos: Proceso para examinar documento de requerimientos a fin de asegurar que define el sistema esperado. 6.Gerencia de requerimientos: Abarca todo el ciclo de vida. Gerencia de cambios y mantenimiento de requerimientos de software Requerimientos de software: sub áreas
  • 23. 23 Prototipaje Resultados parciales del análisis Prototipo (esbozo parcial, no definitivo,..) Desarrollo rápido de partes del sistema Prototipo -a nivel de la interfaz - a nivel de componentes del sistema
  • 24. 24  Esbozo parcial de partes del sistema  Permite experimentar  Permite validar y precisar la especificación de requerimientos y características del futuro sistema  Indispensable para el desarrollo de la interfaz  Indispensable en el modelo evolutivo. Prototipaje
  • 25. 25 Especificación Datos resultantes del análisis de requerimientos y consideraciones técnicas Descripción orientada al desarrollador Describe en forma precisa el sistema a desarrollar
  • 26. 26 Diseño Resultados del análisis, de la especificación y consideraciones técnicas Descripción detallada orientada al implementador Constituye un refinamiento del análisis
  • 28. 28 Integración y gestión de configuraciones Componentes de programa Ensamblaje de versiones coherentes de los componentes Obtener el sistema ejecutable
  • 29. 29 Validación y verificación Documentos (textos, programas, etc) Documentos validados/ verificados Permite determinar la confiabilidad o correctitud del producto
  • 30. 30 Validación: el software responde a lo que espera el usuario •Verificación: el software satisface la especificación •Técnicas diversas : –Pruebas formales: garantizar que el programa satisface la especificación –Chequeo “testing” : búsqueda de errores en los componentes, en la integración, en el sistema –Pruebas de usabilidad: “medir” la satisfacción del usuario al usar el producto Validación y verificación
  • 31. 31 Tipos de pruebas •Test unitario Chequeo de componentes individuales •Test de módulo Chequeo de colecciones de componentes dependientes •Test de sub-sistemas Prueba de Módulos integrados en sub-sistemas . El centro es la prueba de las interfaces •Test de sistemas Se prueba el sistema como un todo •Test de aceptación Pruebas con datos del cliente para chequear las expectativas del usuario
  • 32. 32 Prueba de software •Verificación dinámica del comportamiento de un programa sobre un número finito de casos de prueba seleccionados del dominio de ejecuciones usualmente infinito. •Conceptos básicos: terminología, fundamentos teóricos, relaciones de la prueba con otras actividades. •Técnicas de prueba: criterios para la generación de datos de prueba. •Mediciones relacionadas con pruebas: evaluación de programa en prueba, evaluación de las pruebas realizadas •Gerencia: tópicos gerenciales y de actividades de prueba
  • 33. 33 Mantenimiento de software • Conceptos básicos: definiciones, actividades y problemas de mantenimiento • Procesos de mantenimiento basados en estándares • Factores clave: técnicos, gerenciales, costos, estimaciones y mediciones • Técnicas: incluyen comprensión de programas, reingeniería, ingeniería reversa y análisis de impacto
  • 34. Bibliografía - Ghezzi &al, “Fundamentals of Software Engineering”. PrenticeHall. Cap.7 - Sommerville . Ingeniería de software. Addison Wesley 2002. Cap. 3