Sie sind auf Seite 1von 35

IG22.

INGENIERÍA DEL SOFTWARE


3º CURSO DE INGENIERÍA TÉCNICA
EN INFORMÁTICA DE GESTIÓN (PLAN 2001)
Curso 2007-2008

Tema 1.
El desarrollo de software
en una organización.
El contexto del proyecto

Òscar Coltell
Departament de Llenguatges i Sistèmes Informàtics

Versió
Versión 1, 03-
03-10-
10-2007

© Ing. del Sw. O. Coltell, 2007 Tema-01 1/69

Temario teórico asignatura


T01: El desarrollo de software en una organización. El contexto del
proyecto (2 h)
T02: Introducció
Introducción al proceso unificado (4 h)
T03: El proceso unificado. Estudio del problema y modelado de los procesos
procesos
de negocio (2 h)
T04: El Proceso Unificado. Captura y modelado
de requisitos (6 h)
T05: El Proceso Unificado. Modelado de aná
análisis (2 h)
T06: El Proceso Unificado. Modelado de diseñ
diseño (4 h)
T07: El Proceso Unificado. Modelado de implementació
implementación (2 h)
T08: El Proceso Unificado. Modelado de pruebas (2 h)
T09: Modelado orientado a objetos con UML (4 h)

© Ing. del Sw. O. Coltell, 2007 Tema-01 2/69

1
Contenido del Tema 1

1.1 Objetivos.
1.2 Introducción.
1.3 La Ingeniería del Software como disciplina.
1.4 El Proceso de la Ingeniería del Software.
1.5 La Ingeniería del Software Orientado a Objetos.

© Ing. del Sw. O. Coltell, 2007 Tema-01 3/69

1.1 OBJETIVOS

• Introducir el concepto de Ingeniería en general, así como otros


conceptos relacionados, que son imprescindibles para entender que el
software se desarrolla bajo un enfoque de ingeniería determinado.
• Ofrecer un enfoque de ingeniería integrado con otras disciplinas.
• Establecer un marco de referencia de la Ingeniería del Software y la
Ingeniería del Software Orientado a Objetos respecto de la Ingeniería
de Sistemas de Información.
• Presentar la Ingeniería del Software como el marco tecnológico y
técnico de la Ingeniería del Software Orientado a Objetos.
• Estudiar el concepto de software y aspectos relacionados.
• Revisar los conceptos básicos en los objetos.

© Ing. del Sw. O. Coltell, 2007 Tema-01 4/69

2
1.2 Introducción

• ¿Qué es la Ingeniería?
• RAE: Conjunto de conocimientos y técnicas que permiten aplicar el
saber científico a la utilización de la materia y de las fuentes de energía
|| Profesión o ejercicio del ingeniero
• Disciplina técnica que pretende resolver problemas té técnicos mediante
la aplicación de conocimiento cientí
científico consolidado,
consolidado a través de la
utilización de conocimientos y métodos técnicos formales, para
transformar los recursos naturales en productos directamente
utilizables por la sociedad
• Conjunto organizado de disciplinas técnico-científicas que actúan de
funciones de transformación entre el Universo del Discurso Científico
(UoDC) y el Dominio de Soluciones Técnico-Operativas (DSTO)

© Ing. del Sw. O. Coltell, 2007 Tema-01 5/69

1.2 Introducción
Término Definición

Ingeniería La ingeniería es una disciplina del conocimiento humano


que busca y aplica soluciones técnicas y tecnológicas a
problemas reales, a partir de conocimientos y
planteamientos científicos
Enfoque de ingeniería El enfoque de ingeniería se basa en la aplicación rigurosa
y metódica de técnicas y tecnologías suficientemente
probadas dentro de un ámbito teórico y práctico para
obtener un resultado de calidad
Propósito de la El propósito de la ingeniería es la de resolver problemas
ingeniería reales de tipo técnico y tecnológico de la manera más
eficaz (alcanzando los objetivos marcados) y eficiente
(con el menor coste posible)
Proceso de ingeniería Es la forma unitaria en que se desarrolla el enfoque de
ingeniería. El conjunto de procesos de ingeniería
constituyen el desarrollo global del enfoque de ingeniería

Proyecto de ingeniería Es la unidad de acción de la ingeniería

© Ing. del Sw. O. Coltell, 2007 Tema-01 6/69

3
ORGANIGRAMA GENERAL PARA SOLUCIONAR PROBLEMAS

SI NO
¿FUNCIONA?

¿LO HAS
¡¡NO LO TOQUES!! TOCADO?
NO ¿LO SABE SI
ALGUIEN?

SI

¡PROBRE ¡¡¡BURRO!!!
DESGRACIADO! SI
NO NO

¡ESCÓNDELO! ¿TE TRAERÁ


¿PUEDES CULPAR PROBLEMAS?
A ALGUIEN?
NO
A SI
AD
RIZ ¡TÍRALO!
U TO
OA
NN
SIÓ
V ER
SIN PROBLEMAS
© Ing. del Sw. O. Coltell, 2007 Tema-01 7/69

1.3 La Ingeniería del Software como disciplina


Con respecto a la Ingenierí
Ingeniería del Software:
• 1. ¿Qué es el Software? No es ni materia, ni recurso natural ni energía.
• 2. ¿Cuál es el conocimiento científico que sustenta el Software?
– ¿Qué conjunto coherente de teorías y modelos explica el "comportamiento" del
Software, de forma similar al cuerpo teórico que explica el comportamiento de los
fenómenos hidrodinámicos?
• 3. ¿Cuáles son los métodos técnicos formales y las técnicas empleadas en el ámbito del
Software?
– ¿Forman todos un conjunto coherente y completo al igual de en otras disciplinas de
ingeniería?
• 4. ¿Cuáles son los problemas técnicos planteados con el Software?
– ¿Son todos los problemas de tipo técnico o hay consideraciones que escapan al
análisis objetivo?
• 5. ¿Cuál es el proceso de la disciplina y a qué metas pretende llegar?
– ¿Se trata de un proceso único o hay un amplio espectro de procesos reconocidos?
– ¿Están claras las metas? ¿Son divergentes o convergentes?
• 6. ¿Qué productos finales se pretende ofrecer con respecto al Software?
– ¿Qué naturaleza tienen esos productos?
– ¿Se pueden ofrecer independientemente de los productos de otras disciplinas de
ingeniería?

© Ing. del Sw. O. Coltell, 2007 Tema-01 8/69

4
1.3 La Ingeniería del Software como disciplina
• El proceso de la ISw empieza con el
examen del dominio entero del
negocio o del producto para
asegurarse de que se puede Dominio de negocio o producto
Vista global
establecer el contexto de negocio o (Organización/Empresa)

tecnológico apropiado
Área de negocio Área
Área de
de negocio
negocio Área de negocio Vista del
dominio

Elemento del sistema Elementodel


Elemento delsistema
sistema Elementodel
Elemento del sistema
sistema
de negocio denegocio
negocio de negocio
negocio Vista del
de de
elemento

Sistema de información Sistemade


Sistema deinformación
información

Vista
detallada
Subsistema Subsistema
Subsistema Subsistema
Otros
Hardware Hardware
Software Hardware
Subsistemas

© Ing. del Sw. O. Coltell, 2007 Tema-01 9/69

1.3 La Ingeniería del Software como disciplina

• La Ingeniería del Software, como


disciplina de ingeniería, presenta un
esquema formal que parte de los
principios fundamentales y finaliza PRINCIPIOS
PRINCIPIOSDE
DE
en el producto LA
LAINGENIERÍA
INGENIERÍADEL
DELSOFTWARE
SOFTWARE

NORMAS
TÉCNICAS
NORMAS
NORMASDE DE OTRAS
LA NORMAS
LAINGENIERÍA
INGENIERÍADEL
DELSOFTWARE
SOFTWARE
ESTÁNDARES

MODELOS METODOLOGÍAS
MODELOSDE
DE METODOLOGÍAS
PROCESO / /PARADIGMAS
PARADIGMAS
PROCESO
PROCESO

TÉCNICAS
TÉCNICAS HERRAMIENTAS
HERRAMIENTAS

PRODUCTO

© Ing. del Sw. O. Coltell, 2007 Tema-01 10/69

5
1.3 La Ingeniería del Software como disciplina
Principios de la Ingenierí
Ingeniería del Software

Principio I. Experiencia práctica


• La comprensión de la complejidad sólo puede obtenerse trabajando
con un sistema complejo; esto es, un sistema que no puede comprender
por completo una sola persona, aunque sea un profesional.

© Ing. del Sw. O. Coltell, 2007 Tema-01 11/69

1.3 La Ingeniería del Software como disciplina

Principio II. Resolución de problemas


• No hay soluciones correctas o incorrectas, sino sólo soluciones
que son mejores o peores con relación a un criterio establecido.

© Ing. del Sw. O. Coltell, 2007 Tema-01 12/69

6
1.3 La Ingeniería del Software como disciplina
Principio III. Recursos limitados
• El sistema ideal se construye con recursos ilimitados y tiempo infinito. Pero la realidad
es muy distinta y determina que los recursos son limitados y escasos. Además, a pesar
de tener suficientes recursos, el problema original puede cambiar con rapidez durante el
desarrollo, con el riesgo de entregar un sistema final que resuelve el problema
equivocado u obsoleto. Por lo tanto, la conciencia de la escasez de recursos motiva un
enfoque de ingeniería basado en componentes, reutilización de software, diseño y
código.

© Ing. del Sw. O. Coltell, 2007 Tema-01 13/69

1.3 La Ingeniería del Software como disciplina


Principio IV. Interdisciplinariedad
• La ingeniería del software es una disciplina donde convergen necesariamente
otras disciplinas: ingeniería eléctrica, ingeniería del hardware, ciencia de la
computación, administración de empresas, diseño gráfico, diseño industrial,
etc. El problema a resolver debe atacarse desde varias perspectivas y
terminologías.

© Ing. del Sw. O. Coltell, 2007 Tema-01 14/69

7
1.3 La Ingeniería del Software como disciplina

Principio V. Comunicación
• Deben establecerse los canales de comunicación necesarios entre los
participantes en proyectos de ingeniería y con su entorno. Hay que
comunicar alternativas, articular soluciones, negociar compromisos y
revisar y criticar el trabajo de los demás. Se debe incluir necesariamente a
los clientes y usuarios como fuentes y destinatarios de determinados flujos
de información.

© Ing. del Sw. O. Coltell, 2007 Tema-01 15/69

1.3 La Ingeniería del Software como disciplina

• Software: es el conjunto de las categorías de elementos siguientes:


• Programas de ordenador asociados con alguna aplicación o producto,
junto con toda la información necesaria para instalar, usar,
desarrollar y mantener estos programas
• Instrucciones de ordenador que, cuando se ejecutan, proporcionan la
función y el comportamiento deseado
• Estructuras de datos que facilitan a los programas manipular
adecuadamente la información
• Documentos que describen la operación y el uso de los programas y
las estructuras de datos manipuladas por los mismos

© Ing. del Sw. O. Coltell, 2007 Tema-01 16/69

8
1.3 La Ingeniería del Software como disciplina

• Software de calidad: es el conjunto de las categorías de


elementos siguientes:
• Es mantenible: está escrito y documentado de forma que los cambios puedan ser
realizados sin costes adicionales.
• Es fiable: ha de funcionar según las expectativas de los clientes y no debería fallar
más de lo indicado en las especificaciones; es eficiente: aprovecha al máximo los
recursos hardware y de otro tipo del sistema que lo soporta y alcanza los objetivos
establecidos.
• Es amigable: tiene una apropiada interfaz de usuario que facilita la utilización del
sistema o producto y en donde intervienen tanto elementos de visualización e
intervención, como elementos de ayuda y asistencia.
• Es parcialmente sustituible: la sustitución parcial de determinados elementos por
otros con la misma interfaz no debe alterar el comportamiento general al menos en
sentido negativo.

© Ing. del Sw. O. Coltell, 2007 Tema-01 17/69

1.3 La Ingeniería del Software como disciplina

• Software de calidad (2):


• Es parcialmente reutilizable: determinados elementos deben poderse
aplicar en nuevos desarrollos manteniendo como mínimo el mismo
nivel de funcionalidad de cada uno de dichos elementos.
• Es controlable y auditable: está escrito y documentado de forma que
se pueda registrar los cambios sucesivos y se pueda registrar
fiablemente su comporta-miento para inspección posterior.
• Es seguro: se ha diseñado para que cumpla al máximo las premisas
de asegurar la integridad, la confidencialidad y la disponibilidad.

© Ing. del Sw. O. Coltell, 2007 Tema-01 18/69

9
1.4 El Proceso de la Ingeniería del Software

• Ingeniería del Software:


– Es un proceso de modelado para:
• definir los procesos que satisfagan las necesidades de la vista global,
del elemento o detallada.
• representar el comportamiento de los procesos y los supuestos en los
que se basa el comportamiento.
• definir explícitamente las entradas exógenas y endógenas de
información al modelo.
• representar todas las uniones que permitan al ingeniero entender
mejor la visión correspondiente.

© Ing. del Sw. O. Coltell, 2007 Tema-01 19/69

1.4 El Proceso de la Ingeniería del Software

• Un modelo es una abstracción de la realidad o de un sistema real


tomando los elementos más representativos con un propósito
determinado
• De un mismo sistema puede haber más de un modelo,
modelo porque, según el
propósito del mismo, los elementos representativos pueden ser
distintos
• Los elementos a considerar en la construcción de modelos son:
– Supuestos.
– Simplificaciones.
– limitaciones o restricciones.
– Preferencias.

© Ing. del Sw. O. Coltell, 2007 Tema-01 20/69

10
1.4 El Proceso de la Ingeniería del Software

EJEMPLO DE APLICACIÓN
DEL PROCESO DE MODELADO

© Ing. del Sw. O. Coltell, 2007 Tema-01 21/69

El arte de modelar

© Ing. del Sw. O. Coltell, 2007 Tema-01 22/69

11
El arte de modelar (ii)

© Ing. del Sw. O. Coltell, 2007 Tema-01 23/69

1.4 El Proceso de la Ingeniería del Software


• Los supuestos:
– son elementos para la construcción de modelos que reducen el número de
permutaciones y variaciones posibles, permitiendo al modelo reflejar el
problema de manera razonable.
• Las simplificaciones:
– son elementos para la construcción de modelos que permiten crear el
modelo a tiempo.
• Las limitaciones o restricciones:
– son elementos para la construcción de modelos que ayudan a delimitar el
problema.
• Las preferencias:
– son elementos para la construcción de modelos que indican la arquitectura
preferida para toda la información, funciones y tecnología; conflictos con
otros factores restrictivos.
– Es recomendable tenerlas en cuenta para obtener un resultado aceptado,
además de correcto.

© Ing. del Sw. O. Coltell, 2007 Tema-01 24/69

12
El arte de modelar (iii)
Supuestos: distribución elementos y número
Simplificaciones: sólo elementos más destacables y uno de cada
Restricciones: delimitación del encuadre y espacio

Preferencias: no aplicables en este modelo


© Ing. del Sw. O. Coltell, 2007 Tema-01 25/69

1.4 El Proceso de la Ingeniería del Software

• Al construir modelos de los sistemas reales se persigue cuatro objetivos


distintos:
• Ayudar a visualizar cómo es (se desea que sea) un sistema
• Permitir especificar la estructura y el comportamiento del sistema
• Proporcionar plantillas que sirven de guía en la construcción del
sistema
• Documentar las decisiones adoptadas

© Ing. del Sw. O. Coltell, 2007 Tema-01 26/69

13
1.4 El Proceso de la Ingeniería del Software

Principios de modelado:
modelado
1. La elección de los modelos a crear influye profundamente
sobre cómo se acomete un problema y cómo se da forma a
una solución.
2. Todo modelo puede ser expresado a diferentes niveles de
precisión.
3. Los mejores modelos están ligados a la realidad.
4. Un único modelo no es suficiente (conjunto de modelos
quasi-independientes).

© Ing. del Sw. O. Coltell, 2007 Tema-01 27/69

1.4 El Proceso de la Ingeniería del Software

© Ing. del Sw. O. Coltell, 2007 Tema-01 28/69

14
1.4 El Proceso de la Ingeniería del Software

© Ing. del Sw. O. Coltell, 2007 Tema-01 29/69

1.4 El Proceso de la Ingeniería del Software

© Ing. del Sw. O. Coltell, 2007 Tema-01 30/69

15
1.4 El Proceso de la Ingeniería del Software

© Ing. del Sw. O. Coltell, 2007 Tema-01 31/69

1.4 El Proceso de la Ingeniería del Software


RESUMEN
La Ingenierí
Ingeniería del Software es:
– el establecimiento y uso de principios de ingeniería robustos,
– orientados a obtener software económico que sea fiable y funcione de
manera eficiente sobre máquinas reales,
– mediante la aplicación de los elementos y actividades siguientes:
• métodos;
• planificación y estimación de proyectos;
• análisis de los requisitos del sistema y del software;
• diseño de estructuras de datos;
• arquitectura de programas y procedimientos algorítmicos;
• codificación;
• pruebas;
• instalación y mantenimiento;
• herramientas;
• Procedimientos.

© Ing. del Sw. O. Coltell, 2007 Tema-01 32/69

16
1.5 La Ingeniería del Software Orientado a Objetos

• La Ingeniería del Software Orientado a Objetos, vista


como enfoque de ingeniería, es:
– la especialización de la Ingeniería del Software en el marco del
Paradigma de la Programación Orientada a Objetos.
• Establece y aplica principios, metodologías, técnicas y
herramientas de la Ingeniería del Software en general.
• Y además, establece y aplica principios, metodologías,
técnicas y herramientas específicos de la orientación a
objetos.
• Se adscribe al Paradigma de la Orientación a Objetos.

© Ing. del Sw. O. Coltell, 2007 Tema-01 33/69

1.5 La Ingeniería del Software Orientado a Objetos

Paradigma:
• Es en general una forma distinta de ver las cosas
• En la Ingeniería del Software, es un enfoque de ingeniería cuyas
técnicas y tecnologías corresponden a una filosofía y a un ámbito
particular en la representación de sistemas y de sus soluciones
tecnológicas
• Los más importantes paradigmas, centrados en el producto final, son:
– El Paradigma de la Programación Estructurada
– El Paradigma de la Programación Lógica
– El Paradigma de la Programación Funcional
– El Paradigma de la Programación Orientada a Objetos

© Ing. del Sw. O. Coltell, 2007 Tema-01 34/69

17
1.5 La Ingeniería del Software Orientado a Objetos
El ciclo de vida del software completo

Prepa- Mode- Análi- Análi- Dise- Cons- Prue- Entre- Explo- Liqui-
ración lado sis de sis ño truc- bas ga tación / dación
del del requi- ción Manten
proble nego- sitos imiento
ma cio

% Implementación
% Conocimiento

Conocimiento
Implementación

Concepción Desarrollo Explotación

Tiempo

© Ing. del Sw. O. Coltell, 2007 Tema-01 35/69

1.5 La Ingeniería del Software Orientado a Objetos


El ciclo de vida del software completo

Prepa- Mode- Análi- Análi- Dise- Cons- Prue- Entre- Explo- Liqui-
ración lado sis de sis ño truc- bas ga tación / dación
del del requi- ción Manten
proble nego- sitos imiento
ma cio
% Implementación
% Conocimiento

Conocimiento
Implementación

Concepción Desarrollo Explotación

Tiempo
Desarrollo del software en IG22

© Ing. del Sw. O. Coltell, 2007 Tema-01 36/69

18
1.5 La Ingeniería del Software Orientado a Objetos
Fases del ciclo de desarrollo del software
Fase Descripción

Análisis de Se recogen las necesidades del cliente y del usuario y se transforman a


requisitos especificaciones técnicas del software a desarrollar.

Análisis Se estudia qué se quiere del sistema: modelado del dominio y de las
funciones, y comportamiento del sistema.

Diseño Se estudia cómo se quiere el sistema: modelado de la arquitectura del


sistema y de las interfaces, y diseño de los algoritmos.

Construcción Realización del sistema: combinación de codificación de algoritmos,


reutilización del software e integración de componentes

Pruebas Se procede a la verificación y validación, y a la realización de distintos


tipos de pruebas.
Entrega Se procede a la implantación/ instalación del sistema y se deja listo para
su explotación.

© Ing. del Sw. O. Coltell, 2007 Tema-01 37/69

1.5 La Ingeniería del Software Orientado a Objetos


Modelos de proceso para el desarrollo del software orientado a objetos

¿Qué modelo de proceso se puede ajustar mejor?


Ingeniería de
sistemas o información

ANÁLISIS
ANÁLISIS DISEÑO
DISEÑO CODIFICACIÓN
CODIFICACIÓN PRUEBAS
PRUEBAS MANTENIMIENTO
MANTENIMIENTO El modelo lineal secuencial (?)

Definición
Definiciónde
de
requisitos
requisitos

Diseño
Diseñode
de
sistemas
sistemasyy
de
desoftware
software

El modelo de cascada (?) Implementación


Implementación
yyprueba
prueba
de
deunidades
unidades

Integración
Integraciónyy
prueba
pruebadel
del
sistema
sistema

Operación
Operaciónyy
mantenimiento
mantenimiento

© Ing. del Sw. O. Coltell, 2007 Tema-01 38/69

19
1.5 La Ingeniería del Software Orientado a Objetos
Modelos de proceso para el desarrollo del software orientado a objetos

¿Qué modelo de proceso se puede ajustar mejor?


Incremento nº 1

Ingeniería de
sistemas o información El modelo incremental (?)
ANÁLISIS
ANÁLISIS DISEÑO
DISEÑO CODIFICACIÓN
CODIFICACIÓN PRUEBAS
PRUEBAS MANTENIMIENTO
MANTENIMIENTO ;
Incremento nº 2
Incrementos

ANÁLISIS
ANÁLISIS DISEÑO
DISEÑO CODIFICACIÓN
CODIFICACIÓN PRUEBAS
PRUEBAS MANTENIMIENTO
MANTENIMIENTO ;
Incremento nº 3

ANÁLISIS
ANÁLISIS DISEÑO
DISEÑO CODIFICACIÓN
CODIFICACIÓN PRUEBAS
PRUEBAS MANTENIMIENTO
MANTENIMIENTO ;
.... Incremento nº N

; Entrega del
Incremento nº i ANÁLISIS
ANÁLISIS DISEÑO
DISEÑO CODIFICACIÓN
CODIFICACIÓN PRUEBAS
PRUEBAS MANTENIMIENTO
MANTENIMIENTO ;

Tiempo (calendario)

© Ing. del Sw. O. Coltell, 2007 Tema-01 39/69

1.5 La Ingeniería del Software Orientado a Objetos


Modelos de proceso para el desarrollo del software orientado a objetos

¿Qué modelo de proceso se puede ajustar mejor?


Final del
Proceso
Grado
Desarrollo
2
El modelo espiral (?) ANÁLISIS DE
REQUISITOS

1
3
MODELADO
ANÁLISIS DEL PROCESO
Eje del punto
Y DISEÑO
de entrada
del Proceso

Tiempo

4
ENTREGA Y
CONSTRUCCIÓN MANTENIMIENTO

Inicio del
Proceso
Punto de
entrada de PRUEBAS
la iteración
5
© Ing. del Sw. O. Coltell, 2007 Tema-01 40/69

20
1.5 La Ingeniería del Software Orientado a Objetos

• Un punto común en las metodologías para el desarrollo de software


orientado a objetos es el modelo de desarrollo iterativo e incremental:
– El aspecto incremental parte de un punto cero, asumiendo un hipotético nivel
cero de conocimiento e implementación del sistema, y llega a otro hipotético
nivel cien, donde se ha conseguido el 100 % del conocimiento e
implementación del sistema.
– El aspecto iterativo parte de un punto cero, asumiendo una hipotética versión
cero del sistema a construir y, mediante la aplicación del flujo de trabajo en
las distintas fases del ciclo de vida, donde se aporta un porcentaje de esfuerzo
en cada una de ellas, llega a una versión i, donde i > 0. El símbolo i es el
ordinal asociado a cada una de las versiones de cada una de las iteraciones

© Ing. del Sw. O. Coltell, 2007 Tema-01 41/69

1.5 La Ingeniería del Software Orientado a Objetos

• Concepto de objeto:
– Según el Object Management Group (OMG), un objeto es una cosa. Se
crea como la instancia de un tipo de objeto.
– Una cosa del mundo real puede ser tangible o intangible.
intangible También se
puede plantear una distinción similar entre objetos físicos y objetos
conceptuales.
• Sin embargo, hay muchos otros objetos que son ligeramente menos tangibles,
pero no menos importantes ni significativos para los usuarios finales: planes,
estrategias, estilos, direcciones, etc.
– Un objeto es una ocurrencia singular, o instancia, de una cosa del mundo
real o abstracción.
• Implícitamente se asume que cada objeto / instancia se puede identificar
unívocamente, y se puede distinguir de otros objetos.
– Cada objeto tiene una identidad única que es distinta e independiente de
cualquiera de sus características y ofrece una o más operaciones.

© Ing. del Sw. O. Coltell, 2007 Tema-01 42/69

21
1.5 La Ingeniería del Software Orientado a Objetos

Modelado orientado a objetos:


• En el modelado orientado a objetos el proyecto se plantea alrededor de las fases de:
– análisis de requisitos,
– análisis y diseño,
– construcción del sistema
– pruebas.
• El objetivo es permitir y facilitar:
– la reusabilidad,
– el refinamiento,
– la verificación,
– el mantenimiento y
– la extensión del software.
• Diseño basado en los principios de:
– ocultación de información,
– clasificación,
– generalización,
– paso de mensajes y
– polimorfismo.

© Ing. del Sw. O. Coltell, 2007 Tema-01 43/69

1.5 La Ingeniería del Software Orientado a Objetos

• El proceso de modelado aplica un


mecanismo de abstracción a las
entidades del mundo real para obtener los
objetos que forman parte del modelo de
un sistema software:
– Si la entidad existe realmente en el
mundo real, la abstracción obtiene un
objeto en el modelado.
– Si el mecanismo se aplica a un conjunto
de entidades agrupadas por determinadas
características comunes entonces la
abstracción obtiene una clase de objetos
en el modelado:
• Es el resultado de volver a aplicar el
mecanismo de abstracción, pero esta vez a
los objetos

© Ing. del Sw. O. Coltell, 2007 Tema-01 44/69

22
1.5 La Ingeniería del Software Orientado a Objetos

X Clases del modelo FASE A:


MODELADO
Y
2º PROCESO Z
ABSTRACCIÓN
A
B
C
D
Objetos del modelo
1º PROCESO
ABSTRACCIÓN
Entidades reales del problema

Espacio del Problema


© Ing. del Sw. O. Coltell, 2007 Tema-01 45/69

1.5 La Ingeniería del Software Orientado a Objetos

• Objeto en el proceso de modelado:


– Un elemento estructural que se incluye en un modelo como
resultado de un proceso de abstracción de las características más
relevantes de una entidad o un proceso del sistema o problema
real:
• características estáticas/estructurales
• características dinámicas/de comportamiento

© Ing. del Sw. O. Coltell, 2007 Tema-01 46/69

23
1.5 La Ingeniería del Software Orientado a Objetos

• Clase de Objetos:
– Es el resultado de la abstracción de las características comunes de
un conjunto de objetos.
– La Clasificación es la propiedad de los objetos que lo permite.
– Cada clase de objetos contiene los aspectos más significativos de
todo el conjunto de entidades y es uno de los resultados del análisis
del sistema.
– Una clase no tiene identidad.
– Las clases mantienen el resto de propiedades de los objetos.
– El modelo de objetos se completa identificando las relaciones entre
las entidades del sistema real y representándolas como relaciones
entre las clases de objetos.

© Ing. del Sw. O. Coltell, 2007 Tema-01 47/69

1.5 La Ingeniería del Software Orientado a Objetos


FASE B:
Clases del modelo
DISEÑ
DISEÑO

X Y Z

INSTANCIACIÓN

A B C D

Instancias de clases del modelo = objetos

Espacio de la Solución

© Ing. del Sw. O. Coltell, 2007 Tema-01 48/69

24
1.5 La Ingeniería del Software Orientado a Objetos

• Clase de Objetos Objetos:


– Cuando a una clase de objetos se le da identidad se está creando un
caso particular de dicha clase.
– Los casos particulares: instancias.
– Proceso de instanciación.
– Las instancias son equivalentes a los objetos en el proceso de
modelado.

© Ing. del Sw. O. Coltell, 2007 Tema-01 49/69

1.5 La Ingeniería del Software Orientado a Objetos

• El concepto de objeto pretende recoger


las propiedades fundamentales de los
Objeto
sistemas (el mundo) reales y de cada Un objeto se compone
de sus características.
uno de sus elementos o entidades Al menos de una.

constitutivos: Las 1..*

• Propiedades estructurales:
características Característica
son de dos tipos
• Representan el conjunto de datos o
informaciones elementales que
caracterizan dicho objeto y se Las Las
denominan atributos. Estructural Dinámica
caracterísiticas caracterísiticas
estructurales (o
• Propiedades dinámicas:
dinámicas (o
estáticas) son comportamiento)
un conjunto de
• Representan el conjunto de atributos 1..*
son un conjunto
de operaciones
1..*
tratamientos que se pueden realizar Atributo Operación
con los atributos de un objeto y se
denominan operaciones.

© Ing. del Sw. O. Coltell, 2007 Tema-01 50/69

25
1.5 La Ingeniería del Software Orientado a Objetos

• Un objeto es una cosa del mundo real o una abstracción de esa cosa.
• Una cosa del mundo real puede ser tangible o intangible. También se
puede plantear una distinción similar entre objetos físicos y objetos
conceptuales. Sin embargo, hay muchos otros objetos que son
ligeramente menos tangibles, pero no menos importantes ni
significativos para los usuarios finales: planes, estrategias, estilos,
direcciones, etc.
• Un objeto es una ocurrencia singular, o instancia, de una cosa del
mundo real o abstracción. Implícitamente se asume que cada objeto /
instancia se puede identificar unívocamente, y se puede distinguir de
otros objetos.

© Ing. del Sw. O. Coltell, 2007 Tema-01 51/69

1.5 La Ingeniería del Software Orientado a Objetos


EJERCICIO DE APLICACIÓN
DEL PROCESO DE MODELADO O-O
Calculadora: representación de
sus características.

© Ing. del Sw. O. Coltell, 2007 Tema-01 52/69

26
1.5 La Ingeniería del Software Orientado a Objetos

INPUT: célula
fotoeléctrica

OUTPUT: pantalla

INPUT: teclas

© Ing. del Sw. O. Coltell, 2007 Tema-01 53/69

1.5 La Ingeniería del Software Orientado a Objetos

INPUT: célula
fotoeléctrica
Teclado: funciones
OUTPUT: pantalla 1. Encendido: ON
2. Apagado: Shift +AC
3. Borra última ent.: DEL
4. Borra pantalla: AC
5. Operación suma: +
6. Operación resta: -
7. Operación producto: X
8. Operación división: :
INPUT: teclas 9. ……
10. ……
11. ……
12. Ejecución opers.: =

© Ing. del Sw. O. Coltell, 2007 Tema-01 54/69

27
1.5 La Ingeniería del Software Orientado a Objetos

INPUT: célula
fotoeléctrica

OUTPUT: pantalla Características de la pantalla


1. 2 líneas.
2. 10 dígitos para números.
3. 1 posición para signo.
4. Admite alfanuméricos.
5. No admite más de 10
INPUT: teclas dígitos en la entrada.
6. Da error cuando el
resultado supera el valor:
+9.999.999.999.
7. Da error si el resultado se
divide por 0.

© Ing. del Sw. O. Coltell, 2007 Tema-01 55/69

1.5 La Ingeniería del Software Orientado a Objetos


ESCENARIOS DE USO:
INPUT: célula
fotoeléctrica
1. Calcular: 298 + 1055.
OUTPUT: 2. Calcular el 16% de IVA de 256.
pantalla 3. Etc.

ESCENARIOS DE USO: Calcular: 298 + 1055.


1. Pulsar tecla AC. []
2. Pulsar tecla 2. [2]
3. Pulsar tecla 9. [29]
INPUT: 4. Pulsar tecla 8. [298]
teclas 5. Pulsar tecla +. [298 +]
6. Pulsar tecla 1. [298 + 1]
7. Pulsar tecla 0. [298 +10]
8. Pulsar tecla 5. [298 +105]
9. Pulsar tecla 5. [298 +1055]
10. Pulsar tecla =. [1353]

© Ing. del Sw. O. Coltell, 2007 Tema-01 56/69

28
1.5 La Ingeniería del Software Orientado a Objetos
estándar

científica
Versiones
Windows

© Ing. del Sw. O. Coltell, 2007 Tema-01 57/69

Resumen

• Enfoque de Ingeniería:
– Metodología, rigor científico, técnicas, ...
• La Ingeniería del Software es una Ingeniería.
• La Ingeniería del Software y definición de software.
• La Ingeniería del Software Orientada a Objetos:
– El Paradigma Orientado a Objetos.
– El proceso de desarrollo orientado a objetos.
• Conceptos básicos en Orientación a Objetos:
– El concepto de Objeto.
– Propiedades de los Objetos.

© Ing. del Sw. O. Coltell, 2007 Tema-01 58/69

29
Anexos
A.1 La Ingeniería del Software como disciplina.
A.2. Normalización de la Ingeniería del Software.
A.3 La Ingeniería del Software. Definiciones.
A.4 El Proceso de la Ingeniería del Software.
A.5 La Ingeniería del Software Orientado a Objetos.

© Ing. del Sw. O. Coltell, 2007 Tema-01 59/69

A.1 La Ingeniería del Software como disciplina

Término Definición

Metodologías Son los sistemas estructurados y organizados de principios,


reglas y prácticas que se aplican a ramas del conocimiento
específicas.

Métodos Es el conjunto de principios, reglas y prácticas que suministran la


forma de construir técnicamente (el cómo) el software. Los
métodos están implicados en las categorías de actividades del
desarrollo del software siguientes: Planificación y estimación de
proyectos; Análisis de los requerimientos del sistema y del
software; Diseño de estructuras de datos, arquitectura de
programas y procedimientos algorítmicos; Generación de código;
Pruebas y comprobaciones; e Implantación y mantenimiento.

© Ing. del Sw. O. Coltell, 2007 Tema-01 60/69

30
A.1 La Ingeniería del Software como disciplina

Técnicas Mientras que la ciencia se dedica primordialmente al saber, la técnica es el arte


de hacer.
hacer. Entonces,
Entonces, la técnica es la aplicació
aplicación de un conjunto de procedimientos
derivados del saber cientí
científico o artí
artístico,
stico, y de los recursos necesarios para poder
producir resultados.
resultados. La caracterizació
caracterización de una buena técnica se basa en los
siguientes aspectos fundamentales:
fundamentales:
·Utilidad: los resultados obtenidos corresponden a determinados objetivos
establecidos previamente antes de la aplicación de la técnica.
·Habilidad: los procedimientos y recursos se usan con pericia o habilidad en
casos semejantes.
·Reproducibilidad: bajo las mismas condiciones y con los mismos elementos
iniciales, los resultados obtenidos deben ser siempre los mismos.
·Perdurabilidad: el conocimiento del proceso de aplicación de los procedimientos
y recursos se puede guardar para recuperarlo en otro momento futuro.
·Transmisibilidad: el conocimiento del proceso de aplicación de los
procedimientos y recursos se puede enseñar y aprender.
·Eficiencia: los resultados se obtienen con el menor coste de recursos y en el
tiempo más corto.

© Ing. del Sw. O. Coltell, 2007 Tema-01 61/69

A.1 La Ingeniería del Software como disciplina


Procedimientos Es el conjunto de facilidades que integran métodos y herramientas
en unidades metodológicas operativas. Entre otras cosas, estas
unidades definen las secuencias de aplicación de los métodos;
describen y establecen los resultados de la culminación de cada
etapa de aplicación de los métodos, denominadas entregas
(documentos, informes, diagramas, etc.); definen los controles para
asegurar la calidad y gestionar los cambios; y establecen las
directrices que ayudan a los gestores del software en la evaluación
del progreso en el desarrollo.

Herramientas Es el conjunto de los elementos que, mediante la estructuración,


clasificación y automatización de determinados procedimientos de
ingeniería y diseño, facilitan el trabajo del ingeniero al descargarle de
tareas rutinarias, repetitivas o extremadamente exhaustivas, y le
permiten centrarse en aspectos cualitativos o fundamentales.
Suministran en resumen un soporte automático o semiautomático a
los métodos.

© Ing. del Sw. O. Coltell, 2007 Tema-01 62/69

31
A.2. Normalización de la Ingeniería del Software

• Guide to the Software Engineering Body of Knowledge


http://www.swebok.org./
• The software engineering body of knowledge is an all-inclusive term that
describes the sum of knowledge within the profession of software engineering.
Since it is usually not possible to put the full body of knowledge of even an
emerging discipline, such as software engineering, into a single document, there
is a need for a Guide to the Software Engineering Body of Knowledge. This
Guide will seek to identify and describe that subset of the body of knowledge
that is generally accepted, even though software engineers must be
knowledgeable not only in software engineering, but also, of course, in other
related disciplines.

© Ing. del Sw. O. Coltell, 2007 Tema-01 63/69

A.2. Normalización de la Ingeniería del Software

• Fundamental principles of software engineering


http://www.lrgl.uqam.ca/fpse/

© Ing. del Sw. O. Coltell, 2007 Tema-01 64/69

32
A.2. Normalización de la Ingeniería del Software

• Fundamental principles of software engineering


http:// www.lrgl.uqam.ca/fpse/
• A. Apply and use quantitative measurements in decision-making
• B. Build with and for reuse
• C. Control complexity with multiple perspectives and multiple levels of abstraction
• D. De.ne software artifacts rigorously
• E. Establish a software process that provides fexibility
• F. Implement a disciplined approach and improve it continuously
• G. Invest in the understanding of the problem
• H. Manage quality throughout the lifecycle as formally as possible
• I. Minimize software component interaction
• J. Produce software in a stepwise fashion
• K. Set quality objectives for each deliverable product
• L. Since change is inherent to software, plan for it and manage it
• M. Since tradeo.s are inherent to software engineering, make them explicit and document them
• N. To improve design, study previous solutions to similar problems
• O. Uncertainty is unavoidable in software engineering. Identify and manage it

© Ing. del Sw. O. Coltell, 2007 Tema-01 65/69

A.2. Normalización de la Ingeniería del Software

• Formación y perfiles profesionales


http://www.acm.org/education/curricula.html
• Under Development
– Computing Curricula Volume on Software Engineering: SEEK - the Body of Software Engineering
Education Knowledge
– Computing Curricula Volume on Computer Engineering: Computer Engineering Body of Knowledge
– New K-12 Curriculum

• Currently Available
– IS 2002 - Model Curriculum and Guidelines for Undergraduate Degree Programs in Information Systems
– Final Report of the Joint ACM/IEEE-CS Task Force on Computing Curricula 2001 for
Computer Science
– MSIS 2000 Model Curriculum and Guidelines for Graduate Degree Programs in Information Systems

© Ing. del Sw. O. Coltell, 2007 Tema-01 66/69

33
A.3 La Ingeniería del Software. Definiciones

• Software confiable: es el software que cumple las características


siguientes:
• Debe estar ajustado a las especificaciones establecidas previamente.
• No debe producir resultados incorrectos.
• No debe permitir su corrupción.
• Debe reaccionar de manera útil y significativa en situaciones inesperadas.
• Sólo debe fallar por completo cuando sea imposible seguir avanzando.

© Ing. del Sw. O. Coltell, 2007 Tema-01 67/69

A.3 La Ingeniería del Software. Definiciones

• Tasa de confiabilidad del software se puede obtener por medio


de las actividades siguientes :
• Comprensión del ambiente en el que opera el software.
• Especificación de la función del sistema en su ambiente.
• Aplicación en el diseño de todas las partes de la especificación.
• Aplicación de la corrección en el diseño.
• Transformación correcta de todas y cada una de las partes del diseño
a un sistema de programación.
• Elaboración de documentación exacta.
• Mantenimiento de la confiabilidad a lo largo de toda la vida útil del
sistema.

© Ing. del Sw. O. Coltell, 2007 Tema-01 68/69

34
A.4 El Proceso de la Ingeniería del Software
• El proyecto de ingenierí
ingeniería informá
informática es el conjunto de actividades
coordinadas cronológicamente para alcanzar un subconjunto de
objetivos a partir de la definición de un subconjunto de necesidades,
todo ello enmarcado dentro de un Plan Estratégico de Sistemas de
Información.
– En el aspecto cronológico, un proyecto tiene un inicio, una fecha inicial, y
un final, la fecha de finalización; pero también tiene unos hitos temporales
intermedios para la distribución de las actividades.
– En el aspecto económico, un proyecto necesita de unos recursos, tanto para
su puesta en marcha, como para su continuación y culminación. Además, el
proyecto debe ofrecer determinados resultados que justifiquen el coste de
los recursos empleados.
– En el aspecto organizativo, un proyecto parte de una planificación previa y
necesita de una gestión que adecue las actividades a la planificación y que
controle las desviaciones.

© Ing. del Sw. O. Coltell, 2007 Tema-01 69/69

A.5 La Ingeniería del Software Orientado a Objetos


Actividades del mantenimiento
Actividad Descripción

Revisión Inspección planificada para comprobar que el software no está


degenerado y sigue cumpliendo los objetivos.

Actualización Incorporación de una nueva versión del software para adaptarlo al


cambio del entorno o a las modificaciones de las reglas de negocio
(mejora de la versión anterior)
Ampliación Incorporación de software complementario para cubrir más funciones sin
cambiar la versión del software instalado.

© Ing. del Sw. O. Coltell, 2007 Tema-01 70/69

35

Das könnte Ihnen auch gefallen