Caracterizar la fundamentación teórica del software, mediante el análisis de su evolución y del proceso de ingeniería, que permitan identificar el ámbito de la ingeniería de software.
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
IIS Unidad1: Introducción a la Ingeniería de Software
1. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 1
17/12/2021
Introducción a la Ingeniería
de Software
Unidad 1
Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo
para uso de los cursos de Introducción a la Ingeniería de Software
2. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 2
17/12/2021
Objetivo general de la Unidad 1
Caracterizar la fundamentación teórica del
software, mediante el análisis de su evolución y
del proceso de ingeniería, que permitan identificar
el ámbito de la ingeniería de software.
3. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 3
17/12/2021
Contenido
• Fundamentos a la Ingeniería de Software
• Proceso de Ingeniería de software
• Sistemas de información
4. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 4
17/12/2021
Contenido
• Fundamentos a la Ingeniería de Software
– Definiciones y Objetivos de la Ingeniería de
software
– La evolución del software
– La crisis del software
– El software en la actualidad
• Proceso de Ingeniería de software
• Sistemas de información
5. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 5
17/12/2021
Definiciones
• (1993) La aplicación mecanismos sistemáticos,
disciplinados, y cuantificables para el desarrollo,
operación y mantención de software; esto es la
aplicación de la ingeniería al software.
• Establecimiento y uso de principios con caracteres
de ingeniería apropiados para obtener,
eficientemente, software confiable, que opere
eficaz y eficientemente en máquinas reales
• La aplicación del arte del desarrollo software junto
con las ciencias matemáticas y computadores
para diseñar, construir, y mantener programas
computacionales eficientes y económicos que
logran sus objetivos.
6. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 6
17/12/2021
Definiciones
• Establecimiento y uso de principios de ingeniería robustos,
orientados a obtener software económico, fiable, eficiente y
que satisfaga las necesidades del usuario
• Disciplina que comprende todos los aspectos de la producción
de software, desde las etapas iniciales hasta el mantenimiento:
– “disciplina de ingeniería”: aplicación de teorías, métodos y
herramientas para solucionar problemas, y teniendo en cuenta
restricciones financieras y organizativas
– “todos los aspectos de producción”: comprende procesos técnicos
del desarrollo y actividades como la administración de proyectos,
desarrollo de herramientas, métodos y teorías
• Actividad de
– modelado
– solución de problemas
– adquisición de conocimiento
– dirigida por una fundamentación
7. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 7
17/12/2021
Definición de la ingeniería del software
(OTAN ‘68)
• La ingeniería del software es el
establecimiento y uso de principios de
ingeniería razonables con el objetivo de
obtener software económicamente, que
sea de confianza y trabaje eficientemente
en las maquinas reales.
8. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 8
17/12/2021
Definición
(R.E. Fairley 1985)
• Hemos definido la Ingeniería del Software como la
disciplina tecnológica concerniente a la producción y
mantenimiento sistemáticos de productos software
que son desarrollados y modificados en el tiempo y
con los costes estimados...
• Además, la Ingeniería del software tiene que ver con
cuestiones de gestión que caen fuera del dominio de
la programación tradicional.
9. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 9
17/12/2021
Resumiendo…
• La ingeniería de software es una aplicación práctica
del conocimiento científico para proveer metodologías
y técnicas que ayuden a desarrollar sistemas de
software a tiempo, y a su vez que aseguren que el
desarrollador cumpla con las expectativas de calidad
y permanezca dentro del presupuesto.
10. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 10
17/12/2021
Objetivos de la ingeniería del software
(Van Vliet 1993)
• Construcción de programas grandes
(empresariales)
• Controlar la complejidad
• Cooperación entre las personas
implicadas
• Evolución del software (mantenibilidad)
• Eficiencia en el desarrollo
• Soporte real a los usuarios
11. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 11
17/12/2021
Contenido
• Fundamentos a la Ingeniería de Software
– Definiciones y Objetivos de la Ingeniería de
software
– La evolución del software
– La crisis del software
– El software en la actualidad
• Proceso de Ingeniería de software
• Sistemas de información
12. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 12
17/12/2021
– 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
Un poco de historia
13. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 13
17/12/2021
Tipos de software
• Software
– programas
– archivos de configuración
– documentación de la estructura
del sistema
– manuales de instalación y uso
– sitios web con información y
actualizaciones
• Tipos de software
– productos genéricos
• sistemas producidos por una
organización y que se venden
en el mercado abierto
• sistemas gestores de bases de
datos, procesadores de texto,
paquetes gráficos,...
• la organización controla la
especificación
– productos personalizados
• desarrollados
específicamente para un
cliente
• aplicaciones de negocio,
sistemas de control de tráfico
aéreo, control de procesos de
fabricación,...
• el cliente controla la
especificación de la
aplicación
14. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 14
17/12/2021
El software desde una perspectiva
industrial
El valor del software: de “elemento añadido” a principal
elemento de coste
El desarrollo del software:
Algunas preguntas:
¿Por qué se tarda tanto? (y casi siempre más de lo previsto)
¿Por qué la productividad es tan baja?
¿Por qué cuesta tanto?
¿Por qué siempre quedan errores sin localizar?
15. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 15
17/12/2021
Contenido
• Fundamentos a la Ingeniería de Software
– Definiciones y Objetivos de la Ingeniería de
software
– La evolución del software
– La crisis del software
– El software en la actualidad
• Proceso de Ingeniería de software
• Sistemas de información
16. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 16
17/12/2021
El Software se desarrolla, no se
fabrica.
• En cualquier sistema de producción podemos
observar dos fases la de desarrollo y la de
fabricación.
– El desarrollo es lento y costoso.
– La fabricación en serie y con costes estables.
• Con el Software ocurre lo mismo pero ...
– Muchas aplicaciones se desarrollan a medida, sin
usar componentes existentes.
– La fabricación no se considera tal.
17. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 17
17/12/2021
El software como elemento lógico
• Se desarrolla, no se fabrica:
– Calidad del diseño.
– Costes más importantes en la ingeniería
– Gestión especial de los proyectos
• Se “deteriora” con el mantenimiento
• Desarrollo a medida (ausencia de componentes)
• La “crisis” del software: problemas que aparecen en el desarrollo del
software al desarrollar, mantener y atender la demanda de nuevas
aplicaciones.
Insatisfacción del cliente
Planificación y estimaciones
imprecisas
Calidad
Sin tiempo para recoger
datos históricos
Baja productividad
Dificultad de mantener
el software existente
18. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 18
17/12/2021
Crisis del software
• La Crisis del software se refiere a los problemas que, desde
sus inicios, ha ido experimentando el software, muchas veces
problemas de gran magnitud, debido, principalmente, a la
mínima eficacia que presentan una gran cantidad de
empresas al momento de realizar un software.
• Sin embargo, no fue hasta 1968 cuando en la primera
conferencia elaborada por la OTAN (Organización del
Tratado del Atlántico Norte), Friedrich L. Bauer habló por
primera vez del conjunto de dificultades o errores ocurridos
en la planificación, estimación de los costos, productividad y
calidad de un software, o bien, lo que se conoce como la
crisis del software, dicho término se le atribuyó a F. L. Bauer
aunque ya había sido utilizado por Edsger Dijkstra en su libro
The Humble Programmer.
• Para dar solución a los problemas que se presentaban en
esta conferencia se creó una nueva rama de ingeniería, la
ingeniería de software.
19. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 19
17/12/2021
La crisis del software
• Causas
– Naturaleza lógica del software
– Mala gestión de los proyectos ( ausencia de datos,
deficiente comunicación, ...)
– Ausencia de entrenamiento formal en nuevas técnicas
(programadores vs. ingenieros de software)
– Resistencia al cambio
– Mitos del software:
MITOS DEL CLIENTE
- Requisitos establecidos como
una declaración general de
objetivos
- Flexibilidad del software ante
los cambios
MITOS DE GESTIÓN
- Uso de estándares
- Uso de herramientas
- Mala planificación: aumento
de programadores
MITOS DE LOS DESARROLLADORES
- Programa funcionando = fin del trabajo
- Calidad = el programa se ejecuta
sin errores
- Entrega al cliente: programa
funcionando
20. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 20
17/12/2021
Contenido
• Fundamentos a la Ingeniería de Software
– Definiciones y Objetivos de la Ingeniería de
software
– La evolución del software
– La crisis del software
– El software en la actualidad
• Proceso de Ingeniería de software
• Sistemas de información
21. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 21
17/12/2021
Actualidad de la ingeniería de software
• Actualmente está surgiendo una gran expectativa ante la
evolución de la Ingeniería del Software, al ir apareciendo
nuevos métodos y herramientas formales que van a permitir
en el futuro un planteamiento de ingeniería en el proceso de
elaboración de software.
• Dicho planteamiento permitirá dar respuesta a los problemas
de:
– Administración
– Calidad
– Productividad
– Fácil mantenimiento
• Este último es uno de los grandes problemas, pues puede
llegar a suponer un importe superior al 60% del total del coste
del software.
22. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 22
17/12/2021
Estado del arte en Ing. De Software
• ¿Es una ciencia rigurosa con fuertes
fundamentos matemáticos?
• ¿Es una campo técnico bien desarrollado
con mucho de disciplina de ingeniería?
• O está realmente en un estado primitivo...
– A lo más una serie de “mejores prácticas”,
desarrolladores de software construyen software
y si éstos funcionan entonces nosotros
estudiamos cómo ellos lo hicieron.
– Si éstos funcionan por un largo tiempo entonces
estudiamos sus procesos de software aun más
cuidadosamente.
23. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 23
17/12/2021
Estado del arte en Ing. De Software
trata de ser la respuesta a la crisis del software
combinación de elementos:
filosofía de coordinación,
control
y buena gestión
métodos completos para
todas las fases
mejores técnicas de
control de calidad
mejores elementos
de programación
herramientas para automatizar
los métodos
24. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 24
17/12/2021
Contenido
• Fundamentos a la Ingeniería de Software
• Proceso de Ingeniería de software
• Sistemas de información
25. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 25
17/12/2021
Contenido
• Fundamentos a la Ingeniería de Software
• Proceso de Ingeniería de software
– Factores de calidad del software
– Problemas en el desarrollo de software
– La ingeniería del software
– Visión general del proceso de ingeniería del
software
– Responsabilidad ética y profesional en ingeniería
del software.
• Sistemas de información
26. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 26
17/12/2021
Atributos de la calidad del Software
("ilitys")
Safety Understandability Portability
Security Testability Usability
Reliability Adaptability Reusability
Resilience Modularity Efficiency
Robustness Complexity Learnability
Exposiciones
27. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 27
17/12/2021
Atributos de la calidad del Software
("ilitys")
• Safety
– Un sistema es fiable (safety) si cumple sus
especificaciones
• Security
– Un sistema es seguro (security) si no se pueden producir
situaciones que puedan causar muertes, heridas,
enfermedades, ni daños en los equipos ni en el ambiente
• Un accidente (mishap) es un suceso imprevisto que puede
producir daños inadmisibles
– Seguridad y fiabilidad pueden estar en conflicto
La seguridad es la probabilidad de que no se produzcan
situaciones que puedan conducir a accidentes,
independientemente de que se cumpla la especificación o no
1
2
28. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 28
17/12/2021
Atributos de la calidad del Software
("ilitys")
• Reliability (confiabilidad)
– Es la probabilidad de que el software funcione sin fallos
para un período de tiempo en un entorno específico
– La confiabilidad del software no es una función directa del
tiempo.
• Las piezas electrónicas y mecánicas pueden envejecer y
desgastarse con el tiempo y el uso.
• El software NO se desgasta durante su vida.
• El software NO cambia con el tiempo a menos que se modifique
o actualice intencionalmente
– A medida que se utiliza un software, se descubren fallas
de diseño y se corrigen. En consecuencia, la confiabilidad
debería mejorar, y la tasa de fallas debería disminuir
PERO las correcciones podrían causar nuevas fallas
3
29. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 29
17/12/2021
Recordando: Curva real de fallos del
Software.
Tiempo
Indice
de
fallos
Defectos fabricación
Curva ideal
Cambio Cambio Cambio
Obsolescencia
30. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 30
17/12/2021
Atributos de la calidad del Software
("ilitys")
• Resilience
– La resiliencia de la solución de software se refiere a la
capacidad de una solución para absorber el impacto de un
problema en una o más partes de un sistema, mientras
continúa proporcionando un nivel de servicio aceptable al
negocio.
– Un sistema resistente con uso intensivo de software
puede:
• experimenta una falla en uno o más de sus componentes
constituyentes (hardware, software, red, etc.), y / o
• encontrar entradas inesperadas o condiciones externas, y / o
• estar bajo ataque malintencionado de fuentes internas o
externas, y todavía…
– continuar proporcionando un nivel útil de funcionalidad al usuario,
y
– recuperar funciones interrumpidas rápidamente después de un
incidente disruptivo
4
31. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 31
17/12/2021
Atributos de la calidad del Software
("ilitys")
• Robustness
– La robustez es la capacidad de un sistema para manejar
situaciones anormales
– Un software es robusto, si alguna excepción surgida
durante su ejecución, en cualquier arquitectura y con
cualquier estado inicial, es detectada por algún manejador
de excepciones.
– ¡Programe defensivamente! Esto significa que debe
diseñar su software con respecto a la robustez.
• Su programa no solo debe funcionar correctamente en cada situación,
sino que también debe resistir cualquier posible mal comportamiento
del usuario o error en su entorno.
• Esto implica que siempre debe verificar las suposiciones que hizo
durante el proceso de desarrollo. Tales suposiciones podrían ser:
– “Este valor debería ser normalmente positivo aquí”.
– “No se permite que el puntero sea NULL en esta situación”.
– ¡Compruebe estas suposiciones!
5
32. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 32
17/12/2021
Atributos de la calidad del Software
("ilitys")
• Understandability
– La comprensibilidad es el concepto de que un
sistema debe presentar para que quien de
mantenimiento al mismo (extender alguna
funcionalidad) pueda comprenderlo fácilmente.
– Los cambios en el diseño de un componente del
sistema implican que la persona responsable de
hacer el cambio entienda la operación de dicho
componente.
– Cuanto más comprensible sea un sistema, más
fácil será para los ingenieros cambiarlo de una
manera predecible y segura.
6
33. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 33
17/12/2021
Atributos de la calidad del Software
("ilitys")
• Testability
– La capacidad de prueba del software es el grado
en que un artefacto de software (es decir, un
sistema de software, módulo de software,
requisitos o documento de diseño) respalda las
pruebas en un contexto de prueba dado.
– Si la capacidad de prueba del artefacto de
software es alta, entonces es más fácil encontrar
fallas en el sistema (si las tiene) mediante
pruebas.
7
34. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 34
17/12/2021
Atributos de la calidad del Software
("ilitys")
• Adaptability
– La definición intuitiva de adaptabilidad es la medida
en que un sistema de software se adapta a los
cambios o nuevas condiciones de su entorno.
– Un sistema de software adaptable puede tolerar
cambios en su entorno sin intervención externa.
• Por ejemplo, un teléfono móvil puede averiguar por sí mismo
si alguno de los dos estándares inalámbricos que admite está
disponible en su ubicación actual y, si es así, comienza a
utilizar ese estándar.
– La adaptabilidad difiere de la robustez (robustness)
en la escala del cambio ambiental: el software
adaptable puede tolerar desviaciones mucho mayores
en el entorno que un software robusto.
8
35. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 35
17/12/2021
Atributos de la calidad del Software
("ilitys")
• Modularity
– La modularidad del software es la
descomposición de un programa en programas
más pequeños con interfaces estandarizadas.
– Debido a la complejidad de los grandes
problemas y las limitaciones de la mente humana
estos no se pueden atacar como una unidad
monolítica
• Aplicar dividir y conquistar (separar en módulos)
• Dividir en piezas (módulos) que pueden ser
“conquistadas” por separado. Sino se hizo una división
poco inteligente
9
36. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 36
17/12/2021
Descomposición: Jerarquía de módulos
• Dividir sucesivamente, obteniendo niveles
– Se formará una jerarquía de módulos
– Los de mas bajo nivel
• Resuelven problemas más pequeños y
• Contienen mas detalle
• Hasta que los módulos de nivel inferior
– Sean sumamente simples
– Y solo contengan funciones y procedimientos
– Que resuelven problemas independientes y
pequeños
37. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 37
17/12/2021
Cuando modularizar
• Si un conjunto de sentencias realiza una tarea
– Recurrente, repetitiva, identificable
• Debe ser un módulo
• Sin embargo,
– Una tarea no necesita ser recurrente para hacerla un
módulo
Modularidad
Función
F1
Función
F2
Procedimiento
P1
Programa
Principal
38. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 38
17/12/2021
Criterios para modularizar
• Descomposición
– Descomponer el problema en sub-problemas (diseño
top-down)
• Composición
– A partir de los componentes es posible obtener un
nuevo sistema (diseño bottom-up)
• Continuidad del impacto por cambios
– Pequeños cambios en la especificación afectan pocos
módulos
• Protección durante ejecución
– Efectos de anomalías durante la ejecución están
localizados
39. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 39
17/12/2021
Descomposición
Deben hacerse módulos, pero con cuidado para permanecer en
la cercanía de M. Debe evitarse hacer pocos o muchos
módulos.
Región de
costo mínimo
M
Costo
del
esfuerzo
Costo de integración
Costo total del software
Costo por módulo
Número de módulos
40. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 40
17/12/2021
Atributos de la calidad del Software
("ilitys")
• Complexity
– La complejidad describe las interacciones entre
las varias partes que conforman el software. Se
refiere al grado en que un sistema o componente
tiene un diseño o implementación que es difícil
de entender y verificar.
– A medida que aumenta el número de
componentes, el número de interacciones entre
ellas aumentaría exponencialmente y llegaría a
un punto en el que sería imposible conocerlas y
comprenderlas todas.
10
41. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 41
17/12/2021
¿Cuál diseño es más complejo de
mantener?
42. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 42
17/12/2021
Acoplamiento
Modulo
A
Modulo
D
Modulo
B
Modulo
C
Area de Data Compartida
Alto Acoplamiento
Modulo A
Data de A
Modulo B
Data de B
Modulo D
Data de D
Modulo C
Data de C
Bajo Acoplamiento
43. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 43
17/12/2021
Reducir Complejidad
10
9
8
7
6
5
4
3
2
1
20 25 30 35
Complejidad del Diseño del Sistema
Faltas
por
mil
lineas
de
código
44. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 44
17/12/2021
Atributos de la calidad del Software
("ilitys")
• Portability
– La portabilidad es definida como la característica
que posee un software para ejecutarse en
diferentes plataformas, es decir, la portabilidad se
refiere exclusivamente a la propiedad que posee
un software que le permite ser ejecutado en
diferentes plataformas y/o sistemas operativos.
– De este modo, si un determinado software
compilado pudiere ser ejecutado en cualquier
sistema operativo, diríamos que ese software es
100% portable.
11
45. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 45
17/12/2021
Máquina Virtual de Java (JVM)
¿cómo funciona?
-Fuente Java : archivo .java
•Archivo utilizado durante la fase de programación.
•El único archivo realmente inteligible para el programador.
- Byte-Code Java : archivo .class
• Código objeto destinado a ser ejecutado en toda MaquinaVirtual de Java
• Procede de la compilación del código fuente (javac *.java)
-MaquinaVirtual Java
• Interprete de java convirtiendo el código a un lenguaje entendible para la máquina,
ejecuta el Byte-Code Java.
46. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 46
17/12/2021
Atributos de la calidad del Software
("ilitys")
• Usability
– La usabilidad se refiere a la calidad de la
experiencia de un usuario cuando interactúa con
productos o sistemas, incluidos sitios web,
software, dispositivos o aplicaciones.
– ¿Qué tan fácil es para un usuario de un producto
lograr sus objetivos?
– Principios básicos:
• Asumir que los usuarios
– No han leído el manual
– No han asistido a la formación/capacitación
– No cuentan con ayuda externa a la mano
• Entonces…
– Todos los controles y opciones deben ser claros y comprensibles y estar
ubicados en una ubicación intuitiva en la pantalla.
12
47. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 47
17/12/2021
Mismos datos, pero…
Ingrese
año: ____
mes: ____
día: ____
Julio 1998
1998 2025
1 31
Ene Dic
Martes 16 Oct. 2002
48. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 48
17/12/2021
Atributos de la calidad del Software
("ilitys")
• Reusability
– La reutilización de software es el proceso de
implementación o actualización de sistemas de software
utilizando componentes de software existentes.
• Los componentes reutilizables deben diseñarse y construirse de
una manera abierta y claramente definida, con especificaciones
de interfaz concisas, documentación comprensible y una mirada
hacia el uso futuro.
– Tipos de reutilización
• Reutilización horizontal: componentes de software utilizados en
una amplia variedad de aplicaciones.
• Reutilización vertical: la reutilización de áreas funcionales del
sistema, o dominios, que pueden ser utilizados por una familia
de sistemas con una funcionalidad similar.
13
49. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 49
17/12/2021
Marcos de trabajo (Frameworks) (1)
• Aplicación reusable, semi-completa que puede ser
especializada
– Proporciona un esqueleto extensible
– Soporta reuso del diseño y del código
• Gran parte del esfuerzo y costo proviene de:
– Redescubrir y reinventar el diseño de clases básicas y
de sus interacciones
• Clases de frameworks:
– infraestructura de sistemas (ej. interfaces usuario Struts)
– integración de middleware (ej. Corba, Com)
– aplicaciones empresariales (ej. sists. Financieros)
50. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 50
17/12/2021
Marcos de trabajo (Frameworks) (2)
• Diferencias con otras bibliotecas de clases:
– Principio de “inversión del control”
– Basado en el patrón de diseño “template method
– Captura las interacciones entre objetos en un
“template method”, postergando algunos pasos
(“hook methods”)
– Especificando los “hook methods” los desarrolladores
pueden ajustar las interacciones provistas por el
framework
– Son los “template methods” los que invocan a los
“hook methods” => inversión del control
51. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 51
17/12/2021
Marcos de trabajo (Frameworks) (3)
biblioteca
aplicación
Framework
Biblioteca de Clases
biblioteca
aplicación
Reescribiendo los “hook
methods”el desarrollador
inserta la personalización
Framework invoca “hook
methods” como parte de su
interacción
El desarrollador implementa
las clases del núcleo y sus
interacciones reusando
funcionalidad ya existente
Conjunto de clases con
funcionalidad preexistente
52. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 52
17/12/2021
Atributos de la calidad del Software
("ilitys")
• Efficiency
– La eficiencia se refiere a utilizar los recursos de manera
óptima donde los recursos podrían ser memoria, CPU,
tiempo, archivos, conexiones, bases de datos, etc.
– En la mayoría de los proyectos de software, la eficiencia /
rendimiento no se acentúa mucho durante el diseño del
sistema y en las fases anteriores (requisito y estimación)
en comparación con el énfasis dado al final del juego, la
codificación y pruebas y sobre todo en mantenimiento.
– La eficiencia generalmente va en contra de las medidas
de calidad del código que se consideraron para mejorar la
efectividad, un código más eficiente suele ser más difícil
de entender, difícil de mantener y, en ocasiones, muy
difícil de probar.
14
53. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 53
17/12/2021
Atributos de la calidad del Software
("ilitys")
• Learnability
– La capacidad de aprendizaje (learnability) es
la facilidad con la que los usuarios pueden
captar y comprender una aplicación de
software o un producto.
– La capacidad de aprendizaje considera:
• qué tan fácil es para los usuarios realizar una
tarea la primera vez que encuentran la interfaz, y
• cuántas repeticiones necesitan para volverse
eficientes en esa tarea.
15
54. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 54
17/12/2021
Usability vs Learnability
• Suponga que el sitio web es un sitio web de comercio electrónico.
– La usabilidad (Usability) de ese sitio web se basa en el grado en que
permite a sus usuarios alcanzar sus objetivos (ya sea obtener
información de productos y / o comprar productos) con eficacia,
eficiencia y satisfacción.
– La capacidad de aprendizaje (Learnability) de un sitio de este tipo se
basa en lo rápido y fácil que sea para los usuarios comprender su
diseño para poder lograr sus objetivos.
• Un sitio web de comercio electrónico que se puede aprender es
intuitivo: sus usuarios pueden navegar fácilmente en él para ubicar
productos, obtener información sobre ellos, agregarlos al carrito y
completar el proceso de pago.
55. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 55
17/12/2021
Contenido
• Fundamentos a la Ingeniería de Software
• Proceso de Ingeniería de software
– Factores de calidad del software
– Problemas en el desarrollo de software
– La ingeniería del software
– Visión general del proceso de ingeniería del
software
– Responsabilidad ética y profesional en ingeniería
del software.
• Sistemas de información
56. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 56
17/12/2021
¿Porque es difícil desarrollar Software?
• Es complicado explicar los motivos que
hacen tan difícil desarrollar Software.
• Lo cierto es que muchos proyectos de
desarrollo de software fracasan
Área: Sistemas de Defensa en Tiempo Real
0 0.5 1 1.5 2 2.5 3 3.5
Millones de dolares
Pagado pero no entregado
Entregado pero no utilizado
abandonado o rechazado
Utilizado después de cambios
Utilizado como se entrego
Estadística
realizada
sobre
8
proyectos
de
Software
Estadounidenses.
57. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 57
17/12/2021
Errores clasicos en un proyecto de
software
1. Mal análisis en los requerimientos.
2. Una mala planeación.
3. No tener una negociación (documento, contrato)
con el cliente.
4. No hacer un análisis costo beneficio.
5. Desconocer el ambiente de trabajo de los
usuarios.
6. Desconocer los usuarios que trabajan con el
sistema.
7. Mala elección de recursos (hardware, software,
humanos).
58. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 58
17/12/2021
El Fracaso y sus Causas.
• Los proyectos Informáticos fracasan por:
– El SW nunca llega a funcionar.
– No se cumplen los plazos de entrega.
– No cumple con las funcionalidades esperadas.
• Razones:
– La complejidad era muy alta (comunicaciones,
interrelación con otros sistemas, etc..)
– Incertidumbre. No se tenia una idea clara de lo que
se quería obtener.
59. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 59
17/12/2021
Ciclo de vida del proyecto de SW
Gestión y
recursos
Inicio Terminación
Fase
inicial
Fase
final
Fase
implementación
La producción del sistema da inicio, se
concluyen las instalaciones y se estabiliza el
sistema. Se desarrollan las actividades
rutinarias de operación y mantenimiento
En la fase inicial se efectúa la identificación
de necesidades, problema u oportunidad.
Requiere de documentar y armar un
preproyecto. Se efectúan los análisis de
soluciones y se desarrolla un requerimiento
de cotización (estimación).
Se efectúan los análisis de propuestas,
diseño detallado, las negociaciones
convenientes y se da la contratación
Se inician los preparativos y la recepción de
la solución, se capacita al personal, se
efectúan pruebas piloto y pruebas de
aceptación
tiempo
Lo que mal
empieza, mal
termina
60. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 60
17/12/2021
El software es excesivamente
maleable.
• Todo el mundo exige que se realicen
cambios sobre el Software como
respuesta a pequeños cambios del
entorno.
• Además no es fácil comprender su
comportamiento, según Pressman:
– La curva de fallos del Hardware.
– La curva ideal de fallos del Software.
– La curva real de fallos del Software.
61. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 61
17/12/2021
Tiempo
Indice
de
fallos
Defectos fabricación Estropeado
Obsolescencia
Curva de fallos del Hardware.
62. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 62
17/12/2021
Curva ideal de fallos del Software.
Tiempo
Indice
de
fallos
Defectos fabricación
Mismo nivel hasta obsoleto
Obsolescencia
63. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 63
17/12/2021
Curva real de fallos del Software.
Tiempo
Indice
de
fallos
Defectos fabricación
Curva ideal
Cambio Cambio Cambio
Obsolescencia
64. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 64
17/12/2021
Problemas al desarrollar un software
• Uno de los principales problemas al que nos
enfrentamos como ingenieros de software en
el desarrollo de sistemas es la ingeniería de
requisitos.
• De esta fase depende el éxito del producto
de software.
– Si hay algún error en esta fase el resto de fases
del ciclo de vida también se verán afectados, y
por ende…
– El resultado es un producto de software que no
cumple con las necesidades de los
stakeholders.
65. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 65
17/12/2021
Stakeholders
• Es el público de interés para una
empresa que permite su
completo funcionamiento.
• Como público, se refiere a todas
las personas u organizaciones
que se relacionan con las
actividades y decisiones de una
empresa como:
– empleados, proveedores,
clientes, gobierno, entre otros.
Los stakeholders son aquellas personas o entidades
que tienen algún impacto o interés en este sistema.
66. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 66
17/12/2021
Importancia de definir bien los
requisitos con el cliente
• Para entregar un producto de software con
éxito, Ud. necesita desarrollar, documentar y
validar los requisitos de software.
• Los requisitos bien entendidos son la base
para determinar el éxito del software
implementado, lo cual permite satisfacer las
necesidades de los usuarios.
– Dichas necesidades son las que se definen en
los requisitos.
67. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 67
17/12/2021
Importancia de definir bien los
requisitos con el cliente
• El no definir los requisitos correctamente tiene un
precio bastante alto ya que se ocasionan
requisitos mal definidos (incompletos, incorrectos
o requisitos contradictorios)
• Estos errores pueden causar:
– Sobrecosto
– Reproceso costoso
– Mala calidad
– Retraso en la entrega
– Clientes descontentos
– Miembros de equipo agotados y desmoralizados
68. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 68
17/12/2021
Costos de errores en los requisitos
• Costo de corregir un error en los requisitos
(Boehm-Papaccio,1988)
69. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 69
17/12/2021
Importancia de definir bien los
requisitos con el cliente
• La importancia de tener requisitos de
calidad radica en:
– Involucran del 10 al 15% del coste total del
proyecto.
– Un error en los requisitos puede ser de 10
hasta 100 veces más costoso que un error en
el código.
– Una equivocación en la etapa de requisitos se
arrastra en las demás fases.
70. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 70
17/12/2021
Motivación
71. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 71
17/12/2021
Brecha en la Comunicación (Scharer ’90)
Según desarrolladores, los usuarios... Según usuarios, los desarrolladores...
no saben lo que quieren no captan las necesidades operativas
no pueden articular lo que quieren ponen excesivo énfasis en aspectos meramente
técnicos
muchas necesidades por motivos políticos pretenden indicarnos cómo hacer nuestro trabajo
quieren todo ya no son capaces de traducir necesidades claramente
establecidas en un sistema
son incapaces de definir prioridades entre
sus necesidades
siempre dicen que no
rehúsan asumir responsabilidades por el
sistema
siempre están pasados del presupuesto
incapaces de dar un enunciado utilizable de
sus necesidades
siempre están atrasados
no están comprometidos con los proyectos
de desarrollo
nos exigen tiempo y esfuerzo aún a costa de las
obligaciones esenciales
no aceptan soluciones de compromiso establecen estándares no realistas para la definición
de requisitos
no pueden mantener el cronograma son incapaces de responder rápidamente a cambios
en las necesidades
72. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 72
17/12/2021
Contenido
• Fundamentos a la Ingeniería de Software
• Proceso de Ingeniería de software
– Factores de calidad del software
– Problemas en el desarrollo de software
– La ingeniería del software
– Visión general del proceso de ingeniería del
software
– Responsabilidad ética y profesional en ingeniería
del software.
• Sistemas de información
73. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 73
17/12/2021
Ingeniería de SW según PRESSMAN
• Es una tecnología multicapa que contempla:
– Herramientas: Proporcionan un enfoque automático para el
proceso y para los métodos.
– Métodos: Indican “COMO” construir técnicamente el software,
incluyen actividades de modelado y otras técnicas
descriptivas.
– Proceso: Marco de trabajo aplicable a un conjunto de áreas
clave del proceso para entregar software de calidad.
– Basado en un enfoque de calidad
Enfoque de calidad
Modelo de proceso
Métodos
Herramientas
74. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 74
17/12/2021
Contenido
• Fundamentos a la Ingeniería de Software
• Proceso de Ingeniería de software
– Factores de calidad del software
– Problemas en el desarrollo de software
– La ingeniería del software
– Visión general del proceso de ingeniería del
software
– Responsabilidad ética y profesional en ingeniería
del software.
• Sistemas de información
75. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 75
17/12/2021
Es extraño que alguien diga:
– "Me puse a programar y me salió una
contabilidad"
– Algunas aplicaciones da la impresión de que...
– Recordar que la probabilidad de que un mono teclee en
una maquina de escribir y salga el quijote no es cero
76. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 76
17/12/2021
Normalmente el planteamiento es:
• Vamos a desarrollar una contabilidad,
» Hacer la especificación. (Ingeniería de requerimientos)
• en Java y MySql,
» Realizar el diseño (Modelamiento de software, Diseño
y Arquitectura de Software)
• y se codifica la aplicación
» Implementar (Construcción de software)
77. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 77
17/12/2021
Resolución de problemas
¿Cómo resuelve un problema de
programación un ingeniero?
A) Tecleando código en una máquina.
B) Siguiendo un proceso metódico.
78. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 78
17/12/2021
1. Estudio de viabilidad,
análisis del terreno,
requisitos pedidos, etc.
2. Diseñar los planos del
puente y asignar los
materiales.
3. Poner los ladrillos de
acuerdo con los planos.
4. Supervisión técnica del
puente.
¿Cómo construye un puente un arquitecto?
1. Análisis del
problema
2. Diseño del
programa
(alg. y estr.)
3. Implementación
(programación)
4. Verificación y
pruebas
ARQUITECTO INFORMÁTICO
Resolución de problemas
79. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 79
17/12/2021
1.Observación.
2.Hipótesis.
3.Experimentación.
4.Verificación.
MÉTODO CIENTÍFICO INFORMÁTICO
1. Análisis del
problema
2. Diseño del
programa
(alg. y estr.)
3. Implementación
(programación)
4. Verificación y
pruebas
Resolución de problemas
80. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 80
17/12/2021
Panorama de la carrera de software
Construcción de Software (CSO)
Ingeniería de requerimientos (IDR)
De
forma
inicial
en
Modelado
del
Software
(MSW)
Diseño
y
Arquitectura
de
Software
(DAS)
81. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 81
17/12/2021
Elementos de la Metodología
Proceso
SW
Notación
Herramientas
Personas
Artefactos
Roles
Actividades
En un proyecto de desarrollo de software
la metodología define Quién debe hacer
Qué, Cuándo y Cómo debe hacerlo
82. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 82
17/12/2021
▪ Un artefacto es una pieza de información
que:
◼ (1) es producida, modificada o usada por el
proceso,
◼ (2) define un área de responsabilidad para un
rol y
◼ (3) está sujeta a control de versiones.
▪ Un artefacto puede ser un modelo, un
elemento de modelo o un documento.
Elementos de la Metodología
Artefactos
83. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 83
17/12/2021
Elementos de la Metodología
• Personas: todas las personas involucradas en el
proyecto
– cliente: encarga y paga el sistema
– desarrolladores: construyen el sistema (analistas,
diseñadores, programadores,...)
– gerente o director del proyecto: planifica y calcula el
presupuesto, coordina a los desarrolladores y cliente
– usuarios finales: los que van a utilizar el sistema
• Papel (rol)
– conjunto de responsabilidades en el proyecto o en el
sistema
– asociado con un conjunto de tareas y se asigna a un
participante
– un mismo participante puede cumplir varios papeles
Personas
Roles
84. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 84
17/12/2021
Elementos de la Metodología
• Notación: conjunto de reglas gráficas o de texto para
representar un modelo (UML, Unified Modelling
Language, es una notación gráfica orientada a objetos
para representar modelos)
Notación
85. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 85
17/12/2021
Tipos de Diagramas UML
• Modelo Estático
– Construye y documenta los aspectos estáticos de un sistema.
– Refleja la estructura básica y estable de un sistema software.
– Crea una representación de los principales elementos del
dominio del problema
– Diagramas: Clases, Objetos, componentes y despliegue.
• Modelo Dinámico
– Crea los diagramas que muestran el comportamiento de un
sistema
– Diagramas: Casos de Uso, secuencia, colaboración, estados y
actividades
86. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 86
17/12/2021
Elementos de la Metodología
• Actividades, tareas y recursos
– actividad (o fase): conjunto de tareas que se realiza
con un propósito específico (obtención de requisitos,
entrega, administración,...) que pueden componerse
de otras actividades
– tarea: unidad elemental de trabajo que puede ser
administrada; consumen recursos, dan como
resultado productos de trabajo y dependen de
productos de trabajo producidos por otras tareas
– recursos: bienes que se utilizan para realizar el
trabajo:
• tiempo, equipamiento y recursos humanos
• al planificar, el gerente divide el trabajo en tareas y les
asigna recursos
Actividades
87. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 87
17/12/2021
Elementos de la Metodología
• método: técnica repetible para resolver un
problema específico. Por ejemplo:
– un algoritmo de ordenación es un método para
ordenar elementos en una lista
– la administración de la configuración es un
método para el seguimiento de los cambios
• metodología: colección de métodos para la
resolución de una clase de problemas (OMT,
metodología de Booch, Catalysis, Proceso
Unificado de Desarrollo,...)
Herramientas
88. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 88
17/12/2021
Técnicas básicas usadas en las
ingenierías
• Históricamente se han utilizado técnicas
como:
1. El modelado
2. División del Producto
3. División del Proceso
• En principio se deberían utilizar estas
técnicas, también en informática .
89. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 89
17/12/2021
El modelado.
• Simplificación del objeto en el mundo real,
pero que es suficientemente realista como
para dar una idea de lo que ocurrirá en la
realidad y usarse como base del
desarrollo.
1
90. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 90
17/12/2021
División del Producto.
• Se fracciona el producto de modo que
cada fragmento lo puede realizar un
miembro del grupo de desarrollo.
2
91. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 91
17/12/2021
División del Proceso.
• Implica dividir el desarrollo del artefacto por
fases. Normalmente se habla de
especificación, diseño y fabricación.
3
¿Qué? ¿Cómo? Realización Pruebas
92. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 92
17/12/2021
Modelo de la Ingeniería del software
(Thayer 1988)
Analisis
Diseño
Codificación
Pruebas
Desarrollo
de Software
Planificación
Organización
Reclutam
iento
Dirección
Control
Gestión de
proyectos
Fiabilidad
Usabilidad
Flexibilidad
Mantenibilidad
Reusabilidad
Etc.
Metricas
del software
Corrección de Errores
Modificaciones
Mantenimiento
de software
Ingeniería
del software
93. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 93
17/12/2021
Rational Unified Process (RUP). Etapas
94. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 94
17/12/2021
Visión general del proceso de
ingeniería del software
Objetivo: Ser capaz de seguir el proceso ingenieril para
la resolución de un problema real utilizando las técnicas y
buenas prácticas de la Ingeniería de software.
95. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 95
17/12/2021
Proceso ingenieril
• Identificación y definición del problema (IDR)
• Análisis del problema (IDR)
• Análisis de la solución (IDR, MSW)
• Diseño de la solución (DAS, MSW)
• Implementación de la solución (CSO)
• Pruebas (CSO)
• Conclusiones sobre la solución (CSO)
96. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 96
17/12/2021
Identificación del problema
• El problema no deberá ser trivial (la
solución no deberá ser de fácil deducción
o de conocimiento común)
• Tampoco deberá estar fuera del ámbito de
trabajo del ingeniero (no deberá requerir la
generación de nuevos métodos o
herramientas de trabajo o la realización de
experimentación investigativa).
97. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 97
17/12/2021
Identificación del problema
• La utilización de nuevas tecnologías, que
no estén todavía difundidas en el medio,
podrá ayudar a incrementar el interés por
la solución, pero no reemplazará el
requerimiento de que el problema a
resolver no sea trivial.
98. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 98
17/12/2021
Proceso ingenieril
• Identificación y definición del problema (IDR)
• Análisis del problema (IDR)
• Análisis de la solución (IDR, MSW)
• Diseño de la solución (DAS, MSW)
• Implementación de la solución (CSO)
• Pruebas (CSO)
• Conclusiones sobre la solución (CSO)
99. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 99
17/12/2021
Análisis del problema
• En esta fase se identifica, define y
descompone el problema a tratar.
• Se debe indicar cuales son las principales
antecedentes, causales y efectos del
problema.
• Se deberá referenciar a fuentes que
respalden las afirmaciones hechas.
• Se debe establecer cuales son las
justificaciones por las cuales este problema
es escogido.
100. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 100
17/12/2021
Análisis del problema
• Se debe investigar si ya existen
soluciones al problema propuesto en otros
ámbitos o utilizando otras tecnologías.
• De existir otras soluciones, se debe dar
una BREVE descripción de cada una,
haciendo énfasis en sus ventajas y
desventajas, con una referencia que
brinde mayor información.
101. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 101
17/12/2021
Proceso ingenieril
• Identificación y definición del problema (IDR)
• Análisis del problema (IDR)
• Análisis de la solución (IDR, MSW)
• Diseño de la solución (DAS, MSW)
• Implementación de la solución (CSO)
• Pruebas (CSO)
• Conclusiones sobre la solución (CSO)
102. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 102
17/12/2021
Análisis de la solución
• En esta fase se deber responder la pregunta:
¿Qué se va a hacer para resolver el
problema?
• Se podrá utilizar cualquier metodología de
análisis que se prefiera: Casos de Uso,
Historias de Usuario, etc.
• El reporte deberá incluir los diagramas o
productos más importantes. El resultado
debe ser un texto fluido, más que un conjunto
de diagramas o tablas.
103. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 103
17/12/2021
Análisis de la solución
• En esta fase también se presentará de manera
estructurada, las diferentes herramientas/conocimientos
que se pueden utilizar para la solución del problema.
• Lo más importante de esta sub-fase no es solo conocer
la existencia y descripción de las
herramientas/conocimiento, sino
organizarlas/clasificarlas lógicamente y comparar sus
principales ventajas/desventajas en lo que concierne al
problema a resolver.
• Se debe incluir una BREVE descripción de cada
herramienta/conocimiento, una referencia que provea
más información y una sección donde se contraste su
utilidad para diseñar/implementar la solución problema.
104. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 104
17/12/2021
Análisis de la solución
• Al final de este capítulo se procede a
establecer cuál será el alcance de la
solución que se elaborará.
• El alcance significa que va ha hacer y que
no va a hacer la solución.
• Al final del proyecto se establecerá hasta
que punto se cumplió este alcance.
105. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 105
17/12/2021
Proceso ingenieril
• Identificación y definición del problema (IDR)
• Análisis del problema (IDR)
• Análisis de la solución (IDR, MSW)
• Diseño de la solución (DAS, MSW)
• Implementación de la solución (CSO)
• Pruebas (CSO)
• Conclusiones sobre la solución (CSO)
106. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 106
17/12/2021
Diseño de la solución
• Esta fase es el núcleo de la tesis. Deber responder la
pregunta: ¿Cómo se va a resolver el problema?
• Se deberá explicar la forma en que resolverá el problema.
• Se puede utilizar cualquier metodología de soporte al diseño
(OO, Modular, etc.)
• Se deberá reportar, en forma de narrativa, el diseño
propuesto. Se podrá utilizar diagramas, tablas o figuras,
solamente cuando ayuden a esclarecer un pasaje del texto.
• Cuando no estén vinculados a una sección del texto, los
productos de la metodología de soporte al diseño (tablas,
diagramas o figuras) podrán incluirse como anexos.
107. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 107
17/12/2021
Diseño de la solución
• En esta fase se debe evitar, en lo posible,
cualquier referencia a detalles de
implementación como lenguaje a utilizar,
sistema de base de datos,
especificaciones de hardware, entre otros.
• El resultado del diseño debería, en
principio, independiente de la plataforma
sobre la cual se implemente.
108. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 108
17/12/2021
Diseño de la solución
• Dada la importancia de la interfaz, esta se
debe diseñar en esta fase.
• Deben realizarse bosquejos de lo que
será la interfaz final, así como de la
interacción prevista con el usuario.
109. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 109
17/12/2021
Proceso ingenieril
• Identificación y definición del problema (IDR)
• Análisis del problema (IDR)
• Análisis de la solución (IDR, MSW)
• Diseño de la solución (DAS, MSW)
• Implementación de la solución (CSO)
• Pruebas (CSO)
• Conclusiones sobre la solución (CSO)
110. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 110
17/12/2021
Implementación de la solución
• Esta fase varía en su contenido dependiendo
del tipo de solución. En general debería
contener:
– Selección de las herramientas, principalmente la
justificación para su elección
– Detalles de la implementación (lenguajes,
configuraciones, etc)
– Detalles de la implantación (máquinas,
servidores, etc.)
– Vistas del software completado (de ser posible)
111. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 111
17/12/2021
Proceso ingenieril
• Identificación y definición del problema (IDR)
• Análisis del problema (IDR)
• Análisis de la solución (IDR, MSW)
• Diseño de la solución (DAS, MSW)
• Implementación de la solución (CSO)
• Pruebas (CSO)
• Conclusiones sobre la solución (CSO)
112. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 112
17/12/2021
Pruebas
• En esta fase se comprobarán que los
objetivos dados durante la fase de análisis de
la solución (alcance) se han cumplido.
• Se deberá establecer un plan de pruebas de
acuerdo a los objetivos.
• Se deberá probar con usuarios ajenos a la
aplicación.
• El mínimo de usuarios deberá ser de 5
• Se deberá reportar las estadísticas sobre los
datos recopilados
113. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 113
17/12/2021
Proceso ingenieril
• Identificación y definición del problema (IDR)
• Análisis del problema (IDR)
• Análisis de la solución (IDR, MSW)
• Diseño de la solución (DAS, MSW)
• Implementación de la solución (CSO)
• Pruebas (CSO)
• Conclusiones sobre la solución (CSO)
114. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 114
17/12/2021
Conclusiones y recomendaciones
• Al finalizar el trabajo, se deberá reflexionar
sobre lo que hemos aprendido de él (Análisis
post-mortem)
• Esto se debe resumir en conclusiones (cosas
que podemos afirmar luego de haber
terminado el trabajo, basados en la
experiencia que hemos ganado) y
recomendaciones (cosas que se podrían
cambiar o mejorar en nuevas soluciones al
problema)
• Deben ser importantes y relevantes
115. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 115
17/12/2021
Contenido
• Fundamentos a la Ingeniería de Software
• Proceso de Ingeniería de software
– Factores de calidad del software
– Problemas en el desarrollo de software
– La ingeniería del software
– Visión general del proceso de ingeniería del
software
– Responsabilidad ética y profesional en ingeniería
del software
• Sistemas de información
116. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 116
17/12/2021
Importancia de la responsabilidad ética
y profesional en ingeniería del software
• ¿Te has fijado que la
Informática recibe un
trato diferente que el
resto de ingenierías?
– En general, a la gente
le parece normal que
un programa se
cuelgue, pero no que
un puente se caiga...
– pero ¿y si se cayera
algo tan vistoso
como un puente por
algún defecto del
software?
117. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 117
17/12/2021
Importancia de la responsabilidad ética
y profesional en ingeniería del software
• El Vuelo Ariane 501 de
la Agencia Espacial
Europea quedó
destruido solo 40
segundos después del
despegue (4 de junio,
1996).
• El prototipo de cohete,
con coste de 1 billón
de dólares americanos,
activó el protocolo de
autodestrucción debido
a un bug en el sistema
de guiado de a bordo.
Lanzamiento del Ariane 5 en la misión VA241
(Arianespace/CNES).
118. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 118
17/12/2021
Responsabilidad ética y profesional en
ingeniería del software
• Los ingenieros de software debieran obligarse
a hacer del análisis, especificación, diseño,
desarrollo, pruebas y mantenimiento del
software una profesión respetada y
beneficiosa.
• En concordancia con la obligación con el
bienestar, salud y seguridad de la sociedad, los
ingenieros del software debieran adherirse a
los Ocho Principios siguientes:
http://www.sc.ehu.es/jiwdocoj/elcodigo.htm
119. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 119
17/12/2021
Ocho Principios
1. Sociedad: Los ingenieros de software actuarán de
manera coherente con el interés social.
2. Cliente y Empresario: los ingenieros de software
actuarán de manera que produzca el mejor resultado
para cliente y empresario, y de manera coherente con el
interés social.
3. Producto: los ingenieros de software garantizarán que
sus productos y las modificaciones correspondientes
cumplen los mayores estándares profesionales posibles.
4. Valoración: los ingenieros de software mantendrán la
integridad e independencia en sus valoraciones
profesionales.
120. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 120
17/12/2021
Ocho Principios
5. Gestión: los líderes y gestores de ingeniería de software
suscribirán y promoverán un enfoque ético en la gestión
del desarrollo y mantenimiento del software.
6. Profesión: los ingenieros de software avanzarán en la
integridad y reputación de la profesión, de manerar
consistente con el interés social.
7. Compañeros: los ingenieros del software serán justos y
apoyarán a sus compañeros.
8. Personal: los ingenieros del software participarán en el
aprendizaje continuo referente a la práctica de su profesión
y promoverán un enfoque ético en la práctica de la
profesión.
121. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 121
17/12/2021
Contenido
• Fundamentos a la Ingeniería de Software
• Proceso de Ingeniería de software
• Sistemas de información
122. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 122
17/12/2021
Contenido
• Fundamentos a la Ingeniería de Software
• Proceso de Ingeniería de software
• Sistemas de información
– Información y datos
– Concepto
– Tipos de Sistemas de información
123. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 123
17/12/2021
Definiciones
• Dato:
– Puede ser un número, una palabra, una
imagen
• Información:
– Son datos que dentro de un contexto dado
tienen un significado para alguien- (Daniel karen & Enrique Asín)
124. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 124
17/12/2021
Información
◼ Datos que se han moldeado en una forma
significativa y útil para los seres humanos.
◼ Secuencias de hechos en bruto y representan
eventos que ocurren en las organizaciones o en
el entorno físico antes de ser organizados y
ordenados de una forma que las personas
puedan entender y utilizar.
Datos
125. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 125
17/12/2021
¿Qué significa CALIDAD de INFORMACIÓN
en los negocios?
• Tres Dimensiones:
– Tiempo
• La información debe estar disponible cuando se
necesita en el momento oportuno
– Contenido
• La información debe proporcionarse sin errores, debe
ser relevante respecto a lo analizado, completa y no
parcial
– Forma
• La información debe ser proveída en forma sencilla de
entender, detallada o en forma de resumen, ordenada
con criterio
126. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 126
17/12/2021
Contenido
• Fundamentos a la Ingeniería de Software
• Proceso de Ingeniería de software
• Sistemas de información
– Información y datos
– Concepto
– Tipos de Sistemas de información
127. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 127
17/12/2021
Sistemas de Información (SI)
• Un sistema de información es un conjunto de
elementos que interactúan entre sí con el fin de
apoyar las actividades de una empresa o
negocio. Este no necesariamente incluye equipo
electrónico (hardware). (Karen & Lares).
• Se puede definir técnicamente como un
conjunto de componentes interrelacionados
que recolectan (o recuperan), procesan,
almacenan y distribuyen información para
apoyar la toma de decisiones y el control en
una organización.
128. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 128
17/12/2021
¿Qué incluyen los SI?
• Equipo computacional
• Recurso Humano
• Datos o Información fuente (Entrada)
• Programas (software)
• Telecomunicaciones
• Procedimientos (políticas y reglas de
operación)
129. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 129
17/12/2021
Proceso de
Información
Salida de
Información
Entrada de
Información
Almacenamiento
de Información
Recopilación de
información que se
requiere para después
ser procesada de
forma manual (directa
del usuario) o
automáticas (de otro
sistema)
Capacidad para
ejecutar
operaciones de
acuerdo a una
secuencia de
operaciones
establecidas
Capacidad para
ejecutar operaciones
de acuerdo a una
secuencia de
operaciones
establecidas
Capacidad para recordar información guardada
4 actividades básicas de un SI
130. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 130
17/12/2021
4 actividades básicas de un SI
• Entrada de Información
– Manuales o automáticas (interfaces)
• Almacenamiento de Información
– Recuperar la información guardada
– Archivos, Bases de Datos (dispositivos de
almacenamiento)
• Procesamiento de la Información
– Efectuar cálculos de acuerdo con una secuencia de
operaciones preestablecidas
• Salida de Información
– Capacidad de sacar la información procesada o bien
datos de entrada al exterior (printers, plotters, etc.)
131. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 131
17/12/2021
Actividades que producen información para
un SI
Entrada Procesamiento Salida
Retroalimentación
SISTEMA DE INFORMACIÓN
ORGANIZACION
ENTORNO
Proveedores
Agencias reguladoras
Clientes
Accionistas Competidores
132. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 132
17/12/2021
ORGANIZACIÓN
EMPLEADOS
CLIENTES
PROVEEDORES
GOBIERNO
DEUDORES
PROPIETARIOS /
ACCIONISTAS
Dinero
Labor
Dinero
Dinero
133. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 133
17/12/2021
Interdependencia del sistema
NEGOCIOS
Estrategia
Reglas
Procedimientos
ORGANIZACION SISTEMA de INFORMACION
HARDWARE
SOFTWARE BASE de
DATOS
TELE-
COMMUNICACIONES
INTERDEPENDENCIA
134. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 134
17/12/2021
Tecnologías de Información
• Information Technology (IT)
– Todas aquellas tecnologías que permiten y dan
soporte a la construcción y operación de los
sistemas de Información, las cuales pueden ser
tecnologías de Hardware, Software, tecnologías
de almacenamiento y tecnología de
comunicaciones.
– Todas estas tecnologías forman la
infraestructura tecnológica de la empresa, la cual
provee una plataforma desde donde la compañía
puede construir y operar los sistemas de
información.
135. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 135
17/12/2021
Análisis de un subsistema administrativo
SISTEMA CONTABLE
Producto o salida esperada Estados financieros y el registro contable de todas
las operaciones de la empresa
Entradas o Insumos Documentos que respaldan operaciones de la
empresa
Recursos con que se cuenta Personal que labora en el departamento, equipo
tanto computadoras, sumadoras, etc.
Proceso Elaboración de los estados financieros y el registro
de todas las operaciones de la empresa
136. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 136
17/12/2021
Crecimiento
Madurez
Decaimiento
Nacimiento
Muerte
Renovar
Ciclo De Vida de un SI
137. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 137
17/12/2021
Es un enfoque por fases del análisis y diseño que sostiene, que los sistemas son
desarrollados de mejor manera mediante el uso de un ciclo específicamente de
actividades de el análisis y del usuario. Este proceso se divide en siete fases
secuenciales.
1. Identificación de problemas
oportunidades y Objetivos
2. Determinación de
Requerimientos de
información
3. Análisis de las
Necesidades del
sistema
7. Implementación
y Evaluación del
Sistema
4. Diseño del
Sistema
recomendado
5. Desarrollo y
Documentación del
Software
6. Prueba y
Mantenimiento del
Sistema
Ciclo De Vida de Desarrollo de un SI
138. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 138
17/12/2021
Funciones de un SI
Definición
de archivos
Mantenimientos
de Archivos
Mantenimiento
e Integridad de
Datos
Generar
Reportes
Almacenar
datos
capturados
Insertar,
Modificar,
eliminar
(Actualizar)
Producir de forma física y
transmitir Información
requerida
Veracidad,
confiabilidad
Tipos
Reporte De
Actividades
Reporte
Especiales
Reporte
De Estado
Reporte
Planeados
Reporte
De Errores
Reportes
Regulares
139. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 139
17/12/2021
Contenido
• Fundamentos a la Ingeniería de Software
• Proceso de Ingeniería de software
• Sistemas de información
– Información y datos
– Concepto
– Tipos de Sistemas de información
140. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 140
17/12/2021
ÁMBITO NIVELES JERÁRQUICOS
NIVEL ESTRATÉGICO ALTA DIRECCIÓN
NIVEL TÁCTICO MANDOS INTERMEDIOS
NIVEL OPERATIVO
TRABAJADORES DEL
CONOCIMIENTO
NIVEL DE
CONOCIMIENTO
VENTAS Y OPERACIONES FINANZAS CONTABILIDAD RECURSOS
MARKETING HUMANOS
SUPERVISORES
Tipos de Sistemas de Información
141. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 141
17/12/2021
Tipos de Sistemas de Información
1. Sistemas transaccionales
2. Sistemas de apoyo a las decisiones
3. Sistemas estratégicos
142. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 142
17/12/2021
Sistemas Transaccionales
• Primer tipo de sistemas que se implanta en
las organizaciones
• Apoyan las tareas a nivel operativo de la
organización
• Muestran una intensa entrada y salida de
información
• Cálculos y procesos son simples y poco
complejos
• Son recolectores de información (datos)
– Ejemplo: facturación, nóminas, cuentas por
cobrar, etc
1
143. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 143
17/12/2021
Sistemas de apoyo a las decisiones
• Suelen instalarse posterior a la
implementación de los sistemas
transaccionales
• La información que generan sirve para los
mandos intermedios y alta gerencia en la
T.D.
• Intensivos en cálculos y escasos en entradas
y salidas
• Apoyan directamente la Toma de Decisiones
– Ej. Sistema de simulación de negocios (apoyar
un nuevo producto al mercado)
2
144. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 144
17/12/2021
Datos, Modelos y Decisiones
• Inversión en tecnología informática -->
abundancia de DATOS (Ej: códigos de
barras)
• ¿Cómo extraer el valor de estos datos?
• Mediante MODELOS analíticos
• MODELOS: DATOS ---> DECISIONES
145. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 145
17/12/2021
Modelos Analíticos
• Aproximan el mundo real, nos dan la libertad de
experimentar.
• Razones para construir modelos analíticos de
problemas de toma de decisiones:
– ¿Por qué se construye un modelo de avión antes
de construir el de verdad?
• Menos costoso cometer errores en modelo
• Modelo da intuición sobre problema real
• Modelo permite experimentar
• Nos ayuda a entender mejor el problema
146. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 146
17/12/2021
Optimización
• Problema económico básico:¿cómo asignar recursos (limitados)
disponibles para alcanzar objetivos?
• Ejemplos de problemas de Asignación de Recursos:
– fabricación de varios tipos de producto
– asignación de turnos de trabajo
– inversión financiera
– transporte de productos a mínimo coste
• Optimización: determinar la mejor manera de alcanzar un objetivo
dados los recursos disponibles
• Excel Solver: Implementa potentes herramientas de optimización
matemática
147. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 147
17/12/2021
El ABC de la Optimización
• A. ¿Qué puedes decidir?
Ej: cuánto producir; cuánto invertir, y en qué,
son variables de decisión
• B: ¿Qué quiere decir “mejor”?
Ej: maximizar beneficio, minimizar coste, …
son objetivos
• C: ¿Qué restricciones limitan las decisiones?
Ej: no exceder presupuesto, no usar más piezas que las
disponibles, …
son restricciones
148. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 148
17/12/2021
Programación Lineal
• Un problema de optimización es de la forma
maximizar (min) objetivo
sujeto a
restricciones en las decisiones factibles
• Si las fórmulas que definen el objetivo y las restricciones son
lineales, tenemos un problema de Programación Lineal (PL)
• PL: es el modelo matemático más aplicado en la práctica
• Si las variables de decisión han de ser enteras: Programación
Entera (PE)
• Excel resuelve PL, PE con el Excel Solver
149. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 149
17/12/2021
Ejemplo: asignación de recursos
• ¿Cuántos barcos producir?
• Una empresa produce dos tipos de barcos: veleros y
barcos a motor. Los principales recursos materiales que
emplea para ello son: tela para velas, fibra de vidrio y
motores, disponibles en cantidades limitadas.
• La empresa se propone diseñar un plan de producción
que especifique cuántos barcos se han de producir
semanalmente de cada tipo, con el objetivo de
maximizar su beneficio.
150. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 150
17/12/2021
MODELO de optimización
• A: Variables de decisión
VELEROS = barcos veleros producidos/semana
BMOTOR = barcos a motor producidos/semana
• B: Objetivo a optimizar
• maximizar beneficio/semana:
max E 1,200 x VELEROS + E 1,000 x BMOTOR
• C: Restricciones:
– tela disponible: 4 x VELEROS <= 400
– fibra de vidrio disponible:
8 x VELEROS + 4 x BMOTOR <= 1000
– motores disponibles: BMOTOR <= 120
– VELEROS, BMOTOR >= 0 y enteros
151. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 151
17/12/2021
MODELO en Excel
152. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 152
17/12/2021
Sistemas estratégicos
• Su función no es apoyar procesos operativos
ni ayudar a la toma de decisiones, aunque si
puede hacerlo.
• Buscan ser creadores de barreras de entrada
al negocio.
• Buscan lograr ventajas que los competidores
no poseen (costos, diferenciación clientes &
proveedores)
• Apoyan el proceso de innovación de
productos y procesos dentro de la empresa
– Ejemplo: CRM, SCM, Comercio Electrónico
3
153. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 153
17/12/2021
• Un analogía util: “... No se puede
manejar a ciegas”
• Tener control de los Factores
Críticos de cada Proyecto
• No sólo medir, lo importante es
el feedback y las iniciativas para
mejorar el proceso
BSC = Tablero de Mando Integral
...es una herramienta de gerenciamiento que permite traducir la
estrategia y la misión de una organización en un conjunto completo de
medidas de desempeño tal que informa a la alta gerencia sobre cómo
la organización avanza hacia el logro de sus objetivos
154. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 154
17/12/2021
Ejemplo:
“ Disponer de procesos altamente
optimizados que permitan establecer las
más bajas tarifas y los mejores servicios
del mercado”
VISION:
Enunciado que establece una dirección y
un estado futuro inspirador.
No es necesariamente una meta a lograr.
Jerarquía de Intenciones
Ejemplo: Jerarquía de Intencionalidad (1)
Visión
Misión
Objetivos
Estratégicos
Iniciativas
Estratégias
155. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 155
17/12/2021
Ejemplo :
“Propiciar el desarrollo de ventajas
competitivas,
aplicando tecnología a la optimización
de procesos y al soporte a la toma de
decisiones
buscando incrementar la productividad
y la calidad del servicio.”
MISION:
Enunciado que establece el rol básico,
de la organización.
Indica el tipo de actividades con las
que se lograría la Visión
MISION = Verbo
VISION = Adjetivo
Jerarquía de Intenciones
Ejemplo: Jerarquía de Intencionalidad (2)
Visión
Misión
Objetivos
Estratégicos
Iniciativas
Estratégias
156. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 156
17/12/2021
OBJETIVOS ESTRATEGICOS:
Enunciados que establecen líneas de acción mediatas.
Deben ser coherentes entre sí, con la Visión y Misión,
así como con la situación interna y externa.
Visión
Misión
Objetivos
Estratégicos
Jerarquía de Intenciones
Ejemplo: Jerarquía de Intencionalidad (3)
Ejemplo:
1. Fusión entre TI y las áreas de negocios
2. Mas uso de TI en procesos internos de TI
3. Optimización de estructura y procesos en TI
4. Manejo más sofisticado del Outsourcing
5. Manejo más sofisticado del personal
6. Organización de aprendizaje
7. Anticipación sistemática de tendencias
8. Marcos Metodológicos en vez de metodologías
Iniciativas
Estratégias
157. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 157
17/12/2021
Cuantificaciones e Indicadores
Ejemplo: Vista de un BSC Corporativo
Tablero de Control Centro de Resultados: TI Perú
Situación al 23-04-2001 Linea de Reporte: Gerencia Corporativa de TI
Real Meta Meta Meta
Meta Meta Meta
Real Meta T2 T3 T4
Objetivo C.Ind. Descripción Indicador
SPRO
Evaluación promedio de la
Satisfacción de usuarios para el total
de proyectos
3,5 4,0 4,2 4,2 4,2 4,2 4,2 4,3 4,4
SMAN
Evaluación promedio de la
Satisfaccion de usuarios por
muestreo en relación al
Mantenimiento y Help Desk
3,8 4,2 4,2 4,2 4,2 4,2 4,2 4,3 4,4
Objetivo C.Ind. Descripción Indicador
LLNO Porcentaje de llamadas no atendidas 18 21 20 20 20 20 20 20 20
PPRI
Porcentaje de problemas atendidos
en 1er nivel
65 82 70 70 70 70 70 70 70
THDE
Tiempo promedio (minutos) de
132 98 80 70 60 60 60 50 40 120
2.0 Procesos
3,7
3,7
Optimizar el servicio de Help
Desk
60
70% 50%
20% 30%
Percepción favorable de los
usuarios respecto al área de TI
4,0
4,0
2002 2003
1.0 Mercado
2001
2000
T1
2001
158. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 158
17/12/2021
Cuantificaciones e Indicadores
Ejemplo: BSC para un proyecto
Tablero de Comando Integral Centro de Resultados: Proyecto 1
Situación al 29-02-01 Linea de Reporte : TI Perú
Oct Nov Dic Ene Feb Mar
Real Real Real Real Real Meta
1.0 Mercado
Descripción Objetivo C.Ind. Descripción Indicador
Percepción favorable de los
usuarios respecto al área de TI
SPRO
Evaluación promedio de la
Satisfacción de usuarios para el
total de proyectos
3,9 4,0 4,0 4,1 4,2 4,0
2.0 Procesos
Descripción Objetivo C.Ind. Descripción Indicador
CMET
Cumplimiento de Metodologías
y Estándares de Calidad y
Productividad
3,9 4,0 4,0 4,1 4,2 4,0
DPLA
Desviación porcentual en
plazos (Días calendarios) vs
estimación al cotizar
20% 20% 25% 30% 40% 40%
CALI
Porcentaje de guiones
observados en control de 40% 30% 30%
15 30
50
25
4,0 3,7
3,7
4,0
Total
Real
Optimizar estructura y procesos
implementando metodologías y
métricas
Meses
Anteri
ores
T4'2000 T1'2001 Meses
Futu-
ros
159. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 159
17/12/2021
Cada tablero agrupa un conjunto de indicadores.
Los indicadores incluyen:
1) Métricas de performance de roles específicos.
2) Métricas de performance generales de cada nivel.
Tableros Multinvel
Ejemplo: Estructura de Tableros
BSC - G. Corporativa de TI
BSC - País 1 BSC - País 2 ................... BSC - País N
BSC - G. Unidad 1
BSC - G. Unidad 2
BSC - G. Unidad 3
160. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 160
17/12/2021
Tableros Multinivel
Ejemplo: Flujo de datos del BSC
Participantes del
Proyecto (M+S)
informan horas
dedicadas
SGS
Participantes del
Proyecto (M+S y
Clientes)
responden a
Encuestas
Tablero de
Control de
Proyecto
Líder de Proyecto con
apoyo del Controler
analizan y elaboran
Responsable de Unidad
de Negocio con apoyo
del Controler
analizan y consolidan
Tablas y
Data
Referencial
Tablero de
Control de
Unidad
Balance de
Recursos
de Proyecto
Resumen de
Proyectos de
Unidad
Estos 3 tipos de “Herramientas
de Gestión”, representan
agrupaciones de INDICADORES
asociados al conjunto de
Definiciones Estratégicas
161. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 161
17/12/2021
Concepto de CRM
“Gestión de Relaciones con Clientes”
• Es la Combinación de Acciones Estratégicas
orientadas a fortalecer las relaciones con los Clientes
• Todo soportado en la Tecnología de la Información
INTERNET
162. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 162
17/12/2021
Procesos Comerciales incluidos en las
Mejores Prácticas CRM del Mercado
Informático
Módulo de
Marketing
Módulo
de Ventas
Módulo
de Servicios
Visión 360º
del Cliente
Información de
los Clientes en
los Sistemas de
la Empresa
Interacción
con los
Clientes
163. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 163
17/12/2021
Comercio Electrónico - Definición
• Comercio electrónico implica el
compartir información de
negocios, mantener relaciones de
negocios, y conducir
transacciones de negocios a
través de redes de
telecomunicaciones
(Riggins et al., 1998;1996)
164. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 164
17/12/2021
El Modelo de Comercio Electrónico
• La competencia es global.
• Las empresas medianas y pequeñas tienen iguales
oportunidades.
• Cambio en la cultura de los consumidores.
• Cambio en la cultura de servicio.
• Producción con normas internacionales.
• Estrategias de mercadeo nuevas.
• El cliente está fortalecido, tiene más opciones de
elección.
• La empresa debe evolucionar a la velocidad de la
tecnología.
• Se apoya en tecnología compleja para
especialistas.
• Genera cambios en las leyes, la sociedad y la
política.
165. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 165
17/12/2021
• Tipo de producto o servicio vendido [físico/digital];
• Tipo de proceso [físico/digital]
• Agente de entrega (o intermediario) [físico/digital]
• Comercio tradicional
• Todas las dimensiones son físicas
• Comercio electrónico puro
• Comercio electrónico parcial
• Todas las posibilidades que incluyen una combinación de las
dimensiones digitales y físicas
• Todas las dimensiones son digitales
Tipos y niveles de Comercio
Electrónico
• Tres dimensiones
166. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 166
17/12/2021
Dimensiones del comercio electrónico
Comercio electrónico puro
Tipo de
proceso
Digital
Físico
Tipo de producto
Físico
Físico digital
Comercio
Tradicional
Tipos de agente de entrega
Otras áreas del
Comercio Electrónico
Digital
167. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 167
17/12/2021
Esquema de Implantación
Páginas WEB
internas
Páginas WEB
Aplicaciones
WEB Internas
Comercio
Electrónico
INTRANET INTERNET
Transacciones
Información
Redución de
Costos
Aumento de
Ingresos
168. Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 168
17/12/2021
Introducción a la Ingeniería
de Software
Unidad 1
Final de la unidad