Beruflich Dokumente
Kultur Dokumente
El primero de estos métodos en aparecer fue el Diagrama de Flujo de Datos (Data Flow
Diagram, DFD), desarrollado por De Marco y popularizado por Yourdan. Este es un
método principalmente enfocado a la especificación de los procesos del sistema.
Los diagramas de flujo de datos se asemejan a un grafo que representa los procesos que se
realizan con los datos y las transformaciones que se aplican sobre ellos.
Los DFD tienen como característica distintiva el que pueden descomponerse en otros sub-
diagramas hasta llegar al nivel de detalle o granularidad que se requiera para completar el
diseño, siguiendo una aproximación descendente.
Al nivel más alto o superior, se le denomina nivel de contexto y los procesos que se
expresan en los niveles inferiores, donde el detalle es el máximo y ya no pueden
descomponerse más, se les conocen como procesos primitivos(Sanchez , Sicilia, &
Rodríguez, 2012).
Los Diagramas de Flujo de Datos proporcionan algunas ventajas sobre las explicaciones
descriptivas sencillas que pueden hacerse de un sistema y de la forma en que los datos se
mueven a través del mismo. Proporcionan libertad para emprender la implementación
técnica del sistema en las primeras etapas del análisis. Ofrecen una compresión más
profunda de la interrelación entre los sistemas y los subsistemas que lo componen. Permiten
una mejor comunicación con los usuarios sobre el conocimiento del sistema actual y
facilitan el análisis del sistema propuesto para determinar si se han definido los datos y
procesos necesarios.
4.2 EL ENFOQUE ORIENTADO A OBJETOS.
El contexto del Enfoque Orientado a Objetos (EOO) un objeto es una entidad que encapsula
datos (atributos) y acciones o funciones que los manejan (métodos). También para el EOO
un objeto se define como una instancia o particularización de una clase.
Los objetos de interés durante el desarrollo de software no sólo son tomados de la vida real
(objetos visibles o tangibles), también pueden ser abstractos. En general son entidades que
juegan un rol bien definido en el dominio del problema. Un libro, una persona, un carro, un
polígono, son apenas algunos ejemplos de objeto.
Cada objeto puede ser considerado como un proveedor de servicios utilizados por otros
objetos que son sus clientes. Cada objeto puede ser a la vez proveedor y cliente. De allí que
un programa pueda ser visto como un conjunto de relaciones entre proveedores clientes.
Los servicios ofrecidos por los objetos son de dos tipos:
El Enfoque Orientado a Objeto se basa en cuatro principios que constituyen la base de todo
desarrollo orientado a objetos.
Estos principios son: la Abstracción, el Encapsulamiento, la Modularidad y la Herencia.
El proceso Orientado a Objetos se mueve a través de una espiral evolutiva que comienza
con la comunicación con el usuario. Es en esta parte donde se define el dominio del
problema y se identifican las clases básicas del problema. La planificación y el análisis de
riesgos establecen una base para el plan de proyecto OO. El trabajo técnico asociado con la
ingeniería del software OO sigue las siguientes tareas:
La ingeniería de software hace hincapié en la reutilización. Por lo tanto las clases se buscan
en una biblioteca (de clases existentes) antes de construirse
b) Clase: Significa que los objetos con la misma estructura de datos (atributos) y
comportamiento (operaciones) se agrupa para formar una clase.
e) Polimorfismo: Significa que una misma operación puede comportarse de modos distintos
en distintas clases.
f) Herencia: Compartir atributos y operaciones entre clases tomando como base una
relación jerárquica.
UNIDAD 5
GESTION DE PROYECTOS DE SISTEMAS DE INFORMACION
Recolectar información
Procesamiento de la información
Análisis de datos
Técnicas
Los instrumentos para recolectar datos
Diseño del sistema: Fase de adquisición de actividades y técnicas del diseño de sistemas (fase
de diseño e integración)
Planificación
Organización
Dirección
Control
Existen casi tantas estructuras de organización del personal para el desarrollo de software
como organizaciones que se dedican a ello. Para bien o para mal, el organigrama no puede
cambiarse fácilmente.
La estructura de equipo depende del estilo de gestión de una organización, el número de
personas que compondrá el equipo y la dificultad general del problema.
Mantei [MAN81] sugiere tres organigramas de equipos genéricos.
Descentralizado Democrático (DD).
Este equipo de ingeniería de software no tiene un jefe permanente. Más bien, se nombran
coordinadores de tareas a corto plazo y se sustituyen por otros para diferentes tareas
Descentralizado controlado (DC).
Este equipo de ingeniería de software tiene un jefe definido que coordina tareas específicas
y jefes secundarios que tienen responsabilidades sobre subtareas. La resolución de problemas
sigue siendo una actividad del grupo, pero la implementación de soluciones se reparte entre
subgrupos por el jefe del equipo. La comunicación entre subgrupos e individuos es
horizontal. También hay comunicación vertical a lo largo de la jerarquía de control.
Centralizado controlado (CC).
El jefe de equipo se encarga de la solución de problemas a alto nivel y la coordinación interna
del equipo. La comunicación entre el jefe y los miembros del equipo es vertical
Factores de un proyecto:
Paradigma cerrado.
Tiene jerarquía tradicional de autoridad similar al equipo CC.
Trabajan bien cuando producen software similar a otros anteriores, pero son menos
innovadores.
Paradigma aleatorio.
El equipo se estructura libremente y depende de la iniciativa individual de los miembros.
Son buenos cuando se requiere innovación o avances tecnológicos.
Tienen problemas cuando se requiere un rendimiento ordenado.
Paradigma abierto.
Estructura el equipo de forma que consiga algunos de los controles asociados con el
paradigma cerrado y mucha de la innovación del paradigma aleatorio.
El trabajo se desarrolla en colaboración, con mucha comunicación y toma de decisiones
consensuadas.
Son adecuados para resolver problemas complejos, pero pueden no ser tan eficientes como
otros equipos.
Paradigma sincronizado.
Se basa en la partición natural de un problema y organiza los miembros del equipo para
trabajar en partes del problema con poca comunicación activa entre ellos.
5.3.1 Equipos agiles
Cada iteración del ciclo de vida incluye: planificación, análisis de requerimientos, diseño,
codificación, revisión y documentación. Una iteración no debe agregar demasiada
funcionalidad para justificar el lanzamiento del producto al mercado, pero la meta es tener
un demo (sin errores) al final de cada iteración. Al final de cada iteración el equipo vuelve a
evaluar las prioridades del proyecto.
Los métodos ágiles enfatizan las comunicaciones cara a cara en vez de la documentación.
La mayoría de los equipos ágiles están localizados en una simple oficina abierta, a veces
llamadas "plataformas de lanzamiento" (bullpen en inglés). La oficina debe incluir
revisores, escritores de documentación y ayuda, diseñadores de iteración y directores de
proyecto. Los métodos ágiles también enfatizan que el software funcional es la primera
medida del progreso. Combinado con la preferencia por las comunicaciones cara a cara,
generalmente los métodos ágiles son criticados y tratados como "indisciplinados" por la
falta de documentación técnica.
En los proyectos con Desarrollo Ágil se busca que todos los esfuerzos se empleen en la
creación del mejor software que satisfaga las necesidades del cliente. Esto significa que
todos los que forman parte del equipo de trabajo se concentran únicamente en tareas y
procesos que agregan valor al cliente del producto que se está creando, mejorando o
implementando. Adicionalmente, los usuarios o clientes reciben periódicamente prototipos
o versiones en funcionamiento del producto a medida que se va construyendo, lo cual les
permite evaluar el trabajo realizado, advertir sobre problemas que se detecten, y sugerir
mejoras o funcionalidad valiosa que no se había considerado originalmente (ya sea por
olvido, o porque la nueva funcionalidad se inspira en la experiencia de evaluar el producto
mientras se está construyendo)
La distinción entre las tareas relevantes y los que no agregan valor se consigue a través de
la creación de contextos con alto nivel de empowerment y feedback.
Periódicamente el cliente evalúa el estado real del software que se está creando, lo que
asegura que lo entregado al final del proyecto coincidirá con lo esperado. Esto se consigue
a través de un desarrollo incremental: el producto puede probarse desde las primeras
semanas y meses del proyecto al menos en cuanto a su funcionalidad más básica, que luego
va creciendo y mejorando –es por esto que se dice que desde el comienzo el producto ya
tiene dentro su ADN, del mismo modo que ocurre con la gestación de los seres vivos en la
Naturaleza.
Adicionalmente los desarrolladores suelen trabajar mucho en equipo y también por parejas,
revisando juntos el código y resolviendo problemas en lugar de tratar de cubrirlos, lo que
repercute en un producto de mejor calidad, mejor documentado, y simple de mantener.
5.3.2. GESTIÓN DE CONFLICTOS DE COORDINACIÓN Y
COMUNICACIÓN.