Friday, June 7, 2019

3er Parcial, Submódulo #1

Proyecto de P.O.O. y metodología espiral.

Primero recordemos muy rápidamente qué es P.O.O., la P.O.O. (Programación Orientada a Objetos) es un paradigma de la programación que más se utiliza en la actualidad, su función dicha en palabras sencillas sería convertir imágenes de la vida real en código.

¿Y cómo funciona esto? Veamos que en la imagen superior se encuentran dos figuras con sus respectivas características (propiedades) y sus acciones (métodos), con estos en mano debemos proceder a transportar este concepto a nuestro código, generando primeramente las clases, que nos sirven para la creación de los objetos. Las clases pueden ser asemejadas a un molde en el cual se vierte una sustancia buscando que tome la forma de este, así podría decirse que es una clase, se trata de un software que puede utilizarse para crear múltiples objetos iguales. Una clase contiene un conjunto de elementos que definen al objeto, las ya provistas propiedades y métodos,con esto podemos resumir en que una clase es la estructura de un objeto o la definición de todos los elementos de los que está conformado dicho objeto.

Ahora hablemos del modelo en espiral, el modelo en espiral describe el ciclo de vida de un software por medio de espirales, que se repiten hasta que se puede entregar el producto terminado, también se conoce como desarrollo o modelo incremental. El producto se trabaja continuamente y las mejoras a menudo tienen lugar en pasos muy pequeños.¿Cómo funciona? Se caracteriza por los siguientes cuadrantes o ciclos:
Objetivo y determinación alternativa: Los objetivos se determinan conjuntamente con el cliente. Al mismo tiempo, se discuten posibles alternativas y se especifican las condiciones marco (por ejemplo, sistemas operativos, entornos y lenguajes de programación).
Análisis y evaluación de riesgos: Se identifican y evalúan los riesgos potenciales. También se evalúan las alternativas existentes. Los riesgos son registrados, evaluados y luego reducidos utilizando prototipos, simulaciones y softwares de análisis. En este ciclo, existen varios prototipos como plantillas de diseño o componentes funcionales
Desarrollo y prueba: Los prototipos se amplían y se añaden funcionalidades. El código real es escrito, probado y migrado a un entorno de prueba varias veces hasta que el software pueda ser implementado en un entorno productivo.
Planificación del siguiente ciclo: El siguiente ciclo se planifica al final de cada etapa. Si se producen errores, se buscan soluciones, y si una alternativa es una mejor solución, se prefiere en el siguiente ciclo.

¡Asegurémonos de que se haya comprendido todo! Por favor, responde lo siguiente:
  • ¿Qué significa Poo?
  • ¿Qué es una clase?
  • ¿Qué es el modelo en espiral?
  • ¿Cuáles son sus procesos?

¡Te recomendamos realizar esta práctica para desarrollar un poco más los conocimientos de POO!

Escribe una clase Complejo que modele el comportamiento de los números complejos.
Un número complejo, es una entidad matemática que viene dada por un par de números reales, el primero a se denomina la parte real y al segundo b la parte imaginaria.
Se representa escribiendo las dos partes del número entre paréntesis (a, b) o también de la forma a + bi.
La i se denomina unidad imaginaria, representa la raíz cuadrada de -1.
La clase Complejo tendrá dos datos privados de tipo double: parte real y parte imaginaria.
La clase Complejo contendrá un constructor por defecto que inicializará a 0 los atributos y un constructor con dos parámetros correspondientes a los valores de la parte real e imaginaria a asignar al nuevo objeto.
Contendrá, además de los setters y getters, los siguientes métodos:
sumar para sumar dos números complejos.
(a, b) + (c, d) = (a + c, b + d);
restar para restar dos números complejos.
(a, b) - (c, d) = (a - c, b - d);
multiplicar para multiplicar dos números complejos:
(a, b) * (c, d) = (a*c – b*d, a*d + b*c)
multiplicar para multiplicar un número complejo por un número double:
(a, b) * n = (a * n, b * n)
dividir para dividir dos números complejos:
(a, b) / (c, d) = ((a*c + b*d) / (c2 + d2) , (b*c – a*d) / (c2 + d2))
Todos los métodos anteriores devuelven el objeto número complejo resultado de la operación.
La clase contendrá además un método toString para mostrar el número complejo de la siguiente forma: (parte real, parte imaginaria) y un método equals que compruebe si dos números complejos son iguales o no.

No comments:

Post a Comment