Técnicas de prototipos y desarrollo rápido:
El diseño de prototipos es una popular técnica de ingeniería utilizada para desarrollar modelos a escala (o simulados) de un producto o de sus componentes, cuando se aplica al desarrollo de sistemas de información, el diseño de prototipos implica la creación de un modelo interactivo de trabajo de un sistema o subsistema.
La técnica de prototipos puede utilizarse en varias fases del ciclo de vida.
Existen cuatro tipos de prototipos de sistemas de información:
• Los prototipos de vialidad se utilizan para probar la vialidad de una tecnología específica aplicable a un sistema de información.
• Los prototipos de necesidades (a veces denominados de descubrimiento) se utilizan para descubrir las necesidades de los usuarios con respecto a la empresa. Pueden simular la forma de pensar de los usuarios. Su base es sencilla: los usuarios reconocerán sus necesidades cuando las vean, durante la elaboración de diseños de necesidades, el analista puede pintar pantallas o informes de muestra, y solicitar las opiniones del usuario con respecto a su contenido.
• Los prototipos de diseño (a veces denominados prototipos de comportamiento) se utilizan para simular el diseño del sistema de información final. Mientras que los prototipos de necesidades se centraban solo en el contenido, los prototipos de diseño lo hacen en la forma y funcionamiento del sistema deseado. Cuando un analista crea un prototipo de diseño, espera que los usuarios evalúen dicho prototipo como si formara parte del sistema final. Así, los usuarios deberían evaluar la facilidad de aprendizaje y de manejo del sistema, así como el aspecto de pantallas y los informes y los procedimientos requeridos para utilizar el sistema. Estos prototipos pueden servir como especificaciones parciales de diseño o evolucionar hacia prototipos de implantación.
• Los prototipos de implantación (a veces denominados prototipos de producción) constituyen una extensión de los prototipos de diseño donde el prototipo evoluciona directamente hacia el sistema de producción. En principio, los prototipos de implantación omiten normalmente detalles como la edición de datos, las seguridades y los mensajes de ayuda. Estos detalles pueden añadirse posteriormente, si se desea que el prototipo evolucione hacia un sistema de producción.
Las ventajas que se obtienen del uso de prototipos son numerosas:
• Los usuarios se hacen participantes más activos en el desarrollo de sistemas. Suelen mostrarse más interesados en los prototipos de trabajo que en las especificaciones de diseño en papel.
• La definición de necesidades se simplifica por el hecho de que muchos usuarios finales no comprenden o no son capaces de enunciar detalladamente sus necesidades hasta que ven un prototipo.
• La probabilidad de que los usuarios finales aprueben un diseño y luego rechacen su implantación se reducirá notablemente .
• Según se dice, el diseño mediante prototipo reduce el tiempo de desarrollo, sin embargo, algunos expertos cuestiona este ahorro de tiempo.
Pero para la utilización de prototipos comporta también un riesgo, se suele pasar a las fases de análisis y diseño con demasiada rapidez. Ello empuja al analista a pasar demasiado rápido a la codificación, sin haber comprendido bien las necesidades y los problemas.
Programación Orientadas a objetos:
La Programación Orientada a Objetos (POO u OOP) es un paradigma de programación que define los programas en términos de “clases de objetos”, objetos que son entidades que combinan estado (propiedades o datos), comportamiento (procedimientos o métodos) e identidad (propiedad del objeto que lo diferencia del resto). La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar.
Elementos de la POO:
-. Objetos: contienen toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos).
A su vez, dispone de mecanismos de interacción (los llamados métodos) que favorecen la comunicación entre objetos (de una misma clase o de distintas), y en consecuencia, el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separan (ni deben separarse) información (datos) y procesamiento (métodos).
-. Atributos: Los atributos son las características individuales que diferencian un objeto de otro y determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables denominadas de instancia, y cada objeto particular puede tener valores distintos para estas variables.
Las variables de instancia también denominados miembros dato, son declaradas en la clase pero sus valores son fijados y cambiados en el objeto.
Además de las variables de instancia hay variables de clase, las cuales se aplican a la clase y a todas sus instancias. Por ejemplo, el número de ruedas de un automóvil es el mismo cuatro, para todos los automóviles.
-.Mensajes: Corresponde a la forma que tienen los objetos para comunicarse entre sí, de esta forma, el objeto que activa el mensaje se llama objeto emisor y el que lo recibe objeto receptor. Cabe señalar que un mensaje debe ser activado o generado desde un método hacia un objeto. En términos generales equivale a la llamada a un procedimiento o función.
Forma general de un mensaje:
receptor_mensaje.selector_mensaje [(parámetros)]
p/e ventana_editor.maximizar; documento1.imprimir(2);
-. Clases: son declaraciones o abstracciones de objetos, lo que significa, que una clase es la definición de un objeto. Cuando se programa un objeto y se definen sus características y funcionalidades, realmente se programa una clase.
Para crear una clase se utiliza la palabra reservada class y a continuación el nombre de la clase. La definición de la clase se pone entre las llaves de apertura y cierre. El nombre de la clase empieza por letra mayúscula.
class Rectangulo{
//miembros dato
//funciones miembro
}
-.Instanciación: una instancia se produce con la creación de un objeto perteneciente a una clase (se dice que se instancia la clase). El objeto que se crea tiene los atributos, propiedades y métodos de la clase a la que pertenece. Los objetos y sus características se usan en la construcción de programas, ya sea como contenedores de datos o como partes funcionales del programa.
Características del POO:
-. Abstracción: Mediante la abstracción la mente humana modeliza la realidad en forma de objetos. Para ello busca parecidos entre la realidad y la posible implementación de objetos del programa que simulen el funcionamiento de los objetos reales.
Los seres humanos no pensamos en las cosas como un conjunto de cosas menores; por ejemplo, no vemos un cuerpo humano como un conjunto de células. Los humanos entendemos la realidad como objetos con comportamientos bien definidos. No necesitamos conocer los detalles de porqué ni cómo funcionan las cosas; simplemente solicitamos determinadas acciones en espera de una respuesta; cuando una persona desea desplazarse, su cuerpo le responde comenzando a caminar.
Pero la abstracción humana se gestiona de una manera jerárquica, dividiendo sucesivamente sistemas complejos en conjuntos de subsistemas, para así entender más fácilmente la realidad. Esta es la forma de pensar que la orientación a objeto intenta cubrir.
-. Encapsulamiento: Uno de los objetivos primordiales de la P.O.O., es la creación de objetos que funcionen como entidades complejas, es decir autosuficientes, una de las reglas del encapsulamiento es que el programador nunca necesita acceder directamente a los datos de un objeto, en vez de esto se deben definir métodos dentro del objeto que gobiernen toda la manipulación de datos. El encapsulamiento está referido, también, a los métodos de cada objeto en el sentido que su código interno debe ser transparente a la hora de activarse.
-.Polimorfismo: Se refiere a la capacidad que tiene el objeto para hacer lo adecuado después de haber recibido un mensaje, independientemente de quién lo haya enviado. Hay que tener en cuenta que el polimorfismo se mueve a través de la herencia, dicho de otra forma trata de hacer posible enviar mensajes genéricos a objetos y que éstos realicen lo estipulado de acuerdo a su codificación interna, es decir, la acción varía en relación al receptor del mensaje.
Ejemplo: Se desea enviar un mensaje a dos objetos distintos (Triángulo y Rectángulo) los cuales podrían ser descendientes de la clase polígono, sin embargo cuando el triángulo reciba la orden área, la ejecución de este método se obtendrá a partir de (b*h)/2 en cambio si se activa el mismo método para el rectángulo el valor se calculará a partir de ð *r2 , aún cuando ambos objetos recibieron la misma orden.
-. Herencia: En términos simples la herencia en la P.O.O. es la capacidad que tiene los objetos para heredar todas o algunas de sus características (datos) y comportamiento (procedimientos) a sus descendientes o herederos, permitiendo así la reutilización de código lo que en la práctica se traduce en una herramienta muy potente de programación.
Esta herencia puede ser a nivel de estado (características) o protocolo (métodos y procedimientos) o ambas. La herencia en la P.O.O tiene sus raíces en el concepto de registros anidados.
Ejemplo:
Type
edades: 0..150;
InfPersona = RECORD
Apellido: integer;
Nombre: integer;
Edad: edades;
end;
grados: 0..12;
InfEstudiante= RECORD
persona: InfPersona;
grado: Grados;
Profesor: string (30);
end;
El registro InfPersona contiene campos que se utilizan para describir a cualquier persona. El segundo registro InfEstudiante, incluye el campo Persona, que contiene los campos del registro InfPersona. En la P.O.O., se utiliza el mismo concepto para construir incrementalmente objetos que son capaces de heredar algunas o todas las características de sus ascendientes (objetos padres).
El diseño de prototipos es una popular técnica de ingeniería utilizada para desarrollar modelos a escala (o simulados) de un producto o de sus componentes, cuando se aplica al desarrollo de sistemas de información, el diseño de prototipos implica la creación de un modelo interactivo de trabajo de un sistema o subsistema.
La técnica de prototipos puede utilizarse en varias fases del ciclo de vida.
Existen cuatro tipos de prototipos de sistemas de información:
• Los prototipos de vialidad se utilizan para probar la vialidad de una tecnología específica aplicable a un sistema de información.
• Los prototipos de necesidades (a veces denominados de descubrimiento) se utilizan para descubrir las necesidades de los usuarios con respecto a la empresa. Pueden simular la forma de pensar de los usuarios. Su base es sencilla: los usuarios reconocerán sus necesidades cuando las vean, durante la elaboración de diseños de necesidades, el analista puede pintar pantallas o informes de muestra, y solicitar las opiniones del usuario con respecto a su contenido.
• Los prototipos de diseño (a veces denominados prototipos de comportamiento) se utilizan para simular el diseño del sistema de información final. Mientras que los prototipos de necesidades se centraban solo en el contenido, los prototipos de diseño lo hacen en la forma y funcionamiento del sistema deseado. Cuando un analista crea un prototipo de diseño, espera que los usuarios evalúen dicho prototipo como si formara parte del sistema final. Así, los usuarios deberían evaluar la facilidad de aprendizaje y de manejo del sistema, así como el aspecto de pantallas y los informes y los procedimientos requeridos para utilizar el sistema. Estos prototipos pueden servir como especificaciones parciales de diseño o evolucionar hacia prototipos de implantación.
• Los prototipos de implantación (a veces denominados prototipos de producción) constituyen una extensión de los prototipos de diseño donde el prototipo evoluciona directamente hacia el sistema de producción. En principio, los prototipos de implantación omiten normalmente detalles como la edición de datos, las seguridades y los mensajes de ayuda. Estos detalles pueden añadirse posteriormente, si se desea que el prototipo evolucione hacia un sistema de producción.
Las ventajas que se obtienen del uso de prototipos son numerosas:
• Los usuarios se hacen participantes más activos en el desarrollo de sistemas. Suelen mostrarse más interesados en los prototipos de trabajo que en las especificaciones de diseño en papel.
• La definición de necesidades se simplifica por el hecho de que muchos usuarios finales no comprenden o no son capaces de enunciar detalladamente sus necesidades hasta que ven un prototipo.
• La probabilidad de que los usuarios finales aprueben un diseño y luego rechacen su implantación se reducirá notablemente .
• Según se dice, el diseño mediante prototipo reduce el tiempo de desarrollo, sin embargo, algunos expertos cuestiona este ahorro de tiempo.
Pero para la utilización de prototipos comporta también un riesgo, se suele pasar a las fases de análisis y diseño con demasiada rapidez. Ello empuja al analista a pasar demasiado rápido a la codificación, sin haber comprendido bien las necesidades y los problemas.
Programación Orientadas a objetos:
La Programación Orientada a Objetos (POO u OOP) es un paradigma de programación que define los programas en términos de “clases de objetos”, objetos que son entidades que combinan estado (propiedades o datos), comportamiento (procedimientos o métodos) e identidad (propiedad del objeto que lo diferencia del resto). La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar.
Elementos de la POO:
-. Objetos: contienen toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos).
A su vez, dispone de mecanismos de interacción (los llamados métodos) que favorecen la comunicación entre objetos (de una misma clase o de distintas), y en consecuencia, el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separan (ni deben separarse) información (datos) y procesamiento (métodos).
-. Atributos: Los atributos son las características individuales que diferencian un objeto de otro y determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables denominadas de instancia, y cada objeto particular puede tener valores distintos para estas variables.
Las variables de instancia también denominados miembros dato, son declaradas en la clase pero sus valores son fijados y cambiados en el objeto.
Además de las variables de instancia hay variables de clase, las cuales se aplican a la clase y a todas sus instancias. Por ejemplo, el número de ruedas de un automóvil es el mismo cuatro, para todos los automóviles.
-.Mensajes: Corresponde a la forma que tienen los objetos para comunicarse entre sí, de esta forma, el objeto que activa el mensaje se llama objeto emisor y el que lo recibe objeto receptor. Cabe señalar que un mensaje debe ser activado o generado desde un método hacia un objeto. En términos generales equivale a la llamada a un procedimiento o función.
Forma general de un mensaje:
receptor_mensaje.selector_mensaje [(parámetros)]
p/e ventana_editor.maximizar; documento1.imprimir(2);
-. Clases: son declaraciones o abstracciones de objetos, lo que significa, que una clase es la definición de un objeto. Cuando se programa un objeto y se definen sus características y funcionalidades, realmente se programa una clase.
Para crear una clase se utiliza la palabra reservada class y a continuación el nombre de la clase. La definición de la clase se pone entre las llaves de apertura y cierre. El nombre de la clase empieza por letra mayúscula.
class Rectangulo{
//miembros dato
//funciones miembro
}
-.Instanciación: una instancia se produce con la creación de un objeto perteneciente a una clase (se dice que se instancia la clase). El objeto que se crea tiene los atributos, propiedades y métodos de la clase a la que pertenece. Los objetos y sus características se usan en la construcción de programas, ya sea como contenedores de datos o como partes funcionales del programa.
Características del POO:
-. Abstracción: Mediante la abstracción la mente humana modeliza la realidad en forma de objetos. Para ello busca parecidos entre la realidad y la posible implementación de objetos del programa que simulen el funcionamiento de los objetos reales.
Los seres humanos no pensamos en las cosas como un conjunto de cosas menores; por ejemplo, no vemos un cuerpo humano como un conjunto de células. Los humanos entendemos la realidad como objetos con comportamientos bien definidos. No necesitamos conocer los detalles de porqué ni cómo funcionan las cosas; simplemente solicitamos determinadas acciones en espera de una respuesta; cuando una persona desea desplazarse, su cuerpo le responde comenzando a caminar.
Pero la abstracción humana se gestiona de una manera jerárquica, dividiendo sucesivamente sistemas complejos en conjuntos de subsistemas, para así entender más fácilmente la realidad. Esta es la forma de pensar que la orientación a objeto intenta cubrir.
-. Encapsulamiento: Uno de los objetivos primordiales de la P.O.O., es la creación de objetos que funcionen como entidades complejas, es decir autosuficientes, una de las reglas del encapsulamiento es que el programador nunca necesita acceder directamente a los datos de un objeto, en vez de esto se deben definir métodos dentro del objeto que gobiernen toda la manipulación de datos. El encapsulamiento está referido, también, a los métodos de cada objeto en el sentido que su código interno debe ser transparente a la hora de activarse.
-.Polimorfismo: Se refiere a la capacidad que tiene el objeto para hacer lo adecuado después de haber recibido un mensaje, independientemente de quién lo haya enviado. Hay que tener en cuenta que el polimorfismo se mueve a través de la herencia, dicho de otra forma trata de hacer posible enviar mensajes genéricos a objetos y que éstos realicen lo estipulado de acuerdo a su codificación interna, es decir, la acción varía en relación al receptor del mensaje.
Ejemplo: Se desea enviar un mensaje a dos objetos distintos (Triángulo y Rectángulo) los cuales podrían ser descendientes de la clase polígono, sin embargo cuando el triángulo reciba la orden área, la ejecución de este método se obtendrá a partir de (b*h)/2 en cambio si se activa el mismo método para el rectángulo el valor se calculará a partir de ð *r2 , aún cuando ambos objetos recibieron la misma orden.
-. Herencia: En términos simples la herencia en la P.O.O. es la capacidad que tiene los objetos para heredar todas o algunas de sus características (datos) y comportamiento (procedimientos) a sus descendientes o herederos, permitiendo así la reutilización de código lo que en la práctica se traduce en una herramienta muy potente de programación.
Esta herencia puede ser a nivel de estado (características) o protocolo (métodos y procedimientos) o ambas. La herencia en la P.O.O tiene sus raíces en el concepto de registros anidados.
Ejemplo:
Type
edades: 0..150;
InfPersona = RECORD
Apellido: integer;
Nombre: integer;
Edad: edades;
end;
grados: 0..12;
InfEstudiante= RECORD
persona: InfPersona;
grado: Grados;
Profesor: string (30);
end;
El registro InfPersona contiene campos que se utilizan para describir a cualquier persona. El segundo registro InfEstudiante, incluye el campo Persona, que contiene los campos del registro InfPersona. En la P.O.O., se utiliza el mismo concepto para construir incrementalmente objetos que son capaces de heredar algunas o todas las características de sus ascendientes (objetos padres).