SlideShare ist ein Scribd-Unternehmen logo
1 von 67
Ingeniería de Software
Profa. Ing. María Andrade
Unidad I:
Fundamentos Teóricos
Definición según la IEEE
Á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.
Profa. Ing. María Andrade
La aplicación de enfoque sistemático, cuantifica
ble y disciplinado al desarrollo, operación y
mantenimiento de Software.
Profa. Ing. María Andrade
Áreas del conocimiento
 Requisitos
 ƒDiseño
 Construcción
 Pruebas
 Calidad
 Mantenimiento
 Gestión de la configuración
 Gestión de la ingeniería software
 ƒProcesos
 ƒHerramientas y métodos
Expresan las necesidades y
restricciones que debe
satisfacer un producto para
contribuir a la solución de
un problema real. Considera
la obtención, análisis,
especificación y validación de
los requerimientos y rol
dentro del proceso de
desarrollo de software.
Re q u e r i m i e n t o s
D i s e ñ o
Es donde se generan modelos
que sirven como “planos” para
la construcción. Se divide en:
Arquitectónico y Detallado.
C o n s t r u c c i ó n
Referido a la creación de
software útil a través de la
programación, depuración,
pruebas unitarias e integra-
ción de componentes. Lidia
con la creación y aplicación
de algoritmos para la reso-
lución de problemas.
Profa. Ing. María Andrade
Profa. Ing. María Andrade
P r u e b a s
• Consisten en la
verificación dinámica del
comportamiento real de
un programa comparado
con su comportamiento
esperado. Las pruebas se
realizan para evaluar la
calidad de un producto a
través de la detección de
fallas en éste.
C a l i d a d
• Se enfoca en la
aplicación de técnicas
estáticas para evaluar y
mejorar la calidad del
software. Involucra los
subprocesos de
aseguramiento de
calidad, verificación,
validación, revisión y
auditoria.
M a n t e n i m i e n t o
• Referido a las
modificaciones a un
producto de software
previamente liberado para
prevenir fallas
(preventivo), corregirlas
(correctivo), mejorar su
desempeño (perfectivo) o
adaptarlo a cambios en el
ambiente (adaptativo).
G e s t i ó n d e l a c o n f i g u r a c i ó n
Disciplina que identifica
la configuración en
distintos puntos del
tiempo, con el propósito
de controlar los cambios
a ésta, manteniendo su
integridad y rastreabilidad
durante el ciclo completo
de vida del software.
G e s t i ó n d e l a i n g e n i e r í a s o f t w a r e
Consiste en la aplicación de
actividades administrativas:
planeación, coordinación,
medición, monitoreo,
control y reporte, para
asegurar que el desarrollo y
mantenimiento de software
se lleva a cabo de manera
sistemática, disciplinada y
cuantificable.
P r o c e s o s
Considera un proceso
para las actividades
técnicas y
administrativas que
deben realizarse para
adquirir, desarrollar,
mantener y retirar
software.
H e r r a m i e n t a s y
M é t o d o s
Permiten la automatización de
tareas repetitivas y bien
definidas centrado en
aspectos creativos del
proceso.
Los métodos establecen una
estructura para sistematizar
las actividades con el objetivo
de aumentar las posibilidades
de éxito.
Profa. Ing. María Andrade
Historia y
Evolución
de la
Ingeniería
de Software
Profa. Ing. María Andrade
Años ´50
1
2
3
Se aplica al desarrollo de software el mismo
proceso que al desarrollo de hardware.
Se usa el método científico para aprender
a través de la experiencia.
El software era como un producto añadido
y la programación un arte donde no
existían métodos sistemáticos.
Profa. Ing. María Andrade
Años ´60
Profa. Ing. María Andrade
1
2
3
Multiprogramación y sistemas multiusuarios.
Interacción hombre – máquina.
Sistemas en tiempo real procesaban datos
para la toma de decisiones.
Sistemas de gestión de base de datos que
genera la aparición del software.
Años ´60
Profa. Ing. María Andrade
4
5
6
Se codifica y corrigen códigos.
Fenómeno crisis del software.
Se introduce por vez primera el término
INGENIERIA DEL SOFTWARE.
Años ´70
Profa. Ing. María Andrade
1 •
2
3
Evolucionan los sistemas distribuidos y las redes
con acceso a datos instantáneos.
Incrementa la complejidad de los sistemas
informáticos.
Surgen diferentes fases del desarrollo del software.
Requerimientos – Análisis – Codificación – Pruebas.
Años ´70
Profa. Ing. María Andrade
4 •
5
6
Introduce la programación estructurada y métodos
formales para especificar software.
Se identifican principios de diseño: Modularidad
- Encapsulación - Abstracción de tipos de datos
- Acoplamiento débil - Alta cohesión.
Se publica el modelo en cascada y definición de los
conceptos de verificación y validación.
Años ´80
Profa. Ing. María Andrade
1
2
3
Aumento de la productividad del software y equipos
de desarrollo.
La industria del software es la cuna de la
economía del mundo.
En el Desarrollo del Software 4GLs, cambian la forma
en que se construyen los programas.
Años ´80
Profa. Ing. María Andrade
4
5
Introduce la POO a través de múltiples lugares
de programación.
Se crea el primer modelo de madurez de
capacidad de procesos SW - CMM.
Años ´90
Profa. Ing. María Andrade
1
• La orientación a objetos se extiende
a las fases de análisis y diseño.
2
• Se implementa el lenguaje de
modelado (UML).
3
• Se genera el primer proceso
comercial de desarrollo orientado
objetos (RUP).
4
• Se emplean los patrones de diseño y
arquitectura.
5
• Se define el modelo espiral para el
desarrollo basado en el análisis de riesgos
y software iterativo e incremental.
6
• Se impulsa la creación de software
libre y de código abierto.
7
• Se emplean metodologías ágiles para
el desarrollo de sotware dinámico.
En la actualidad… Profa. Ing. María Andrade
Se hace necesario la agilidad para el desarrollo
del software.
Nuevos dispositivos electrónicos se involucran en
el ciclo de vida.
Principales cualidades de los software son:
Seguridad, Privacidad, Usabilidad y Confiabilidad.
Se incrementa la programación de software
empaquetado.
Desarrollo de software por modelos toma más
fuerza.
En la actualidad… Profa. Ing. María Andrade
La tecnología digital está transformando a las organizaciones, los sistemas actuales afectan
directamente la forma en que los directivos administran, planifican y operan los bienes y
servicios que producen. La creciente potencia de la tecnología de computación, ha dado
origen a poderosas redes de comunicación que las organizaciones pueden usar para acceder a
grandes depósitos de información a nivel mundial, coordinar sus actividades en el espacio y
tiempo transformando a las empresas, mercado y sociedad en general.
Principios de la IS
Profa. Ing. María Andrade
Principios
Métodos y
Técnicas
Metodología Herramientas
Constituyen los
elementos a
considerar para
desarrollar
software de forma
exitosa que
involucra procesos
y productos finales
Métodos:
Guías generales
que gobiernan la
ejecución de algu-
na actividad, la
cual se presenta
con enfoques:
rigurosos, sistema-
ticos y disciplina-
dos
Técnicas:
De orden mécani-
co con aspectos
técnicos y restrin-
gidos
Conjunto de mé-
todos y técnicas
con el propósito
de perfilar los en-
foques orientados
a la resolución de
un problema
Se desarrollan en
apoyo a la aplica-
ción de métodos,
técnicas y método-
logías
Profa. Ing. María Andrade
Herra
mientas
Metodologías
Métodos y Técnicas
Principios
Relación Conceptual
Profa. Ing. María Andrade
Rigor y Formalidad
Separación de Intereses
Modularidad
Abstracción
Anticipación al Cambio
Generalidad
Incrementalidad
Profa. Ing. María Andrade
Identificaciónde
losPrincipiosdela
IS
1
2
3
4
5
6
7
Rigor y Formalidad1
Rigor
•Serie de pasos
definidos, precisos
y coherentes, en
donde en cada
uno de ellos se
aplica una técnica.
La técnica
•Depende de los
resultados teóricos del
modelo, ajustes
empíricos y experiencia
del desarrollador.
Esta Interacción
•Conlleva a la
definición de
una
metodología.
Implica
•Completitud y
Correctitud.
Formalidad
•Forma en la que
debo erradicar
la ambigüedad.
No corrige
• Únicamente,
especifica lo
que se quiere,
necesita o hace.
Dependerá
• Varios
factores:
Experiencia en
el área, nivel
crítico del
producto y
definición del
proceso del
Software.
Necesariamente
• El desarrollador
debe decidir el
grado de
formalidad
necesario para
cada paso del
desarrollo.
Profa. Ing. María Andrade
Profa. Ing. María Andrade
Cualidades en los Productos y Procesos DS
Documentación
Rigurosa y/o Formal
 Confiable
 Verificable
 Mantenible
 Reusable
 Portable
 Comprensible
 Interoperable
Separación de Intereses2
Profa.Ing.MaríaAndrade Se centra en poder analizar y estudiar aspectos separados
según los intereses de acuerdo al producto o proceso DS.
Tiempo
Planificación de
las actividades en
el tiempo.
Base del ciclo de
vida del software.
Secuencia de
actividades.
Definición de
hitos.
Cualidades
Dedicarse a
desarrollar
distintas
cualidades por
separado.
Eficiencia y
correctitud de un
programa.
Procesos
Flujo de datos y
Flujo de control.
Interfaces del
usuario y diseño
de la base de
datos.
Partes
Refinamiento del
sistema por
partes
dependiendo del
tamaño.
Modularidad.
Separación
Completo
S i m p l i c i d a d C o m p l e j i d a d
Profa. Ing. María Andrade
Optimalidad en la Separación de Intereses
La separación del problema completo
en pequeñas partes, sugiere que es
posible no considerar una solución
óptima global.
En general, la complejidad del
problema completo nos impide
resolver bien los problemas parciales y
también el problema global.
Modularidad3
Un sistema complejo puede dividirse en piezas simples que se
denominan módulos, y un sistema compuesto por módulos es
llamado modular, siendo lo más importante permitir la aplicación del
principio de separación de intereses.
Profa. Ing. María Andrade
Descomposición
• Descomponer un
sistema en grandes
bloques.
• Aplicar la
descomposición
recursivamente a
bloques complejos.
Composición
• Usando varios
elementos básicos
(módulos), se construye
un sistema más
complejo.
• La reutilización de
módulos de software
beneficia a todo el
proceso de desarrollo.
Compresión
• Es más fácil localizar
cambios en un sistema
modular.
• También es más fácil
comprender módulos,
tanto pequeños como
grandes.
Profa. Ing. María Andrade
Objetivosdela
Modularidad
Profa. Ing. María Andrade
Modularidad
Alta Cohesión
Los elementos comprendidos dentro de
un módulo están altamente relacionados.
Cooperan para lograr un mismo fin.
No están juntos al azar.
Bajo Acoplamiento
Mide la interdependencia de dos
módulos.
La relación e interacción entre los
distintos módulos debe ser simple (Ojalá
no circulen órdenes, sólo invocaciones).
Mantener a los módulos tan
desacoplados como sea posible.
Si dos módulos dependen altamente uno
del otro, es probable que los cambios en
un módulo afecten al otro.
Abstracción4
Profa. Ing. María Andrade
Proceso donde se identifican aspectos
relevantes de un problema, ignorando los
detalles. Es una forma de separación de
intereses cuya información extrae aspectos
esenciales y de detalles, que proporcionará
una visión real del requerimiento.
La abstracción no es única,
depende de:
 Software
 Usuario de la abstracción
Profa. Ing. María Andrade
Abstraccionesdel
Software
Software
Usuario Final
Funcionalidad,
usabilidad y
mecanismos de
interacción
Diseñador
Funcionalidad,
algoritmos y
estructuras de datos
Programador
Algoritmos,
estructuras de datos,
lenguaje de
programación
Mantenedor
Arquitectura,
funcionalidad,
lenguaje de
programación
Anticipación al Cambio5
Profa. Ing. María Andrade
Capacidad para prever, detectar y aprovechar el cómo,
dónde y para qué se pueden producir cambios en el
proceso o producto de forma anticipada.
En cuanto al DS
• Anticipar el cómo y
dónde van a ocurrir los
cambios.
• Proceder de modo que
haga fácil la aplicación
de futuros cambios.
Mantenibilidad,
cualidad deseable
• Corrección de errores
(correctivo).
• Aumentar la
funcionalidad
(adaptativo)
Aplica etapa de
diseño del software
• Los lugares que van a
cambiar se aíslan de
modo que los cambios
no afecten otras
porciones del software.
Laanticipacióndeloscambiospropicia
situacioneseficientes
Profa. Ing. María Andrade
PrincipioÚnicodel
Software
Las aplicaciones de software se
desarrollan a pesar de que sus
requerimientos muchas veces no se
han comprendido completamente.
Después de instalado el sistema, el
usuario realiza comentarios que dan
lugar a cambios y ajustes.
Las organizaciones se ven afectadas
por la instalación de un nuevo sistema,
de modo que los requerimientos
cambian con su implantación.
Profa. Ing. María Andrade
Reutilizaciónenla
Anticipación Reutilización es una evolución en pequeña escala,
a nivel de componentes.
Anticipar los contextos en que los componentes serán
utilizados, se diseña de modo que se pueda acomodar
fácilmente los cambios necesarios.
Un componente es reusable, si puede ser utilizado para
construir un nuevo sistema (sin cambios o con cambios
mínimos).
Profa. Ing. María Andrade
Controldela
Configuración
Los cambios
en las
componentes
deben ser
registrados y
almacenados.
Cada sistema
debe tener la
versión
apropiada de
cada una de
sus
componentes.
Cada
configuración
consistente
debe también
ser
almacenada.
Las
herramientas
son esenciales.
Profa. Ing. María Andrade
Anticipaciónenel
Proceso
Anticipa acciones de cambios en
el personal.
Se considera el mantenimiento
para la estimación de costos del
sistema.
La construcción de componentes
reutilizables se considera como
parte del proyecto o como un
proyecto paralelo.
Generalidad6
Profa. Ing. María Andrade
Se constituye en un
principio fundamental
siempre y cuando se
tenga como objetivo
desarrollo de
herramientas generales
o paquetes para el
mercado, por cuánto
debe atender múltiples
necesidades ajustadas
a diversos usuarios
finales.
Al resolver un
problema, es preciso
descubrir un problema
más general que se
esconde bajo el
problema particular.
Una solución más
general es
potencialmente más
reutilizable.
Incrementalidad7
Profa. Ing. María Andrade
Se caracteriza un proceso de pasos secuenciales de aproximaciones, en la
cual debe darse una retroalimentación entre el usuario y desarrollador
para adicionar funcionabilidades buscando confiabilidad de la aplicación, y
cuyo objetivo se logra como una sucesión de pasos construidos cada uno
sobre la anterior.
Un proceso es incremental si se
compone de pequeños pasos
(incrementos).
En el software, un proceso de desa-
rrollo es incremental si se aplica el
modelo Evolutivo de desarrollo.
Cualidades incrementales: Evolucionable, Performance, Amigable, Robustez, Confiabilidad
Profa. Ing. María Andrade
Proceso
Incremental
Seleccionar y desarrollar
un subconjunto de la
funcionalidad
Entregar al usuario la
funcionalidad
desarrollada
Obtener comentarios del
usuario para proseguir
con el desarrollo
Cualidades del
Profa. Ing. María Andrade
Software de Calidad
Profa. Ing. María Andrade
¿Qué es un Software de Calidad?
o Construido para cumplir ciertas funcionalidades y satisfacer
determinadas cualidades.
o El proceso de construcción de software igualmente debe
cumplir ciertas cualidades.
o Las cualidades son referidas como requisitos no
funcionales.
Profa. Ing. María Andrade
¿Cómo conseguir un Software de Calidad?
Proceso
Soportado
por un
método
riguroso y
sistemático
Basado en
principios
reconocidos
Actividades
que se
estructuren
de acuerdo a
un modelo
Facilitado
por el uso de
herramientas
Profa. Ing. María Andrade
Cualidades del Software de Calidad
Correctitud Confiable Robusto Eficiente Verificable
MantenibleReparableEvolucionableReusablePortable
Comprensible Interoperable Productivo Oportuno Visible
Profa. Ing. María Andrade
Correctitud, Confiable y Robusto
Correctitud
Se comporta acorde a su
especificación
Debe satisfacer los requisitos
funcionales
Confiable
Se comporta de acuerdo a
lo esperado por el usuario
Robusto
Se comporta razonablemente
aún en cirscunstancias no
contempladas
Profa. Ing. María Andrade
Confiable
o ISO 9127. Confiabilidad: Referida a la capacidad de un SW de
mantenerse operativo bajo las condiciones establecidas por un pe
ríodo de tiempo.
o Informalmente, el usuario confía en el producto.
o Si las especificaciones son correctas, todo software correcto es
confiable. Pero no a la inversa, pues en la práctica, pueden haber
especificaciones incorrectas.
Profa. Ing. María Andrade
Eficiencia
Usa los recursos computacionales económicamente (Memoria,
tiempo de procesamiento, comunicación, entre otros).
Se mide mediante técnicas clásicas: complejidad de
algoritmos y evaluación de la eficiencia
(monitoreo, simulación, entre otros).
Profa. Ing. María Andrade
Portabilidad1
El software
puede correr
en diferentes
plataformas de
hardware o
ambientes de
software.
2
Se refiere a la
habilidad del
software de ser
transferido de
un ambiente a
otro.
3
Es una cualidad
relevante
cuando se
introducen
nuevas
plataformas.
4
Es relevante,
cuando el
software se
baja de
ambientes de
redes
heterogéneos.
Profa. Ing. María Andrade
Reusabilidad
Productos o
componentes que
son usados para
construir otros
productos
Reuso de partes
estandar miden la
madurez de una
ingeniería
Tambien aplica a
procesos
Profa. Ing. María Andrade
Reusabilidad
Componen-
tes
Reusables
Librerías
científicas
Librerías para
el desarrollo
de interfaces
Patrones
Especifica-
ciones
Clases
Profa. Ing. María Andrade
Mantenibilidad
o Se refiere a la facilidad de mantenimiento que se puede realizar al
software, el cual a su vez implica cambios posterior a la liberación
del producto y cuyos costos de mantenibilidad superan
aproximadamente el 65% de la inversión total del software.
Correctivo
Remosión de
Errores residuales
presentes en el
producto asi
como el
mantenimiento.
Representa el
20% de los
costos
Adaptativo
Relacionado al
ajuste de la
aplicación a
cambios en el
entorno. Ej.
Liberacion del
hardware o del
S.O.
Representa el
20% de los
Perfectivo
Mejorar la
calidad, satisfacer
nuevos
requisitos,
aumentar la
eficiencia,
modificar las
funcionabilidades
.Representa el
50% de los
Profa. Ing. María Andrade
Comprensibilidad
o Facilidad de comprender el software.
o Es una cualidad muy importante, para realizar
modificaciones de programa.
o Esta cualidad incide en la mantenibilidad.
o Desde el punto de vista externo, se considera que un
sistema es comprensible si su comportamiento es
predecible, siendo esta cualidad un componente de la
amigabilidad.
Profa. Ing. María Andrade
Interoperabilidad
Puede coexistir y cooperar
con otros sistemas de
software.
Ej. Habilidad de un
procesador de texto de
incluir gráficos producidos
por un paquete de gráficos
Profa. Ing. María Andrade
Usabilidad
o Referido al esfuerzo que se requiere por el conjunto de
usuarios para el uso del software (Iso 9127). Igualmente
es una cualidad del software que tiene múltiples
componentes y tradicionalmente es asociado con:
Aprendizaje Eficiencia Memorización
Bajo rata de
errores
Satisfacción
Profa. Ing. María Andrade
Usabilidad
o La usabilidad de un producto de software está
determinada por la satisfacción del usuario al utilizar el
producto.
o Fundamentalmente relacionada con las características de
la interfaz de usuario.
o Inciden diversas cualidades para garantizar la usabilidad
del software.
Profa. Ing. María Andrade
productividad
o Es una cualidad del proceso de produccion del software
que mide la eficiencia del proceso, es decir es la
cualidad de la efectividad aplicada al proceso.
o Un proceso eficiente resulta entrega mas rápida para el
producto.
o Se utilizan métricas que permitan comparar distintos
procesos en términos de su productividad.
Profa. Ing. María Andrade
Oportunidad
o Habilidad de entregar un producto a tiempo.
o La oportunidad debe estar complementada con una
agenda bien planeada , con un trabajo de estimación
acertado y puntos de revisión específicos y
verificables para garantizar la confiabilidad y la
eficiencia del sistema.
Profa. Ing. María Andrade
Visibilidad
o Un sistema es visible si todos sus pasos y su estado
actual son claramente documentados.
o Permite a los ingenieros, pesar el impacto de sus
acciones y los guia en la toma de decisiones.
o Es favorable dentro de la gestión de proyectos en
cuanto a la gestión de conocimiento.
Actividades en el Proceso
Profa. Ing. María Andrade
de Desarrollo de Software
Profa. Ing. María Andrade
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
Profa. Ing. María Andrade
Actividades en el proceso de
desarrollo de software
Modelo
Método
Principios
Herramientas
Se relacionan
conformando un
Se desarrollan
aplicando un
El método se
fundamenta en
El método puede
soportarse en
Principios Métodos Herramientas Modelos
¡A tomar en cuenta para las Actividades DS!
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.
Profa. Ing. María Andrade
¡A tomar en cuenta para las Actividades DS!
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.
Profa. Ing. María Andrade
¿Cuáles son las actividades más comunes en DS?
Profa. Ing. María Andrade
Identificación y
especificación
de requisitos
Análisis Diseño Prototipo
ProgramaciónEspecificación
Validación /
Verificación
Gestión de las
configuraciones
Integración
Desarrollo de la
interfaz
Relación entre las actividades de DS
Profa. Ing. María Andrade
Encadenamiento Rol
Granularidad
Modelo de DS
Método 1
Método 2…
Análisis de requisitos
Prototipaje
Especificación
Implementación
Ejemplo
Actividades – Modelos - Procesos Profa. Ing. María Andrade
o El modelo de desarrollo de software indica como
se relacionan las actividades.
o Los procesos de desarrollo de software indican
como se realizan las actividades para producir y
evolucionar un sistema del software.
Actividades – Modelos - Procesos
Profa. Ing. María Andrade
o ¿Cómo encadenar las actividades del proceso de desarrollo de software?
Modelos (ciclo de vida)
Ej.: Modelo de la cascada, UP....
o ¿Cómo realizar las actividades del proceso de desarrollo de software?
Métodos
Ej.: Orientado a objeto,…
o ¿Cuáles principios se aplican en el proceso de desarrollo de software?
Ej.: Incrementable, iterativo,...
Conceptos Generales
Profa. Ing. María Andrade
o CICLO DE VIDA: Conjunto de etapas que se han de llevar a cabo para crear,
explotar y mantener un Sistema Informático.
o METODOS: Son las normativas que marcan las directrices que se han de seguir
para llevar a cabo una tarea. Responde a la pregunta QUÉ.
o TECNICAS: Es un modo de representación para la solución de un problema
concreto. Responde a la pregunta CÓMO.
o METODOLOGIA: Es un conjunto coherente de métodos y técnicas que cubren más
de una etapa del ciclo de vida.
o HERRAMIENTAS: Proporcionan un soporte automático o semi-automático para el
proceso y para los métodos.

Weitere ähnliche Inhalte

Was ist angesagt?

Ejemplos práctios de calidad en el software tecdencies
Ejemplos práctios de calidad en el software tecdenciesEjemplos práctios de calidad en el software tecdencies
Ejemplos práctios de calidad en el software tecdenciesMICProductivity
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosJuan Carlos Olivares Rojas
 
Factores de calidad según mc call
Factores de calidad según mc callFactores de calidad según mc call
Factores de calidad según mc callclauddiaa
 
Modelo de desarrollo concurrente
Modelo de desarrollo concurrenteModelo de desarrollo concurrente
Modelo de desarrollo concurrentesamuel ospino
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de softwareDiaxz Salgado
 
Técnicas y Herramientas para el Desarrollo de Sistemas de Información
Técnicas y Herramientas para el Desarrollo de Sistemas de InformaciónTécnicas y Herramientas para el Desarrollo de Sistemas de Información
Técnicas y Herramientas para el Desarrollo de Sistemas de InformaciónBriRodriguez
 
calidad de los sistemas de informacion
calidad de los sistemas de informacioncalidad de los sistemas de informacion
calidad de los sistemas de informacionErika Vazquez
 
Los 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentesLos 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentesVictor Escamilla
 
Fundamentos y metodos de analisis de requerimientos
Fundamentos y metodos de analisis de requerimientosFundamentos y metodos de analisis de requerimientos
Fundamentos y metodos de analisis de requerimientoslexiherrera
 
Ventajas y desventajas modelos
Ventajas y desventajas modelosVentajas y desventajas modelos
Ventajas y desventajas modelosCristHian Martinez
 
Diseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-softwareDiseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-softwareAndresRealp1
 
Unidad 1 conceptos generales del diseño de sistemas
Unidad 1  conceptos generales del diseño de sistemasUnidad 1  conceptos generales del diseño de sistemas
Unidad 1 conceptos generales del diseño de sistemasyenny enriquez
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoMarvin Zumbado
 
Modelado del análisis
Modelado del análisisModelado del análisis
Modelado del análisisJavier Rivera
 
Metodologías para el Diseño de Sistemas
Metodologías para el Diseño de SistemasMetodologías para el Diseño de Sistemas
Metodologías para el Diseño de SistemasIsidro Gonzalez
 
Cuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientadoCuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientadoFreddySantiago32
 

Was ist angesagt? (20)

Ejemplos práctios de calidad en el software tecdencies
Ejemplos práctios de calidad en el software tecdenciesEjemplos práctios de calidad en el software tecdencies
Ejemplos práctios de calidad en el software tecdencies
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de Requerimientos
 
Factores de calidad según mc call
Factores de calidad según mc callFactores de calidad según mc call
Factores de calidad según mc call
 
Modelo de desarrollo concurrente
Modelo de desarrollo concurrenteModelo de desarrollo concurrente
Modelo de desarrollo concurrente
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Técnicas y Herramientas para el Desarrollo de Sistemas de Información
Técnicas y Herramientas para el Desarrollo de Sistemas de InformaciónTécnicas y Herramientas para el Desarrollo de Sistemas de Información
Técnicas y Herramientas para el Desarrollo de Sistemas de Información
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
calidad de los sistemas de informacion
calidad de los sistemas de informacioncalidad de los sistemas de informacion
calidad de los sistemas de informacion
 
Los 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentesLos 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentes
 
Metodologia orientada a objeto
Metodologia orientada a objetoMetodologia orientada a objeto
Metodologia orientada a objeto
 
Fundamentos y metodos de analisis de requerimientos
Fundamentos y metodos de analisis de requerimientosFundamentos y metodos de analisis de requerimientos
Fundamentos y metodos de analisis de requerimientos
 
Ventajas y desventajas modelos
Ventajas y desventajas modelosVentajas y desventajas modelos
Ventajas y desventajas modelos
 
Diseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-softwareDiseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-software
 
Unidad 1 conceptos generales del diseño de sistemas
Unidad 1  conceptos generales del diseño de sistemasUnidad 1  conceptos generales del diseño de sistemas
Unidad 1 conceptos generales del diseño de sistemas
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
 
Modelado del análisis
Modelado del análisisModelado del análisis
Modelado del análisis
 
Metodologías para el Diseño de Sistemas
Metodologías para el Diseño de SistemasMetodologías para el Diseño de Sistemas
Metodologías para el Diseño de Sistemas
 
Cuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientadoCuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientado
 
Factores de calidad del software
Factores de calidad del softwareFactores de calidad del software
Factores de calidad del software
 
Rup (iteraciones)
Rup (iteraciones)Rup (iteraciones)
Rup (iteraciones)
 

Ähnlich wie fundamentos teoricos ingenieria de softwaare

Presentacion carrera ds
Presentacion carrera dsPresentacion carrera ds
Presentacion carrera dsEmilio Flores
 
Ingenieria del Software: Software a medida y generico.
Ingenieria del Software: Software a medida y generico.Ingenieria del Software: Software a medida y generico.
Ingenieria del Software: Software a medida y generico.usserp584
 
Luis caraballo 24695744 ensayo
Luis caraballo 24695744 ensayoLuis caraballo 24695744 ensayo
Luis caraballo 24695744 ensayoLuis Caraballo
 
Ingenieria de software final.
Ingenieria de software final.Ingenieria de software final.
Ingenieria de software final.Andrés Sorto
 
Ingenieria de software final.
Ingenieria de software final.Ingenieria de software final.
Ingenieria de software final.Andrés Sorto
 
El producto y el proceso
El producto y el procesoEl producto y el proceso
El producto y el procesojenmer
 
Alfredo garcia ing.pdf
Alfredo garcia ing.pdfAlfredo garcia ing.pdf
Alfredo garcia ing.pdfAlfredo Garcia
 
Javierperez ensayo
Javierperez ensayoJavierperez ensayo
Javierperez ensayojavier peeez
 
Fundamentos_de_ingenieria_de_software.pptx
Fundamentos_de_ingenieria_de_software.pptxFundamentos_de_ingenieria_de_software.pptx
Fundamentos_de_ingenieria_de_software.pptxmateoaramedi
 
Ingenieria de software -analizis literario
Ingenieria de software -analizis literarioIngenieria de software -analizis literario
Ingenieria de software -analizis literariodiegos08
 
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
 

Ähnlich wie fundamentos teoricos ingenieria de softwaare (20)

Ensayo sobre la calidad de software
Ensayo sobre la calidad de softwareEnsayo sobre la calidad de software
Ensayo sobre la calidad de software
 
Ensayo sobre la calidad de software
Ensayo sobre la calidad de softwareEnsayo sobre la calidad de software
Ensayo sobre la calidad de software
 
Ensayo sobre la calidad de software
Ensayo sobre la calidad de softwareEnsayo sobre la calidad de software
Ensayo sobre la calidad de software
 
Presentacion carrera ds
Presentacion carrera dsPresentacion carrera ds
Presentacion carrera ds
 
UNIDAD_I.ppt
UNIDAD_I.pptUNIDAD_I.ppt
UNIDAD_I.ppt
 
Conferencia_Introducción a la Ingeniería de Software
Conferencia_Introducción a la Ingeniería de SoftwareConferencia_Introducción a la Ingeniería de Software
Conferencia_Introducción a la Ingeniería de Software
 
Ingenieria del Software: Software a medida y generico.
Ingenieria del Software: Software a medida y generico.Ingenieria del Software: Software a medida y generico.
Ingenieria del Software: Software a medida y generico.
 
Luis caraballo 24695744 ensayo
Luis caraballo 24695744 ensayoLuis caraballo 24695744 ensayo
Luis caraballo 24695744 ensayo
 
Ingenieria de software final.
Ingenieria de software final.Ingenieria de software final.
Ingenieria de software final.
 
Ingenieria de software final.
Ingenieria de software final.Ingenieria de software final.
Ingenieria de software final.
 
El producto y el proceso
El producto y el procesoEl producto y el proceso
El producto y el proceso
 
Unidad1_EMDS.pptx
Unidad1_EMDS.pptxUnidad1_EMDS.pptx
Unidad1_EMDS.pptx
 
Plantilla trabajo final hecma
Plantilla trabajo final hecmaPlantilla trabajo final hecma
Plantilla trabajo final hecma
 
Proceso desarrollo software
Proceso desarrollo softwareProceso desarrollo software
Proceso desarrollo software
 
ingenieria de software
ingenieria de softwareingenieria de software
ingenieria de software
 
Alfredo garcia ing.pdf
Alfredo garcia ing.pdfAlfredo garcia ing.pdf
Alfredo garcia ing.pdf
 
Javierperez ensayo
Javierperez ensayoJavierperez ensayo
Javierperez ensayo
 
Fundamentos_de_ingenieria_de_software.pptx
Fundamentos_de_ingenieria_de_software.pptxFundamentos_de_ingenieria_de_software.pptx
Fundamentos_de_ingenieria_de_software.pptx
 
Ingenieria de software -analizis literario
Ingenieria de software -analizis literarioIngenieria de software -analizis literario
Ingenieria de software -analizis literario
 
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
 

fundamentos teoricos ingenieria de softwaare

  • 1. Ingeniería de Software Profa. Ing. María Andrade Unidad I: Fundamentos Teóricos
  • 2. Definición según la IEEE Á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. Profa. Ing. María Andrade
  • 3. La aplicación de enfoque sistemático, cuantifica ble y disciplinado al desarrollo, operación y mantenimiento de Software. Profa. Ing. María Andrade
  • 4. Áreas del conocimiento  Requisitos  ƒDiseño  Construcción  Pruebas  Calidad  Mantenimiento  Gestión de la configuración  Gestión de la ingeniería software  ƒProcesos  ƒHerramientas y métodos
  • 5. Expresan las necesidades y restricciones que debe satisfacer un producto para contribuir a la solución de un problema real. Considera la obtención, análisis, especificación y validación de los requerimientos y rol dentro del proceso de desarrollo de software. Re q u e r i m i e n t o s D i s e ñ o Es donde se generan modelos que sirven como “planos” para la construcción. Se divide en: Arquitectónico y Detallado. C o n s t r u c c i ó n Referido a la creación de software útil a través de la programación, depuración, pruebas unitarias e integra- ción de componentes. Lidia con la creación y aplicación de algoritmos para la reso- lución de problemas. Profa. Ing. María Andrade
  • 6. Profa. Ing. María Andrade P r u e b a s • Consisten en la verificación dinámica del comportamiento real de un programa comparado con su comportamiento esperado. Las pruebas se realizan para evaluar la calidad de un producto a través de la detección de fallas en éste. C a l i d a d • Se enfoca en la aplicación de técnicas estáticas para evaluar y mejorar la calidad del software. Involucra los subprocesos de aseguramiento de calidad, verificación, validación, revisión y auditoria. M a n t e n i m i e n t o • Referido a las modificaciones a un producto de software previamente liberado para prevenir fallas (preventivo), corregirlas (correctivo), mejorar su desempeño (perfectivo) o adaptarlo a cambios en el ambiente (adaptativo).
  • 7. G e s t i ó n d e l a c o n f i g u r a c i ó n Disciplina que identifica la configuración en distintos puntos del tiempo, con el propósito de controlar los cambios a ésta, manteniendo su integridad y rastreabilidad durante el ciclo completo de vida del software. G e s t i ó n d e l a i n g e n i e r í a s o f t w a r e Consiste en la aplicación de actividades administrativas: planeación, coordinación, medición, monitoreo, control y reporte, para asegurar que el desarrollo y mantenimiento de software se lleva a cabo de manera sistemática, disciplinada y cuantificable. P r o c e s o s Considera un proceso para las actividades técnicas y administrativas que deben realizarse para adquirir, desarrollar, mantener y retirar software. H e r r a m i e n t a s y M é t o d o s Permiten la automatización de tareas repetitivas y bien definidas centrado en aspectos creativos del proceso. Los métodos establecen una estructura para sistematizar las actividades con el objetivo de aumentar las posibilidades de éxito. Profa. Ing. María Andrade
  • 8. Historia y Evolución de la Ingeniería de Software Profa. Ing. María Andrade
  • 9. Años ´50 1 2 3 Se aplica al desarrollo de software el mismo proceso que al desarrollo de hardware. Se usa el método científico para aprender a través de la experiencia. El software era como un producto añadido y la programación un arte donde no existían métodos sistemáticos. Profa. Ing. María Andrade
  • 10. Años ´60 Profa. Ing. María Andrade 1 2 3 Multiprogramación y sistemas multiusuarios. Interacción hombre – máquina. Sistemas en tiempo real procesaban datos para la toma de decisiones. Sistemas de gestión de base de datos que genera la aparición del software.
  • 11. Años ´60 Profa. Ing. María Andrade 4 5 6 Se codifica y corrigen códigos. Fenómeno crisis del software. Se introduce por vez primera el término INGENIERIA DEL SOFTWARE.
  • 12. Años ´70 Profa. Ing. María Andrade 1 • 2 3 Evolucionan los sistemas distribuidos y las redes con acceso a datos instantáneos. Incrementa la complejidad de los sistemas informáticos. Surgen diferentes fases del desarrollo del software. Requerimientos – Análisis – Codificación – Pruebas.
  • 13. Años ´70 Profa. Ing. María Andrade 4 • 5 6 Introduce la programación estructurada y métodos formales para especificar software. Se identifican principios de diseño: Modularidad - Encapsulación - Abstracción de tipos de datos - Acoplamiento débil - Alta cohesión. Se publica el modelo en cascada y definición de los conceptos de verificación y validación.
  • 14. Años ´80 Profa. Ing. María Andrade 1 2 3 Aumento de la productividad del software y equipos de desarrollo. La industria del software es la cuna de la economía del mundo. En el Desarrollo del Software 4GLs, cambian la forma en que se construyen los programas.
  • 15. Años ´80 Profa. Ing. María Andrade 4 5 Introduce la POO a través de múltiples lugares de programación. Se crea el primer modelo de madurez de capacidad de procesos SW - CMM.
  • 16. Años ´90 Profa. Ing. María Andrade 1 • La orientación a objetos se extiende a las fases de análisis y diseño. 2 • Se implementa el lenguaje de modelado (UML). 3 • Se genera el primer proceso comercial de desarrollo orientado objetos (RUP). 4 • Se emplean los patrones de diseño y arquitectura. 5 • Se define el modelo espiral para el desarrollo basado en el análisis de riesgos y software iterativo e incremental. 6 • Se impulsa la creación de software libre y de código abierto. 7 • Se emplean metodologías ágiles para el desarrollo de sotware dinámico.
  • 17. En la actualidad… Profa. Ing. María Andrade Se hace necesario la agilidad para el desarrollo del software. Nuevos dispositivos electrónicos se involucran en el ciclo de vida. Principales cualidades de los software son: Seguridad, Privacidad, Usabilidad y Confiabilidad. Se incrementa la programación de software empaquetado. Desarrollo de software por modelos toma más fuerza.
  • 18. En la actualidad… Profa. Ing. María Andrade La tecnología digital está transformando a las organizaciones, los sistemas actuales afectan directamente la forma en que los directivos administran, planifican y operan los bienes y servicios que producen. La creciente potencia de la tecnología de computación, ha dado origen a poderosas redes de comunicación que las organizaciones pueden usar para acceder a grandes depósitos de información a nivel mundial, coordinar sus actividades en el espacio y tiempo transformando a las empresas, mercado y sociedad en general.
  • 19. Principios de la IS Profa. Ing. María Andrade
  • 20. Principios Métodos y Técnicas Metodología Herramientas Constituyen los elementos a considerar para desarrollar software de forma exitosa que involucra procesos y productos finales Métodos: Guías generales que gobiernan la ejecución de algu- na actividad, la cual se presenta con enfoques: rigurosos, sistema- ticos y disciplina- dos Técnicas: De orden mécani- co con aspectos técnicos y restrin- gidos Conjunto de mé- todos y técnicas con el propósito de perfilar los en- foques orientados a la resolución de un problema Se desarrollan en apoyo a la aplica- ción de métodos, técnicas y método- logías Profa. Ing. María Andrade
  • 22. Rigor y Formalidad Separación de Intereses Modularidad Abstracción Anticipación al Cambio Generalidad Incrementalidad Profa. Ing. María Andrade Identificaciónde losPrincipiosdela IS 1 2 3 4 5 6 7
  • 23. Rigor y Formalidad1 Rigor •Serie de pasos definidos, precisos y coherentes, en donde en cada uno de ellos se aplica una técnica. La técnica •Depende de los resultados teóricos del modelo, ajustes empíricos y experiencia del desarrollador. Esta Interacción •Conlleva a la definición de una metodología. Implica •Completitud y Correctitud. Formalidad •Forma en la que debo erradicar la ambigüedad. No corrige • Únicamente, especifica lo que se quiere, necesita o hace. Dependerá • Varios factores: Experiencia en el área, nivel crítico del producto y definición del proceso del Software. Necesariamente • El desarrollador debe decidir el grado de formalidad necesario para cada paso del desarrollo. Profa. Ing. María Andrade
  • 24. Profa. Ing. María Andrade Cualidades en los Productos y Procesos DS Documentación Rigurosa y/o Formal  Confiable  Verificable  Mantenible  Reusable  Portable  Comprensible  Interoperable
  • 25. Separación de Intereses2 Profa.Ing.MaríaAndrade Se centra en poder analizar y estudiar aspectos separados según los intereses de acuerdo al producto o proceso DS. Tiempo Planificación de las actividades en el tiempo. Base del ciclo de vida del software. Secuencia de actividades. Definición de hitos. Cualidades Dedicarse a desarrollar distintas cualidades por separado. Eficiencia y correctitud de un programa. Procesos Flujo de datos y Flujo de control. Interfaces del usuario y diseño de la base de datos. Partes Refinamiento del sistema por partes dependiendo del tamaño. Modularidad. Separación Completo S i m p l i c i d a d C o m p l e j i d a d
  • 26. Profa. Ing. María Andrade Optimalidad en la Separación de Intereses La separación del problema completo en pequeñas partes, sugiere que es posible no considerar una solución óptima global. En general, la complejidad del problema completo nos impide resolver bien los problemas parciales y también el problema global.
  • 27. Modularidad3 Un sistema complejo puede dividirse en piezas simples que se denominan módulos, y un sistema compuesto por módulos es llamado modular, siendo lo más importante permitir la aplicación del principio de separación de intereses. Profa. Ing. María Andrade
  • 28. Descomposición • Descomponer un sistema en grandes bloques. • Aplicar la descomposición recursivamente a bloques complejos. Composición • Usando varios elementos básicos (módulos), se construye un sistema más complejo. • La reutilización de módulos de software beneficia a todo el proceso de desarrollo. Compresión • Es más fácil localizar cambios en un sistema modular. • También es más fácil comprender módulos, tanto pequeños como grandes. Profa. Ing. María Andrade Objetivosdela Modularidad
  • 29. Profa. Ing. María Andrade Modularidad Alta Cohesión Los elementos comprendidos dentro de un módulo están altamente relacionados. Cooperan para lograr un mismo fin. No están juntos al azar. Bajo Acoplamiento Mide la interdependencia de dos módulos. La relación e interacción entre los distintos módulos debe ser simple (Ojalá no circulen órdenes, sólo invocaciones). Mantener a los módulos tan desacoplados como sea posible. Si dos módulos dependen altamente uno del otro, es probable que los cambios en un módulo afecten al otro.
  • 30. Abstracción4 Profa. Ing. María Andrade Proceso donde se identifican aspectos relevantes de un problema, ignorando los detalles. Es una forma de separación de intereses cuya información extrae aspectos esenciales y de detalles, que proporcionará una visión real del requerimiento. La abstracción no es única, depende de:  Software  Usuario de la abstracción
  • 31. Profa. Ing. María Andrade Abstraccionesdel Software Software Usuario Final Funcionalidad, usabilidad y mecanismos de interacción Diseñador Funcionalidad, algoritmos y estructuras de datos Programador Algoritmos, estructuras de datos, lenguaje de programación Mantenedor Arquitectura, funcionalidad, lenguaje de programación
  • 32. Anticipación al Cambio5 Profa. Ing. María Andrade Capacidad para prever, detectar y aprovechar el cómo, dónde y para qué se pueden producir cambios en el proceso o producto de forma anticipada. En cuanto al DS • Anticipar el cómo y dónde van a ocurrir los cambios. • Proceder de modo que haga fácil la aplicación de futuros cambios. Mantenibilidad, cualidad deseable • Corrección de errores (correctivo). • Aumentar la funcionalidad (adaptativo) Aplica etapa de diseño del software • Los lugares que van a cambiar se aíslan de modo que los cambios no afecten otras porciones del software. Laanticipacióndeloscambiospropicia situacioneseficientes
  • 33. Profa. Ing. María Andrade PrincipioÚnicodel Software Las aplicaciones de software se desarrollan a pesar de que sus requerimientos muchas veces no se han comprendido completamente. Después de instalado el sistema, el usuario realiza comentarios que dan lugar a cambios y ajustes. Las organizaciones se ven afectadas por la instalación de un nuevo sistema, de modo que los requerimientos cambian con su implantación.
  • 34. Profa. Ing. María Andrade Reutilizaciónenla Anticipación Reutilización es una evolución en pequeña escala, a nivel de componentes. Anticipar los contextos en que los componentes serán utilizados, se diseña de modo que se pueda acomodar fácilmente los cambios necesarios. Un componente es reusable, si puede ser utilizado para construir un nuevo sistema (sin cambios o con cambios mínimos).
  • 35. Profa. Ing. María Andrade Controldela Configuración Los cambios en las componentes deben ser registrados y almacenados. Cada sistema debe tener la versión apropiada de cada una de sus componentes. Cada configuración consistente debe también ser almacenada. Las herramientas son esenciales.
  • 36. Profa. Ing. María Andrade Anticipaciónenel Proceso Anticipa acciones de cambios en el personal. Se considera el mantenimiento para la estimación de costos del sistema. La construcción de componentes reutilizables se considera como parte del proyecto o como un proyecto paralelo.
  • 37. Generalidad6 Profa. Ing. María Andrade Se constituye en un principio fundamental siempre y cuando se tenga como objetivo desarrollo de herramientas generales o paquetes para el mercado, por cuánto debe atender múltiples necesidades ajustadas a diversos usuarios finales. Al resolver un problema, es preciso descubrir un problema más general que se esconde bajo el problema particular. Una solución más general es potencialmente más reutilizable.
  • 38. Incrementalidad7 Profa. Ing. María Andrade Se caracteriza un proceso de pasos secuenciales de aproximaciones, en la cual debe darse una retroalimentación entre el usuario y desarrollador para adicionar funcionabilidades buscando confiabilidad de la aplicación, y cuyo objetivo se logra como una sucesión de pasos construidos cada uno sobre la anterior. Un proceso es incremental si se compone de pequeños pasos (incrementos). En el software, un proceso de desa- rrollo es incremental si se aplica el modelo Evolutivo de desarrollo. Cualidades incrementales: Evolucionable, Performance, Amigable, Robustez, Confiabilidad
  • 39. Profa. Ing. María Andrade Proceso Incremental Seleccionar y desarrollar un subconjunto de la funcionalidad Entregar al usuario la funcionalidad desarrollada Obtener comentarios del usuario para proseguir con el desarrollo
  • 40. Cualidades del Profa. Ing. María Andrade Software de Calidad
  • 41. Profa. Ing. María Andrade ¿Qué es un Software de Calidad? o Construido para cumplir ciertas funcionalidades y satisfacer determinadas cualidades. o El proceso de construcción de software igualmente debe cumplir ciertas cualidades. o Las cualidades son referidas como requisitos no funcionales.
  • 42. Profa. Ing. María Andrade ¿Cómo conseguir un Software de Calidad? Proceso Soportado por un método riguroso y sistemático Basado en principios reconocidos Actividades que se estructuren de acuerdo a un modelo Facilitado por el uso de herramientas
  • 43. Profa. Ing. María Andrade Cualidades del Software de Calidad Correctitud Confiable Robusto Eficiente Verificable MantenibleReparableEvolucionableReusablePortable Comprensible Interoperable Productivo Oportuno Visible
  • 44. Profa. Ing. María Andrade Correctitud, Confiable y Robusto Correctitud Se comporta acorde a su especificación Debe satisfacer los requisitos funcionales Confiable Se comporta de acuerdo a lo esperado por el usuario Robusto Se comporta razonablemente aún en cirscunstancias no contempladas
  • 45. Profa. Ing. María Andrade Confiable o ISO 9127. Confiabilidad: Referida a la capacidad de un SW de mantenerse operativo bajo las condiciones establecidas por un pe ríodo de tiempo. o Informalmente, el usuario confía en el producto. o Si las especificaciones son correctas, todo software correcto es confiable. Pero no a la inversa, pues en la práctica, pueden haber especificaciones incorrectas.
  • 46. Profa. Ing. María Andrade Eficiencia Usa los recursos computacionales económicamente (Memoria, tiempo de procesamiento, comunicación, entre otros). Se mide mediante técnicas clásicas: complejidad de algoritmos y evaluación de la eficiencia (monitoreo, simulación, entre otros).
  • 47. Profa. Ing. María Andrade Portabilidad1 El software puede correr en diferentes plataformas de hardware o ambientes de software. 2 Se refiere a la habilidad del software de ser transferido de un ambiente a otro. 3 Es una cualidad relevante cuando se introducen nuevas plataformas. 4 Es relevante, cuando el software se baja de ambientes de redes heterogéneos.
  • 48. Profa. Ing. María Andrade Reusabilidad Productos o componentes que son usados para construir otros productos Reuso de partes estandar miden la madurez de una ingeniería Tambien aplica a procesos
  • 49. Profa. Ing. María Andrade Reusabilidad Componen- tes Reusables Librerías científicas Librerías para el desarrollo de interfaces Patrones Especifica- ciones Clases
  • 50. Profa. Ing. María Andrade Mantenibilidad o Se refiere a la facilidad de mantenimiento que se puede realizar al software, el cual a su vez implica cambios posterior a la liberación del producto y cuyos costos de mantenibilidad superan aproximadamente el 65% de la inversión total del software. Correctivo Remosión de Errores residuales presentes en el producto asi como el mantenimiento. Representa el 20% de los costos Adaptativo Relacionado al ajuste de la aplicación a cambios en el entorno. Ej. Liberacion del hardware o del S.O. Representa el 20% de los Perfectivo Mejorar la calidad, satisfacer nuevos requisitos, aumentar la eficiencia, modificar las funcionabilidades .Representa el 50% de los
  • 51. Profa. Ing. María Andrade Comprensibilidad o Facilidad de comprender el software. o Es una cualidad muy importante, para realizar modificaciones de programa. o Esta cualidad incide en la mantenibilidad. o Desde el punto de vista externo, se considera que un sistema es comprensible si su comportamiento es predecible, siendo esta cualidad un componente de la amigabilidad.
  • 52. Profa. Ing. María Andrade Interoperabilidad Puede coexistir y cooperar con otros sistemas de software. Ej. Habilidad de un procesador de texto de incluir gráficos producidos por un paquete de gráficos
  • 53. Profa. Ing. María Andrade Usabilidad o Referido al esfuerzo que se requiere por el conjunto de usuarios para el uso del software (Iso 9127). Igualmente es una cualidad del software que tiene múltiples componentes y tradicionalmente es asociado con: Aprendizaje Eficiencia Memorización Bajo rata de errores Satisfacción
  • 54. Profa. Ing. María Andrade Usabilidad o La usabilidad de un producto de software está determinada por la satisfacción del usuario al utilizar el producto. o Fundamentalmente relacionada con las características de la interfaz de usuario. o Inciden diversas cualidades para garantizar la usabilidad del software.
  • 55. Profa. Ing. María Andrade productividad o Es una cualidad del proceso de produccion del software que mide la eficiencia del proceso, es decir es la cualidad de la efectividad aplicada al proceso. o Un proceso eficiente resulta entrega mas rápida para el producto. o Se utilizan métricas que permitan comparar distintos procesos en términos de su productividad.
  • 56. Profa. Ing. María Andrade Oportunidad o Habilidad de entregar un producto a tiempo. o La oportunidad debe estar complementada con una agenda bien planeada , con un trabajo de estimación acertado y puntos de revisión específicos y verificables para garantizar la confiabilidad y la eficiencia del sistema.
  • 57. Profa. Ing. María Andrade Visibilidad o Un sistema es visible si todos sus pasos y su estado actual son claramente documentados. o Permite a los ingenieros, pesar el impacto de sus acciones y los guia en la toma de decisiones. o Es favorable dentro de la gestión de proyectos en cuanto a la gestión de conocimiento.
  • 58. Actividades en el Proceso Profa. Ing. María Andrade de Desarrollo de Software
  • 59. Profa. Ing. María Andrade 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
  • 60. Profa. Ing. María Andrade Actividades en el proceso de desarrollo de software Modelo Método Principios Herramientas Se relacionan conformando un Se desarrollan aplicando un El método se fundamenta en El método puede soportarse en Principios Métodos Herramientas Modelos
  • 61. ¡A tomar en cuenta para las Actividades DS! 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. Profa. Ing. María Andrade
  • 62. ¡A tomar en cuenta para las Actividades DS! 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. Profa. Ing. María Andrade
  • 63. ¿Cuáles son las actividades más comunes en DS? Profa. Ing. María Andrade Identificación y especificación de requisitos Análisis Diseño Prototipo ProgramaciónEspecificación Validación / Verificación Gestión de las configuraciones Integración Desarrollo de la interfaz
  • 64. Relación entre las actividades de DS Profa. Ing. María Andrade Encadenamiento Rol Granularidad Modelo de DS Método 1 Método 2… Análisis de requisitos Prototipaje Especificación Implementación Ejemplo
  • 65. Actividades – Modelos - Procesos Profa. Ing. María Andrade o El modelo de desarrollo de software indica como se relacionan las actividades. o Los procesos de desarrollo de software indican como se realizan las actividades para producir y evolucionar un sistema del software.
  • 66. Actividades – Modelos - Procesos Profa. Ing. María Andrade o ¿Cómo encadenar las actividades del proceso de desarrollo de software? Modelos (ciclo de vida) Ej.: Modelo de la cascada, UP.... o ¿Cómo realizar las actividades del proceso de desarrollo de software? Métodos Ej.: Orientado a objeto,… o ¿Cuáles principios se aplican en el proceso de desarrollo de software? Ej.: Incrementable, iterativo,...
  • 67. Conceptos Generales Profa. Ing. María Andrade o CICLO DE VIDA: Conjunto de etapas que se han de llevar a cabo para crear, explotar y mantener un Sistema Informático. o METODOS: Son las normativas que marcan las directrices que se han de seguir para llevar a cabo una tarea. Responde a la pregunta QUÉ. o TECNICAS: Es un modo de representación para la solución de un problema concreto. Responde a la pregunta CÓMO. o METODOLOGIA: Es un conjunto coherente de métodos y técnicas que cubren más de una etapa del ciclo de vida. o HERRAMIENTAS: Proporcionan un soporte automático o semi-automático para el proceso y para los métodos.