Ingeniería de Software



Documentos relacionados
Ingeniería de Software: Parte 2

Proceso de Desarrollo de SW

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML

El Proceso Unificado de Desarrollo de Software

Elementos requeridos para crearlos (ejemplo: el compilador)

CICLO DE VIDA DEL SOFTWARE

METODOLOGÍA TRADICIONAL.

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Metodología Orientada a Objetos Clave Maestría en Sistemas Computacionales

ANÁLISIS Y DISEÑO DE SISTEMAS DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN

METODOLOGÍA TRADICIONAL.

Interacción Persona - Ordenador

Ingeniería de Software

Capitulo III. Diseño del Sistema.

Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática

INGENIERÍA DEL SOFTWARE

ITZOFT, una metodología de desarrollo de sistemas basada en el Proceso Unificado de Rational. Resumen

El Software. Es lo que se conoce como el ciclo de vida del software.

Syllabus.

Resumen obtenido de: Roger S. Pressman, Ingeniería de Software. Un enfoque práctico, quinta edición, Introducción al Diseño de Software

CICLO DE VIDA DEL SOFTWARE. Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación y el mantenimiento del software


Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Desarrollo de software

Anexo 4 Documento de Arquitectura

6 Anexos: 6.1 Definición de Rup:

Contenidos. Parte I - Introducción Capítulo 1 - Evolución. Capítulo 2 Condiciones de trabajo en el Desarrollo de Software

Patrones de software y refactorización de código

Software de Simulación aplicado a entornos de e-learning

INTEGRACION DE BASES DE DATOS EN LA WEB

GUÍAS. Módulo de Diseño de software SABER PRO

Ingeniería de Software

3. Horario laboral referencial: Lunes Viernes 8:00 a.m. a 6:00 p.m.

IWG-101: Introducción a la Ingeniería. Departamento de Informática, UTFSM 1

Seguimiento y evaluación

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática

RBAC4WFSYS: Modelo de Acceso para Sistemas Workflow basado en RBAC

Ingeniería Web. Pablo Sevilla Jarquín

FÁBRICA DE SOFTWARE. Presentado por: Ing. Juan José Montero Román Gerente de Fábrica de Software USMP

Capítulo 5. Cliente-Servidor.

Gestión de Configuración del Software

CAPÍTULO 3 Servidor de Modelo de Usuario

<Generador de exámenes> Visión preliminar

CMMI (Capability Maturity Model Integrated)


Information Technology Infrastructure Library

Durante la determinación del problema dentro de los procesos de mercadeo de R & S Training se pudo notar notables deficiencias en las relaciones con

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Academia de Ingeniería en Sistemas Computacionales

INNOVACIÓN PARA UN MUNDO CAMBIANTE DÓNDE NACE ESTE PROGRAMA? QUIÉN HIZO ESTE PROGRAMA?

TECNÓLOGO EN INFORMÁTICA PLAN DE ESTUDIOS

Estándares Web: XHTML y CSS - Usabilidad - Accesibilidad. Desarrollo de Sitios Web de Calidad, Usables, Seguros, Válidos y Accesibles

Los procesos de software. Un proceso de software se define como un:

Arquitectura de Aplicaciones

ISO 9000 Escuela de Ingeniería de Sistemas y Computación Desarrol o de Software II Agosto Diciembre 2007

Ciclo de vida y Requerimientos de software. Laboratorio de Programación

INFORME TÉCNICO PREVIO DE EVALUACIÓN DE SOFTWARE SOFTWARE MICROSOFT VISUAL STUDIO PREMIUM

Programación orientada a

Curso: El Proceso de Desarrollo de Software

2 EL DOCUMENTO DE ESPECIFICACIONES

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar

UNIVERSIDAD UNION BOLIVARIANA CARRERA DE INGENIERIA DE SISTEMAS

Conceptos Básicos. El Instituto de administración de Proyectos, PMI, define un proyecto como:

UNIVERSIDAD DE ORIENTE FACULTAD DE CIENCIAS ECONOMICAS

Capitulo I. Introducción

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Primer avance de proyecto de software para la gestión de inscripciones en cursos

Arquitectura de Software, mucho más que un diagrama tradicional. Dr. Cuauhtémoc Lemus Olalde. Centro de Investigación en Matemáticas (CIMAT)

En un proyecto de desarrollo de software la metodología define Quién debe hacer Qué, Cuando y Como hacerlo. 6

Analizar, desarrollar y programar modelos matemáticos, estadísticos y de simulación.

Instituto Educación Superior Tecnológico Privado El Buen Pastor

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Los profesores Flipantes

Procesos Críticos en el Desarrollo de Software

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

CURSO COORDINADOR INNOVADOR

Fundamentos de Ingeniería del Software. Capítulo 8. Introducción a los métodos de desarrollo de software

Maestría en Dirección Estratégica en Ingeniería de Software

TEMA: DESARROLLO DE APLICACIONES WEB INTERACTIVAS UTILIZANDO LA TÉCNICA AJAX AUTOR: MERY SUSANA ZAMBONINO BAUTISTA

Enginyeria del Software III

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

RESUMEN. IV P á g i n a

Resumen General del Manual de Organización y Funciones

DESARROLLO DE SOFTWARE DEFINICIÓN GENERAL DEL PROCESO GABY LORENA GUERRERO LEYDI ROCIO ERAZO PABLO FELIPE MIRANDA WALTER ALEXIS ANTE

Información General del Servicio de Hosting

Propuesta Matriz de Actividades para un Ciclo de Vida de Explotación de Datos

SISTEMAS DE INFORMACIÓN II TEORÍA

DISEÑO DE COMPONENTES DE SOFTWARE *

Método WATCH UNEFA NUCLEO ZULIA SIM 6B 2010

Programa de Estudio: Ingeniería en Sistemas Computacionales.

Transcripción:

Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: http://www.dsic.upv.es/~uml http://inst.eecs.berkeley.edu/~cs169/ entre otras fuentes.

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.

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.

Construcción de una casa para fido Puede hacerlo una sola persona Requiere: Modelado mínimo Proceso simple Herramientas simples

Construcción de una casa Construida eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas más sofisticadas

Construcción de un rascacielos

Claves en Desarrollo de IS Notación (UML) Calidad: Ej: CMM Capability Maturity Model Herramientas (Ej: Rational Rose) Proceso (Metodologías Ej: ITIL, Extreme Programming, RUP: Rational Unified Process, Personal Software Process)

Abstracción - Modelado Visual (MV) El modelado captura las partes esenciales del sistema Orden Item envío Proceso de Negocios Sistema Computacional

Notación (Visual) - Beneficios Manejar la complejidad Interfaz de Usuario (Visual Basic, Java,..) Lógica del Negocio (C++, Java,..) Sistemas Múltiples Modelar el sistema independientemente del lenguaje de implementación Servidor de BDs (C++ & SQL,..) Componentes Reutilizados Promover la Reutilización

Por qué la Orientación a Objetos? Por su proximidad de los conceptos de modelado respecto de las entidades del mundo real Mejora la captura y validación de requisitos Acerca el espacio del problema y el espacio de la solución Modelado integrado de propiedades estáticas y dinámicas del ámbito del problema Facilita construcción, mantenimiento y reutilización Podríamos dar muchas razones pero hay problemas.

Problemas en OO... Los conceptos básicos de la OO se conocen desde hace dos décadas, pero su aceptación todavía no está tan extendida como los beneficios que esta tecnología puede sugerir

Problemas en OO Un objeto contiene datos y operaciones que manipulan los datos, pero... Podemos distinguir dos tipos de objetos degenerados: Un objeto sin datos (que sería lo mismo que una biblioteca de funciones). Si los métodos son estáticos, peor aún. Un objeto sin operaciones, con sólo atributos lo que permitiría crear, recuperar, actualizar y borrar su estado (que se correspondería con las estructuras de datos tradicionales) Un sistema construido con objetos degenerados no es un sistema verdaderamente orientado a objetos

Proceso de Desarrollo de SW

El proceso de desarrollo Completo Se da en un contexto y dependiendo el texto o investigador destaca más o menos etapas. El más completo que he visto incluye: Sueño Investigación Desarrollo Lanzamiento Soporte Tiempo Al desarrollo normalmente se le da más énfasis en la literatura.

Requisitos nuevos o modificados Qué es un Proceso de Desarrollo de SW? Sueño Investigación Desarrollo Lanzamiento Soporte Tiempo Define Quién debe hacer Qué, Cuándo y Cómo debe hacerlo Proceso de Desarrollo de Software Sistema nuevo o modificado No existe un proceso de software universal. Las características de cada proyecto (equipo de desarrollo, recursos, etc.) exigen que el proceso sea configurable.

Áreas cubiertas por la Ing. de Solftware La ingeniería de Software estudia todos los aspectos involucrados en el desarrollo de software, entre los cuales se encuentran: Etapas de un Proyecto de Software Paradigmas/enfoques para enfrentar el desarrollo de proyectos de software (Cascada, incremental e interactivo) Tiempos y costos Aspectos tecnológicos Gestión de Proyectos

Etapas de un Proyecto de Software Etapas/Hitos esenciales requeridos en un proyecto de desarrollo de software: Oportunidad de Negocio Levantamiento inicial de Requerimientos (Domino del problema) Entendimiento inicial del problema a resolver Reuniones con clientes Especificación inicial de requerimientos Más...

Etapas de un Proyecto de Software Confección de la propuesta Estimación de esfuerzo y planificación del proyecto. Uso de técnicas y estadísticas de proyectos similares, entrevistas a personas con experiencia en proyectos similares. Definición del alcance del proyecto Costos Análisis OO (Dominio del problema) Casos de Uso : Análisis dinámico Modelos Conceptuales: Análisis estático Diseño preliminar de Interfaces Gráficas (WEB, etc)

Etapas de un proyecto de Software (cont) Arquitectura de la solución Especificación de la tecnología a utilizar (J2SE, J2EE) Especificación de Patrones de Diseño Diseño (Dominio de la solución) Diseño de interfaces gráficas (WEB, GUI, comandos, voz) Realización de diagramas de secuencia Realización de diagramas de clases

Etapas de un proyecto de Software (cont) Construcción / Codificación / Implementación Entendimiento real del diseño (solución) a programar Programación eficaz (y eficiente) del código fuente. Comentar en forma entendible y razonable el código fuente. Construcción de programas de pruebas Tests Prueba unitaria del desarrollador mediante un programa de Test

Etapas de un proyecto de Software (cont) Pruebas Unitarias: Realizar las pruebas unitarias Pruebas de Integración: Realizar las pruebas de integración Capacitar a Usuarios Confección de manuales de Usuario Reuniones con usuario final Puesta en Producción Confección de plan de puesta en producción Marcha Blanca Garantía: Resolución de Incidencias

Planificar y Evaluar Proyectos... Podré cumplir con los plazos? Estaré dentro de lo presupuestado? El cliente quedará satisfecho? Las Metodologías pueden ser la ayuda que necesitamos, si podemos usarlas correctamente!!

Procesos, Metodologías

Qué es una Metodología... Las metodologías imponen un proceso disciplinado sobre el desarrollo de software con el fin de hacerlo más predecible y eficiente.

Algunas Metodologías... Personal Software Process y Team software Process XP (Programación Extrema) RUP (Rational Unified Process) La familia Cristal de Cockburn Código Abierto ASD (Desarrollo de Software Adaptable) SCRUM FFD (Desarrollo Manejado por Rasgos) DSDM (Método de desarrollo de sistema dinámico) Yo no conozco todas, pero vale la pena conocer al menos una. Aquellas en rojo son populares.