Beruflich Dokumente
Kultur Dokumente
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
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.
1.1 OBJETIVOS
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)
1.2 Introducción
Término Definición
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
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
Vista
detallada
Subsistema Subsistema
Subsistema Subsistema
Otros
Hardware Hardware
Software Hardware
Subsistemas
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
5
1.3 La Ingeniería del Software como disciplina
Principios de la Ingenierí
Ingeniería del Software
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.
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.
8
1.3 La Ingeniería del Software como disciplina
9
1.4 El Proceso de la Ingeniería del Software
10
1.4 El Proceso de la Ingeniería del Software
EJEMPLO DE APLICACIÓN
DEL PROCESO DE MODELADO
El arte de modelar
11
El arte de modelar (ii)
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
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).
14
1.4 El Proceso de la Ingeniería del Software
15
1.4 El Proceso de la Ingeniería del Software
16
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
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
Tiempo
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
Tiempo
Desarrollo del software en IG22
18
1.5 La Ingeniería del Software Orientado a Objetos
Fases del ciclo de desarrollo del software
Fase Descripción
Análisis Se estudia qué se quiere del sistema: modelado del dominio y de las
funciones, y comportamiento del sistema.
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
Integración
Integraciónyy
prueba
pruebadel
del
sistema
sistema
Operación
Operaciónyy
mantenimiento
mantenimiento
19
1.5 La Ingeniería del Software Orientado a Objetos
Modelos de proceso para el desarrollo del software orientado a objetos
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)
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
• 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.
21
1.5 La Ingeniería del Software Orientado a Objetos
22
1.5 La Ingeniería del Software Orientado a Objetos
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.
X Y Z
INSTANCIACIÓN
A B C D
Espacio de la Solución
24
1.5 La Ingeniería del Software Orientado a Objetos
• 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.
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.
26
1.5 La Ingeniería del Software Orientado a Objetos
INPUT: célula
fotoeléctrica
OUTPUT: pantalla
INPUT: teclas
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.: =
27
1.5 La Ingeniería del Software Orientado a Objetos
INPUT: célula
fotoeléctrica
28
1.5 La Ingeniería del Software Orientado a Objetos
estándar
científica
Versiones
Windows
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.
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.
Término Definición
30
A.1 La Ingeniería del Software como disciplina
31
A.2. Normalización de la Ingeniería del Software
32
A.2. Normalización de la Ingeniería del Software
• 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
33
A.3 La Ingeniería del Software. Definiciones
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.
35