Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:

Slides:



Advertisements
Presentaciones similares
Ciclo de vida de desarrollo de software
Advertisements

PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
ANÁLISIS DE REQUERIMIENTOS
Ingeniería de Software
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Modelos de Proceso del Software
Ingeniería del Software
Ingeniería del Software
Erique Gaspar, Carlos Alfredo
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Tomado de:
Ingeniería de Software Orientada a Objetos
Introducción al Proceso de Desarrollo de Software Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad.
Ingeniería de Software
DISEÑO DE SOFTWARE 1ª. Parte
Fundamentos de programación
 Docentes ◦ Jonathan Erlich  ◦ Ariel Glikman   Organización de la materia ◦ Idesmaimonides.wikidot.com.
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
CICLO DE VIDA DEL SOFTWARE
Las etapas de un proyecto
Ingenieria de software
Gestión de Proyectos Informáticos Sesión N° 5 Ciclo de Vida de un Proyecto Roberto Jijena I.
Contexto Proyecto consolidado dentro de la línea de investigación de Sistemas de Información en el Dpto. de Ingeniería en Sistemas de Información de la.
CONCEPTOS BÁSICOS Diseño de Sistemas.
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Ingeniería de Software
Ingeniería del Software
Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
VII Congreso de Expotecnología UVM 2007 Jonás A. Montilva C.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Introducción al Proceso de Desarrollo de Software Patricio Letelier Centro de Formación de Postgrado – Depto. Sistemas Informáticos y Computación Universidad.
Ingeniería de Software
Ingeniería de Software
Motivación ELO329: Diseño y programación orientados a objetos Agustín J. González 1s07.
Importancia en la efectividad del:
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
ANÁLISIS Y DISEÑO DE SISTEMAS II
Diseño de Sistemas.
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: material asignatura CS169,Software Engineering,
Introducción a UML Departamento de Informática Universidad de Rancagua
Motivación ELO329: Diseño y programación orientados a objetos Agustín J. González 1s09.
Jairo Pinto Ing. sistemas
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Relación con otras asignaturas del plan de estudio
Actividades en el Proceso de desarrollo de Software
Simón Esneider Herrera Álvarez Media Técnica Casd 10-2
Estructurar tus ideas para hacerlas realidad
Ciclo de Vida del Software
Motivación ELO329: Diseño y programación orientados a objetos Agustín J. González 1s08.
Proceso de desarrollo de Software
¿Qué es la Ingeniería De Software? Ingeniería de Software.
Capas de ingeniería del Software. Rosendo Antonio Manuel Ingeniería en Sistemas Computacionales.
República Bolivariana de Venezuela Universidad Nacional Experimental Politécnica de la Fuerza Armada (UNEFA) Carrera: Ingeniería de Sistemas Cátedra: Análisis.
UTFSM - Departamento de Electrónica1 Noviembre de 2003 “Beneficios del Uso de Metodologías en el Desarrollo de Proyectos”
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
NZ/EA/abril Introducción Julio NZ/EA/abril ¿ Que es la IS ? Disciplina que trata los aspectos concernientes al desarrollo de sistemas.
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Maestría en Gerencia en Tecnología de la Información Cátedra Ingeniería de Software Profesora: Mary Carmen Milano. Integrantes: Rosa Arellano Osbaldo Goitia.
ELO-329: Diseño y Programación Orientados a Objetos1 Proceso de Desarrollo de SW Agustín J. González ElO329: Diseño y Programación Orientados a Objeto.
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
Modelado Orientado a Objetos Programación Orientada a Objetos Departamento de Sistemas Universidad del Cauca 2006.
Experiencia de México Taller sobre TIC y Compras Públicas.
VERIFICACIÓN Y VALIDACIÓN DE SISTEMAS 3.10 Fase de manejo de requerimientos 4.1 Modelado de pruebas en UML Ponente: ing. Alejandro tapia vazquez.
Entregables del Proyecto
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Ingeniería de Software
Ingeniería de Software
Proceso de Desarrollo de SW
Ingeniería de Software
Proceso de Desarrollo de SW
Transcripción de la presentación:

Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: entre otras fuentes.

ELO-329: Diseño y Programación Orientados a Objetos2 Definiciones (1993) La aplicación de 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. Wikipedia: “Software engineering is a profession and field of study dedicated to designing, implementing, and modifying software so that it is of higher quality, more affordable, maintainable, and faster to build.” Se busca: Resolver el problema en costo y tiempo controlados.

ELO-329: Diseño y Programación Orientados a Objetos3 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.

ELO-329: Diseño y Programación Orientados a Objetos4 Construcción de una casa para “fido” Puede hacerlo una sola persona Requiere: Modelado mínimo Proceso simple Herramientas simples

ELO-329: Diseño y Programación Orientados a Objetos5 Construcción de una casa Construida eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas más sofisticadas

ELO-329: Diseño y Programación Orientados a Objetos6 Construcción de un rascacielos

ELO-329: Diseño y Programación Orientados a Objetos7 Claves en Desarrollo de IS Herramientas (Ej: Rational Rose, Umbrello, IDEs)‏ Proceso (Metodologías Ej: ITIL, Extreme Programming, RUP: Rational Unified Process, Personal Software Process)‏ Notación (UML)‏ Calidad: Ej: CMM Capability Maturity Model

ELO-329: Diseño y Programación Orientados a Objetos8 Abstracción - Modelado Visual (MV) Sistema Computacional Proceso de Negocios Orden Item envío “El modelado captura las partes esenciales del sistema ”

ELO-329: Diseño y Programación Orientados a Objetos9 Notación (Visual) - Beneficios Interfaz de Usuario (Visual Basic, Java,..)‏ Lógica del Negocio (C++, Java,..)‏ Servidor de BDs (C++ & SQL,..)‏ Sistemas Múltiples Componentes Reutilizados Manejar la complejidad “Modelar el sistema independientemente del lenguaje de implementación” Promover la Reutilización

ELO-329: Diseño y Programación Orientados a Objetos10 ¿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” al “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 Su diseño facilita: – la creación de Abstracciones (Ignorar detalles) – la Modularización (separación en módulos) – Ocultar información (separar la implementación del uso) Podríamos dar muchas razones pero hay problemas.

ELO-329: Diseño y Programación Orientados a Objetos11 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”

ELO-329: Diseño y Programación Orientados a Objetos12 … 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.

ELO-329: Diseño y Programación Orientados a Objetos13 Proceso de Desarrollo de SW

ELO-329: Diseño y Programación Orientados a Objetos14 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: Al desarrollo normalmente se le da más énfasis en la literatura. SueñoLanzamientoInvestigaciónDesarrolloSoporte Tiempo

ELO-329: Diseño y Programación Orientados a Objetos15 ¿Qué es un Proceso de Desarrollo de SW? Define Quién debe hacer Qué, Cuándo y Cómo debe hacerlo No existe un proceso de software universal. Las características de cada proyecto (equipo de desarrollo, recursos, etc.) exigen que el proceso sea configurable. SueñoLanzamientoInvestigaciónDesarrolloSoporte Tiempo Requisitos nuevos o modificados Sistema nuevo o modificado Proceso de Desarrollo de Software

ELO-329: Diseño y Programación Orientados a Objetos16 Á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 iterativo)‏ – Tiempos y costos – Aspectos tecnológicos – Gestión de Proyectos

ELO-329: Diseño y Programación Orientados a Objetos17 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 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

ELO-329: Diseño y Programación Orientados a Objetos18 Etapas de un Proyecto de Software (cont) 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)‏ 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

ELO-329: Diseño y Programación Orientados a Objetos19 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” 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

ELO-329: Diseño y Programación Orientados a Objetos20 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 !!

ELO-329: Diseño y Programación Orientados a Objetos21 Procesos, Metodologías

ELO-329: Diseño y Programación Orientados a Objetos22 ¿Qué es una Metodología... Las metodologías son el conjunto de procedimientos que imponen un proceso disciplinado sobre el desarrollo de software con el fin de hacerlo más predecible y eficiente.

ELO-329: Diseño y Programación Orientados a Objetos23 Algunas Metodologías... Personal Software Process y Team software Process XP (Programación Extrema)‏ RUP (Rational Unified Process)‏ Hay muchas otras. En este curso veremos algunas ideas de RUP