Está en la página 1de 16

Introducción a la Ingeniería de software.

PROBLEMAS EN EL DESARROLLO DEL SOFTWARE


¿Por qué es difícil desarrollar software?

Es complicado explicar los motivos que se hacen tan difícil desarrollar software.

Lo cierto es que muchos proyectos de desarrollo de software fracasan

ERRORES CLÁSICOS 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)

EL FRACASO Y SUS
CAUSAS Los proyectos informáticos fracasan por:

o El software nunca llega a funcionar. o No se


cumple los plazos de entrega o No cumple con
las funcionabilidades esperadas
Razones

o La complejidad era muy alta (comunicaciones, interrelación con otros


sistemas, etc...)
o Incertidumbre. No se tenía una idea clara de lo que se quería obtener

El software es excesivamente maleable

Todo el mundo exige que se realicen cambios sobre el software como respuesta a pequeños
cambios del entrono
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 fases el de las fases del ciclo de vida también se verán
afectados y por ende.
• El resultado es un producto de software que no cumple las necesidades de los
Stakeholders
STAKEHOLDERS
Los Stakeholders son aquellas personas o entidades que tienen algún impacto o interés en el
sistema.
• 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 o Empleados, proveedores,
clientes, gobierno, entre otros.

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 del software.

Los requisitos bien establecidos 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.

El no definir los requisitos correctamente tiene un precio bastante alto ya que se ocasionan

requisitos mal definidos 9incompletos, incorrectos o requisitos


contradicotrios0 Estos errores pueden causar: Sobrecosto
• Reproceso costoso
• Mala calidad
• Retraso en la entrega
• Clientes descontentos
• Miembros de equipos agotados y desmoralizados.

COSTOS DE ERRORES EN LOS REQUISITOS


Costo de corregir un error en los requsitos

(Boehm-Papaccio, 1988)
La importancia de tener requisitos de calidad radica e n:
Involucran del 10 al 15% coste total del proyecto.

Un error en los requisitos puede ser de 10 hasta 100 veces más costosos que un error en el
código

Una equivocación en la etapa de requisitos se arrastra en las demás fases.

• La solicitud del usuario


• Lo que entendió el líder del proyecto
• El diseño del analista del sistema
• El enfoque del programador
• La recomendación del consultor externo
• La documentación del proyecto
• La implementación en producción
• El presupuesto del proyecto
• El soporte operativo
• Lo que el usuario realmente necesitaba

BRECHA EN LA COMUNICACIÓN
Según los desarrolladores, los usurarios … Según los 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 como hacer nuestro
trabajo
Quieren toda ya No son capaces de traducir necesidades
claramente establecidas en un sistema
Son incapaces de definir prioridades entre Siempre dicen que no
sus necesidades
Rehúsan asumir responsabilidades por el Siempre están pasados del presupuesto.
sistema.
Incapaces de dar un enunciado utilizable de Siempre están atrasados
sus necesidades
No están comprometidos con los proyectos Nos exigen tiempo y esfuerzo aun a costa de
de desarrollo 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.

LA INGENIERÍA DEL SOFTWARE.

INGENIERÍA DE SW SEGÚN PRESSMAN


• Herramientas
• Métodos
• Modelo de proceso
• Enfoque de calidad
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.

VISIÓN GENERAL DEL PROCESO DE INGENIERÍA DEL SOFTWARE.


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 máquina de escribir y salga el
quijote no es cero

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)

Resolución de problemas
¿Cómo resuelve un problema de programación un ingeniero?
A. Tecleando código en una maquina
B. Siguiendo un proceso metódico.

ARQUITECTO INFORMÁTICO
1.- Estudio de viabilidad, análisis del terreno, 1.- Análisis del problema
requisitos pedidos, etc.
2.- Diseñar los planos del puente y asignar 2.- Diseño del Programa (algoritmo y
los materiales estructura)
3.- Poner los ladrillos de acuerdo con los 3.- Implementación (programación)
planos
4.- Supervisión técnica del puente 4.- Verificación y pruebas.

MÉTODO CIENTÍFICO INFORMÁTICO


1.- Observación 1.- Análisis del problema
2.- Hipótesis 2.- Diseño del Programa (algoritmo y
estructura)
3.- Experimentación 3.- Implementación (programación)
4.- Verificación 4.- Verificación y pruebas.
ELEMENTOS DE LA METODOLOGÍA.

En un proyecto de desarrollo de software la metodología define ¿Quién? debe hacer ¿Qué?,


¿Cuándo?, y ¿Cómo? debe hacerlo

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 su rol y
(3) Está sujeta a control de versiones.
Un artefacto puede ser un modelo, un elemento de modelo o un documento.

Personas: todas las personas involucradas en el


proyecto. Cliente encarga y paga el
sistema.

• Desarrolladores, 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.

Notación: Conjunto de reglas graficas o de texto para representar un modelo (UML, Unified

Modelling Languague, es una notación grafica orientada a objetos para representar modelos

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.

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 o productos de trabajo y dependen de productos de trabajo producido
por otras tareas.
• Recursos. Bienes que se utilizan para realizar el trabajo.
o Tiempo. Equipamiento y Recursos Humanos.
o El planificar el gerente divide el trabajo en tareas y les asigna recursos.
• Método. Técnica repetible para resolver un problema específico.
o Por ejemplo, un algoritmo de ordenación es un método para ordenar elementos
en una lista.
o 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 problema OTM.
Metodología de Booch. Catalysis Proceso Unificado de Desarrollo)

TÉCNICAS BÁSICAS USADAS EN LA INGENIERÍA.


Históricamente se han utilizado técnicas como.

1. El Modelado.
2. División del producto.
3. División del proceso.
o En principio se deberían utilizar estas técnicas también en informática.

EL MODELADO
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 el desarrollo.

DIVISIÓN DEL PRODUCTO


Se fracciona el producto de modo que cada fragmento lo puede realizar un miembro del
Grupo del desarrollo.

DIVISIÓN DEL PROCESO


Implica dividir el desarrollo del artefacto por fases. Normalmente se habla de la
especificación, diseño y fabricación.
IDENTIFICACIÓN Y DEFINICIÓ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 e investigativa.)

• 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.

ANÁLISIS DEL PROBLEMA


• En esta fase se identifica se define y se descompone el problema a tratar.
• Se debe indicar cuáles son las principales antecedentes causales y los efectos del
problema.
• Se deberá referenciar a fuentes que respalden las afirmaciones hechas.
• Se debe establecer cuáles son las justificaciones por los cuales este problema es escogido.

• Se debe investigar si ya existen soluciones al problema propuestos en otros ámbitos o


utilizando otras tecnologías.
• De existir otras soluciones, debe dar una BREVE descripción de cada una, haciendo énfasis
en sus ventajas y desventajas con la referencia de que brinden mayor información.

ANÁLISIS DE LA SOLUCIÓN

• En esta fase se debe responder la pregunta. ¿Qué se va a hacer para resolver el problema?
• Se podrá utilizar cualquier metodología de análisis que se refiera a casos de uso, historias
de usuarios, etcétera.
• El reporte deberá incluir diagramas o productos más importantes. El resultado debe ser
un texto fluido más que un conjunto de diagramas o tablas.
• En esta fase también se presentará de manera estructurada las diferentes
herramientasconocimientos que se pueden utilizar para la solución del problema.
• Lo más importante en esta sub fase no es solo conocer la existencia y descripción de las
herramientas-conocimiento si no organizarlas clasificarlas lógicamente y comparar sus
principales ventajas, Desventajas en lo que concierne al problema de resolver.
• Se debe incluir una BREVE descripción de cada herramienta-conocimiento, una referencia
de que provea más información y una sección donde se contraste su utilidad para diseñar
e implementar la solución del problema.
• El 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 a ser y que no va a ser la solución.
• Al final del proyecto se establecerá. Hastaque.se cumplió este alcance.

DISEÑO DE LA SOLUCIÓN

• En esta fase. Se debe evitar en lo posible de cualquier referencia a detalles de


implementación como lenguajes a utilizar. Sistemas de base de datos, especificaciones de
hardware, entre otros.
• El resultado del diseño debería en principio independientemente de la plataforma sobre
la cual se implementa.
• Dada la importancia de la interfaz, esta se debe diseñar en esta fase.
• Deben realizarse los bosquejos de lo que será la interfaz final, así como la interacción
prevista por el usuario.

IMPLEMENTACIÓN DE LA SOLUC21111143 IMPLEMENTACIÓN DE LA SOLUCIÓN


Esta fase varía en su contenido dependiendo del tipo de solución. En general debería
contener.

o Selección de herramientas, principalmente justificando su elección. o Detalles de


la implementación, lenguajes, configuraciones, etcétera.
o Detalles de la implantación, máquinas, servidores, etc.
o Vistas del software completado de ser posible.

PRUEBAS
• En esta fase se comprobarán que los objetivos dados durante las fases del análisis, la
solución alcance se han cumplido, se deberá establecer un plan de pruebas de acuerdo
con los objetivos.
• Se deberá probar con los usuarios ajenos a la aplicación.
• El mínimo de usuarios deberá de ser 5.
• Se deberá reportar las estadísticas sobre los datos recopilados.

CONCLUSIONES SOBRE LA SOLUCIÓN


• 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 podamos afirmar luego de haber
terminado el trabajo basados en la experiencia que hemos ganado y recomendaciones
(cosas que se podrán cambiar o mejorar en nuevas soluciones al problema) Deben ser
importantes y relevantes.

RESPONSABILIDAD ÉTICA Y PROFESIONAL. EN INGENIERÍA DE SOFTWARE.


• Los ingenieros de software deberán obligarse a hacer el análisis, especificación, diseño,
desarrollo 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 de software deberán adherirse a los 8 principios siguientes.
Sociedad. Los ingenieros de software actuarán de manera coherente con el interés social.
Cliente y empresario, los ingenieros de software actuarán de manera que produzcan el
mejor resultado para el cliente y empresario y de manera coherente con el interés social.
Producto, los ingenieros de software garantizarán sus productos y las modificaciones
correspondientes cumplen las mayores estándares profesionales posibles.
Valoración, los ingenieros de software mantendrán la integridad e independencia en sus
valoraciones profesionales.

Gestión, los líderes y gestores de ingenieros de software suscribirán y promoverán un


enfoque ético en la gestión del desarrollo y mantenimiento del software.

Profesión, los ingenieros de software avanzarán en la integridad y reputación de la profesión


de manera consistente con el interés social.

Compañeros, los ingenieros de software serán justos y apoyarán a sus compañeros.

Personal, los ingenieros de soja participarán en el aprendizaje continuo referente a la


práctica en su de su profesión y promoverán un enfoque ético en la práctica de la profesión.

SISTEMAS DE INFORMACIÓN
Información y datos
Dato. Puede ser un número coma una palabra, coma una imagen.

Información. Son datos que dentro de un contexto dado, tiene un significado para alguien.

Datos: Secuencia de hechos en bruto y representan eventos que ocurren en las


organizaciones o en el entorno físico antes de ser organizado y ordenados de una forma que
las personas pueden entender y utilizar.

Información, datos que se han modelado en una forma significativa y útil para los seres
humanos.

¿Qué significa CALIDAD de INFORMACIÓN en los negocios?


3 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
una forma de resumen ordenada con criterio.

Concepto.
Sistema 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. Esto no
necesariamente incluye equipo electrónico hardware.

Se puede definir técnicamente como un conjunto de componentes interrelacionados que


recolectan o (recuperan), procesan, almacenan, distribuyen información para apoyar a la
toma de decisiones y el control de una organización.
QUE INCLUYEN LOS SI.
• Equipo computacional.
• Recurso humano.
• Datos e información. Fuente, entrada. Programas (Software)
Telecomunicaciones.
• Procedimientos (Políticas y reglas de operación)

Cuatro actividades básicas de un sistema de información.

Almacenamiento de información.

Entrada de información. Recopilación de información que se requiere para después de ser


procesada de forma manual directa del usuario o automáticas de otro sistema.

Proceso de información. Capacidad para ejecutar operaciones de acuerdo a una secuencia de


operaciones establecidas.

Salida de información. Capacidad para ejecutar operaciones de acuerdo con una secuencia
de operaciones establecidas.

• 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.

Ejecutar cálculos de acuerdo con una secuencia de operaciones establecidas.


• Salida de información.
Capacidad de sacar información procesada o bien de datos. De entrada al exterior.

Printers, plotters, etc)


TECNOLOGÍA DE LA INFORMACIÓN
Information Technology.
• 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 telecomunicaciones.
• 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.
TIPOS DE SISTEMAS DE INFORMACIÓN
Sistemas Transaccionales
Sistemas de Apoyo a las Decisiones
Sistemas Estratégicos

SISTEMAS TRANSACCIONALES.
• Primer tipo de sistema que se implanta en las organizaciones.
• Apoyan las tareas a nivel operativo de la organización.
• Muestra una intensa entrada y salida de información.
• Cálculos y procesos son simples y poco complejos.
• Son recolectores de información datos.
o Ejemplo, facturación, nómina, cuentas por cobrar, etcétera.

SISTEMAS DE APOYO A LAS DECISIONES.


• Suelen instalarse. Posterior a la implementación de los sistemas transaccionales.
La información que genera sirve para los mandos intermedios y de alta gerencia.
• Intensivos en cálculo y escasos en entradas y salidas.
• Apoyan directamente la toma de decisiones.
o Ejemplo, sistema de simulación de negocio, apoyar un nuevo producto al
mercado.

DATOS, MODELOS Y DECISIONES.


Inversión en tecnología informática, -> abundancia de DATOS.

Ejemplo, (códigos de barra)

¿Cómo extraer el valor de estos datos mediante modelos analíticos?

MODELOS: DATOS --> DECISIONES.


MODELOS ANALÍTICOS.
• Aproximan al mundo real, nos dan la libertad de experimentar.
• Razones para construir modelos analíticos de problemas de toma de decisiones.
• Ejemplo. ¿Por qué se construye un modelo de avión antes de construir el de verdad?
o Menos costoso cometer errores sin modelo. o Modelo da Intuición sobre el
problema real. o Modelo permite experimentar.
o Nos ayuda a entender mejor el problema.

OPTIMIZACIÓN.
Problema económico básico, ¿cómo asignar recursos (limitados) disponibles para alcanzar
objetivos?

Ejemplos de problemas, asignación de recursos.


• Fabricación de varios tipos de productos.
• Asignación de turnos de trabajo.
• Inversión financiera.
• Transporte de productos. Mínimo coste.
Optimización, determinar la mejor manera de alcanzar un objetivo dado de los recursos
disponibles.
Excel Solver implementa potentes herramientas de optimización matemática.

PROGRAMACIÓN LINEAL.
Un problema de optimización es de la forma

(Maximizar, minimizar) objetivo


Sujeto a restricciones en las decisiones factibles...

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 al proceso de innovación dentro de la empresa o Ejemplo: CRM SCM, comercio
electrónico.

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.
COMERCIO ELECTRÓNICO D`EFINICIÓ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.

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 Estratégicas de mercado nuevas.
• La empresa debe evolucionar a la velocidad de la tecnología Se apoya en
tecnología compleja para especialistas.
• Genera cambio en las leyes, la sociedad y la política.

TIPOS Y NIVELES DE COMERCIO ELECTRÓNICO


Tres dimensiones

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 o Todas las
dimensiones son fiscas.
• Comercio electrónico puro o Todas las
dimensiones son digitales
• Comercio electrónico parcial o Todas las
posibilidades que incluyen una
combinación de las dimensiones digítales
y fiscas.

También podría gustarte