Tm01 el modelado en el desarrollo de software

29
Técnicas de Modelamiento Sesión 1 El Modelado en el Desarrollo de Software Prof. César Luza Montero Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de San Marcos Copyright © 2009, Cesar Luza, Lima-Perú Copyright © 2009, Cesar Luza, Lima-Perú

Transcript of Tm01 el modelado en el desarrollo de software

Page 1: Tm01 el modelado en el desarrollo de software

Técnicas de Modelamiento Sesión 1

El Modelado en el Desarrollo de Software

Prof. César Luza MonteroFacultad de Ingeniería de Sistemas e Informática

Universidad Nacional Mayor de San Marcos

Copyright © 2009, Cesar Luza, Lima-PerúCopyright © 2009, Cesar Luza, Lima-Perú

Page 2: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 2

Contenido

El software y sus aplicaciones El proceso de desarrollo de software Métodos, técnicas y herramientas Los modelos y su importancia El modelado de un sistema software

Page 3: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 3

El software y sus aplicaciones

Definición de software

Líneas de Código

Líneas de Código

Software = Programas + Datos +

Documentación

Estructura de

datos

Estructura de

datos

Manual de usuario,

Documentación de construcción

Manual de usuario,

Documentación de construcción

Desarrollo + Mantenimiento

Page 4: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 4

El software y sus aplicaciones

Hoy en día, el software ha superado al HW, y se dice: “El SW marca la diferencia de un Negocio”

El principal desafío es mejorar la calidad y reducir los costos (construcción / adaptación, y mantenimiento ) de las soluciones con software.

Definición de softwareAquellos programas, procedimientos, reglas,

y documentación posible asociadas con la computación, así como los datos persistentes

a la operación de un sistema de computo.

Definición de softwareAquellos programas, procedimientos, reglas,

y documentación posible asociadas con la computación, así como los datos persistentes

a la operación de un sistema de computo.

Page 5: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 5

El software y sus aplicaciones

Producto de softwareConjunto de elementos de software (programas, tablas, reportes, documentación, etc.) que tienen un propósito específico y completo desde el punto de vista del usuario, de tal manera que la sustracción de cualquiera de los elementos del conjunto daría como resultado que el propósito no se cumpliera.

Producto de softwareConjunto de elementos de software (programas, tablas, reportes, documentación, etc.) que tienen un propósito específico y completo desde el punto de vista del usuario, de tal manera que la sustracción de cualquiera de los elementos del conjunto daría como resultado que el propósito no se cumpliera.

Page 6: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 6

El software y sus aplicaciones

Productos genéricos (sw de mostrador)

Desarrollados por una organización para ser vendidos al mercado.

Productos genéricos (sw de mostrador)

Desarrollados por una organización para ser vendidos al mercado.

La mayor parte del gasto del software es en productos genéricos, pero hay más esfuerzo en el desarrollo de los sistemas hechos a medida.

La mayor parte del gasto del software es en productos genéricos, pero hay más esfuerzo en el desarrollo de los sistemas hechos a medida.

Productos hechos a medidaDesarrollados bajo pedido a una

empresa desarrolladora de software.

Productos hechos a medidaDesarrollados bajo pedido a una

empresa desarrolladora de software.

Tipos de Productos Software

Page 7: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 7

El software y sus aplicaciones

Aplicaciones del Software

Software de Sistemas (de base) Software de Tiempo Real Software de Negocios o gestión Software de Ingeniería y

científico Software Empotrado

(Embebido) Software de PC´s Software de Inteligencia artificial Software de Aplicaciones Web.

Software de Sistemas (de base) Software de Tiempo Real Software de Negocios o gestión Software de Ingeniería y

científico Software Empotrado

(Embebido) Software de PC´s Software de Inteligencia artificial Software de Aplicaciones Web.

Page 8: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 8

El proceso de desarrollo de software

Desarrollo de softwareCrear e Implantar un sistema software, por ejemplo, software de tipo aplicación que automatice el trabajo

en una organización.

¿Que?¿Como? Hacerl

o

Servicio de Aplicación

Analista

Diseñador Programador

Usuario

Page 9: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 9

El proceso de desarrollo de software

El Proceso Marco de trabajo de tareas a realizar para desarrollar

SW de alta calidad.Ing. Sistemas

Planificación

Análisis de req.

Diseño

G. de Código

Prueba

Definición(QUE)

Desarrollo(COMO)

Soporte(CAMBIOS)

Mant. Correctivo

Mant. Adaptativo

Mant. Perfectivo

Mant. Preventivo o Reingeniería del Software

Visión Genérica

Page 10: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 10

Concepción

Elaboración

Construcción Transición

Iteraciones IT #1 IT # 2

IT # 3 IT # 4 IT # 5 IT # 6

IT # 7 IT # 8

Requerimientos

Análisis y Diseño

Implementación

Prueba

Implantación

Gestión Proyecto

Modelado del Negocio

Control de Cambios

Entorno

El proceso de desarrollo de software: RUP

Page 11: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 11

Métodos, técnicas y herramientas

¿Que hace un Ingeniero? Construir artefactos dentro de unas

limitaciones de coste, utilizando el conocimiento y las teorías de la ciencia sobre la cual se basa el artefacto.

Page 12: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 12

Métodos, técnicas y herramientas

Los métodos indican los pasos que debemos seguir para construir un artefacto, ejemplo software. Abarcan una gran gama de tareas que incluyen el análisis de los requisitos, el diseño, la construcción de programas, pruebas y mantenimiento.

Las técnicas indican como debemos construir el artefacto, es la forma de realizar las actividades del metodo. Ejemplo: técnicas de modelado y otras técnicas descriptivas.

Page 13: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 13

Métodos, técnicas y herramientas Históricamente se han utilizado técnicas

como: El modelado División del Producto División del Proceso

En principio se deberían utilizar estas técnicas, también en informática .

Page 14: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 14

Métodos, técnicas y herramientas El modelado

Simplificación del objeto en el mundo real, pero que es suficientemente realista como para dar una idea de lo que ocurrirá en la realidad y usarse como base del desarrollo.

Page 15: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 15

Métodos, técnicas y herramientas División del Producto.

Se fracciona el producto de modo que cada fragmento lo puede realizar un miembro del grupo de desarrollo.

Page 16: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 16

¿Que?

Métodos, técnicas y herramientas

División del Proceso Implica dividir el desarrollo del artefacto por

fases. Normalmente se habla de especificación, diseño y fabricación.

¿Como?

Realización Pruebas

Page 17: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 17

Métodos, técnicas y herramientas

Las herramientas proporcionan un enfoque automático o semi-automático para el proceso y para los métodos. Cuando se integran herramientas para que la información creada por una herramienta pueda ser usada por otra, se establece un sistema de soporte para el desarrollo del software llamado Ingeniería del Software asistida por computadora (CASE).

Page 18: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 18

Los modelos y su importancia

Puede hacerlo una sola personaRequiere:

Modelado mínimoProceso simpleHerramientas simples

Construcción de una casa para “fido”

Page 19: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 19

Los modelos y su importancia

Construida eficientemente y en un tiempo razonable por un equipoRequiere:

ModeladoProceso bien definidoHerramientas más sofisticadas

Construcción de una casa

Page 20: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 20

Los modelos y su importancia

Construcción de un rascacielos

Page 21: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 21

Los modelos y su importancia

“Modelar consiste en definir un mundo abstracto y teorico tal que las conclusiones que se puedan sacar de él coinciden con las manifestaciones aparentes del mundo real”.

Un modelo es la interpretación explicita de lo que uno entiende de una situación, o tan solo de las ideas de uno acerca de esa situación.

Problemas del Mundo Real

Modelo

ITEM_FACTURA

FACTURA

PRODUCTO

FACTURA

ITEM 1

PRODUCTO 1

ITEM 1

PRODUCTO 2

FACTURA

ITEM PRODUCTO

cod fecha id_t

cod desc stockcod cant prod

M odelo Entidad-R elación

Base D atos R elaciona l

Base D atos R ed

Base D atos Jerarqu ica

FACTURA

ITEM1 ITEM2

PROD1

PROD2

Abstracción

Page 22: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 22

Los modelos y su importancia

Utilidad de los modelos Comprender la realidad,

Un modelo es una simplificación de la realidad Comprender el sistema

Un modelo permite comprender mejor el sistema que estamos desarrollando: sus elementos y sus relaciones

Reducir la complejidad Un modelo permite reducir la complejidad de entender

sistemas complejos en su totalidad Comunicar con otros

Un modelo permite la comunicación entre los desarrolladores y los clientes.

Page 23: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 23

El modelado de un sistema software

Un Modelo es un esquema simplificado que describe un sistema o realidad desde un determinado punto de vista que facilita su estudio y compresión

Sistema Software(complejo)

Los modelos de un sistema software se expresan visualmente mediante el lenguaje de modelado

UML

?? ? Modelo

(simplificado)

Page 24: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 24

El modelado de un sistema software

Arquitectura/Ingeniería de Estructuras Vistas Edificio

Vista 3D Alzado/Planta Perfil Estructura del edificio Instalación Eléctrica Instalación Aire Acc.

...

Ingeniería Software Modelos UML del Sistema

Software Modelo de Casos de uso Modelo Estructural Modelo de Comportamiento Modelo de Implementación Modelo de Despliegue

Herramientas Modelado (ej)Autocad

Herramientas Modelado (ej)Rational Rose

GrpFile

read( )open( )create( )fillFile( )

rep

Repository

name : char * = 0

readDoc( )readFile( )

(from Persistence)

FileMgr

fetchDoc( )sortByName( )

DocumentList

add( )delete( )

Document

name : intdocid : intnumField : int

get( )open( )close( )read( )sortFileList( )create( )fillDocument( )

fList

1

FileList

add( )delete( )

1

File

read( )

read() fill the code..

Document

FileManager

GraphicFileFile

Repository DocumentList

FileList

usermainWndfileMgr :

FileMgrrepositorydocument :

DocumentgFile

1: Doc view request ( )

2: fetchDoc( )

3: create ( )

4: create ( )

5: readDoc ( )

6: fillDocument ( )

7: readFile ( )

8: fillFile ( )

9: sortByName ( )

ƯÁ¤¹®¼ ¿¡ ́ ëÇÑ º¸±â¸¦ »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.

È ÀÏ°ü̧ ®ÀÚ´Â Àоî¿Â ¹®¼ ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼

°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.

È ̧é °´Ã¼´Â ÀоîµéÀÎ °´Ã¼µé¿¡ ´ëÇØ ÀÌ̧ §º°·Î Á¤·ÄÀ» ½ÃÄÑ È ̧é¿¡ º¸¿©ÁØ´Ù.

Diagramas Diagramas

Page 25: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 25

El modelado de un sistema software Modelo Visual: son modelos que presentan

gráficamente alguna vista del sistema. Se crean mediante:

Lápiz y Papel Herramienta Software especifica

(por ej: Rational Rose)

CASE : Computer Aided Software Engineering

Page 26: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 26

El modelado de un sistema software

Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de interés

El código fuente del sistema es el modelo más detallado del sistema (y además es ejecutable). Sin embargo, se requieren otros modelos ...

Cada modelo es completo desde su punto de vista del sistema, sin embargo, existen relaciones de trazabilidad entre los diferentes modelos

Page 27: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 27

El modelado de un sistema software Modelos de alto nivel en etapas tempranas

Destinado a Stakeholders no técnicos Para exploración conceptual del problema

Modelos de niveles medios Especificación de Capacidades esenciales del sistema Históricamente: ERs, DFDs, , Recientemente: Escenarios, Patrones de Diseño, etc.

Modelos de nivel Detallados Modelos Formales

Page 28: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 28

El modelado de un sistema software

Nota: Paradigma Orientado a Objeto Desarrollo de un sistema software mediante la

construcción de unidades reusables siguiendo los principios de :

Abstracción Encapsulación Herencia Polimorfismo

Page 29: Tm01 el modelado en el desarrollo de software

El Modelado en el Desarrollo de Software 29

El modelado de un sistema software Nota: Paradigma Basado en Componentes

Desarrollo de un sistema software mediante en el ensamblado de unidades reusables siguiendo los principios de:

Componentes Interfaces Infraestructura