Sistemas ii fundamentos y metodos de analisis de requerimientos
1. REPÚBLICA BOLIVARIANA DE VENEZUELA
INSTITUTO UNIVERSITARIO POLITÉCNICO
“SANTIAGO MARIÑO”
SEDE BARCELONA
INGENIERÍA DE SISTEMAS
FUNDAMENTOS Y MÉTODOS DE
ANÁLISIS DE REQUERIMIENTOS
Autor: Jesús Marcano
C.I. 26.706.621
Barcelona, 03 Julio 2019
2. INTRODUCCIÓN
En la siguiente presentación se tratarán los temas básicos que permitirán entender la programación
orientada a objetos, exponiendo así sus características principales tales como la abstracción, el
encapsulamiento, la modularidad, el principio de ocultación, el polimorfismo, la herencia y la recolección
de basura.
El amplio uso de la programación orientada a objetos hace imprescindible su aprendizaje, ya que es
usado en varios de los lenguajes de programación más importantes de nuestra época tales como Pearl,
Java, C#, Python, entre otros. Dada su importancia, esta investigación tendrá por objeto explicar la
metodología de la programación orientada a objetos.
3. PRINCIPIO DEL ANÁLISIS
En la pasada década, se desarrollaron varios métodos de análisis y especificación del software. Los
investigadores han identificado los problemas y sus causas y desarrollando reglas y procedimientos para
resolverlos. Cada método de análisis tiene una única notación y punto de vista. Sin embargo, todos los
métodos de análisis están relacionados por un conjunto de principios fundamentales:
El dominio de la información, así como el dominio funcional de un problema debe ser representado y
comprendido.
El problema debe subdividirse de forma que se descubran los detalles de una manera progresiva (o
jerárquica).
Deben desarrollarse las representaciones lógicas y físicas del sistema.
Aplicando estos principios, el analista enfoca el problema sistemáticamente.
Se examina el dominio de la información de forma que pueda comprenderse su función más
completamente. La partición se aplica para reducir la complejidad.
La visión lógica y física del software, es necesaria para acomodar las ligaduras lógicas impuestas por los
requerimientos de procesamiento, y las ligaduras físicas impuestas por otros elementos del sistema.
4. ANÁLISIS ORIENTADO A OBJETOS
El análisis orientado a objetos es un enfoque de la ingeniería de software que modela un sistema como un
grupo de objetos que interactúan entre sí. Este enfoque representa un domino absoluto en términos de
conceptos compuestos por verbos y sustantivos, clasificados de acuerdo a su dependencia funcional.
Todo sistema de información requiere de artefactos o componentes (clases) para llevar a cabo tareas, es
de gran importancia dentro de la ingeniería de software tener un buen "análisis y diseño" para un mejor
desarrollo, que conlleva a qué tan "escalable" sea un sistema de información.
En este método de análisis y diseño se crea un conjunto de modelos utilizando una notación acordada
como, por ejemplo, el lenguaje unificado de modelado (UML).
5. METODOLOGÍA DE ANÁLISIS DE REQUERIMIENTO
En esta metodología se distinguen dos tipos de productos: los productos entregables y los productos no
entregables o internos. Los productos entregables son aquellos que se entregan oficialmente al cliente
como parte del desarrollo en fechas previamente acordadas, mientras que los no entregables son
productos internos al desarrollo que no se entregan al cliente. El único producto entregable definido en
esta metodología es el Documento de Análisis del Sistema (DAS). En el caso de que se desarrolle un
prototipo, éste puede considerarse producto entregable o no, en función de los acuerdos alcanzados
previamente con el cliente.
6. MÉTODO DE ANÁLISIS ORIENTADO AL FLUJO DE DATOS
La información se transforma como un flujo a través de un sistema basado en computadora. El sistema
acepta entrada de distintas formas; aplica un hardware, software y elementos humanos para transformar
la entrada en salida; y produce una salida en distintas formas. La entrada puede ser una señal de control
transmitida por un transductor, una serie de números escritos por un operador humano, un paquete de
información transmitido por un enlace a red, o un voluminoso archivo de datos almacenado en memoria
secundaria. La transformación puede comprender una sencilla comparación lógica, un complejo algoritmo
numérico, o un método de inferencia basado en regla de un sistema experto. La salida puede encender
un sencillo led o producir un informe de 200 páginas. En efecto, un modelo de flujo de datos puede
aplicarse a cualquier sistema basado en computadora independientemente del tamaño o complejidad.
7. DESARROLLO DEL SISTEMA ESTRUCTURADO DE DATOS
El desarrollo estructurado comenzó con la programación. A mediados de los 60 el enfoque estructurado
se extiende a la fase de diseño que se conoce como diseño estructurado, el cual se basa en definir una
abstracción más amplia usándolos módulos de programa como componentes básicos de construcción. A
mediados de los 70, se empezaron a surgir las técnicas estructuradas, donde se empezó a construir
programas de una forma artesanal con métodos de ingeniería. El desarrollo estructurado permitió facilitar
la comprensión de programas, normas para la aplicación de estructuras de datos y de control. En el
diseño estructurado se caracteriza por lo siguiente: Mayor nivel de abstracción (independencia del
lenguaje programación). Elemento básico de diseño: módulo. Modularidad que permite medir la calidad de
programas. Representa los procesos, flujos y estructuras de datos, de una manera jerárquica y
descendente. Ven el sistema como entradas-proceso-salidas.
8. DESARROLLO DEL SISTEMA JACKSON
El desarrollo de sistema de Jackson (DSJ) se obtuvo a partir del trabajo de M.A. Jackson sobre el análisis
del dominio de la información y sus relaciones con el diseño de programas y sistemas.
Para construir un DSJ el analista aplica los siguientes pasos:
Paso de las acciones y entidades. Usando un método muy similar a la técnica de análisis orientada al
objeto, en este paso se identifican las entidades (persona, objetos u organizaciones que necesita un
sistema para producir o usar información) y acciones (los sucesos que ocurren en el mundo real que
afectan a las entidades).
Paso de estructuración de las entidades. Las acciones que afectan a cada entidad son ordenadas en
el tiempo y representadas mediante diagramas de Jackson (una notación similar a un árbol).
Paso de modelación inicial. Las entidades y acciones se representan como un modelo del proceso; se
definen las conexiones entre el modelo y el mundo real.
Paso de las funciones. Se especifican las funciones que corresponden a las acciones definidas.
Paso de temporización del sistema. Se establecen y especifican las características de planificación del
proceso.
Paso de implementación. Se especifica el hardware y software como un diseño.
9. METODOLOGÍA DE PROGRAMACIÓN – ORIENTADO A
OBJETO
La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de
programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas
informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo,
acoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la
actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.
Características de la POO:
Existe un acuerdo acerca de qué características contempla la "orientación a objetos". Las características
siguientes son las más importantes:
Abstracción. Denota las características esenciales de un objeto, donde se capturan sus
comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede
realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin
revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden
también ser abstraídos, y, cuando lo están, una variedad de técnicas son requeridas para ampliar una
abstracción. El proceso de abstracción permite seleccionar las características relevantes dentro de un
conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo
real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante
ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que
se quiere atacar.
10. Encapsulamiento. Significa reunir todos los elementos que pueden considerarse pertenecientes a una
misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes
del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente
porque se suelen emplear conjuntamente.
Modularidad. Se denomina modularidad a la propiedad que permite subdividir una aplicación en
partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como
sea posible de la aplicación en sí y de las restantes partes. Estos módulos se pueden compilar por
separado, pero tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes
soportan la modularidad de diversas formas.
Principio de ocultación. Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de
objeto expone una interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de
la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no
tenga derecho a acceder a ellas; solamente los propios métodos internos del objeto pueden acceder a
su estado. Esto asegura que otros objetos no puedan cambiar el estado interno de un objeto de
manera inesperada, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes
relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y
limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de
objetos.
11. Polimorfismo. Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo
nombre; al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se
esté usando. O, dicho de otro modo, las referencias y las colecciones de objetos pueden contener
objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el
comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de
ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos
lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales
como las plantillas y la sobrecarga de operadores de C++.
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. Estos pueden
compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse
habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un
comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay herencia
múltiple.
Recolección de basura. La recolección de basura o garbage collection es la técnica por la cual el
entorno de objetos se encarga de destruir automáticamente, y por tanto desvincular la memoria
asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el
programador no debe preocuparse por la asignación o liberación de memoria, ya que el entorno la
asignará al crear un nuevo objeto y la liberará cuando nadie lo esté usando. En la mayoría de los
lenguajes híbridos que se extendieron para soportar el Paradigma de Programación Orientada a
Objetos como C++ u Object Pascal, esta característica no existe y la memoria debe desasignarse
expresamente.
12. ANÁLISIS DE LENGUAJES ORIENTADO A OBJETOS
La programación hoy en día se ha dividido en 2 partes, una es la programación en base a código simple
(esta puede ser en cualquier lenguaje de programación) en donde solo se usan líneas de programación
para que el software manipule diversos datos y posteriormente el usuario manipula el software con más
líneas de programación para que se entreguen nuevos resultados.
La segunda es la programación orientada a objetos, esta es la más común actualmente, se basa en la
manipulación de datos, objetos, patrones y cualquier elemento programable dentro de un software, su fin
básicamente es que la programación que se asigne pueda interactuar con uno o varios objetos
determinados y de esta manera poder tener un entorno interactivo que obedezca las órdenes de un
usuario con un simple clic y sin tener que escribir más líneas dentro del código base. La programación
orientada a objetos permite agrupar partes específicas de la información dada a un grupo de objetos, por
ejemplo se puede realizar un programa en el cual se asigne un botón para que se ingrese una imagen,
dicho botón debe servir para abrir un directorio y obtener la imagen, tras este botón hay varias líneas de
código que esperan el momento en que se obtenga la imagen para proceder con la siguiente acción o
instrucción.
13. FUNDAMENTOS DE PROGRAMACIÓN ORIENTADA A
OBJETO
A continuación te mostramos algunas cuantas definiciones que serán de utilidad en las futuras prácticas
que se realicen.
Programación: La programación se basa en la edición, manipulación e interpretación de la
información dada por el usuario hacia un software. Existen un sin fin de lenguajes de programación y
se debe ocupar el adecuado para interactuar con un software determinado.
Software: El concepto más utilizado (en electrónica basándonos en Visual Basic) es que el software
es un programa informático intangible que se encarga de realizar una o varias acciones dentro de un
entorno en constante cambio de información. Sin embargo algo más acertado es que Software es toda
información que el usuario le entrega a una computadora para que posteriormente esta sea
interpretada y manipulada (dependiendo de las ordenes que posea la computadora u ordenador) para
obtener un resultado final.
Atributo: Esto puede definirse como una propiedad, método o característica a un elemento de clase.
Un atributo es utilizado para definir bajo que condiciones el codigo será accesible en otras partes del
programa. Los atributos más comunes son Private y Public, estos atributos son utilizados en muchos
lenguajes de programación, en el caso de visual basic el atributo Private solo puede ser llamado o
usado dentro la misma clase, en cambio el atributo Public puede ser llamada desde cualquier parte del
programa.
14. Clase: Esta puede ser definida como la estructura dentro de una plantilla de programación, esta
también puede regir el comportamiento de objetos de un tipo determinado. En visual Basic se ocupa
una clase por cada elemento gráfico dentro del entorno de programación.
Jerarquía de clases: Una clase como se menciono anteriormente es una plantilla de programación, la
jerarquía de clases no es más que la herencia de características o datos a otras clases de mayor o
menor nivel dentro del mismo programa.
Constructor: método especial que se puede definir en una clase y que se llama para crear una
instancia de la clase. Se suele utilizar un constructor para especificar valores predeterminados o
realizar operaciones de configuración del objeto.
Tipo de datos: Cuando se realiza una programación se debe tener en cuenta que el programa no
entiende que los caracteres que ingresamos son numéricos o alfanuméricos, por lo tanto se debe
especificar que tipos de datos ingresamos en caso de necesitar realizar procedimientos matemáticos o
físicos.
Variables: Al trabajar con programación orientada a objetos es muy común el uso de variables, por
ejemplo en el caso de una calculadora que suma 2 números y entrega un resultado, los 3 datos son
variables y pueden interpretarse como X1 + X2 = Xt, una vez que ingresemos los valores las variables
ya poseen datos definidos y en dicha operación se transforman en constantes siempre y cuando
tengan datos asignados.
Herencia: mecanismo de la programación orientada a objetos que permite a una definición de clase
incluir toda la funcionalidad de una definición de clase distinta (y añadir nueva funcionalidad).
15. Constantes: Si un dato esta definido es muy común el uso de constantes, por ejemplo al realizar un
programa para encontrar la resistencia en un circuito que se mantiene con un voltaje constante de 5 V,
podemos decir que 5 V es una constante ya que no cambiara en el procedimiento y podemos expresar
esto de la siguiente forma: R = (5 V) * (I1). R se mantiene como variable hasta que se le asigne un
valor a I1 y se realice la operación.
Nombres: En el caso de la programación orientada a objetos se debe nombrar a cada objeto para que
este se rija en base a la programación asignada, es muy importante con confundir al nombre que se le
asigna al objeto con el Texto que se muestra en la pantalla ya que son muy diferentes. Una analogía
de esto seria: En la escuela te llaman de una manera en tu casa te llamaran por tu nombre, el apodo
que te han dado en la escuela te representa pero no posee ninguno valor que te autentifique ante otros
elementos.
Ciclos: Dentro de un programa hay algunos ciclos de programación utilizados para comparar valores o
instrucciones, por ejemplo si creamos un programa para ingresar una imagen pero esta no debe
sobrepasar de 1 Mb de peso, nosotros debemos decirle al programa con un ciclo que compare el peso
de la imagen con el peso máximo permitido, si la imagen pesa menos entonces esta puede pasar a la
siguiente instrucción que le asignemos al programa, en cambio si la imagen pesa más del máximo
permitido el programa devuelve una ventana de error y pide ingresar una imagen de menor tamaño.
Interfaz gráfica: Es la plantilla que usaremos el blanco para diseñar nuestro programa, en este se
pueden agregar botones, textos y otros elementos que interactúen con el programa que hemos
creado.
Instancia: objeto real creado en un programa.
16. CONCLUSIÓN
La programación orientada a objetos es un enfoque de programación que combina datos y acciones
asociadas (métodos) en estructuras lógicas (objetos). Este enfoque aumenta la capacidad para
administrar la complejidad del software, lo cual resulta especialmente importante cuando se desarrollan y
mantienen aplicaciones y estructuras de datos de gran tamaño. (MATLAB, 2018).
La programación Orientada a objetos es un paradigma de programación que usa objetos en sus
interacciones, para diseñar aplicaciones y programas informáticos. Está basada en varias técnicas,
incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso se
popularizó a principios de la década de 1990. En la actualidad, existe una gran variedad de lenguajes de
programación que soportan la orientación a objetos. (Ángel Roldán, 2017).
La POO es una forma especial de programar, este paradigma de programación es cercano a como
expresamos las cosas en la vida real en nuestro día a día. Con la POO tenemos que aprender a pensar
las cosas de una manera distinta para poder escribir nuestros programas en términos de objetos,
propiedades y métodos. La POO tiene como principio que todo en la vida es un objeto programable,
entonces para empezar a programar con este paradigma tendríamos que empezar con desarrollar
nuestro pensamiento basado en objetos.
17. BIBLIOGRAFÍA
Bendahan, Marcelo (s.f). Proceso de desarrollo de software. En Monografías. Recuperado el 02 de julio
de 2019 de https://www.monografias.com/trabajos5/desof/desof.shtml
Análisis y diseño orientado a objetos (s.f). En Wikipedia. Recuperado el 02 de julio de 2019 de
https://es.wikipedia.org/wiki/An%C3%A1lisis_y_dise%C3%B1o_orientado_a_objetos
Rojas, A. Wilcar (Noviembre 2012). Diseño estructurado. Cabudare. Slideshare. Recuperado de
https://es.slideshare.net/waralivt/desarrollo-estructurado
Desarrollo de Sistemas de Jackson (Mayo 2016). En Edukativos. Recuperado de
https://www.edukativos.com/apuntes/archives/10577
Programación Orientada a Objetos (s.f). En Wikipedia. Recuperado el 02 de julio de 2019 de
https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos
Lenguaje de Programación (s.f). En Wikipedia. Recuperado el 02 de julio de 2019 de
https://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n
Introducción a la programación orientada a objetos (s.f.) En Coursehero. Recuperado el 02 de julio de
2019 de https://www.coursehero.com/file/39920501/Introducci%C3%B3n-a-la-programaci%C3%B3n-
orientada-a-objetosdocx/