Subido por Luis Alexander Castrejon Cabrera

Clase 03

Anuncio
INGENIERÍA DE SOFTWARE
1
Historia
EVOLUCIÓN DEL DESARROLLO DE
SOFTWARE
 1960
 Lenguajes de alto nivel.
 Primeros métodos de concepción
de sistemas.
 1970
 Programación estructurada.
 Primeros conceptos de la ingeniería del software.
 Intento de estandarización en el entorno de bases
de
datos (database Task Group).
 1975
 Modelo Entidad-Relación.
 Gran importancia a los datos.
 Diseño estructurado.
2
EVOLUCIÓN DEL DESARROLLO DE
SOFTWARE

1980





1985




Primeras metodologías de análisis y diseño estructurado
(YOURDON, GANE&SARSON, WARNIER, JACKSON).
Primeras metodologías que parten de una visión general del sistema
de información global.
Lenguajes de cuarta generación (4GL).
CASE inicial).
CASE integradas.
Aproximación entre metodologías estructuradas y sistémicas
(INFORMATION ENGINEERING).
Lenguajes de programación orientados a objetos.
1990



Primer intento de estandarización de metodologías
(EUROMETHOD).
Diseño orientado a objetos.
Metodologías de desarrollo orientadas a objetos.
3
EVOLUCIÓN DEL DESARROLLO DE
SOFTWARE



1995
 Estructuras arquitectónicas distribuidas.
 Utilización de componentes.
 Primer intento de estandarización de los modelos
orientados a objetos UML.
2000
 Auge de aplicación de arquitecturas en tres capas
(DCOM, CORBA, etc).
 Nuevas técnicas de interacción con el usuario (Sist.
Ubicuos).
 Solicitud de nuevos desarrollos sobre WEB.
 Consolidación de UML.
 ¿Estandarización del método (Proceso Unificado de
Desarrollo).
Futuro,¿?
 Metodologías Ágiles (Xtreme Programming).
4
INGENIERÍA DE SOFTWARE
5
Modelado
CONSTRUCCIÓN DE UNA CASA PARA “FIDO”
Puede hacerlo una sola persona
Requiere:
Modelado mínimo
Proceso simple
Herramientas simples
6
“Software Architecture and UML” de Grady Booch (Rational Software).
CONSTRUCCIÓN DE UNA CASA
Construida eficientemente y en un tiempo
razonable por un equipo
Requiere:
Modelado
Proceso bien definido
Herramientas más sofisticadas
7
“Software Architecture and UML” de Grady Booch (Rational Software).
CONSTRUCCIÓN DE UN RASCACIELOS
8
“Software Architecture and UML” de Grady Booch (Rational Software).
QUÉ ES LA INGENIERÍA DEL SOFTWARE?




¿Qué es ingeniería?: Conjunto de conocimientos y
técnicas cuya aplicación permite la utilización racional de
los materiales y recursos naturales, mediante invenciones,
construcción u otras realizaciones provechosas para el
hombre.
La ingeniería del software es una ingeniería que cubre
todos los aspectos relativos a la producción de software.
IS: Disciplina o área de la Informática o Ciencias de la
Computación, que ofrece métodos y técnicas para
desarrollar y mantener software de calidad que resuelven
problemas de todo tipo.
Los ingenieros de software deben adoptar una
aproximación sistemática y organizada en su trabajo y
utilizar las herramientas y técnicas apropiadas
dependiendo del problema a resolver, las restricciones de
desarrollo y los recursos disponibles.
9
MODELADO EN INGENIERÍA

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 Lógico
Modelo de Comportamiento
Modelo de Implementación
Modelo de Despliegue





DocumentList
FileMgr
add( )
delete( )
fetchDoc(
) )
sortByName(
FileList
fList
add( )
delete( ) 1
Document
name : int
docid : int
numField : int
get( )
open( )
close( )
read( )
sortFileList(
)
create( )
fillDocument(
user
read() fill the
code..
ƯÁ¤¹®¼¿¡ ´ëÇÑ º¸±â¸¦
»ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.
mainWnd
fileMgrdocument
:
gFile
:repository
FileMgr
Document
Repository
1: Doc view request ( )
FileManager
3: create ( )
4: create ( )
Document
5: readDoc ( )
rep
File
Repository
(from Persistence) read( )
name : char * = 0
readDoc( )
readFile( )
ÈÀÏ°ü¸®ÀÚ´Â Àоî¿Â
¹®¼ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼
°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.
6: fillDocument ( )
7: readFile ( )
GrpFile
8: fillFile ( )
read( )
open( )
create( )
fillFile( )
È¸é °´Ã¼´Â ÀоîµéÀÎ
°´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î
Á¤·ÄÀ» ½ÃÄÑ È¸é¿¡
º¸¿©ÁØ´Ù.
9: sortByName ( )
GraphicFile
File
FileList
Diagramas
Diagramas

DocumentList
2: fetchDoc( )
)
Herramientas Modelado (ej)
Autocad

Herramientas Modelado (ej)
Rational Rose
10
UN SISTEMA DE SOFTWARE ES
SIMILARMENTE COMPLEJO!
Complejas interacciones
entre sistemas y
usuarios
Seguridad,
concurrencia
Transacciones,
persistencia
Millares de
objetos en
ejecución
Sub-sistemas,
componentes,
distribución
Miles de millones de
líneas de código
Escalable..
confiable.. 11
CLAVES EN DESARROLLO DE SI
Notación
Herramientas
Proceso
12
adaptada desde “Visual Modeling with Rational Rose and UML” de Terry Quatrani
MODELO

Es un esquema simplificado que describe un sistema o
realidad desde un determinado punto de vista que facilita
su estudio y compresión
?
?
?
Modelo
(simplificado)
Sistema Software
(complejo)
Los modelos de un sistema software se
expresan visualmente mediante el
13
lenguaje de modelado UML
¿QUÉ ES EL MODELAMIENTO VISUAL?
 Mapear
los
procesos reales
del mundo de un
Sistema
utilizando una
representación
gráfica
14
POR QUÉ
MODELAMOS?
Para capturar los procesos del negocio
 Para comunicarse con los usuarios (facilita la
comunicación)
 Define la arquitectura
 Para manejar la complejidad
 Para detectar errores y omisiones temprano en el
ciclo de vida
 Para entender los requerimientos
 Para guiar la implementación
 Para entender el impacto del cambio
 Para asegurarse de que los recursos sean
utilizados eficientemente

15
CAPTURA LOS PROCESOS DEL NEGOCIO
 Para
poder
determinar los
requerimientos de
un software, es
necesario conocer
los procesos de un
negocio, utilizando
los use case
podemos
representar estos
procesos
16
FACILITA LA COMUNICACIÓN
 Cuando
se
desarrolla un
software nos
encontramos frente
a los expertos del
negocio y los
desarrolladores, los
cuales usan dos
lenguajes distintos.
Se necesita un
lenguaje común
17
DEFINE LA ARQUITECTURA
 El
modelamiento
visual provee una
capacidad para
capturar la
arquitectura lógica
del software
independiente de los
lenguajes de
implementación,
luego esta
arquitectura lógica
es mapeada a una
arquitectura física.
18
ABSTRACCIÓN - MODELADO VISUAL
(MV)
“El modelado captura las
partes esenciales del sistema”
Orden
Item
envío
Proceso de Negocios
Sistema Computacional
19
NOTACIÓN (VISUAL) - BENEFICIOS
Manejar la complejidad
Interface de Usuario
(Visual Basic,
Java, ..)
Lógica del Negocio
(C++, Java, ..)
Múltiples Sistemas
Servidor de BDs
(C++ & SQL, ..)
“Modelar el sistema
independientemente
del lenguaje de
implementación”
Componentes
Reutilizados
20
Promover la Reutilización
Descargar