SlideShare una empresa de Scribd logo
1 de 168
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
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.
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
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
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.
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
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.
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.
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.
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
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
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
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
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?
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
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.
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
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.
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
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
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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?
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
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
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
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.
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
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
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
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)
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
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
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
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
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.
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
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.
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).
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.
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
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.
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.
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
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
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.
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.
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.
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
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)
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.
Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 70
17/12/2021
Motivación
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
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
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
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
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
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)
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.
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
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
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)
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
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
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
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
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
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
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
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 .
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
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
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
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
Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 93
17/12/2021
Rational Unified Process (RUP). Etapas
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.
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)
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).
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.
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)
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.
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.
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)
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.
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.
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.
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)
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.
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.
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.
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)
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)
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)
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
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)
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
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
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?
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).
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
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.
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.
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
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
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)
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
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
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
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.
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)
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
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.)
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
Introducción a la Ingeniería de Software Carrera de Software
Ph.D. Franklin Parrales 151
17/12/2021
MODELO en Excel
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
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
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
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
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
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
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
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
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
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
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
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)
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.
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
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
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
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

Más contenido relacionado

La actualidad más candente

Metodología xp
Metodología xpMetodología xp
Metodología xpPiskamen
 
gestion y configuracion del software
 gestion y configuracion del software gestion y configuracion del software
gestion y configuracion del softwareSaul Flores
 
TAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOSTAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOSxinithazangels
 
Estandares y modelos de calidad del software
Estandares y modelos de calidad del softwareEstandares y modelos de calidad del software
Estandares y modelos de calidad del softwareaagalvisg
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareJennifer Andrea Cano Guevara
 
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientosIDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientosFranklin Parrales Bravo
 
Fundamentos y metodos de analisis de requerimientos.
Fundamentos y metodos de  analisis de requerimientos.Fundamentos y metodos de  analisis de requerimientos.
Fundamentos y metodos de analisis de requerimientos.raquel yendez avila
 
Control de Calidad del Software
Control de  Calidad del SoftwareControl de  Calidad del Software
Control de Calidad del SoftwareIntellimedia
 
Análisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAnálisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAngel Reyes
 
Gestion de la configuracion del software
Gestion de la configuracion del softwareGestion de la configuracion del software
Gestion de la configuracion del softwareJohan Prevot R
 
Cocomo basico
Cocomo basicoCocomo basico
Cocomo basicodavid286
 
Análisis y especificación de requerimientos
Análisis y especificación de requerimientosAnálisis y especificación de requerimientos
Análisis y especificación de requerimientosFranklin Parrales Bravo
 

La actualidad más candente (20)

Metodología xp
Metodología xpMetodología xp
Metodología xp
 
Estimación de Proyectos de Software
Estimación de Proyectos de SoftwareEstimación de Proyectos de Software
Estimación de Proyectos de Software
 
Programación Extrema (XP)
Programación Extrema (XP)Programación Extrema (XP)
Programación Extrema (XP)
 
gestion y configuracion del software
 gestion y configuracion del software gestion y configuracion del software
gestion y configuracion del software
 
TAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOSTAREAS DE LA ING. DE REQUISITOS
TAREAS DE LA ING. DE REQUISITOS
 
Estandares y modelos de calidad del software
Estandares y modelos de calidad del softwareEstandares y modelos de calidad del software
Estandares y modelos de calidad del software
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto software
 
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
 
Roles desarrollo del software
Roles desarrollo del softwareRoles desarrollo del software
Roles desarrollo del software
 
Metodología RUP
Metodología RUPMetodología RUP
Metodología RUP
 
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientosIDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
IDR Unidad 1: Introducción y proceso de Ingeniería de requerimientos
 
Fundamentos y metodos de analisis de requerimientos.
Fundamentos y metodos de  analisis de requerimientos.Fundamentos y metodos de  analisis de requerimientos.
Fundamentos y metodos de analisis de requerimientos.
 
Exposicion cocomo
Exposicion cocomoExposicion cocomo
Exposicion cocomo
 
Control de Calidad del Software
Control de  Calidad del SoftwareControl de  Calidad del Software
Control de Calidad del Software
 
Análisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAnálisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de software
 
Gestion de la configuracion del software
Gestion de la configuracion del softwareGestion de la configuracion del software
Gestion de la configuracion del software
 
Cocomo basico
Cocomo basicoCocomo basico
Cocomo basico
 
Gestión de proyecto de software
Gestión de proyecto de softwareGestión de proyecto de software
Gestión de proyecto de software
 
Análisis y especificación de requerimientos
Análisis y especificación de requerimientosAnálisis y especificación de requerimientos
Análisis y especificación de requerimientos
 
Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)
 

Similar a IIS Unidad1: Introducción a la Ingeniería de Software

introduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptintroduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptGabriel9876perez
 
introduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptintroduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptrodrigorobert8
 
introduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptintroduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptElkin513014
 
Introducción a la ingeniería de software
Introducción a la ingeniería de softwareIntroducción a la ingeniería de software
Introducción a la ingeniería de softwareAristidesRojas7
 
Inge de software por jophwa y yasuri
Inge de software por jophwa y yasuriInge de software por jophwa y yasuri
Inge de software por jophwa y yasuriyasurimarleni
 
Ingeniería de Software
Ingeniería de Software Ingeniería de Software
Ingeniería de Software Luis Valeriano
 
construccion de software fundamentos y conceptos
construccion de software fundamentos  y conceptosconstruccion de software fundamentos  y conceptos
construccion de software fundamentos y conceptosjguerraf0805910805
 
Resolver Problemas Por Medio De La Ingeniería De Sistemas
Resolver Problemas Por Medio De La Ingeniería De SistemasResolver Problemas Por Medio De La Ingeniería De Sistemas
Resolver Problemas Por Medio De La Ingeniería De SistemasAndrés Felipe Montoya Ríos
 
Que es Ingenieria del Software?,
Que es Ingenieria del Software?,Que es Ingenieria del Software?,
Que es Ingenieria del Software?,Robert Rodriguez
 
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Luis Fernández
 
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Coesi Consultoria
 
Introduccion ingenieriadelsoftware
Introduccion ingenieriadelsoftwareIntroduccion ingenieriadelsoftware
Introduccion ingenieriadelsoftwarejhonjaveruribe
 
Introduccion ingdelsoftware2
Introduccion ingdelsoftware2Introduccion ingdelsoftware2
Introduccion ingdelsoftware2Jonh Uribe
 
6. is construcción del software
6. is construcción del software6. is construcción del software
6. is construcción del softwareNagut
 

Similar a IIS Unidad1: Introducción a la Ingeniería de Software (20)

Apuntes2
Apuntes2Apuntes2
Apuntes2
 
introduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptintroduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.ppt
 
introduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptintroduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.ppt
 
introduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.pptintroduccion_ingdelsoftware2.ppt
introduccion_ingdelsoftware2.ppt
 
Introducción a la ingeniería de software
Introducción a la ingeniería de softwareIntroducción a la ingeniería de software
Introducción a la ingeniería de software
 
Inge de software por jophwa y yasuri
Inge de software por jophwa y yasuriInge de software por jophwa y yasuri
Inge de software por jophwa y yasuri
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
Ingeniería de Software
Ingeniería de Software Ingeniería de Software
Ingeniería de Software
 
construccion de software fundamentos y conceptos
construccion de software fundamentos  y conceptosconstruccion de software fundamentos  y conceptos
construccion de software fundamentos y conceptos
 
ingenieria de software
ingenieria de softwareingenieria de software
ingenieria de software
 
Resolver Problemas Por Medio De La Ingeniería De Sistemas
Resolver Problemas Por Medio De La Ingeniería De SistemasResolver Problemas Por Medio De La Ingeniería De Sistemas
Resolver Problemas Por Medio De La Ingeniería De Sistemas
 
Is clase1
Is clase1Is clase1
Is clase1
 
introducción ingeniería de software
introducción  ingeniería de  softwareintroducción  ingeniería de  software
introducción ingeniería de software
 
Que es Ingenieria del Software?,
Que es Ingenieria del Software?,Que es Ingenieria del Software?,
Que es Ingenieria del Software?,
 
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
 
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
 
1. introduccion
1. introduccion1. introduccion
1. introduccion
 
Introduccion ingenieriadelsoftware
Introduccion ingenieriadelsoftwareIntroduccion ingenieriadelsoftware
Introduccion ingenieriadelsoftware
 
Introduccion ingdelsoftware2
Introduccion ingdelsoftware2Introduccion ingdelsoftware2
Introduccion ingdelsoftware2
 
6. is construcción del software
6. is construcción del software6. is construcción del software
6. is construcción del software
 

Más de Franklin Parrales Bravo

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaFranklin Parrales Bravo
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebFranklin Parrales Bravo
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaFranklin Parrales Bravo
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosFranklin Parrales Bravo
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebFranklin Parrales Bravo
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaFranklin Parrales Bravo
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasFranklin Parrales Bravo
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosFranklin Parrales Bravo
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosFranklin Parrales Bravo
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosFranklin Parrales Bravo
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosFranklin Parrales Bravo
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraFranklin Parrales Bravo
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareFranklin Parrales Bravo
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software Franklin Parrales Bravo
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosFranklin Parrales Bravo
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosFranklin Parrales Bravo
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosFranklin Parrales Bravo
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosFranklin Parrales Bravo
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoFranklin Parrales Bravo
 

Más de Franklin Parrales Bravo (20)

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en Cuenca
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería Web
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicua
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
 
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modeladoMOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuida
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidas
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgos
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidos
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectos
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestra
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivos
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilos
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a Objetos
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a Objetos
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y Enrutamiento
 

Último

Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 

Último (7)

Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
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