El documento describe los fundamentos y métodos de análisis de requerimientos para el desarrollo de software. Explica que el análisis de requerimientos es crucial para definir un proyecto de software y que existen requerimientos funcionales y no funcionales. Luego, detalla diversos métodos de análisis como el orientado a objetos, orientado a flujos de datos, estructurado y de Jackson, resaltando que comparten principios como la representación del dominio y la partición del problema.
2. Introducción
El análisis de requerimiento es el conjunto de técnicas y procedimientos
que nos permiten conocer los elementos necesarios para definir un
proyecto de software. Es la etapa más crucial del desarrollo de un
proyecto de software.
Según la IEEE se divide en funcionales y no funcionales; los funcionales
hablan sobre la capacidad de un sistema requerida por el usuario para
resolver un problema o alcanzar un objetivo y los no Funcionales son la
capacidad que debe poseer un sistema para satisfacer un contrato, un
estándar, una especificación u otro documento formalmente impuesto.
Para realizar bien el desarrollo de software es esencial realizar una
especificación completa de los requerimientos de los mismos.
3. Planificación de proyecto de software: Es el proceso de gestión para la
creación de un sistema o software, la cual encierra un conjunto de
actividades. Su importancia como disciplina de la ingeniería en el
desarrollo de sistemas de información. Con la planificación se puede
analizar, diseñar, programar y aplicar un software de manera correcta y
organizada, cumpliendo con todas las especificaciones del cliente y el
usuario final.
PRINCIPIO DEL ANALISIS: Se han desarrollado 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.
4. · 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.
5. ANALISIS ORIENTADO A OBJETOS
El propósito es definir todas las clases que son relevantes al problema
que se va a resolver, las operaciones y atributos asociados, las
relaciones y comportamientos asociadas con ellas. Para cumplirlo se
deben ejecutar las siguientes tareas:
1. Los requisitos básicos del usuario deben comunicarse entre el cliente
y el ingeniero del software.
2. Identificar las clases (es decir, definir atributos y métodos).
3. Se debe especificar una jerarquía de clases.
4. Representan las relaciones objeto a objeto (conexiones de objetos).
6. 5. Modelar el comportamiento del objeto.
6. Repetir iterativamente las tareas de la 1 a la 5 hasta completar el
modelo.
El objetivo del análisis orientado a objetos es desarrollar una serie de
modelos que describan el software de computadora al trabajar para
satisfacer un conjunto de requisitos definidos por el cliente. El AOO,
como los métodos de análisis convencional forma un modelo de
análisis multiparte para satisfacer este objetivo. El modelo de análisis
ilustra información, funcionamiento y comportamiento dentro del
contexto de los elementos del modelo de objetos.
7. METODOLOGIAS DE ANALISIS DE REQUERIMIENTO
Las metodologías de análisis de requerimientos facilitan al analista la
aplicación de los principios fundamentales del análisis de una manera
sistemática. (Características Comunes). Aunque cada método introduce
nueva notación y heurística de análisis, todos los métodos pueden ser
evaluados en el contexto de las siguientes características comunes:
· Mecanismos para el análisis del dominio de la información.
· Método de representación funcional
· Definición de interfaces
· Mecanismos para subdividir el problema
· Soporte de la abstracción.
8. Método de análisis orientado al flujo de datos.
Permite representar el esquema general de un sistema de un solo vistazo,
para posteriormente desglosarlo por niveles, paso a paso, a fin de
representar los detalles. Actualmente existen varias tecnologías y
herramientas basadas en esta metodología, aunque es mas popular en el
ambiente de negocios que en el de desarrollo de software .
Herramientas comunes del Análisis Orientado a Flujo
Diagramas de flujo de datos (DFD)
- Diccionario de datos (DD)
- Pseudocódigos
- Tablas de decisión
- Árboles de decisión
9. Desarrollo del sistema estructurado de datos: El análisis estructurado
concentra en especificar lo que se requiere que haga el sistema o la
aplicación. No se establece cómo se cumplirán los requerimientos o la
forma en que implantará la aplicación. Más bien permite que las
personas observen los elementos lógicos (lo que hará el sistema)
separados de los componentes físicos (computadoras, terminales,
sistemas de almacenamiento, etc.) Después de esto se puede
desarrollar un diseño físico eficiente para la situación donde será
utilizado.
Elementos del análisis estructurado:
Los elementos esenciales son símbolos gráficos, diagramas de flujo de
datos y diccionario centralizado de datos.
10. Se enfoca en el desarrollo de especificaciones del software. La meta del
diseño estructurado es crear programas formados por módulos
independientes unos de otros desde el punto de vista funcional.
El diseño estructurado es una técnica específica para el diseño de
programas y no un método de diseño de comprensión. Esta técnica
conduce a la especificación de módulos de programa que son
funcionalmente independientes. La herramienta fundamental del
diseño estructurado es el diagrama estructurado, los cuales son de
naturaleza gráfica y evitan cualquier referencia relacionada con el
hardware o detalles físicos. Su finalidad no es mostrar la lógica de los
programas. Los diagramas estructurados describen la interacción entre
módulos independientes junto con los datos que un módulo pasa a
otro cuando interacciona con él. Estas especificaciones funcionales para
los módulos se proporcionan a los programadores antes que dé
comienzo la fase de escritura de código.
11. 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. En palabras de Jackson: “El que desarrolla el software
comienza creando un modelo de la realidad a la que se refiere el
sistema, la realidad que proporciona su materia objeto [del sistema]…”
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 mudo real que afectan a las entidades).
12. 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
alas 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.
13. Metodología de programación – orientado a objeto: al igual que otras
metodologías de diseño orientadas a la información, crea una
representación del campo del problema del mundo real y lo hace
corresponder con el ámbito de la solución, que es el software.
El diseño orientado al objeto produce un diseño que interconecta
objetos de datos (elementos dato) y operaciones de una forma que
modulariza la información y el procesamiento; por el contrario, otros
métodos dejan aparte el procesamiento.
La naturaleza única del diseño orientado al objeto queda reflejada en
su capacidad de construir sobre tres pilares conceptuales importantes
del diseño de software:
¨ Abstracción
¨ Ocultamiento de información
¨ Modularidad
14. El análisis orientado al objeto (AOO), el diseño orientado al objeto
(DOO) y la producción orientada al objeto comprenden un conjunto de
actividades de Ingeniería del Software para la construcción del sistema
orientado a objetos.
Utilizando el diseño orientado al objeto el diseñador puede crear sus
propios tipos abstractos de datos y abstracciones funcionales y hacer
corresponder el campo del mundo real con esas abstracciones creadas
por el propio programador. Esta correspondencia será la mayoría de las
veces mucho más natural, ya que el rango de tipos abstractos de datos
que puede inventar el diseñador es virtualmente ilimitado. Más aún, el
diseño del software se desliga de los detalles de representación, sin que
ello afecte al sistema de software global
15. Análisis de lenguajes 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 que 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).
No está restringido al diseño de programas de computadora, sino que cubre
sistemas enteros de distinto tipo. Las metodologías de análisis y diseño más
modernas son "casos de uso" guiados a través de requerimientos, diseño,
implementación, pruebas, y despliegue.
El lenguaje unificado de modelado se ha vuelto el lenguaje de modelado estándar
usado en análisis y diseño orientado a objetos.
16. Fundamentos de programación orientada a objeto: es una técnica para desarrollar
soluciones computacionales utilizando componentes de software (objetos de
software).
Objeto: Componente o código de software que contiene en sí mismo tanto sus
características (campos) como sus comportamientos (métodos); se accede a través
de su interfaz o signatura.
Campo: Es una característica de un objeto, que ayuda a definir su estructura y
permite diferenciarlo de otros objetos. Se define con un identificador y un tipo, el
cual indica los valores que puede almacenar. El conjunto de valores de los campos
definen el estado del objeto.
Método: Es la implementación de un algoritmo que representa una operación o
función que un objeto realiza. El conjunto de los métodos de un objeto determinan
el comportamiento del objeto.
Es un paradigma de la programación de computadores; esto hace referencia al
conjunto de teorías, estándares, modelos y métodos que permiten organizar el
conocimiento, proporcionando un medio bien definido para visualizar el dominio
del problema e implementar en un lenguaje de programación la solución a ese
problema.
17. Se basa en el modelo objeto donde el elemento principal es el objeto,
el cual es una unidad que contiene todas sus características y
comportamientos en sí misma, lo cual lo hace como un todo
independiente pero que se interrelaciona con objetos de su misma
clase o de otras clase, como sucede en el mundo real.
Anterior al paradigma de objetos, está el paradigma algorítmico o de
procesos, el cual se fundamenta en los procesos o funciones que se
llevan a cabo en el mundo real dentro del dominio del problema
analizado. Se refiere a lo que entra, como lo maneja el proceso, y lo que
sale del proceso. La programación tradicional la sustentan los procesos,
algoritmos, bloques de construcción modulares cuya abstracción va de
lo general a lo particular, mientras que en la POO tiene como marco de
referencia conceptual el objeto, el cual pertenece a una clase que
agrupa a todos compañeros con las mismas características y un
comportamiento similar.
18. Conclusiones
Se han desarrollado 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.
19. Bibliografía
Análisis de sistemas estructurado y método de diseño. (s.f.). Recuperado
de
https://es.wikipedia.org/wiki/An%C3%A1lisis_de_sistemas_estructurado_y_
m%C3%A9todo_de_dise%C3%B1o
Desarrollo de Sistemas de Jackson. (mayo 6, 2016). Recuperado de
http://www.edukativos.com/apuntes/archives/10577
Diseño Estructurado de Sistemas. (s.f.). Recuperado de
http://www.exa.unicen.edu.ar/catedras/prog1/introprog2/sites/default/file
s/ApuntesDiagramaEstructura.pdf
Jesús Alexander González Guerrero. (10 de mayo de 2011). Fundamentos
del análisis de requerimientos. Recuperado de
http://humgbgh.blogspot.com/2011/05/fundamentos-del-analisis-de.html
20. Bibliografía
MANUEL CORNEJO. (s.f.). Metodología del desarrollo de sistema de
información. Recuperado de http://si-
equipo2.blogspot.com/2010/03/metodologia-del-desarrollo-de-
sistema.html
Metodología orientada al objeto. (s.f.). Recuperado de
ftp://www.dlsi.ua.es/people/jaime/apuntes/isi_tema3.1.pdf
Proceso de desarrollo de software. (s.f.). Recuperado de
http://www.trabajoline.com.ar/CursosOnLine/DevSoft/devEs3.htm