Anda di halaman 1dari 59

INGENIERÍA DE

SOFTWARE
INGENIERÍA DE SOFTWARE
CONJUNTO DE TÉCNICAS Y HERRAMIENTAS
PARA PRODUCIR SOFTWARE DE ALTA
CALIDAD

• ECONÓMICO
• FIABLE
• FLEXIBLE
• PORTABLE
SOFTWARE: CICLO DE VIDA
CLÁSICO

PLANEACIÓN

ANÁLISIS

PROTOTIPO

DISEÑO

CONSTRUCCIÓN

PRUEBAS

MANTENIMIENTO
INGENIERÍA DE SOFTWARE

 PLANEACIÓN O PREANÁLISIS:
Etapa inicial en el desarrollo de un proyecto de software,
la cual transforma inquietudes y requerimientos de
información de un área específica, en un estudio de
factibilidad que contiene:

• Definición organizada de los requerimientos

• Recursos con que se cuenta

• Alternativas de desarrollo

• Cronograma de actividades
INGENIERÍA DE SOFTWARE
 OBJETIVOS DE LA PLANEACIÓN
• Aclarar y comprender la solicitud del proyecto

• Determinar alcance del proyecto

• Lograr un conocimiento general y estructural de los


requerimientos de información

• Planear alternativas de desarrollo

• Evaluar costos y beneficios

• Determinar factibilidad operativa, técnica y económica

• Planear las actividades generales


INGENIERÍA DE SOFTWARE
 PASOS DE LA PLANEACIÓN O PREANÁLISIS:

• Definición del sistema actual


• Ubicación del sistema
• Objetivos del sistema a desarrollar
• Alcance del sistema
• Estimativos de desarrollo del sistema
• Beneficios del sistema
• Estudio de factibilidad
• Recomendaciones, alternativas
• Cronograma de actividades
• Aprobación del documento final
INGENIERÍA DE SOFTWARE
 DEFINICIÓN DEL SISTEMA ACTUAL

• Determinar en forma coherente y estructurada las


necesidades de información

• Entender el dominio del problema y el entorno de


éste

• Definición técnica
INGENIERÍA DE SOFTWARE
 UBICACIÓN GENERAL DEL SISTEMA

• Características generales de la organización: Objeto


social, estructura organizacional, ubicación
geográfica, sector, etc.

• Descripción del área: definición de las áreas donde se


va a desarrollar el sistema. Importante para
desarrollar un equipo de trabajo, para definir el
alcance del proyecto.
INGENIERÍA DE SOFTWARE
Niveles de intervención de las áreas en un proceso determinado

ÁREA
PROCESOS ÁREA 1 ÁREA 2 ÁREA 3

PROCESO 1 A M
PROCESO 2 A
A

PROCESO 3 M M

PROCESO 4 B A M

A : Alta M: Media B: Baja


INGENIERÍA DE SOFTWARE
 OBJETIVOS DEL SISTEMA:

• Son logros para alcanzar


• Establecer el marco de referencia para el proyecto de
desarrollo del S.I.
• Pueden ser cualitativos o cuantitativos
• Deben ser claros y específicos
• Deben reflejar la satisfacción de las necesidades de
información y los beneficios organizacionales y económicos
de la empresa
• Deben indicar las metas a lograr en el desarrollo del
sistema
INGENIERÍA DE SOFTWARE
 ALGUNOS OBJETIVOS PUEDEN SER:

• Minimizar número de errores


• Aumentar precisión en la captura de datos
• Reducción o simplificación de informes
• Integración de los subsistemas del negocio
• Mejorar servicios al cliente
• Acelerar captura de datos
• Reducir tiempo de procesamiento de datos
• Automatizar procedimientos manuales
• Lograr una ventaja competitiva para la organización
• Hacer más rentable algún proceso
• Agregar valor a alguna función de la organización
INGENIERÍA DE SOFTWARE

 OBJETIVOS CUANTITATIVOS

• Reducir el stock de inventarios en un 30%

• Aumentar el número de material consultado en un


50%

• Reducir el número de días de rotación de cartera


en 35 días

• Acelerar el proceso de préstamos en un 40%

• Reducir el tiempo de referencia en un 35%


INGENIERÍA DE SOFTWARE
 ALCANCE DEL PROYECTO

• Definición de Macromódulos o macrofunciones que


delimitan el sistema (Subsistema)

• Funciones o procesos a desarrollar para alcanzar los


objetivos

• Establecer interacciones entre funciones y procesos

• El alcance puede ser revaluado para comprobar si los


objetivos se alcanzan
INGENIERÍA DE SOFTWARE

SUBSISTEMA FUNCIONES / PROCESOS


ORDENES DE COMPRA Proveedores
Solicitudes de Compra
Generación Órdenes de Compra
ENTRADAS ALMACEN Remisiones
Fácturas
Enlace Contabilidad
Actualización Inventario
SALIDAS ALMACEN Actualización Inventario
Enlace Contabilidad
Documento Salida Almacen
INVENTARIOS General
Por Producto
INGENIERÍA DE SOFTWARE
 ESTIMATIVOS DE DESARROLLO DEL SISTEMA

• Talento Humano

• Hardware

• Software

• Otros
INGENIERÍA DE SOFTWARE
 CONFORMACIÓN GRUPO DE TRABAJO

GERENTE DEL PROYECTO

AUDITOR DE JEFE ANÁLISIS Y


SISTEMAS PROGRAMACIÓN

Jefe de Sistemas

LÍDER USUARIOS LÍDER TÉCNICO

Usuarios Analistas
Programadores
INGENIERÍA DE SOFTWARE

• GERENTE DEL PROYECTO:


Usuario con poder de decisión, con visión del
negocio, elabora el presupuesto y coordina los
grupos de: usuarios y analistas programadores.
- AUDITOR Y JEFE DE SISTEMAS:
Pertenecen al staff, asesoran y esporádicamente
verifican si se están cumpliendo las especificaciones.

ES MÁS IMPORTANTE ORGANIZAR LOS MÉTODOS Y


PROCEDIMIENTOS QUE HACER S.I.
INGENIERÍA DE SOFTWARE
• ESTIMACIÓN DEL TALENTO HUMANO:
 Quienes?
 Qué función tienen dentro del grupo?
 Tiempo de participación en el proyecto
• ESTIMACIÓN DEL HARDWARE:
 Servidores
 Computadores
 Comunicaciones: tarjeta de red, enrutadores, fibra
óptica, conectores, concentradores, etc.
• ESTIMACIÓN DE SOFTWARE
 Sistema operacional
 Motor de base de datos
 CASER (procedimientos para simulaciones)
 Herramientas de usuario final
INGENIERÍA DE SOFTWARE

• BENEFICIOS DE LA IMPLANTACIÓN DEL SISTEMA

 Tangibles: Tomar los objetivos y cuantificarlos en $

 Intangibles: Apoyo a la visión, misión, objetivos y


estrategias de la organización.
INGENIERÍA DE SOFTWARE
• ESTUDIO DE FACTIBILIDAD

 FACTIBILIDAD ECONÓMICA: Existe presupuesto,


estudio costo/beneficio, disposición de la gerencia,
voluntad.

 FACTIBILIDAD TÉCNICA: Hardware, Software,


ubicación de los equipos, tendido del cable, etc.

 FACTIBILIDAD OPERATIVA: Conocimientos del personal


de sistemas, conocimientos del usuario, usuario
dispuesto a aceptar el cambio.
INGENIERÍA DE SOFTWARE

 ANÁLISIS:
GENERALIDADES: estudio detallado de un sistema, los
requerimientos de los usuarios y su medio ambiente para
inferir las especificaciones para un nuevo sistema.

Transformación disciplinada de los requerimientos de


información de un sistema o área dentro de unas
especificaciones funcionales, expresadas en términos lógicos y
utilizando técnicas estándares.
INGENIERÍA DE SOFTWARE

 OBJETIVOS DEL ANÁLISIS:


• Conocer el sistema de información actual
• Conocer todos los requerimientos y necesidades de
información adicionales
• Revaluar puntos de la etapa de planeación
• Formular modelos lógicos y estructurados que representen
el nuevo sistema
• Servir de enlace entre la parte administrativa y la parte
técnica
• Fomentar la participación de gerente y empleados en todo
el proceso
INGENIERÍA DE SOFTWARE

• ACTIVIDADES DEL ANÁLISIS

 Estudio del sistema actual

 Análisis de los nuevos requerimientos de información

 Revaluación etapa de planeación

 Sistema propuesto:
• Modelo de procesos
• Modelo de datos
INGENIERÍA DE SOFTWARE

 ESTUDIO DEL SISTEMA ACTUAL

• Estudio de manuales, métodos y procedimientos


• Estudio del sistema anterior automatizado
• Entrevista con los usuarios
• Observación directa de los procesos
• Documentar a través de la documentación funcional
• Documentar a través de los flujogramas de documentos
• Documentar a través de los diagramas de flujos de datos
INGENIERÍA DE SOFTWARE

 SISTEMA ACTUAL - DESCOMPOSICIÓN


FUNCIONAL

FUNCIÓN

PROCESO

ACTIVIDAD

TAREA
INGENIERÍA DE SOFTWARE

 SISTEMA ACTUAL -
DESCOMPOSICIÓN FUNCIONAL

FECTURACIÓN Y RECAUDO

VENDER FACTURAR RECAUDAR COBRAR

Recibir Orden de Elaborar Enviar


Pedido Factura Factura

Verificar Verificar Totalizar Calcular Imprimir


Cantidades Valores Facturas Impuestos Facturas
INGENIERÍA DE SOFTWARE
DEPENDENCIA TODAS LAS COMPRAS PROVEEDOR ALMACEN
PROCESO DEPENDENC.

SOLICITUD DE
SOLICITUD DE
1. NECESIDAD SERVICIO
SERVICIO O
COMPRA
DE UN BIEN

2. SOLICITUD
DE RAZONES NO
COMPRA
COTIZACIONES COMPRA ?
A LOS
PROVEEDORES

SOLICITUD
ORDEN DE ORDEN DE ORDEN DE
COMPRA COMPRA COMPRA
INGENIERÍA DE SOFTWARE

Análisis de nuevos requerimientos

PROVEEDOR INSUMOS PRODUCTO CLIENTE

Nombre del Proceso


INGENIERÍA DE SOFTWARE

 MODELO DEL PROCESO:

• Análisis Estructurado

 Diagrama de Flujo de Datos (DFD)


 Diccionario de Datos (DD)
 Miniespecificaciones
 Diagrama de Estructura de Datos (DSD)
INGENIERÍA DE SOFTWARE
 DIAGRAMA DE FLUJO DE DATOS (DFD)

• Proceso: Lugar donde se transforma la información


• Flujo de Datos: Elementos que viajan a través de los
procesos
• Almacenamiento: Archivo de Datos
• Entidad: Tercero que Interactua en un sistema de
Información

Salario Promedio
Días Trabajados CALCULAR LAS CESANTÍAS
Licencias CESANTÍAS Y LOS
Anticipos INTERESES DE LAS
Horas Extras CESANTÍAS INTERESES
INGENIERÍA DE SOFTWARE

 EJEMPLO: SERVITECA
Una Serviteca desea sistematizar los servicios que presta a sus
clientes y para esto ha contratado unos asesores. Se deben
elaborar los DFD de novel 0 y nivel 1, teniendo en cuenta lo
siguiente:
• Se debe tener registro de los clientes, los autos y los servicios
prestados
• Un auxiliar se encarga de registrar los servicios prestados
• El cajero debe registrar los clientes y los autos
• El sistema debe generar reportes de los servicios prestados
• El Gerente desea conocer día a día cuantos servicios se prestaron,
clasificados por tipos de servicios
INGENIERÍA DE SOFTWARE

 CONVENCIONES

PROCESO

FLUJO DE DATOS

ALMACENAMIENTO

ENTIDAD
INGENIERÍA DE SOFTWARE

 DIAGRAMA DE NIVEL 0 ó DE CONTEXTO

Información de Clientes Reporte - Clientes


CAJERO GERENTE

0 Servicios - Prestados - Resumen

Información de Autos
SISTEMA DE Reporte - Serv.
CLIENTE
INFORMACIÓN
SERVITECA
Inf. De Servicios
AUXILIAR

Reporte - Clientes
Inf. De Serv. Prestados a Clientes CAJERO
INGENIERÍA DE SOFTWARE
Reg. Autos
DIAGRAMA DE NIVEL 1

Inf. Clientes Inf. Servicios


CAJERO AUXILIAR
AUTOS

ADMIN. Inf. Serv. Prest. Clientes


Inf. Autos
MANEJAR CLIENTES SERVICIOS
INF. DE
CLIENTES
Reg. Inf. Servicios

SERVICIOS
Inf. Clientes GENERAR PRESTADOS
REPORTES

Resumen - Servicios- Prestados Reporte - Clientes


SERVICIOS

GERENTE
INGENIERÍA DE SOFTWARE
DIAGRAMA DE NIVEL 2 MANEJAR INFORMACIÓN DE LOS CLIENTES

INFORMACIÓN CLIENTES REG. INGRESO CLIENTES

INFORMACIÓN AUTOS REG. INGRESO AUTOS


INGRESAR
CLIENTES

CLIENTES
CAJERO
REG. MODIF. CLIENTES

REGISTRO MODIFICADO AUTOS


MODIFICAR
DATOS AUTO A MODIFICAR INF.
CLIENTES
DATOS CLIENTE A MODIFICAR
AUTOS
REG. RETIRADO CLIENTES

CLIENTE A RETIRAR RETIRAR


INF. REGISTRO RETIRADO AUTOS
CLIENTES
INGENIERÍA DE SOFTWARE
DIAGRAMA DE NIVEL 2 : ADMINISTRAR SERVICIOS

CODIFICAR SERV. A MODIFICAR CODIFICAR SERV. A RETIRAR

AUXILIAR MARCAR
INGRESAR
SERVICIOS
SERVICIOS
INF. SERV. A INGRESAR RETIRADOS

SERV. RETIRADO
SERV. INGRESADO
SERVICIOS
PRESTADOS
SERVICIOS
INF. SERV.
SERVICIO INF. SERVICIOS PRESTADOS
MODIFICADO
CLIENTES

AUTOS
ADMINIST.
MODIFICAR SERVICIOS
SERVICIOS PRESTADOS

CLIENTES
AUXILIAR
INF. SERV.
PRESTADOS
CLIENTES
INGENIERÍA DE SOFTWARE
DIAGRAMA DE NIVEL 3: ADMINISTRAR SERV. PRESTADOS
SERVICIOS A MODIFICAR

AUXILIAR SERVICIOS

INF. SERV. MODIFICAR


INGRESAR
PREST. C. INFORMACIÓN REG. SERV. PRESTADOS INFORMACIÓN
SERVICIOS
SERVICIOS
PRESTADOS
PRESTADOS
SERVICIOS
PRESTADOS

AUTOS RETIRAR
INFORMACIÓN
SERVICIOS
PRESTADOS
CLIENTES

SERVICIO A RETIRAR CLIENTE


INGENIERÍA DE SOFTWARE

 DICCIONARIO DE DATOS:
Conjunto de definiciones formales de todos los datos que
aparecen en los flujos de información, almacenamiento y
entidades de los DFD´s.

• SÍMBOLOS:
{} Repetición
= Equivalente
+ And lógico
/ Or lógico
() Campo Opcional
[] Selección
__ Subraya campo clave
** Comentarios
INGENIERÍA DE SOFTWARE

 DICCIONARIO DE DATOS:

CLIENTE = {Código + Nombre + Dirección + Teléfono + (Fax) +


Fecha_Compra + (E-Mail)}
*Guarda la Información sobre Clientes*
INGENIERÍA DE SOFTWARE

1. ENTIDADES

- AUXILIAR: *Persona encargada de prestar el servicio al cliente y


registrar este hecho*

- CAJERO: *Registra información del cliente y de los autos del


cliente*
INGENIERÍA DE SOFTWARE

2. FLUJO DE INFORMACIÓN (FLUJO DE DATOS)

- INF. CLIENTES = {Código_Cliente + Nombre + Dirección +


Teléfono + Fecha_Cumpleaños}

- INF. AUTOS = {Placa + Código_Cliente + Marca + Modelo + Color


+ Último Km. Registrado}

- RESUMEN SERV. PRESTADOS = Encabezado_Reporte +


{Código_Servicio + Descripción_Servicios + Número_Servicios}

- REPORTE CLIENTES = Encabezado_Reporte_Clientes +


{Código_Cliente + Nombre_Cliente + Dirección + Teléfono +
Fecha de Cumpleaños]
INGENIERÍA DE SOFTWARE

3. ALMACENAMIENTO:

• Nombre Almacenamiento: CLIENTES


• Sinónimo:
• Breve Descripción:
Tabla que contiene los datos básicos de los clientes de la serviteca
• Composición:
{Código_Cliente + Cédula + Nombre + Dirección + Teléfono + Fecha de
Cumpleaños}
• Observaciones:
INGENIERÍA DE SOFTWARE

 PROTOTIPO:
DEFINICIÓN: Modelo a escala del sistema que va a ser
implantado. Intersección entre la etapa de Análisis (Modelo
Lógico) y la etapa de Diseño (Modelo Físico).

Ubicación en el Ciclo de Vida:

ANÁLISIS
DESARROLLO
PROT. INICIAL

PROTOTIPO APROBADO
EVOLUCIÓN
DEL PROT.

REFINAR
ETAPA DE PROTOTIPO
PROTOTIPO
DISEÑO
INGENIERÍA DE SOFTWARE
 PROTOTIPO:

OBJETIVOS:

 Verificar los requerimientos de la etapa de análisis

 Descubrir errores de la etapa de análisis

 Servir como primera fase de conocimiento y entrenamiento en la


aplicación

 Servir como insumo para la etapa de diseño


INGENIERÍA DE SOFTWARE
 PROTOTIPO:

FACTORES CRÍTICOS DE ÉXITO:

 Elección de las herramientas de desarrollo. Fácil de programar y


modificar

 Usuario con tiempo para interactuar con el analista y evaluar el


prototipo

 Analista con tiempo para interpretar los requerimientos del usuario y


construir rápidamente los prototipos

 Agilidad en el proceso de construcción de los prototipos, evaluarlos,


modificarlos y volverlos a evaluar cuando sea necesario.

 Paciencia del analista y el usuario para definir un buen prototipo


INGENIERÍA DE SOFTWARE
 PROTOTIPO: CLASIFICACIÓN

DESECHABLE:

 Se utiliza para definir requerimientos. Etapa de Análisis

 Se puede hacer en cualquier herramienta (Incluso diferente de aquella


en la cual se va a desarrollar)

 Una vez se aprecie el prototipo, el diseño de las pantallas y de la base


de datos, pasa a ser insumo de la etapa de diseño

 Debe ser construido rápidamente, por eso es esencial la elección de la


herramienta
INGENIERÍA DE SOFTWARE
 PROTOTIPO: CLASIFICACIÓN

EVOLUTIVO:

 Se utiliza para definir requerimientos de Análisis

 Debe hacerse en la misma herramienta en que se va a desarrollar el


prototipo final

 Sirve como insumo de las etapas de diseño y construcción

 En la etapa de construcción se completa el prototipo hasta llegar al


producto final (prototipo incremental)
INGENIERÍA DE SOFTWARE
 PROTOTIPO: ANÁLISIS DE LOS PROTOTIPOS

DE NAVEGACIÓN:

 Pretende enlazar todos los menús que conforman el sistema

 Se crean como insumos de los niveles superiores de los DFD´s

 Buscan que no hayan quedado procesos sin definir en el análisis o que


no hayan quedado procesos duplicados

 Agrupa los procesos en un orden lógico

 Define el lenguaje común entre el usuario, el analista y la aplicación


INGENIERÍA DE SOFTWARE
 PROTOTIPO: ANÁLISIS DE LOS PROTOTIPOS

OPERATIVO:

 Al prototipo de navegación se le agregan las pantallas en


ingreso y consulta de datos

 Las pantallas de modificación y retiro quedan a criterio del


analista

 Se toman como insumos los DFD´s de último nivel, los


diccionarios de datos y el modelo Entidad - Relación

 Se pretende validar el diccionario de datos de los


almacenamientos (campos que faltan y sobran) y el modelo
Entidad - Relación (Atributos que faltan y sobran y relaciones
entre entidades)
INGENIERÍA DE SOFTWARE
 PROTOTIPO: ANÁLISIS DE LOS PROTOTIPOS

LÓGICO:

 Se hace en los prototipos evolutivos

 Se agregan funciones de lógica (ingresando consultas y validaciones a


la base de datos)

 Se denomina incremental por ser punto de partida para la construcción


del producto final

 Es insumo de la etapa de diseño y construcción


INGENIERÍA DE SOFTWARE

 PROTOTIPO:
DEFINICIÓN:

Transformación de las especificaciones funcionales de un sistema, en un


modelo que defina como se va a lograr la construcción física.
Es el proceso de aplicar ciertas técnicas y herramientas con el propósito
de definir, con suficiente detalle, como se logrará la construcción del
sistema.

OBJETIVOS:
 Construir una estructura lógica que de solución al sistema planteado
 Definir con todo detalle el diseño de la estructura de datos
 Diseña los documentos fuentes, las pantallas de captura de datos, los
reportes.
 Garantizar que todas las necesidades o requerimientos plasmados en el
análisis sean considerados o incluidos en las etapas posteriores.
INGENIERÍA DE SOFTWARE

 PASOS DE LA ETAPA DE DISEÑO

1. Diseño global (Estructura del sistema)

2. Diseño de la base de datos

3. Diseño de entradas y salidas

4. Diseño detallado
INGENIERÍA DE SOFTWARE

1. DISEÑO GLOBAL
MENÚ
PRINCIPAL

INSCRIPCIÓN
AUTOS CLIENTES SERVICIOS
CLIENTES

MENÚ
INSCRIPCIÓN
CLIENTES
MENÚ
CLIENTES
CAPTURAR VALIDAR INGRESAR
DATOS INFORMACIÓN REGISTRO
CLIENTES

INSCRIPCIÓN MODIFICACIÓN RETIRO

CLIENTES CLIENTES
INGENIERÍA DE SOFTWARE

1. DISEÑO DE LA BASE DE DATOS

Nombre del Archivo / Tabla: CLIENTES

Breve Descripción:

Clave Primaria: Clave Foránea:


Nombre Índice: Campos del Índice:

Campo: Tipo / Longitud:


Observaciones:

Total Bytes
INGENIERÍA DE SOFTWARE

CLIENTES

POSICIÓN CÓDIGO NOMBRE DIRECCIÓN TELÉFONO


CLIENTE
1 607313 Carlos 3456478
Sánchez
2 567843 Alberto 4567564
Losada
3 234219 Juan E. 2786574
Díaz

ÍNDICE CLIENTES

CÓDIGO POSICIÓN
CLIENTE

607313 1
567843 2
234219 3
INGENIERÍA DE SOFTWARE

DEFINICIONES DEL ESPACIO FÍSICO

NRO. REGIS. LONGITUD % ESTIMADO


TABLAS (ESTIMADO) TOTAL CRECIMIENTO
REGISTROS

CLIENTES
AUTOS
SERVICIOS
INGENIERÍA DE SOFTWARE

MATRIZ CRUD (Create, Read, Update, Delete)

USUARIOS
TABLAS AUXILIAR SECRET. GERENTE

CLIENTES CRUD READ READ


AUTOS
CRUD READ READ
SERVICIOS
READ CRUD READ
INGENIERÍA DE SOFTWARE

MATRIZ CRUD (Create, Read, Update, Delete)

TABLA
ARCHIVO PERIODICIDAD MEDIO RESPONSABLE

CLIENTES D,M,V CINTA CINF.


AUTOS
L,M,M,J,V CINTA CINF.
SERVICIOS
M,J DISK. USUARIO
INGENIERÍA DE SOFTWARE

3. DISEÑO DE ENTRADAS Y SALIDAS

• Diseño de documentos de entrada


(formularios, comprobantes, recibos,
etc.)
• Diseño de Menús
• Diseño de pantallas
• Diseño de Reportes

Anda mungkin juga menyukai