Importante! ...desarrollar software, es solo programar????

Introducción al Proceso de desarrollo de Software

Motivación Construcción de una casa para “fido”

Puede hacerlo una sola persona Requiere: Modelado mínimo Proceso simple Herramientas simples

Motivación Construcción de un Chalet

Construido eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas más sofisticadas

Motivación Construcción de un Rascacielos .

Ingeniería de Software ¿Qué ocurre actualmente en el mundo? ¿Es fácil construir software? .

Claves en el Desarrollo de SI los componentes necesarios para el éxito de un proyecto software??? .

Motivación Claves en el Desarrollo de SI Notación Herramientas Metodología .I.

Notación .

II. Notación “El modelado captura las partes esenciales del sistema” Orden Item envío Proceso de Negocios Sistema Computacional .

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

Herramienta .

Herramientas CASE • CASE es un acrónimo para Computer-Aided Software Engineering: C A Computer Aided Assisted Automated Software Systems Engineering S E .III.

Carma McClure. B. Herramientas CASE ¿Qué es una CASE? • En “Terminology for Software Engineering and Computer-aided Software Engineering”.III.235 se ofrece la siguiente definición: “Una combinación de herramientas de software y metodologías de desarrollo” . CASE es definido como: “Herramientas individuales para ayudar al desarrollador de software o administrador de proyecto durante una o más fases del desarrollo de software (o mantenimiento).” • En “The CASE Experience”. Software Engineering Notes. Abril 1990. BYTE Abril 1989 p.Terry & D.Logee.

Metodología .

Metodología Modelos de proceso de software • Un modelo de proceso de software es una representación simplificada de un proceso de software que conlleva una estrategia global para abordar el desarrollo de software • Modelos de proceso de software: – – – – – – Desarrollo en cascada Desarrollo en espiral Prototipado evolutivo Entrega por etapas Entrega evolutiva Desarrollo incremental .IV.

CICLO DE VIDA • Marco de referencia común para equipos de trabajo • Incorpora procesos . .actividades y tareas a desarrollar.

la explotación y el mantenimiento de un producto de software. el suministro. el desarrollo. la explotación y el mantenimiento del software” ( Norma IEEE 1074) • “Un marco de referencia que contiene los procesos .Ciclo de Vida para el desarrollo de Software según la IEEE e ISO/IEC • “Una aproximación lógica a la adquisición . abacando la vida del sistema desde la definición de requerimientos hasta la finalización de su uso” ( Norma ISO 12207) . las actividades y las tareas involucradas en el desarrollo.

Modelo en Cascada .ciclo de vida Planificación Análisis Diseño Implementación Pruebas Mantenimiento Fin del uso del SW .

.Proceso Iterativo e Incremental  el ciclo de vida iterativo se basa en la evolución de prototipos ejecutables..  en cada iteración se reproduce el ciclo de vida en cascada. a menor escala. No se habla del fin del uso del SW. . pero..

Proceso Iterativo e Incremental Enfoque Cascada Enfoque Iterativo e Incremental .

Las características de cada proyecto (equipo de desarrollo. Metodología ¿Qué es una Metodología? • En un proyecto de desarrollo de software la metodología define Quién debe hacer Qué. recursos. etc. Cuándo y Cómo debe hacerlo Requisitos nuevos o modificados Proceso de Desarrollo de Software Sistema nuevo o modificado • No existe una metodología de software universal.) exigen que el proceso sea configurable .IV.

IV. Metodología Modelos de Proceso y Metodologías • La Ingeniería de Software como disciplina • Las metodologías (tanto comerciales como en el ámbito académico y de investigación) pueden ser agrupadas en dos grandes corrientes: Metodologías Estructuradas y Metodologías Orientadas a Objetos .

IV. MÉTRICA 3 (España). luego a mediados de los 70’s aparecieron técnicas para el Diseño primero y luego para el Análisis. Yourdon & DeMarco e Information Engineering . Ward & Mellor. Metodología Metodologías Estructuradas • Los métodos estructurados comenzaron a desarrollar-se a fines de los 70’s con la Programación Estructurada. • Ejemplos de metodologías estructuradas gubernamentales: MERISE (Francia). SSADM (Reino Unido) • Ejemplos de métodos estructurados en el ámbito académico: Gane & Sarson.

Análisis Estructurado: dibujar los DFDs usando la notación de Yourdon/DeMarco .

variables locales y parámetros PROGRAMA Programa Principal datos Programa Principal Procedimiento1 Procedimiento2 Procedimiento1 Procedimiento2 Procedimiento3 Procedimiento3 .Programación Estructurada • • También llamada procedimental Variables globales.

Lo principal es identificar la funcionalidad que se desea programar y los datos necesarios para conseguirla .Programación Estructurada • Parte del diseño top-down: descomponer los requerimientos del programa paso a paso. hasta llegar aun nivel que permite expresarlos mediante procedimientos y funciones.

Programación estructurada • cuyo principio fundamental era dividir un programa en subprogramas más pequeños y fáciles de resolver. hasta llegar a niveles de complejidad elementales .

D Procedimiento 1 A T Procedimiento 2 O S Procedimiento 3 • Si la programación estructurada se interesa primero por los procedimientos y después por los datos. sin delimitar qué procedimientos actúan sobre que datos. .Programación estructurada • Se desarrolla a partir de procedimientos y datos.

la notación OO más popular en la actualidad • Algunos métodos OO con notaciones predecesoras de UML: OOAD (Booch). MÉTRICA 3 . A fines de los 80’s comenzaron a consolidarse algunos métodos Orientadas a Objeto • En 1995 aparece el Método Unificado. Metodología Metodologías OO • Su historia va unida a la evolución de los lenguajes de programación orientada a objeto. OPEN. Shaler & Mellor y OMT (Rumbaugh) • Algunas metodologías orientadas a objetos basadas en UML: Rational Unified Process (RUP). que posteriormente se reorienta para dar lugar al Unified Modeling Language (UML). a fines de los 70’s Smalltalk-80. los más representativos: a fines de los 60’s SIMULA. OOSE (Jacobson). la primera versión de C++ por Bjarne Stroustrup en 1981 y actualmente Java o C#.IV. Coad & Yourdon.

PARADIGMA ORIENTADO A OBJETOS • • • • • La metodología de Booch La metodología de Coad y Yourdon La metodología de Jacobson La metodología Rumbaugh La metodología de Wirfs-Brock .

Ejemplos Verifcar situación Vendedor Cliente Establecer crédito Supervisor Preparar catálogo Secretaria .

Ejemplo: : Socio : Encargado Coger libro : Libro : Ficha socio : Ficha libro : Préstamo Solicitar préstamo Verificar situación socio Situación socio ok Verificar situación libro Situación libro ok Introducir préstamo Autorizar préstamo .

.* Persona 1 atributos InformaciónDeContacto nombre : Nombre idEmpleado : Integer cargo : String obtenerFoto(p : Foto) obtenerVoz() obtenerInform aciónDeContacto() obtenerRegistrosPersonales() dirección : String interfaz RegistroPersonal idTasas historialEmpleados salario Iinformación Segura operaciones dependencia .* 1...* Ubicación nombre Oficina direccion : String teléfono : Number restricción rol * * * * * generalización asociación director {subconjunto} miem bro OficinaPrincipal 1.1 Departamento nombre : Nombre 1..clase multiplicidad Empresa agregación 1 1 0.

a la que engloba. Toma en cuenta la programación estructurada.Programación Orientada a Objetos • El término de Programación Orientada a Objetos indica más una forma de diseño y una metodología de desarrollo de software que un lenguaje de programación. dotando al programador de nuevos elementos para el análisis y desarrollo de Software. • . ya que en realidad se puede aplicar el Diseño Orientado a Objetos a cualquier tipo de lenguaje de programación.

Programación Orientada a Objetos • Encapsula en “objetos”   el Qué  Datos el Cómo  Métodos (funciones) • Los objetos interactúan enviándose mensajes PROGRAMA Objeto1 Datos1 Objeto3 Datos3 Objeto2 Datos2 Objeto4 Datos4 .

2.1) Punto (5.Vehículo Animal Figura (1.5) .3) (2.2) (2.

…… .Vehículo Características color peso forma etc. Abstraídos en Funcionalidades encendido del motor limpia parabrisas frenar etc..…..

: Proceso Químico. Transacción Bancaria) • Entidades de Software – (Ej.Qué es un objeto? • Informalmente. Casa. Producto) • Entidades Conceptuales – (Ej.: Lista Enlazada. un objeto representa una entidad del mundo real • Entidades Físicas • (Ej. Interfaz Gráfica) .: Vehículo.

abstracción o cosa con un significado y límites claros en el problema en cuestión” • Un objeto posee (Booch): – Estado – Comportamiento – Identidad .Qué es un objeto? • Definición Formal (Rumbaugh): – “Un objeto es un concepto.

además de las conexiones que puede tener con otros objetos .Un objeto posee Estado • Lo que el objeto sabe • El estado de un objeto es una de las posibles condiciones en que el objeto puede existir • El estado normalmente cambia en el transcurso del tiempo • El estado de un objeto es implementado por un conjunto de propiedades (atributos).

Un objeto posee comportamiento • Lo que el objeto puede hacer • El comportamiento de un objeto determina cómo éste actúa y reacciona frente a las peticiones de otros objetos • Es modelado por un conjunto de mensajes a los que el objeto puede responder (operaciones que puede realizar) • Se implementa mediante métodos .

incluso si su estado es idéntico al de otro objeto .Un objeto posee Identidad • Cada objeto tiene una identidad única.

Nombre Color Velocidad_Maxima Comportamiento = Camión = Plomo = 180 Km/h = Desplazarse 44 .Objeto  Es una abstracción del mundo real de algún hecho. Es un ente o cosa tangible del mundo real que tiene Atributos y Métodos.

Modelo .Color .Ejemplo Objeto Auto Características .Atributos y Métodos .Marca Funcionalidades + Ponerse en marcha + Pararse Atributos (Propiedades) Métodos (Procesos) 45 .

a: int) + mostrarFecha(): String 46 .Vehiculo .Color .Velocidad_Maxima + Desplazarse () Clase Fecha - dia: int mes: int año: int + llenarFecha (d: int. m: int.Nombre .

Velocidad_Maxima + Desplazarse () 47 .Clase   Es una plantilla o un prototipo para crear objetos.Color .Nombre . Objeto Clase Vehiculo Nombre Color Velocidad_Maxima Comportamiento = Camión = Plomo = 180 Km/h = Desplazarse . Un objeto no se podrá crear si es que no existe una clase. por eso se dice que los objetos son instancias de clases.

Objeto .