SlideShare una empresa de Scribd logo
1 de 80
Descargar para leer sin conexión
Prof. Yaskelly Yedra I-2012
Unidad I. Conceptos Básicos
Contenido
1. Definición de la Ingeniería de Software
2. Áreas de conocimiento
3. Líneas de investigación en IS
4. Disciplinas relacionadas
5. Evolución de la Ingeniería de Software
6. Problemática del desarrollo de software
7. Principios en la IS
8. Software de calidad
9. Actividades en proceso de DS
Ingeniería del SW: área de la Ciencia de la
Computación, que ofrece Métodos y
Técnicas para DS, estudia el conjunto de
actividades relacionadas con el ciclo de
desarrollo de SW, en particular se enfoca en
SW de Calidad.
¿ Que es la IS ?
¿ Que es la IS ?
La aplicación de un enfoque sistemático,
disciplinado y cuantificable del desarrollo,
la operación y el mantenimiento del
software; esto es, la aplicación de la
ingeniería al software.
IEEE Std 610-1990
Contenido
1. Definición de la Ingeniería de Software
2. Áreas de conocimiento
3. Líneas de investigación en IS
4. Disciplinas relacionadas
5. Evolución de la Ingeniería de Software
6. Problemática del desarrollo de software
7. Principios en la IS
8. Software de calidad
9. Actividades en proceso de DS
• Requisitos
• Diseño
• Construcción
• Pruebas
• Mantenimiento
• Gestión de la Configuración
• Gestión de la Ingeniería Soft.
• Procesos
• Herramientas y Métodos
• Calidad
Áreas de conocimiento
Contenido
1. Definición de la Ingeniería de Software
2. Áreas de conocimiento
3. Líneas de investigación en IS
4. Disciplinas relacionadas
5. Evolución de la Ingeniería de Software
6. Problemática del desarrollo de software
7. Principios en la IS
8. Software de calidad
9. Actividades en proceso de DS
• Metodología orientado a objeto de
desarrollo de software
• Modelos, Métodos, Técnicas y
Herramientas de desarrollo de software.
• Sistemas de reescritura.
• Interación Humano - Computador
• Patrones de diseño
• Programación orientada a aspectos
Líneas de investigación
• Componentes y reutilización de software
• Construcción de compiladores
• Métricas de IS
• Desarrollo de aplicaciones basadas en Internet
• Arquitectura de software
• Calidad de software
• Inteligencia artificial aplicada
• Ingeniería orientada a modelos
Otras
Ingeniería orientada a aspectos
Ingeniería orientada a componentes
Líneas de investigación
Contenido
1. Definición de la Ingeniería de Software
2. Áreas de conocimiento
3. Líneas de investigación en IS
4. Disciplinas relacionadas
5. Evolución de la Ingeniería de Software
6. Problemática del desarrollo de software
7. Principios en la IS
8. Software de calidad
9. Actividades en proceso de DS
• Ingeniería de Computadores
• Ciencia de la Computación
• Gestión
• Matemáticas
• Gestión de Proyectos
• Gestión de la Calidad
• Ergonomía del Software
• Ingeniería de Sistemas
• Sistemas de Información
Disciplinas relacionadas
Contenido
1. Definición de la Ingeniería de Software
2. Áreas de conocimiento
3. Líneas de investigación en IS
4. Disciplinas relacionadas
5. Evolución de la Ingeniería de Software
6. Problemática del desarrollo de software
7. Principios en la IS
8. Software de calidad
9. Actividades en proceso de DS
 Hardware: mainframes, cintas magnéticas.
Costos altos
 Lenguajes: ensambladores, Fortran
 Primeros compiladores (segunda mitad)
 Interfaces: Bach.
 Desarrollo de software = desarrollo de
programas
 Actividad individual
 Desarrollador = usuario
 Aplicaciones con distribución reducida
 Resolver problemas científicos y de ingeniería
“...codificar y depurar...”
 Hardware: mainframes comerciales,
almacenamiento en discos magnéticos,
minicomputadores. Costos altos
 Programación orientada a función
 Sistemas operativos multiprogramación
 Lenguajes: Cobol, PL/I, Simula 67
 Interfaces: Bach.
 Actividad de grupo
 Desarrollo de software para mercadeo
 Resolver problemas complejos en diferentes
dominios, además de científicos y de
ingeniería
 Programación orientada a función.
 Hardware: mainframes, minicomputadores,
microcomputadores, surgen los PC
 Lenguajes: COBOL, PL/I, Pascal, Prolog
 Métodos: programación
estructurada,refinamiento paso a paso,
semánticas formales
 Computación distribuida, Interfaces basadas
en Lenguajes de Comando.
 Desarrollo de la tecnología
 Actividad de grupo
 Desarrollo de software para mercadeo
 Diversidad del dominio de aplicaciones
 Programación orientada a módulos
 Modelo de cascada .
19
 Hardware:
computadores
personales, primeras
estaciones de trabajo,
redes locales
 Lenguajes: C, Ada
 Paradigma de
programación:
programación
estructurada, modular,
tipos de datos
abstractos
 Herramientas
interactivas, interfaces
gráficas (GUI)
 Hardware: Aumento
considerable de la venta y
uso de computadores
personales, estaciones de
trabajo, redes locales y
globales, Internet,
arquitecturas avanzadas
 Lenguajes: C++, Standard ML
 Paradigma de
programación: irrumpe la
programación OO
 Computación cliente-
servidor
 El usuario se incorpora al proceso de
desarrollo de software
 Relevancia de las interfaces de usuario
 Aumento exponencial del número y tipo de
usuarios
 Demanda creciente de aplicaciones
 Resolver problemas en todos los dominios
 Inicio de las aplicaciones basadas en la
tecnología Internet .
 Hardware: masificación del uso de los
computadores personales, arquitecturas
paralelas, multimedia
 Redes de computadoras (LAN, WAN..)
 Lenguajes: Orientados a objetos, paralelos,
visuales, de scripting (Java, VisualC++, HTML,..)
 Paradigma de programación: OO, patrones y
framework
 Crecimiento de Internet y el Web .
 Los productos se insertan en la globalización
 El ciberespacio introduce nuevos tipos de
aplicaciones: comercio electrónico, educación
a distancia,...
 Ambientes colaborativos
 El Web como infraestructura de las
aplicaciones corporativas (Intranets) .
 Hardware: dispositivos moviles, computación
ubicua
 Redes de computadoras (inalambricas..)
 Paradigma de programación: modelos
basados en componentes
 Crecimiento de Internet y la Web .
 Programación orientada a aspectos
 Ingenieria orientada a modelos
 Arquitecturas orientadas a modelos
 un poco de historia
◦ primeras décadas:
 desarrollar el hardware
 reducir costes de procesamiento y almacenamiento
◦ década de los ochenta:
 desarrollo de la microelectrónica
 mayor potencia de cálculo y reducción de costes
◦ objetivo actual: mejorar la calidad de las soluciones software.
 Orientación
por lotes
 Distribución
limitada
 Software a
medida
 Multiusuario
 Tiempo real
 Bases de datos
 Software como
producto
 Mayores gastos
de mantenimiento
 Sistemas distribuidos
 Inteligencia Artificial
 Hardware de bajo
coste
 Impacto en el
consumo
 Redes area local
y global
 Gran demanda
 Potentes sistemas
de sobremesa
 Tecnología de objetos
 Sistemas expertos
 Redes neuronales
 Cliente/servidor
 Tecnologías de
Internet.
1959 - 1965 1965 - 1975 1975 - 1989 1989 -
AUMENTAN los problemas del desarrollo de software:
 Subexplotación del potencial del hardware
 Incapacidad de atender a la demanda
 Incapacidad de mantener el software existente
Resumen
Contenido
1. Definición de la Ingeniería de Software
2. Áreas de conocimiento
3. Líneas de investigación en IS
4. Disciplinas relacionadas
5. Evolución de la Ingeniería de Software
6. Problemática del desarrollo de software
7. Principios en la IS
8. Software de calidad
9. Actividades en proceso de DS
 Crecimiento de la demanda de nuevos
productos
 Incumplimiento en los tiempos de
entrega de los productos de software
 Incumplimiento de los presupuestos
asignados a los proyectos
 Falta de métodos para la producción de
software complejo
Desde la década 70
 Dificultad y altos costos para el
mantenimiento del software existente
 Carencia de buenas especificaciones
de requisitos
 Los requisitos no son estables
 El mercado cambia - constantemente.
 La tecnología cambia
 Las metas de los usuarios cambian
Desde la década 70
Costos
Tiempo de desarrollo
Redes de
ComputadoresTecnologías
Emergentes
Masificación y variedad de los
microcomputadores y accesorios Interfaces de usuario.
Software libre
Contenido
1. Definición de la Ingeniería de Software
2. Áreas de conocimiento
3. Líneas de investigación en IS
4. Disciplinas relacionadas
5. Evolución de la Ingeniería de Software
6. Problemática del desarrollo de software
7. Principios en la IS
8. Software de calidad
9. Actividades en proceso de DS
 Los principios forman la base de métodos,
técnicas, metodologías y herramientas
 Seis principios que pueden ser usados en
todas las fases del desarrollo de software
 Modularidad es el principio clave que
soporta el diseño del software
Principles
Methodologies
principios
métodos
y técnicas
metodologías
herramientas
1. Rigor y formalidad
2. Abstracción
3. Modularidad
4. Anticipación al cambio
5. Generalidad
6. Incrementalidad.
Principios aplica al proceso y al producto
GHEZZI, C., JAZAYERI,
M., MANDRIOLI, D.
"Fundamentals of
Software Engineering".
Prentice-Hall
International Editions.
2da ed. Nov. 2002
 Significa ...
seguir procesos sistemáticos y verificables
en el proceso de desarrollo de software
IMPLICACIONES:
• La formalidad es la base de
automatización de procesos
• Principio esencial para obtener
productos reusables
Producto
 Analisis matemático de correctitud de
programas
 Test sistemático y riguroso
Proceso
 Rigurosa documentación ayuda a la gestión
del proyecto y asegura los tiempos de
respuesta
 Significa...
Aplicar un proceso mental o intelectual que
permite identificar lo relevante e ignorar los
detalles
IMPLICACIONES:
• percepción del qué/ cómo (la separación de
intereses )
• percepción del todo/ partes (modularidad)
 Cuando los requisitos son analizados se
produce un modelo de la aplicacion
propuesta
 El modelo puede ser una descripción
formal o informal
 Es posible razonar acerca del sistema
razonando acerca del modelo
En procesos
 Cuando realizamos estimación de costos
solo tomamos en cuenta algunos factores
En producto
 Los tipos de datos abstractos
 Un sistema complejo puede ser
dividido en piezas más simples
llamadas módulos
 Un sistema que está conformado por
módulos se dice que es modular
permite:
 descomponer en partes un sistema complejo
(descomposición)
 componer el sistema a partir de sus partes
(composición)
Comprender el sistema y las partes
(comprensión)
Problema
Subprob. 4Subprob. 2Subprob. 1 Subprob. 3
solución. 4solución. 2Solución. 1 solución. 3
Solución
 Significa:
La capacidad de prever cómo y dónde
pueden ocurrir los cambios
• La aplicación de este principio
es altamente apreciado en la
etapa de mantenimiento
• Es un principio relevante para el
desarrollo de componentes
reusables
 Habilidad para soportar la evolución del
software requiere anticipar posibles
cambios
 Es la base para el software evolutivo
Significa:
buscar la solución más amplia
(que englobe los casos específicos)
• Busca la solución más amplia
para problemas específicos
• La solución general puede
ser menos eficiente o más
costosa
• Principio importante para
desarrollar productos
reusables.
Significa:
Construcción del producto por
aproximaciones sucesivas y/o por
componentes (partes)
• Desarrollo de prototipos para los
componentes críticos
• Útil para desarrollo de
aplicaciones no precisas, donde
no están bien definidos los
requisitos.
 Ejemplos
◦ Liberar subconjuntos de un sistema
muy tempranamente para encontar el
feedback del usuario, y luego agregar
incrementalmente nuevas
características
◦ Liberar un primer prototipo e
incrementalmente ir transformando el
prototipo en el producto.
Contenido
1. Definición de la Ingeniería de Software
2. Áreas de conocimiento
3. Líneas de investigación en IS
4. Disciplinas relacionadas
5. Evolución de la Ingeniería de Software
6. Problemática del desarrollo de software
7. Principios en la IS
8. Software de calidad
9. Actividades en proceso de DS
Mediante un proceso ....
 Soportado por un método riguroso,
sistemático
 basado en principios reconocidos
 con actividades que se estructuren de
acuerdo a un modelo
 facilitado por el uso de herramientas.
 El software es construido para cumplir
ciertas funcionalidades y satisfacer ciertas
cualidades
 El proceso de construcción de software
debe también cumplir ciertas cualidades.
 Cualidades de software son a menudo
referidas como requisitos no funcionales
(en realidad es un subconjunto de este tipo
de requisitos).
 Internas vs. externas
◦ Externas visibles al usuario
◦ Internas concernientes a los desarrolladores
 Producto vs. procesos
◦ Nuestro objetivo es desarrollar productos de
software
◦ El proceso se refiere a como lo hacemos
 Cualidades internas afectan las cualidades
externas
 La calidad del proceso afecta la calidad del
producto.
¿Cuáles son las características que
deseamos al elaborar un software?
Centro ISYS. Esc. Computación. UCV/2005 53
Características de Calidad de
software (Normas ISO 9126) :
Características
(ISO 9126)
Subcaracterísticas
Funcionalidad Adecuacidad (Suitability),
exactitud/precisión ( Accurateness),
Interoperabilidad, (Conformidad Compliance )
Seguridad
Confiabilidad Madurez, Tolerancia a Falla, Recuperabilidad
Usabilidad comprensibilidad (Understandability ),
aprendizaje (Learnability ),
Operabilidad
Eficiencia Rendimiento en tiempo,
rendimiento de Recurso.
Mantenibilidad Analizabilidad, Modificabilidad, Estabilidad, Testability
(Prueba)
Portabilidad Adaptabilidad, Instalabilidad, Conformidad a estándares,
Reemplazabilidad/Substituibilidad
 Correcto
Confiable
Robusto
Se comporta acorde a su especificación
Se comporta de acuerdo a lo esperado por
el usuario
Se comporta razonablemente aún en
cirscunstancias no contempladas
(tolerante a fallas).
• construcciones correctas
si ellas satisfacen las
especificaciones
• en un movimiento
sísmico unas colapsan
(no son robustas)
• otras construcciones sufren
pequeños daños tolerables o
previsibles
(son confiables).
 Software es correcto si satisface las
especificaciones de requisitos funcionales
◦ (asumiendo que las especificaciones ...)
 Si las especificaciones son formales la
correctitud puede ser probada
◦ Informalmente, el usuario confía en el producto
◦ Si las especificaciones son correctas, todo
software correcto es confiable. Pero no a la
inversa (en la practica, pueden haber
especificaciones incorrectas....)
◦ ISO 9127: Confiabilidad: se refiere a la capacidad
de un SW de mantenerse operativo bajo las
condiciones establecidas por un período de
tiempo.
 Productos (o componentes) son usados
(probablemente, con pequeños cambios)
para construir otros productos
 Reuso de partes estandar miden la madurez
de una ingeniería
 Tambien aplica a procesos.
 Reusable
Componentes reusables:
– Librerías científicas
– Librerías para el desarrollo de
interfaces (MFC de Windows)
– Patrones
– Especificaciones
– Clases.
factor clave para
determinar la
madurez de
cualquier industria
“....la IS debe aún
evolucionar para
alcanzar su
madurez como una
disciplina de
ingeniería..”
“....en el futuro
las aplicaciones
serán construídas
ensamblando
componentes..”
 El software puede correr en diferentes
plataformas de hardware o ambientes de
software
 se refiere a la habilidad del sw de ser
transferido de un ambiente a otro.
 Es una cualidad relevante cuando se
introducen nuevas plataformas
 Es tambien relevante, cuando el software se
baja de ambientes de redes heterogéneos.
 Interoperable
– Puede coexistir y cooperar con otros sistemas
de software
– Las herramientas de ambientes integrados son
interoperables
– Se mide mediante técnicas
clásicas:
 complejidad de algoritmos
 evaluación de la eficiencia
(monitoreo, simulación,..).
Software Eficiente:
Usa los recursos computacionales
económicamente (memoria, tiempo de .
. procesamiento, comunicación..)
Usabilidad es una cualidad del software que
tiene múltiples componentes y
tradicionalmente es asociado con:
 Aprendizaje
 Eficiencia
 Memorización
 Baja rata de errores
 Satisfacción
¿ Qué es Usabilidad ?
•ISO 9127
Usabilidad: se
refiere al esfuerzo
requerido por un
conjunto de
usuarios para el uso
del sw
Usabilidad
 Usable
– La usabilidad de un producto de software
está determinada por la satisfacción del
usuario al utilizar el producto
– Fundamentalmente relacionada con las
características de la interfaz de usuario
– Diversas cualidades inciden en la usabilidad
(eficiencia, confiablidad,...).
 Mantenibilidad: facilidad de mantenimiento
 Mantenimiento: cambios despues de la
liberación del producto
 Los costos de mantenimiento exceden el
69% del costo total del software
Tipos de Mantenimiento
Correctivo
(remoción de errores)
Adaptativo
(cambios para adecuarlos a
modificaciones de su ambiente)
Perfectivo
(cambios para mejorar la calidad -satisfacer
nuevos requisitos, aumentar la eficiencia,
modificar funcionalidades, etc)
 Facilidad de comprender el software
 Es una cualidad muy importante, para
realizar modificaciones de programa.
 Esta cualidad incide en la mantenibilidad
 Al equipo de desarrollo
le interesa que el
software sea
comprensible, portable,
mantenible, verificable ...
 Al usuario le
interesa que el
software sea fácil
de usar, confiable,
robusto...
Contenido
1. Definición de la Ingeniería de Software
2. Áreas de conocimiento
3. Líneas de investigación en IS
4. Disciplinas relacionadas
5. Evolución de la Ingeniería de Software
6. Problemática del desarrollo de software
7. Principios en la IS
8. Software de calidad
9. Actividades en proceso de DS
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
 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
Actividades en el proceso de desarrollo
de software
Acerca de las actividades
 Utiliza y produce “artefactos”
 Se relacionan e interactúan de diferentes
maneras conformando distintos procesos de
desarrollo de software (modelos)
 De acuerdo al modelo una actividad puede
jugar un rol preponderante o incluso
pudiera no existir.
Acerca de las actividades
 La ingeniería de requisitos 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
swebok
Actividades usuales
Relaciones entre las actividades
Actividades:
Encadenamiento Rol
Granularidad
Modelo de
desarrollo de
software
Análisis de
requisitos
Prototipaje
Especificación
Implementación
Método 1 Método n
Un ejemplo
Actividades – Modelos -Procesos
 El modelo de desarrollo de software indica
como se relacionan las actividades
 Los procesos de desarrollo de software
indican como se realizan las actividades
para producir y evolucionar un sistema del
software
Actividades – Modelos - Procesos
 ¿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,...
CONCEPTOS GENERALES
CICLO DE VIDA: Conjunto de etapas que se han de llevar a cabo
para crear, explotar y mantener un Sistema Informático.
METODOS: Son las normativas que marcan las directrices que se
han de seguir para llevar a cabo una tarea. Responde a la
pregunta QUÉ.
TECNICAS: Es un modo de representación para la solución de un
problema concreto. Responde a la pregunta CÓMO.
METODOLOGIA: Es un conjunto coherente de métodos y técnicas
que cubren más de una etapa del ciclo de vida.
HERRAMIENTAS: Proporcionan un soporte automático o semi-
automático para el proceso y para los métodos.

Más contenido relacionado

La actualidad más candente

Metodolgias de desarrollo (evolutivo)
Metodolgias de desarrollo (evolutivo)Metodolgias de desarrollo (evolutivo)
Metodolgias de desarrollo (evolutivo)Griiselda Martiinez
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareRoger Villegas
 
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 SoftwareT.I.C
 
Ventajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftVentajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftChuyito Alvarado
 
Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)katherine revelo gomez
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosnenyta08
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
 
Introduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareIntroduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareLia IS
 
Diferencias entre scrum y xp
Diferencias entre scrum y xp Diferencias entre scrum y xp
Diferencias entre scrum y xp deborahgal
 
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos TradicionalesUnidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos TradicionalesSergio Sanchez
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de softwareYaskelly Yedra
 
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?Software Guru
 

La actualidad más candente (20)

Metodolgias de desarrollo (evolutivo)
Metodolgias de desarrollo (evolutivo)Metodolgias de desarrollo (evolutivo)
Metodolgias de desarrollo (evolutivo)
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura 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
 
Diagrama de casos de usos
Diagrama de casos de usosDiagrama de casos de usos
Diagrama de casos de usos
 
Ventajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftVentajas y desventajas de moprosoft
Ventajas y desventajas de moprosoft
 
Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
 
Introduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareIntroduccion a la Ingeniería de Software
Introduccion a la Ingeniería de Software
 
Rup disciplinas
Rup disciplinasRup disciplinas
Rup disciplinas
 
Diferencias entre scrum y xp
Diferencias entre scrum y xp Diferencias entre scrum y xp
Diferencias entre scrum y xp
 
Metodología RUP
Metodología RUPMetodología RUP
Metodología RUP
 
Caracteristicas rup
Caracteristicas rupCaracteristicas rup
Caracteristicas rup
 
Proceso del Software
Proceso del Software Proceso del Software
Proceso del Software
 
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos TradicionalesUnidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de software
 
Ejemplo rup
Ejemplo rupEjemplo rup
Ejemplo rup
 
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
 

Destacado

Ingeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadIngeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadXKWDX
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de softwareDiaxz Salgado
 
Introducción a la Ingenieria de Software
Introducción a la Ingenieria de SoftwareIntroducción a la Ingenieria de Software
Introducción a la Ingenieria de SoftwareSorey García
 
Que es Ingenieria del Software?,
Que es Ingenieria del Software?,Que es Ingenieria del Software?,
Que es Ingenieria del Software?,Robert Rodriguez
 
U1T1 - Conceptos Básicos de Ingeniería del Software
U1T1 - Conceptos Básicos de Ingeniería del SoftwareU1T1 - Conceptos Básicos de Ingeniería del Software
U1T1 - Conceptos Básicos de Ingeniería del SoftwareLuis Eduardo Pelaez Valencia
 
Ingenieria del software
Ingenieria del software Ingenieria del software
Ingenieria del software Ana Pau Lara
 
Titulo en Ciencias de la Computación
Titulo en Ciencias de la Computación Titulo en Ciencias de la Computación
Titulo en Ciencias de la Computación Yaskelly Yedra
 
Planificación de proyectos de software
Planificación de proyectos de software Planificación de proyectos de software
Planificación de proyectos de software Yaskelly Yedra
 
Conceptos básicos sobre sistemas de información
Conceptos básicos sobre sistemas de información Conceptos básicos sobre sistemas de información
Conceptos básicos sobre sistemas de información Yaskelly Yedra
 
Arquitectura De Software Para Dummies
Arquitectura De Software Para DummiesArquitectura De Software Para Dummies
Arquitectura De Software Para DummiesSorey García
 
Procesos De Ingenieria Del Software
Procesos De Ingenieria Del SoftwareProcesos De Ingenieria Del Software
Procesos De Ingenieria Del SoftwareRaquel Solano
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software Brihany Rossell
 
Ingenieria De Software Para Dummies
Ingenieria De Software Para DummiesIngenieria De Software Para Dummies
Ingenieria De Software Para DummiesSorey García
 
Metodologías y Técnicas de Diseño de Software
Metodologías y Técnicas de Diseño de SoftwareMetodologías y Técnicas de Diseño de Software
Metodologías y Técnicas de Diseño de SoftwareMarvin Romero
 
Introducción a la ingenieria del Software
Introducción a la ingenieria del SoftwareIntroducción a la ingenieria del Software
Introducción a la ingenieria del SoftwareJose Diaz Silva
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de softwareTensor
 

Destacado (20)

Ingeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidadIngeniería de software Definicion,inicion,importancia y utilidad
Ingeniería de software Definicion,inicion,importancia y utilidad
 
ingenieria del software
ingenieria del softwareingenieria del software
ingenieria del software
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Introducción a la Ingenieria de Software
Introducción a la Ingenieria de SoftwareIntroducción a la Ingenieria de Software
Introducción a la Ingenieria de Software
 
Que es Ingenieria del Software?,
Que es Ingenieria del Software?,Que es Ingenieria del Software?,
Que es Ingenieria del Software?,
 
U1T1 - Conceptos Básicos de Ingeniería del Software
U1T1 - Conceptos Básicos de Ingeniería del SoftwareU1T1 - Conceptos Básicos de Ingeniería del Software
U1T1 - Conceptos Básicos de Ingeniería del Software
 
conceptos de ingenieria de software
conceptos de ingenieria de softwareconceptos de ingenieria de software
conceptos de ingenieria de software
 
Ingenieria De Software
Ingenieria De SoftwareIngenieria De Software
Ingenieria De Software
 
Ingenieria del software
Ingenieria del software Ingenieria del software
Ingenieria del software
 
Titulo en Ciencias de la Computación
Titulo en Ciencias de la Computación Titulo en Ciencias de la Computación
Titulo en Ciencias de la Computación
 
Planificación de proyectos de software
Planificación de proyectos de software Planificación de proyectos de software
Planificación de proyectos de software
 
Conceptos básicos sobre sistemas de información
Conceptos básicos sobre sistemas de información Conceptos básicos sobre sistemas de información
Conceptos básicos sobre sistemas de información
 
Arquitectura De Software Para Dummies
Arquitectura De Software Para DummiesArquitectura De Software Para Dummies
Arquitectura De Software Para Dummies
 
Procesos De Ingenieria Del Software
Procesos De Ingenieria Del SoftwareProcesos De Ingenieria Del Software
Procesos De Ingenieria Del Software
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software
 
Ingenieria De Software Para Dummies
Ingenieria De Software Para DummiesIngenieria De Software Para Dummies
Ingenieria De Software Para Dummies
 
Evolucion software - Ing SW
Evolucion software - Ing SWEvolucion software - Ing SW
Evolucion software - Ing SW
 
Metodologías y Técnicas de Diseño de Software
Metodologías y Técnicas de Diseño de SoftwareMetodologías y Técnicas de Diseño de Software
Metodologías y Técnicas de Diseño de Software
 
Introducción a la ingenieria del Software
Introducción a la ingenieria del SoftwareIntroducción a la ingenieria del Software
Introducción a la ingenieria del Software
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de software
 

Similar a Ingenieria de software (conceptos básicos)

Lp II clase01 - Desarrollo de software con RUP
Lp II   clase01 - Desarrollo de software con RUPLp II   clase01 - Desarrollo de software con RUP
Lp II clase01 - Desarrollo de software con RUPAngelDX
 
IngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdfIngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdfcristian265023
 
Pe isw descripción plandeestudios
Pe isw descripción plandeestudiosPe isw descripción plandeestudios
Pe isw descripción plandeestudiosITSON
 
6. is construcción del software
6. is construcción del software6. is construcción del software
6. is construcción del softwareNagut
 
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Luis Fernández
 
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Coesi Consultoria
 
Presentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptxPresentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptxAderMogollonLuna
 
Guia unidad ii fundamentacion de ingenieria del software
Guia unidad ii fundamentacion de ingenieria del softwareGuia unidad ii fundamentacion de ingenieria del software
Guia unidad ii fundamentacion de ingenieria del softwaresullinsan
 
construccion de software fundamentos y conceptos
construccion de software fundamentos  y conceptosconstruccion de software fundamentos  y conceptos
construccion de software fundamentos y conceptosjguerraf0805910805
 
Ingeniería de software
Ingeniería de software Ingeniería de software
Ingeniería de software jevo1994
 

Similar a Ingenieria de software (conceptos básicos) (20)

Is clase1
Is clase1Is clase1
Is clase1
 
Is clase1
Is clase1Is clase1
Is clase1
 
Ingeniería de software
Ingeniería de software Ingeniería de software
Ingeniería de software
 
Lp II clase01 - Desarrollo de software con RUP
Lp II   clase01 - Desarrollo de software con RUPLp II   clase01 - Desarrollo de software con RUP
Lp II clase01 - Desarrollo de software con RUP
 
IngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdfIngSoftCap01-Introduccion.pdf
IngSoftCap01-Introduccion.pdf
 
Pe isw descripción plandeestudios
Pe isw descripción plandeestudiosPe isw descripción plandeestudios
Pe isw descripción plandeestudios
 
6. is construcción del software
6. is construcción del software6. is construcción del software
6. is construcción del software
 
Tema Introducción IS
Tema Introducción ISTema Introducción IS
Tema Introducción IS
 
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
 
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
 
1. introduccion
1. introduccion1. introduccion
1. introduccion
 
ingenieria de software
ingenieria de softwareingenieria de software
ingenieria de software
 
Presentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptxPresentación Sesión 1 Ingeniería del Software.pptx
Presentación Sesión 1 Ingeniería del Software.pptx
 
Clase 11
Clase 11Clase 11
Clase 11
 
introducción ingeniería de software
introducción  ingeniería de  softwareintroducción  ingeniería de  software
introducción ingeniería de software
 
Proyecrafaelurdanetapptx
ProyecrafaelurdanetapptxProyecrafaelurdanetapptx
Proyecrafaelurdanetapptx
 
Guia unidad ii fundamentacion de ingenieria del software
Guia unidad ii fundamentacion de ingenieria del softwareGuia unidad ii fundamentacion de ingenieria del software
Guia unidad ii fundamentacion de ingenieria del software
 
construccion de software fundamentos y conceptos
construccion de software fundamentos  y conceptosconstruccion de software fundamentos  y conceptos
construccion de software fundamentos y conceptos
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
Ingeniería de software
Ingeniería de software Ingeniería de software
Ingeniería de software
 

Más de Yaskelly Yedra

Es una aplicación de software que automatiza e integra tanto los procesos de...
Es una aplicación de software que  automatiza e integra tanto los procesos de...Es una aplicación de software que  automatiza e integra tanto los procesos de...
Es una aplicación de software que automatiza e integra tanto los procesos de...Yaskelly Yedra
 
Manual de descripcion de cargos para una empresa de desarrollo de software
Manual de descripcion de cargos para una empresa de desarrollo de softwareManual de descripcion de cargos para una empresa de desarrollo de software
Manual de descripcion de cargos para una empresa de desarrollo de softwareYaskelly Yedra
 
Manual de sistema de una Intranet basada en multiplataforma para la toma de d...
Manual de sistema de una Intranet basada en multiplataforma para la toma de d...Manual de sistema de una Intranet basada en multiplataforma para la toma de d...
Manual de sistema de una Intranet basada en multiplataforma para la toma de d...Yaskelly Yedra
 
Manual del usuario de una Intranet multiplataforma para la toma de decisión
Manual del usuario de una Intranet multiplataforma para la toma de decisiónManual del usuario de una Intranet multiplataforma para la toma de decisión
Manual del usuario de una Intranet multiplataforma para la toma de decisiónYaskelly Yedra
 
Ciclo de vida de los sistemas de informacion
Ciclo de vida de los sistemas de informacionCiclo de vida de los sistemas de informacion
Ciclo de vida de los sistemas de informacionYaskelly Yedra
 
Intranet basada en multiplataforma para el apoyo a la toma de decisiones
Intranet basada en multiplataforma para el apoyo a la toma de decisionesIntranet basada en multiplataforma para el apoyo a la toma de decisiones
Intranet basada en multiplataforma para el apoyo a la toma de decisionesYaskelly Yedra
 
Red GSM de Telefonía Básica para el Estado Zulia
Red GSM de Telefonía Básica para el Estado ZuliaRed GSM de Telefonía Básica para el Estado Zulia
Red GSM de Telefonía Básica para el Estado ZuliaYaskelly Yedra
 
Categorización de usuarios de Twitter
Categorización de usuarios de TwitterCategorización de usuarios de Twitter
Categorización de usuarios de TwitterYaskelly Yedra
 
Red GSM de Telefonía Básica para el Estado Zulia
Red GSM de Telefonía Básica para el Estado ZuliaRed GSM de Telefonía Básica para el Estado Zulia
Red GSM de Telefonía Básica para el Estado ZuliaYaskelly Yedra
 
UML. Un análisis comparativo para la diagramación de software
UML. Un análisis comparativo para la diagramación de softwareUML. Un análisis comparativo para la diagramación de software
UML. Un análisis comparativo para la diagramación de softwareYaskelly Yedra
 
UML. un analisis comparativo para la diagramación de software
UML.  un analisis comparativo para la diagramación de softwareUML.  un analisis comparativo para la diagramación de software
UML. un analisis comparativo para la diagramación de softwareYaskelly Yedra
 
Generador de Patrones de Diseño (GEPADI)
Generador de Patrones de Diseño (GEPADI)Generador de Patrones de Diseño (GEPADI)
Generador de Patrones de Diseño (GEPADI)Yaskelly Yedra
 
Metodología para el desarrollo de portales de gobierno electrónico bajo el en...
Metodología para el desarrollo de portales de gobierno electrónico bajo el en...Metodología para el desarrollo de portales de gobierno electrónico bajo el en...
Metodología para el desarrollo de portales de gobierno electrónico bajo el en...Yaskelly Yedra
 
Formato de minuta de reunión
Formato de minuta de reuniónFormato de minuta de reunión
Formato de minuta de reuniónYaskelly Yedra
 
Reglamento para la presentacion de trabajos en la Universidad del Zulia
Reglamento para la presentacion de trabajos en la Universidad del ZuliaReglamento para la presentacion de trabajos en la Universidad del Zulia
Reglamento para la presentacion de trabajos en la Universidad del ZuliaYaskelly Yedra
 
Introducción a UML y Diagrama de Casos de Uso
Introducción a UML y Diagrama de Casos de UsoIntroducción a UML y Diagrama de Casos de Uso
Introducción a UML y Diagrama de Casos de UsoYaskelly Yedra
 
La organización como un teatro: la tecnología y sistemas de información como ...
La organización como un teatro: la tecnología y sistemas de información como ...La organización como un teatro: la tecnología y sistemas de información como ...
La organización como un teatro: la tecnología y sistemas de información como ...Yaskelly Yedra
 
Sistemas transparente para gobierno electrónico eficientes
Sistemas transparente para gobierno electrónico eficientesSistemas transparente para gobierno electrónico eficientes
Sistemas transparente para gobierno electrónico eficientesYaskelly Yedra
 
Impacto de las tecnologías de telecomunicaciones en los patrones de comunicac...
Impacto de las tecnologías de telecomunicaciones en los patrones de comunicac...Impacto de las tecnologías de telecomunicaciones en los patrones de comunicac...
Impacto de las tecnologías de telecomunicaciones en los patrones de comunicac...Yaskelly Yedra
 
Modelos de desarrollo de aplicaciones web
Modelos de desarrollo de aplicaciones webModelos de desarrollo de aplicaciones web
Modelos de desarrollo de aplicaciones webYaskelly Yedra
 

Más de Yaskelly Yedra (20)

Es una aplicación de software que automatiza e integra tanto los procesos de...
Es una aplicación de software que  automatiza e integra tanto los procesos de...Es una aplicación de software que  automatiza e integra tanto los procesos de...
Es una aplicación de software que automatiza e integra tanto los procesos de...
 
Manual de descripcion de cargos para una empresa de desarrollo de software
Manual de descripcion de cargos para una empresa de desarrollo de softwareManual de descripcion de cargos para una empresa de desarrollo de software
Manual de descripcion de cargos para una empresa de desarrollo de software
 
Manual de sistema de una Intranet basada en multiplataforma para la toma de d...
Manual de sistema de una Intranet basada en multiplataforma para la toma de d...Manual de sistema de una Intranet basada en multiplataforma para la toma de d...
Manual de sistema de una Intranet basada en multiplataforma para la toma de d...
 
Manual del usuario de una Intranet multiplataforma para la toma de decisión
Manual del usuario de una Intranet multiplataforma para la toma de decisiónManual del usuario de una Intranet multiplataforma para la toma de decisión
Manual del usuario de una Intranet multiplataforma para la toma de decisión
 
Ciclo de vida de los sistemas de informacion
Ciclo de vida de los sistemas de informacionCiclo de vida de los sistemas de informacion
Ciclo de vida de los sistemas de informacion
 
Intranet basada en multiplataforma para el apoyo a la toma de decisiones
Intranet basada en multiplataforma para el apoyo a la toma de decisionesIntranet basada en multiplataforma para el apoyo a la toma de decisiones
Intranet basada en multiplataforma para el apoyo a la toma de decisiones
 
Red GSM de Telefonía Básica para el Estado Zulia
Red GSM de Telefonía Básica para el Estado ZuliaRed GSM de Telefonía Básica para el Estado Zulia
Red GSM de Telefonía Básica para el Estado Zulia
 
Categorización de usuarios de Twitter
Categorización de usuarios de TwitterCategorización de usuarios de Twitter
Categorización de usuarios de Twitter
 
Red GSM de Telefonía Básica para el Estado Zulia
Red GSM de Telefonía Básica para el Estado ZuliaRed GSM de Telefonía Básica para el Estado Zulia
Red GSM de Telefonía Básica para el Estado Zulia
 
UML. Un análisis comparativo para la diagramación de software
UML. Un análisis comparativo para la diagramación de softwareUML. Un análisis comparativo para la diagramación de software
UML. Un análisis comparativo para la diagramación de software
 
UML. un analisis comparativo para la diagramación de software
UML.  un analisis comparativo para la diagramación de softwareUML.  un analisis comparativo para la diagramación de software
UML. un analisis comparativo para la diagramación de software
 
Generador de Patrones de Diseño (GEPADI)
Generador de Patrones de Diseño (GEPADI)Generador de Patrones de Diseño (GEPADI)
Generador de Patrones de Diseño (GEPADI)
 
Metodología para el desarrollo de portales de gobierno electrónico bajo el en...
Metodología para el desarrollo de portales de gobierno electrónico bajo el en...Metodología para el desarrollo de portales de gobierno electrónico bajo el en...
Metodología para el desarrollo de portales de gobierno electrónico bajo el en...
 
Formato de minuta de reunión
Formato de minuta de reuniónFormato de minuta de reunión
Formato de minuta de reunión
 
Reglamento para la presentacion de trabajos en la Universidad del Zulia
Reglamento para la presentacion de trabajos en la Universidad del ZuliaReglamento para la presentacion de trabajos en la Universidad del Zulia
Reglamento para la presentacion de trabajos en la Universidad del Zulia
 
Introducción a UML y Diagrama de Casos de Uso
Introducción a UML y Diagrama de Casos de UsoIntroducción a UML y Diagrama de Casos de Uso
Introducción a UML y Diagrama de Casos de Uso
 
La organización como un teatro: la tecnología y sistemas de información como ...
La organización como un teatro: la tecnología y sistemas de información como ...La organización como un teatro: la tecnología y sistemas de información como ...
La organización como un teatro: la tecnología y sistemas de información como ...
 
Sistemas transparente para gobierno electrónico eficientes
Sistemas transparente para gobierno electrónico eficientesSistemas transparente para gobierno electrónico eficientes
Sistemas transparente para gobierno electrónico eficientes
 
Impacto de las tecnologías de telecomunicaciones en los patrones de comunicac...
Impacto de las tecnologías de telecomunicaciones en los patrones de comunicac...Impacto de las tecnologías de telecomunicaciones en los patrones de comunicac...
Impacto de las tecnologías de telecomunicaciones en los patrones de comunicac...
 
Modelos de desarrollo de aplicaciones web
Modelos de desarrollo de aplicaciones webModelos de desarrollo de aplicaciones web
Modelos de desarrollo de aplicaciones web
 

Ingenieria de software (conceptos básicos)

  • 1. Prof. Yaskelly Yedra I-2012 Unidad I. Conceptos Básicos
  • 2. Contenido 1. Definición de la Ingeniería de Software 2. Áreas de conocimiento 3. Líneas de investigación en IS 4. Disciplinas relacionadas 5. Evolución de la Ingeniería de Software 6. Problemática del desarrollo de software 7. Principios en la IS 8. Software de calidad 9. Actividades en proceso de DS
  • 3. Ingeniería del SW: área de la Ciencia de la Computación, que ofrece Métodos y Técnicas para DS, estudia el conjunto de actividades relacionadas con el ciclo de desarrollo de SW, en particular se enfoca en SW de Calidad. ¿ Que es la IS ?
  • 4. ¿ Que es la IS ? La aplicación de un enfoque sistemático, disciplinado y cuantificable del desarrollo, la operación y el mantenimiento del software; esto es, la aplicación de la ingeniería al software. IEEE Std 610-1990
  • 5. Contenido 1. Definición de la Ingeniería de Software 2. Áreas de conocimiento 3. Líneas de investigación en IS 4. Disciplinas relacionadas 5. Evolución de la Ingeniería de Software 6. Problemática del desarrollo de software 7. Principios en la IS 8. Software de calidad 9. Actividades en proceso de DS
  • 6. • Requisitos • Diseño • Construcción • Pruebas • Mantenimiento • Gestión de la Configuración • Gestión de la Ingeniería Soft. • Procesos • Herramientas y Métodos • Calidad Áreas de conocimiento
  • 7. Contenido 1. Definición de la Ingeniería de Software 2. Áreas de conocimiento 3. Líneas de investigación en IS 4. Disciplinas relacionadas 5. Evolución de la Ingeniería de Software 6. Problemática del desarrollo de software 7. Principios en la IS 8. Software de calidad 9. Actividades en proceso de DS
  • 8. • Metodología orientado a objeto de desarrollo de software • Modelos, Métodos, Técnicas y Herramientas de desarrollo de software. • Sistemas de reescritura. • Interación Humano - Computador • Patrones de diseño • Programación orientada a aspectos Líneas de investigación
  • 9. • Componentes y reutilización de software • Construcción de compiladores • Métricas de IS • Desarrollo de aplicaciones basadas en Internet • Arquitectura de software • Calidad de software • Inteligencia artificial aplicada • Ingeniería orientada a modelos Otras Ingeniería orientada a aspectos Ingeniería orientada a componentes Líneas de investigación
  • 10. Contenido 1. Definición de la Ingeniería de Software 2. Áreas de conocimiento 3. Líneas de investigación en IS 4. Disciplinas relacionadas 5. Evolución de la Ingeniería de Software 6. Problemática del desarrollo de software 7. Principios en la IS 8. Software de calidad 9. Actividades en proceso de DS
  • 11. • Ingeniería de Computadores • Ciencia de la Computación • Gestión • Matemáticas • Gestión de Proyectos • Gestión de la Calidad • Ergonomía del Software • Ingeniería de Sistemas • Sistemas de Información Disciplinas relacionadas
  • 12. Contenido 1. Definición de la Ingeniería de Software 2. Áreas de conocimiento 3. Líneas de investigación en IS 4. Disciplinas relacionadas 5. Evolución de la Ingeniería de Software 6. Problemática del desarrollo de software 7. Principios en la IS 8. Software de calidad 9. Actividades en proceso de DS
  • 13.  Hardware: mainframes, cintas magnéticas. Costos altos  Lenguajes: ensambladores, Fortran  Primeros compiladores (segunda mitad)  Interfaces: Bach.
  • 14.  Desarrollo de software = desarrollo de programas  Actividad individual  Desarrollador = usuario  Aplicaciones con distribución reducida  Resolver problemas científicos y de ingeniería “...codificar y depurar...”
  • 15.  Hardware: mainframes comerciales, almacenamiento en discos magnéticos, minicomputadores. Costos altos  Programación orientada a función  Sistemas operativos multiprogramación  Lenguajes: Cobol, PL/I, Simula 67  Interfaces: Bach.
  • 16.  Actividad de grupo  Desarrollo de software para mercadeo  Resolver problemas complejos en diferentes dominios, además de científicos y de ingeniería  Programación orientada a función.
  • 17.  Hardware: mainframes, minicomputadores, microcomputadores, surgen los PC  Lenguajes: COBOL, PL/I, Pascal, Prolog  Métodos: programación estructurada,refinamiento paso a paso, semánticas formales  Computación distribuida, Interfaces basadas en Lenguajes de Comando.
  • 18.  Desarrollo de la tecnología  Actividad de grupo  Desarrollo de software para mercadeo  Diversidad del dominio de aplicaciones  Programación orientada a módulos  Modelo de cascada .
  • 19. 19  Hardware: computadores personales, primeras estaciones de trabajo, redes locales  Lenguajes: C, Ada  Paradigma de programación: programación estructurada, modular, tipos de datos abstractos  Herramientas interactivas, interfaces gráficas (GUI)  Hardware: Aumento considerable de la venta y uso de computadores personales, estaciones de trabajo, redes locales y globales, Internet, arquitecturas avanzadas  Lenguajes: C++, Standard ML  Paradigma de programación: irrumpe la programación OO  Computación cliente- servidor
  • 20.  El usuario se incorpora al proceso de desarrollo de software  Relevancia de las interfaces de usuario  Aumento exponencial del número y tipo de usuarios  Demanda creciente de aplicaciones  Resolver problemas en todos los dominios  Inicio de las aplicaciones basadas en la tecnología Internet .
  • 21.  Hardware: masificación del uso de los computadores personales, arquitecturas paralelas, multimedia  Redes de computadoras (LAN, WAN..)  Lenguajes: Orientados a objetos, paralelos, visuales, de scripting (Java, VisualC++, HTML,..)  Paradigma de programación: OO, patrones y framework  Crecimiento de Internet y el Web .
  • 22.  Los productos se insertan en la globalización  El ciberespacio introduce nuevos tipos de aplicaciones: comercio electrónico, educación a distancia,...  Ambientes colaborativos  El Web como infraestructura de las aplicaciones corporativas (Intranets) .
  • 23.  Hardware: dispositivos moviles, computación ubicua  Redes de computadoras (inalambricas..)  Paradigma de programación: modelos basados en componentes  Crecimiento de Internet y la Web .
  • 24.  Programación orientada a aspectos  Ingenieria orientada a modelos  Arquitecturas orientadas a modelos
  • 25.  un poco de historia ◦ primeras décadas:  desarrollar el hardware  reducir costes de procesamiento y almacenamiento ◦ década de los ochenta:  desarrollo de la microelectrónica  mayor potencia de cálculo y reducción de costes ◦ objetivo actual: mejorar la calidad de las soluciones software.  Orientación por lotes  Distribución limitada  Software a medida  Multiusuario  Tiempo real  Bases de datos  Software como producto  Mayores gastos de mantenimiento  Sistemas distribuidos  Inteligencia Artificial  Hardware de bajo coste  Impacto en el consumo  Redes area local y global  Gran demanda  Potentes sistemas de sobremesa  Tecnología de objetos  Sistemas expertos  Redes neuronales  Cliente/servidor  Tecnologías de Internet. 1959 - 1965 1965 - 1975 1975 - 1989 1989 - AUMENTAN los problemas del desarrollo de software:  Subexplotación del potencial del hardware  Incapacidad de atender a la demanda  Incapacidad de mantener el software existente Resumen
  • 26. Contenido 1. Definición de la Ingeniería de Software 2. Áreas de conocimiento 3. Líneas de investigación en IS 4. Disciplinas relacionadas 5. Evolución de la Ingeniería de Software 6. Problemática del desarrollo de software 7. Principios en la IS 8. Software de calidad 9. Actividades en proceso de DS
  • 27.  Crecimiento de la demanda de nuevos productos  Incumplimiento en los tiempos de entrega de los productos de software  Incumplimiento de los presupuestos asignados a los proyectos  Falta de métodos para la producción de software complejo Desde la década 70
  • 28.  Dificultad y altos costos para el mantenimiento del software existente  Carencia de buenas especificaciones de requisitos  Los requisitos no son estables  El mercado cambia - constantemente.  La tecnología cambia  Las metas de los usuarios cambian Desde la década 70
  • 29. Costos Tiempo de desarrollo Redes de ComputadoresTecnologías Emergentes Masificación y variedad de los microcomputadores y accesorios Interfaces de usuario. Software libre
  • 30. Contenido 1. Definición de la Ingeniería de Software 2. Áreas de conocimiento 3. Líneas de investigación en IS 4. Disciplinas relacionadas 5. Evolución de la Ingeniería de Software 6. Problemática del desarrollo de software 7. Principios en la IS 8. Software de calidad 9. Actividades en proceso de DS
  • 31.  Los principios forman la base de métodos, técnicas, metodologías y herramientas  Seis principios que pueden ser usados en todas las fases del desarrollo de software  Modularidad es el principio clave que soporta el diseño del software
  • 33. 1. Rigor y formalidad 2. Abstracción 3. Modularidad 4. Anticipación al cambio 5. Generalidad 6. Incrementalidad. Principios aplica al proceso y al producto GHEZZI, C., JAZAYERI, M., MANDRIOLI, D. "Fundamentals of Software Engineering". Prentice-Hall International Editions. 2da ed. Nov. 2002
  • 34.  Significa ... seguir procesos sistemáticos y verificables en el proceso de desarrollo de software IMPLICACIONES: • La formalidad es la base de automatización de procesos • Principio esencial para obtener productos reusables
  • 35. Producto  Analisis matemático de correctitud de programas  Test sistemático y riguroso Proceso  Rigurosa documentación ayuda a la gestión del proyecto y asegura los tiempos de respuesta
  • 36.  Significa... Aplicar un proceso mental o intelectual que permite identificar lo relevante e ignorar los detalles IMPLICACIONES: • percepción del qué/ cómo (la separación de intereses ) • percepción del todo/ partes (modularidad)
  • 37.  Cuando los requisitos son analizados se produce un modelo de la aplicacion propuesta  El modelo puede ser una descripción formal o informal  Es posible razonar acerca del sistema razonando acerca del modelo
  • 38. En procesos  Cuando realizamos estimación de costos solo tomamos en cuenta algunos factores En producto  Los tipos de datos abstractos
  • 39.  Un sistema complejo puede ser dividido en piezas más simples llamadas módulos  Un sistema que está conformado por módulos se dice que es modular
  • 40. permite:  descomponer en partes un sistema complejo (descomposición)  componer el sistema a partir de sus partes (composición) Comprender el sistema y las partes (comprensión)
  • 41. Problema Subprob. 4Subprob. 2Subprob. 1 Subprob. 3 solución. 4solución. 2Solución. 1 solución. 3 Solución
  • 42.  Significa: La capacidad de prever cómo y dónde pueden ocurrir los cambios • La aplicación de este principio es altamente apreciado en la etapa de mantenimiento • Es un principio relevante para el desarrollo de componentes reusables
  • 43.  Habilidad para soportar la evolución del software requiere anticipar posibles cambios  Es la base para el software evolutivo
  • 44. Significa: buscar la solución más amplia (que englobe los casos específicos) • Busca la solución más amplia para problemas específicos • La solución general puede ser menos eficiente o más costosa • Principio importante para desarrollar productos reusables.
  • 45. Significa: Construcción del producto por aproximaciones sucesivas y/o por componentes (partes) • Desarrollo de prototipos para los componentes críticos • Útil para desarrollo de aplicaciones no precisas, donde no están bien definidos los requisitos.
  • 46.  Ejemplos ◦ Liberar subconjuntos de un sistema muy tempranamente para encontar el feedback del usuario, y luego agregar incrementalmente nuevas características ◦ Liberar un primer prototipo e incrementalmente ir transformando el prototipo en el producto.
  • 47. Contenido 1. Definición de la Ingeniería de Software 2. Áreas de conocimiento 3. Líneas de investigación en IS 4. Disciplinas relacionadas 5. Evolución de la Ingeniería de Software 6. Problemática del desarrollo de software 7. Principios en la IS 8. Software de calidad 9. Actividades en proceso de DS
  • 48. Mediante un proceso ....  Soportado por un método riguroso, sistemático  basado en principios reconocidos  con actividades que se estructuren de acuerdo a un modelo  facilitado por el uso de herramientas.
  • 49.
  • 50.  El software es construido para cumplir ciertas funcionalidades y satisfacer ciertas cualidades  El proceso de construcción de software debe también cumplir ciertas cualidades.  Cualidades de software son a menudo referidas como requisitos no funcionales (en realidad es un subconjunto de este tipo de requisitos).
  • 51.  Internas vs. externas ◦ Externas visibles al usuario ◦ Internas concernientes a los desarrolladores  Producto vs. procesos ◦ Nuestro objetivo es desarrollar productos de software ◦ El proceso se refiere a como lo hacemos  Cualidades internas afectan las cualidades externas  La calidad del proceso afecta la calidad del producto.
  • 52. ¿Cuáles son las características que deseamos al elaborar un software?
  • 53. Centro ISYS. Esc. Computación. UCV/2005 53 Características de Calidad de software (Normas ISO 9126) :
  • 54. Características (ISO 9126) Subcaracterísticas Funcionalidad Adecuacidad (Suitability), exactitud/precisión ( Accurateness), Interoperabilidad, (Conformidad Compliance ) Seguridad Confiabilidad Madurez, Tolerancia a Falla, Recuperabilidad Usabilidad comprensibilidad (Understandability ), aprendizaje (Learnability ), Operabilidad Eficiencia Rendimiento en tiempo, rendimiento de Recurso. Mantenibilidad Analizabilidad, Modificabilidad, Estabilidad, Testability (Prueba) Portabilidad Adaptabilidad, Instalabilidad, Conformidad a estándares, Reemplazabilidad/Substituibilidad
  • 55.  Correcto Confiable Robusto Se comporta acorde a su especificación Se comporta de acuerdo a lo esperado por el usuario Se comporta razonablemente aún en cirscunstancias no contempladas (tolerante a fallas).
  • 56. • construcciones correctas si ellas satisfacen las especificaciones • en un movimiento sísmico unas colapsan (no son robustas) • otras construcciones sufren pequeños daños tolerables o previsibles (son confiables).
  • 57.  Software es correcto si satisface las especificaciones de requisitos funcionales ◦ (asumiendo que las especificaciones ...)  Si las especificaciones son formales la correctitud puede ser probada
  • 58. ◦ Informalmente, el usuario confía en el producto ◦ Si las especificaciones son correctas, todo software correcto es confiable. Pero no a la inversa (en la practica, pueden haber especificaciones incorrectas....) ◦ ISO 9127: Confiabilidad: se refiere a la capacidad de un SW de mantenerse operativo bajo las condiciones establecidas por un período de tiempo.
  • 59.  Productos (o componentes) son usados (probablemente, con pequeños cambios) para construir otros productos  Reuso de partes estandar miden la madurez de una ingeniería  Tambien aplica a procesos.
  • 60.  Reusable Componentes reusables: – Librerías científicas – Librerías para el desarrollo de interfaces (MFC de Windows) – Patrones – Especificaciones – Clases.
  • 61. factor clave para determinar la madurez de cualquier industria “....la IS debe aún evolucionar para alcanzar su madurez como una disciplina de ingeniería..” “....en el futuro las aplicaciones serán construídas ensamblando componentes..”
  • 62.  El software puede correr en diferentes plataformas de hardware o ambientes de software  se refiere a la habilidad del sw de ser transferido de un ambiente a otro.  Es una cualidad relevante cuando se introducen nuevas plataformas  Es tambien relevante, cuando el software se baja de ambientes de redes heterogéneos.
  • 63.  Interoperable – Puede coexistir y cooperar con otros sistemas de software – Las herramientas de ambientes integrados son interoperables
  • 64. – Se mide mediante técnicas clásicas:  complejidad de algoritmos  evaluación de la eficiencia (monitoreo, simulación,..). Software Eficiente: Usa los recursos computacionales económicamente (memoria, tiempo de . . procesamiento, comunicación..)
  • 65. Usabilidad es una cualidad del software que tiene múltiples componentes y tradicionalmente es asociado con:  Aprendizaje  Eficiencia  Memorización  Baja rata de errores  Satisfacción ¿ Qué es Usabilidad ? •ISO 9127 Usabilidad: se refiere al esfuerzo requerido por un conjunto de usuarios para el uso del sw
  • 66. Usabilidad  Usable – La usabilidad de un producto de software está determinada por la satisfacción del usuario al utilizar el producto – Fundamentalmente relacionada con las características de la interfaz de usuario – Diversas cualidades inciden en la usabilidad (eficiencia, confiablidad,...).
  • 67.  Mantenibilidad: facilidad de mantenimiento  Mantenimiento: cambios despues de la liberación del producto  Los costos de mantenimiento exceden el 69% del costo total del software
  • 68. Tipos de Mantenimiento Correctivo (remoción de errores) Adaptativo (cambios para adecuarlos a modificaciones de su ambiente) Perfectivo (cambios para mejorar la calidad -satisfacer nuevos requisitos, aumentar la eficiencia, modificar funcionalidades, etc)
  • 69.  Facilidad de comprender el software  Es una cualidad muy importante, para realizar modificaciones de programa.  Esta cualidad incide en la mantenibilidad
  • 70.  Al equipo de desarrollo le interesa que el software sea comprensible, portable, mantenible, verificable ...  Al usuario le interesa que el software sea fácil de usar, confiable, robusto...
  • 71. Contenido 1. Definición de la Ingeniería de Software 2. Áreas de conocimiento 3. Líneas de investigación en IS 4. Disciplinas relacionadas 5. Evolución de la Ingeniería de Software 6. Problemática del desarrollo de software 7. Principios en la IS 8. Software de calidad 9. Actividades en proceso de DS
  • 72. 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
  • 73.  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 Actividades en el proceso de desarrollo de software
  • 74. Acerca de las actividades  Utiliza y produce “artefactos”  Se relacionan e interactúan de diferentes maneras conformando distintos procesos de desarrollo de software (modelos)  De acuerdo al modelo una actividad puede jugar un rol preponderante o incluso pudiera no existir.
  • 75. Acerca de las actividades  La ingeniería de requisitos 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 swebok
  • 77. Relaciones entre las actividades Actividades: Encadenamiento Rol Granularidad Modelo de desarrollo de software Análisis de requisitos Prototipaje Especificación Implementación Método 1 Método n Un ejemplo
  • 78. Actividades – Modelos -Procesos  El modelo de desarrollo de software indica como se relacionan las actividades  Los procesos de desarrollo de software indican como se realizan las actividades para producir y evolucionar un sistema del software
  • 79. Actividades – Modelos - Procesos  ¿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,...
  • 80. CONCEPTOS GENERALES CICLO DE VIDA: Conjunto de etapas que se han de llevar a cabo para crear, explotar y mantener un Sistema Informático. METODOS: Son las normativas que marcan las directrices que se han de seguir para llevar a cabo una tarea. Responde a la pregunta QUÉ. TECNICAS: Es un modo de representación para la solución de un problema concreto. Responde a la pregunta CÓMO. METODOLOGIA: Es un conjunto coherente de métodos y técnicas que cubren más de una etapa del ciclo de vida. HERRAMIENTAS: Proporcionan un soporte automático o semi- automático para el proceso y para los métodos.