0% encontró este documento útil (0 votos)
17 vistas21 páginas

Unidad3.1Filosofia de La Ingenieria de Software

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas21 páginas

Unidad3.1Filosofia de La Ingenieria de Software

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 21

Filosofía de la

ingeniería de software
Programación orientada a Objetos
• Es un paradigma de programación que usa objetos y sus
interacciones, para diseñar aplicaciones y programas informáticos.
• Está basado en varias técnicas, incluyendo herencia, abstracción,
polimorfismo y encapsulamiento.
• Su uso se popularizó a principios de la década de los años 1990.
Análisis Orientado a Objetos
• Analizar los requisitos en la forma de un modelo de análisis es importante por varios
motivos [Jacobson et al., 1999]
• Un modelo de análisis ofrece una especificación más precisa de los requisitos que la que
se tiene como resultado de la captura de requisitos, incluyendo al modelo de casos de uso
• Un modelo de análisis se describe utilizando el lenguaje de los desarrolladores y puede,
por tanto, introducir un mayor formalismo y ser utilizado para razonar sobre los
funcionamientos internos del sistema
• Un modelo de análisis estructura los requisitos de un modo que facilita su comprensión,
su preparación, su modificación y, en general, su mantenimiento
• Un modelo de análisis puede considerarse como una primera aproximación al modelo de
diseño y es, por tanto, una entrada fundamental cuando se da forma al sistema en el
diseño y en la implementación
Análisis Orientado a Objetos
• El análisis orientado a objetos es el proceso que modela el dominio
del problema mediante la identificación y la especificación de un
conjunto de objetos semánticos que interaccionan y se comportan de
acuerdo a los requisitos del sistema [Monarchi y Puhr, 1992]
Análisis Orientado a Objetos
• Permite describir el sistema en los mismos términos que el mundo
real
• Se centra en la comprensión del espacio (dominio) del problema n
• Contiene elementos de síntesis:
• La abstracción de requisitos de usuario y la identificación de los
objetos clave del dominio es seguida del ensamblaje de estos objetos
en estructuras de forma que soporten el diseño en fases posteriores
Generalidades (i)
• Difícil determinar dónde acaba el análisis orientado a objetos y dónde comienza
el diseño orientado a objetos
• El objetivo es modelar la semántica del problema en términos de objetos
distintos pero relacionados
• El análisis casa con el dominio del problema
• Los objetos del dominio del problema representan cosas o conceptos utilizados
para describir el problema (objetos semánticos)
• Los objetos del dominio del problema tienen una equivalencia directa en el
entorno de la aplicación
• Se centra en la representación del problema n Identificar abstracciones que
contengan el significado de las especificaciones y de los requisitos
Identificación de atributos
• Son las propiedades relevantes de los objetos individuales
• Antes de identificar los atributos es necesario identificar las asociaciones
• Relacionar las clases conceptuales con asociaciones no con atributos
• Se pueden utilizar las heurísticas de Abbott (1983) para identificar los atributos
• La mayoría de los atributos simples son los que conocen como tipos de datos primitivos
• El tipo de un atributo no debería ser un concepto de dominio complejo
• Los atributos deben ser, generalmente, tipos de datos
• Un tipo de dato para UML implica un conjunto de valores para los cuales no es significativa una
identidad única (en el contexto del modelo o sistema en el que se está trabajando) [Rumbaugh
et al., 1999]
• Se deberían incluir en un modelo de dominio aquellos atributos para los que los requisitos
sugieren o implican una necesidad de registrar la información [Larman, 2002]
Identificación de superclases y subclases
• La definición de una superclase conceptual es más general y abarca más que la definición de una
subclase
• Todos los miembros del conjunto de una subclase conceptual son miembros del conjunto de su
superclase
• Se tiene que tener la conformidad con la definición de la superclase. Regla del 100% [Larman, 2002]
• El 100% de la definición de la superclase conceptual se debe poder aplicar a la subclase. La subclase
debe ajustarse al 100% de los atributos y asociaciones de la superclase
• Una subclase debe ser miembro del conjunto de la superclase. Regla Es-un [Larman, 2002]
• Todos los miembros del conjunto de una subclase deben ser miembros del conjunto de su
superclase
• Una subclase conceptual correcta debe cumplir [Larman, 2002]
• La regla del 100% (conformidad en la definición)
• La regla Es-un (conformidad con la pertenencia al conjunto)
Conceptos fundamentales
• La programación orientada a objetos es una forma de programar que trata de
encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y
amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:
• Clase: Definiciones de las propiedades y comportamiento de un tipo de objeto
concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto
a partir de ellas.
• Herencia: Es la facilidad mediante la cual la clase D hereda en ella cada uno de los
atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido
definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables
publicas declaradas en C. Los componentes registrados como "privados" (private)
también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al
programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es
así para mantener hegemónico el ideal de OOP.
• Objeto: Entidad provista de un conjunto de propiedades o atributos (datos) y
de comportamiento o funcionalidad (métodos) los mismos que
consecuentemente reaccionan a eventos. Se corresponde con los objetos
reales del mundo que nos rodea, o a objetos internos del sistema (del
programa). Es una instancia a una clase.

• Método: Algoritmo asociado a un objeto (o a una clase de objetos), cuya


ejecución se desencadena tras la recepción de un "mensaje". Desde el punto
de vista del comportamiento, es lo que el objeto puede hacer. Un método
puede producir un cambio en las propiedades del objeto, o la generación de
un "evento" con un nuevo mensaje para otro objeto del sistema
• Evento: Es un suceso en el sistema (tal como una interacción del
usuario con la máquina, o un mensaje enviado por un objeto). El
sistema maneja el evento enviando el mensaje adecuado al objeto
pertinente. También se puede definir como evento, a la reacción que
puede desencadenar un objeto, es decir la acción que genera.
• Mensaje: Una comunicación dirigida a un objeto, que le ordena que
ejecute uno de sus métodos con ciertos parámetros asociados al
evento que lo generó.
• Propiedad o atributo: Contenedor de un tipo de datos asociados a un
objeto (o a una clase de objetos), que hace los datos visibles desde
fuera del objeto y esto se define como sus características
predeterminadas, y cuyo valor puede ser alterado por la ejecución de
algún método.
• Estado interno: Es una variable que se declara privada, que puede ser
únicamente accedida y alterada por un método del objeto, y que se
utiliza para indicar distintas situaciones posibles para el objeto (o
clase de objetos). No es visible al programador que maneja una
instancia de la clase.
• Componentes de un objeto: Atributos, identidad, relaciones y
métodos.

• Identificación de un objeto:
• Un objeto se representa por medio de una tabla o entidad que esté
compuesta por sus atributos y funciones correspondientes.
• En comparación con un lenguaje imperativo, una "variable", no es
más que un contenedor interno del atributo del objeto o de un estado
interno, así como la "función" es un procedimiento interno del
método del objeto.
Diagrama de
estructura
estatica:
diagrama de
clases
Tipos de relaciones
• Herencia: Las clases no están aisladas, sino que se relacionan entre sí,
formando una jerarquía de clasificación. Los objetos heredan las
propiedades y el comportamiento de todas las clases a las que
pertenecen. La herencia organiza y facilita el polimorfismo y el
encapsulamiento permitiendo a los objetos ser definidos y creados
como tipos especializados de objetos preexistentes
• Asociación: es una relación estructural que describe una conexión
entre objetos.
• Agregación
• Composición
Agregación vs. Composición
• Agregación: Un objeto agregado es • Composición: La composición es
un objeto construido a partir de una forma fuerte de agregación
otros objetos
• El ciclo de vida de las partes
• El agregado es mayor que la suma depende del ciclo de vida del
de sus partes
agregado
• Todas las interacciones realizadas
con el conjunto de los objetos • Las partes no existen fuera de su
agregados se realizan a través de la participación en el agregado
interfaz del objeto agregado • La pertenencia fuerte implica
• Los objetos componentes están objetos físicos que se unen para
ocultos o encapsulados dentro del formar el compuesto
agregado
Actividad
• Cree un diagrama de clases para un sistema de inventario de una
ferretería.
• Cree un diagrama de casos de uso para:
Se desea desarrollar una aplicación de gestión de las calificaciones de los
alumnos para satisfacer las numerosas quejas de los profesores, por el uso
del lápiz y papel. La aplicación deberá cubrir únicamente aquellos aspectos
relacionados con dicho tema, y que se describen a continuación: El
profesor recibe las actas en blanco de las asignaturas de las que es
responsable, en formato electrónico. El acta contiene los siguientes datos
de la asignatura (titulación, campus, curso académico, denominación de la
asignatura, convocatoria y grupo) y la
lista de alumnos matriculados (niu, nif, nombre y apellidos). Alguna de las
acciones que puede hacer el profesor son:
-Completar un acta con las notas de los alumnos.
- Añadir o borrar un alumno de un acta.
- Integrar las actas de varios grupos de una misma asignatura en una sola
acta. Otras de las opciones que se le exige a la aplicación, para satisfacer
completamente las necesidades del profesor, son las siguientes:
- Permitir la consulta de la siguiente información de cualquier alumno
seleccionado: - DNI, N.° EXPEDIENTE, Lista de asignaturas en las que
está matriculado el alumno (Código asignatura-Nombre asignatura).
- Obtener una estadística de las calificaciones obtenidas por los alumnos en un determinado
grupo de una asignatura. En esta estadística se tendrá para cada posible calificación: - Número
de personas con esa calificación, Porcentaje sobre los presentados, Porcentaje sobre el total del
grupo.
- Consultar el porcentaje de personas sobre el total del grupo que se han presentado y el de los
que no se han presentado.
- Poder visualizar un gráfico indicativo del número de personas que han obtenido una calificación
entre 0-0.99, 1-1.99, 2-2.99, 3-3.99, 4-4.99; indicándose la nota media obtenida por la clase.
- Disponer de una calculadora que permita realizar las operaciones de suma, resta,
multiplicación, división. Esta calculadora se activará cuando se vayan a introducir las notas a
algún alumno de forma que una vez realizada la operación aritmética, pulsando un botón se
vuelque el resultado en la casilla donde se están introduciendo las calificaciones,
redondeándose a dos cifras decimales.
- Permitir la importación y exportación de la lista de alumnos con sus calificaciones a
un formato compatible con MS Excel.
- Imprimir las actas y la lista provisional de calificaciones. Finalmente, como una
ampliación extra, a la cual sólo podrá acceder quien se identifique inicialmente como
administrador de la aplicación, se deben permitir:
- Gestión ABMC (Altas/Bajas/Modificación y Consulta) de los datos de un alumno y su
matriculación en una asignatura y a un grupo. ? Gestión de Asignaturas, teniendo en
cuenta que una asignatura sólo se puede dar en un único curso (primero, segundo,
tercero...) y que cada curso está formado ponlos datos sobre el número máximo de
alumnos, número mínimo de créditos troncales y número mínimo de créditos
optativos. Algunos de los datos que vamos a poder consultar de una asignatura son el
nombre, número de créditos y cuatrimestre en el que se imparte.
- Gestión de Titulaciones, teniendo en cuenta que una titulación sólo se
da en un campus determinado y los datos que podemos consultar son
el nombre, el número de créditos o carga lectiva global, si es de 1.° o
2.' ciclo, ...
- Gestión de grupos, en los que podemos consultar el número máximo
de alumnos permitidos, si es un grupo de mañana, de tarde o de
noche, y cuál es el código empleado para identificar el grupo.
- Consultar aquellos alumnos que no se pueden matricular y el motivo
de ello.
- Consultar el historial académico de un alumno

También podría gustarte