cambios en ingeniería de software · pdf file•mantenimiento de aplicaciones batch...

47
Cambios en Ingeniería de Software Material tomado del artículo de Casallas Rubby, Villalobos, Jorge. “El actual ingeniero de Software”. Revista ACIS. Edición Nº 93 Julio - Septiembre de 2005. Preparado por Gilberto Pedraza García

Upload: doque

Post on 31-Jan-2018

227 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Cambios en Ingeniería de Software

Material tomado del artículo de Casallas Rubby, Villalobos, Jorge.

“El actual ingeniero de Software”. Revista ACIS.

Edición Nº 93 Julio - Septiembre de 2005. Preparado por Gilberto Pedraza García

Page 2: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Agenda

• Los cuatro ejes de la ingeniería de software

• Tecnologías

• Procesos

• Arquitecturas

• Metodologías

Page 3: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Los cuatro ejes de la ingeniería de software actual

Page 4: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Desarrollo de software hoy en día

Page 5: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Ejes de la Ing. de Software

procesos Arquitectura

Tecnología Metodología

Herramientas

Jorge Villalobos. Rubby Casallas Uniandes

Page 6: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

TECNOLOGIAS

Page 7: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Tecnologías (1)

• Conjunto de lenguajes, modelos, protocolos que permiten materializar un producto de software

• Ingeniería de la construcción

Page 8: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Perspectiva tecnológica

Page 9: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

ERA BATCH (1)

• 60’s a 70’s

• Recolección manual de datos

• Necesidad de aumentar la productividad

• Explotar el poder de cálculo reduciendo el tiempo de procesamiento

• Pocas personas relacionadas con los negocios

• Automatización de procesos manuales de negocio

– Contabilidad

– Inventarios

– Nómina

– Compras

Page 10: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

ERA BATCH (2)

• Aplicaciones asociadas con simples departamentos

• Múltiples islas de datos

• Datos duplicados en diversas aplicaciones

• Mantenimiento se hace difícil en la medida que el

negocio crece.

– Más ordenamientos y actualizaciones

Page 11: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Era Terminal – Host (1)

• Años 70´s

– Terminales

– Bases de datos

– Terminales

– Discos de almacenamiento

Page 12: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Era Terminal – Host (2)

• Integración de datos – Evitar duplicación de datos – Problemas de dependencia

• Independencia de datos – Problemas de fragilidad de aplicaciones

• Tecnologías de procesamiento de transacciones y comunicaciones

• Visión de acceso en línea a datos corporativos – Nuevos programas pueden ser usados vía terminal en línea

Page 13: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Era Terminal – Host (3)

• Acceso en línea a la información

– Aplicaciones batch se vuelven a escribir

– Grandes presupuestos de datos

– Los departamentos de IT se vuelven una ventaja competitiva

– Nuevas habilidades en desarrolladores

Page 14: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Era Terminal – Host (4)

• Integración elemental de bases de datos

• La organización no es el centro de atención para modelar los datos – Aplicaciones con diferentes modelos de datos y

arquitecturas

• Mantenimiento de aplicaciones batch es costosa

• No hay facilidades de integración

• Crecientes expectativas de los usuarios

Page 15: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Era de los computadores personales (1)

• Cambio de visión acerca de los negocios

• Nueva perspectiva de las tecnologías de información

• Aplicaciones o paquetes de software de oficina

• Interacción: nueva expectativa del usuario

• Nueva distribución de las tecnologías de información en las organizaciones

Page 16: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Era de los computadores personales (2)

• Integración de información

• Conectividad

• Conectividad

• Crecimiento de la demanda de software

Page 17: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Computación distribuida

• Cambio de paradigma en uso del computador: de la máquina de computo a la máquina para comunicar

• Tecnologías cliente servidor

• Paquetes de software

• Outsourcing

• Integración de aplicaciones

Page 18: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Computación distribuida

Page 19: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Computación distribuida

Page 20: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Requerimientos

• Distribución

• Interoperabilidad

• Transaccionalidad

• Tolerancia a fallas

• Integración de procesos de negocio

Page 21: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Tecnologías web

Page 22: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Antes de Internet

Page 23: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Tecnologías Web

Page 24: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Tecnologías Web

Page 25: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Requerimientos

• Escalabilidad

• Disponibilidad

• Seguridad

• Alto desempeño

• Grande volúmenes de datos y transacciones

• Crecimiento y complejidad de aplicaciones

• Integración de procesos de negocio

Page 26: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Tecnología (2)

• Java • J2EE • JDBC • JNDI • Servlets • JSP • JMS • EJB

Bases de datos

PHP

BPEL

Ajax

Portlets

Pushlets

UML

XML

HTTP

SOAP

Perl

XMI

Page 27: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Tecnología (3)

• RMI

• CORBA

• Web Services

• Aspect J

C++

C#

.NET

ASP

Fortran

COBOL

BASIC

Page 28: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

PROCESOS

Page 29: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Procesos

• Conjunto de actividades tanto técnicas como administrativas, que son necesarias para la creación de un sistema de software – Manejo de requerimientos – Administración de configuración – Planeación y seguimiento de proyectos

• Subcontratación • Métricas • Verificación y validación

– Administración de riesgos – Testing – Integración de áreas de negocio

Jorge Villalobos. Uniandes

Page 30: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Evolución desde perspectiva de los procesos

Page 31: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Modelos de calidad

• Están las funciones requeridas disponibles en el software?

– Funcionalidad

• Qué tan confiable es el software?

– Confiabilidad

• Es el software fácil de usar?

– Usabilidad

• Qué tan eficiente es el software?

– Eficiencia

• Qué tan fácil es modificar el software?

– Mantenibilidad

• Qué tan fácil es llevar el software a otro ambiente?

– Portabilidad

Page 32: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Los procesos de software

• Manejo de requerimientos

• Manejo de configuraciones

• Planeación y seguimiento de proyectos

• Gestión de métricas

• Verificación y validación

• Administración de riesgos

• Pruebas

• Integración con áreas de negocio

Page 33: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Arquitectura

Page 34: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Cómo llegamos a la arquitectura?

Page 35: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Perspectiva de la arquitectura

• Definir la estructura o la forma

• Actividades de transformación de elementos

• Toda aplicación tiene su arquitectura

• No es solo tecnología

• Técnicas de composición

• Características propias de los elementos que estructuran la solución

Page 36: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Nuevas propiedades

• Localización

• Aislamiento

• Flexibilidad

• Reutilización

• Evolución

• Enseñabilidad

Page 37: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Elementos estructuradores

• Funciones

• Objetos

• Componentes

• Contenedores

• Servicios

• Aspectos

• Modelos

Page 38: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Arquitecturas (1)

• Conjunto de elementos que van a definir las características estructurales del producto de software que se quiere construir

• Ingeniería estructural

Page 39: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Arquitecturas (2)

• Componentes

• Contenedores

• Servicios

• Aspectos

• Modelos

• Arquitecturas basadas en servicios

• Bases de eventos

• Bases de servicios

• Orquestación

• Arquitecturas multicapa

• Adaptadores

• Plugins

ADLs

Middleware de mensajería

Middleware de objetos

Page 40: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Arquitecturas (3)

• Objetos

• Funciones

• Módulos

• Composición

• Coordinación

• Herencia

• Sincronización

Page 41: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

METODOLOGIAS

Page 42: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Metodología (1)

• Conjunto de técnicas, guías, métricas, estrategias, consejos, buenas práctica, que facilitan la realización de las distintas tareas definidas en el proceso

• El proceso establece la estructura básica de las tareas

Page 43: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Metodologías

• Guían de manera flexible y adaptable cada proyecto

– Patrones de diseño

• Experiencia y habilidad del ingeniero

• No son algoritmos

• No garantizan resultados

• Cada ingeniero puede usar técnicas que considere adecuadas

• Las técnicas dependen del problema

Page 44: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Evolución histórica

• Desarrollo estructurado

• Desarrollo orientado por objetos

• Desarrollo orientado por componentes

• Desarrollo orientado por aspectos

• Desarrollo orientado por servicios

Page 45: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Metodología (2)

• Análisis estructurado

• Diseño estructurado

• Diseño de interfaces

• Diseño de sitios WEB

Análisis orientado por objetos

Diseño orientado por objetos

Técnicas para entrevistar clientes

Técnicas para validar requerimientos

Patrones de diseño

Patrones de asignación de responsabilidades

Estilos de arquitecturas

Diseño de algoritmos

Diseño de bases de datos

Complejidad de algoritmos

Page 46: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Dependencias

• Un buen diseñador debe conocer acerca de las tecnologías

• El diseñador debe involucrar la Arquitectura

• Las metodologías apoyan el proceso

• El líder del proyecto domina los ejes

• El arquitecto conoce las tecnologías

• No es suficiente conocer de tecnologías para ser un buen arquitecto.

Page 47: Cambios en Ingeniería de Software · PDF file•Mantenimiento de aplicaciones batch es costosa ... –Planeación y seguimiento de proyectos •Subcontratación •Métricas •Verificación

Referencias

• Casallas Rubby, Villalobos, Jorge. “El actual ingeniero de Software”. Revista ACIS. Edición Nº 93 Julio - Septiembre de 2005