Sie sind auf Seite 1von 16

UNIDAD 4

PARADIGMAS DE LA INGENIERIA DE SOFTWARE

4.1 El enfoque estructurado.


A finales de los años 1960, Dijkstra estableció las bases de la programación estructurada,
demostrando que todo programa podía escribirse utilizando únicamente bloques
secuenciales de instrucciones, instrucciones condicionales y bucles.

Los métodos del enfoque estructurado se basan en hacer aproximaciones descendentes


donde se descompone el sistema completo en niveles funcionales cada vez más detallados,
desde una apreciación global inicial hasta el nivel de detalle necesario para su
implementación.

Estos métodos tienen como características primordiales la descomposición funcional del


sistema, el modelado de los datos y la representación del flujo de la información. Estos tres
aspectos forman las vistas del sistema: La especificación de datos, la especificación de los
procesos y la especificación de control. (Pressman R. S., 2002).

Diagrama de flujo de datos.

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:

1. Los datos, que llamamos atributos.


2. Las acciones o funciones, que llamamos métodos.

Fundamentos del Enfoque Orientado a Objeto

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.

Otros elementos a destacar (aunque no fundamentales) en el EOO son: Polimorfismo,


Enlace dinámico (o binding),
Concurrencia y Persistencia.

El análisis orientado a objetos (AOO) y el diseño orientado a objetos (DOO) constituyen un


enfoque distinto de desarrollo de sistemas. Estas técnicas se basan en los conceptos de la
programación orientada a objetos, que han sido codificados en UML (Lenguaje Unificado
de Modelación), un lenguaje estandarizado de modulación en el cual los objetos generados
no solo incluyen código referente a los datos sino también instrucciones acerca de las
operaciones que se realizaran sobre los datos.

EL Paradigma Orientado a Objetos es una disciplina de ingeniería de desarrollo y modelado


de software que permite construir más fácilmente sistemas complejos a partir de
componentes individuales.
Objetos + Mensajes = Programa

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:

1. Identificar clases candidatas

2. Buscar clases en biblioteca

3. Extraer nuevas clases si existen

4. Desarrollar las clases sino existen

5. Añadir las nuevas clases a la biblioteca

6. Construir n-esima iteración del sistema

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

Las Características del Enfoque Orientado a Objetos son:

a) Objeto: Los datos están cuantificados en entidades discretas y distinguibles llamadas


objetos.

b) Clase: Significa que los objetos con la misma estructura de datos (atributos) y
comportamiento (operaciones) se agrupa para formar una clase.

c) Atributo: Describen la clase o el objeto de alguna manera

d) Mensajes: Medio por el cual interactúan los objetos

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

5.1. IMPORTANCIA DE LA GESTION DE PROYECTOS DE


SISTEMAS DE INFORMACION

Antes que nada debemos de definir que es administración y que es un proyecto:


“Administración es el proceso de planear, organizar, dirigir y controlar el uso de recursos
para lograr objetivos”.
Otra definición es la de koontz “La administración es el proceso de diseñar y mantener un
ambiente en el cual las personas, trabajando juntas en grupos, alcanzan con eficiencia metas
seleccionadas”.
Entonces podemos definir a la administración como el proceso de organizar, planear, dirigir
y controlar; actividades y recursos con el fin de lograr un objetivo.
Ahora definimos que es un proyecto “un proyecto es una organización de gente dedicada a
un propósito u objetivo específico”.
Habiendo definido los conceptos de administración y de proyecto podemos decir que “La
administración de proyectos es la aplicación del enfoque de sistemas para la administración
de tareas tecnológicas complejas o de proyectos cuyos objetivos se establecen explícitamente
en términos de tiempo, costos y parámetros de realización”.
Después de haber visto la definición de administración de proyectos podemos dar nuestro
punto de vista acerca de que es la administración de proyectos; La administración de
proyectos es la forma de planear, organizar, dirigir y controlar una serie de actividades
realizadas por un grupo de personas que tienen un objetivo específico; el cual puede ser
(crear, diseñar, elaborar, mejorar, analizar, etc.) un problema o cosa.

¿QUÉ ES UN SISTEMA DE INFORMACIÓN?


El sistema de información es:
“Un conjunto formal de procesos que, operando sobre una colección de datos estructurada
según las necesidades de la empresa, recopilan elaboran y distribuyen la información (o parte
de ella) necesaria para las operaciones de dicha empresa y para las actividades de dirección
y control correspondientes (decisiones) desempeñar su actividad de acuerdo a su estrategia
de negocio”. Otra definición de sistemas de información consiste en “procesar entradas,
mantener archivos de datos relacionados con la organización y producir información,
reportes y otras salidas”.
Por lo tanto podemos definir un sistema de información como un conjunto de subsistemas
que incluyen hardware, software, medios de almacenamiento de datos ya sea primarios,
secundarios y bases de datos relacionadas entre sí con el fin de procesar entradas para realizar
transformaciones a esas entradas y convertirlas en salidas de información importantes en la
toma de decisiones.
El objetivo de un sistema de información es ayudar al desempeño de las actividades que
desarrolla la empresa, suministrando la información adecuada, con la calidad requerida, a la
persona o departamento que lo solicita, en el momento y lugar especificados con el formato
más útil para el receptor.
El sistema de información está al servicio de los objetivos de la empresa para lograr dichos
objetivos la empresa y sus dividuos adoptan procedimientos y prácticas de trabajo que
resultan más útiles y eficaces.
CICLO DE VIDA DE UN PROYECTO.
Los proyectos tienen un ciclo de vida que implica un crecimiento gradual conforme se
establecen las necesidades y se desarrollan las características del trabajo, una completa
implantación a medida de que se realice el trabajo y conclusión de las fases conforme se
complete el trabajo el proyecto llega a su final. Este ciclo es invariable, aunque (como sucede
con las personas no se conoce o no se respeta por completo).
“La administración de proyectos enseña que para alcanzar el objetivo deseado del proyecto
se debe seguir un proceso especifico. No existe ninguna excepción a esta regla. El proceso
se conoce como ciclo de vida”.
La mayoría de las empresas no respetan el ciclo de vida del proyecto por diferentes razones
estas pueden ser falta de conocimiento del ciclo de vida, brincarse algunas etapas por creerlas
no importantes y hacer modificaciones al ciclo de vida de acuerdo al tipo y tamaño de la
empresa.
 Factibilidad.
En esta etapa se conocen los recursos financieros con los que se cuentan para el proyecto, se
establecen presupuestos totales y se hace una organización preliminar. Se aplican estudios de
factibilidad para saber si se puede resolver el problema o no; al término de esta etapa hay una
decisión formal de continuar o no continuar con el proyecto.
Es muy parecida a la etapa de factibilidad en la que se refiere a la organización y a la
administración pero en esta se detalla mejor el presupuesto, la calendarización y el
financiamiento que le otorgan al proyecto.
 Producción.
Se realiza en todas las actividades concernientes a la creación del proyecto. Hay que decir
que esta etapa se caracteriza por ser totalmente diferente a las demás ya que las anteriores la
fase de factibilidad y la fase de diseño son orgánicas y de carácter evolutivo, mientras que la
fase de producción es de alto grado mecanicista.
 Culminación y puesta en marcha.
Culminación y puesta en marcha: En esta etapa se hacen pruebas finales al proyecto
realizado. También se da mantenimiento periódicamente verificando que no tenga fallas
lógicas.
5.2 Las fases de administración de un sistema
de información.

Recolección y análisis de datos: Hacer una descripción de los diferentes métodos e


instrumentos de recolección de datos, identificando los elementos y características que se
debe tener en cuenta en el diseño.

Recolectar información

 Procesamiento de la información
 Análisis de datos
 Técnicas
 Los instrumentos para recolectar datos

Desarrollo de soluciones alternativas: Desarrollar las diferentes alternativas de solución de


un problema para llevar a cabo un proyecto con éxito.

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)

Implementación del sistema.


5.2.1. PLANEAR, ORGANIZAR, INTEGRAR, DIRIGIR
Y CONTROLAR.

El proceso administrativo de toda empresa implica diversas actividades:

 Planificación
 Organización
 Dirección
 Control

La planificación o planeación es un proceso racional de toma decisiones por anticipado, que


incluye la selección de los cursos de acción que debe seguir una empresa y cada unidad de la
misma para conseguir unos determinados objetivos del modo más eficiente.

La organización comprende el establecimiento de una estructura intencional, formalizada,


permanentemente y roles para las personas que integran la empresa.

La dirección es la función administrativa que trata de influir en las personas de la


organización, para que, de forma voluntaria y con interés, contribuyan al logro de los
objetivos de la empresa y de su unidad funcional.

El Control es la actividad de seguimiento encaminada a corregir las desviaciones que puedan


darse al respecto de los objetivos. El control se ejerce con referencia a los planes, mediante
la comparación regular y sistemática de las previsiones habidas respecto de los objetivos.
5.3 El equipo de desarrollo de software.

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:

o Dificultad del problema.


o Tamaño del programa en líneas de código o puntos de función.
o Tiempo de vida del equipo.
o Grado en que el problema puede ser modularidad.
o Calidad requerida y fiabilidad del sistema que se va a construir.
o Rigidez de la fecha de entrega.
o Grado de comunicación requerido para el proyecto.
Paradigmas de organización de equipos según Constantine

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

El desarrollo ágil de software es un marco de trabajo conceptual de la ingeniería de


software que promueve iteraciones en el desarrollo a lo largo de todo el ciclo de vida del
proyecto. Existen muchos métodos de desarrollo ágil; la mayoría minimiza riesgos
desarrollando software en cortos lapsos de tiempo. El software desarrollado en una unidad
de tiempo es llamado una iteración, la cual debe durar de una a cuatro semanas.

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.

El empowerment consiste en otorgar autonomía para tomar decisiones al equipo de


desarrollo, y genera un clima de sinergia grupal que permite al grupo avanzar a pesar de las
complicaciones y dificultades que ocurren habitualmente en los proyectos –de allí que uno
de los métodos de trabajo más populares se haya bautizado con el nombre “scrum”, ya que
la imagen de los jugadores de rugby empleando su energía en avanzar todos juntos es muy
aplicable a los equipos de trabajo que utilizan esta metodología.

El feedback constante y presente en varios niveles permite el desarrollo incremental y el


crecimiento adaptativo de la programación, así también como una mejora constante en la
forma de trabajo de los equipos, lo que permite detectar problemas y resolverlos antes de
que desaten crisis que afecten la calidad o el tiempo y costo del desarrollo. Los principales
tipos de feedback ocurren a nivel producto, procesos y código.

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.

A nivel procesos se realizan frecuentes reuniones retrospectivas donde los integrantes de


los equipos comentan y discuten en profundidad tanto sus aciertos (para poder repetirlos y
convertilos en hábitos), así también como el trabajo que no se realizó correctamente o no
llevó al equipo a obtener los resultados esperados.

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.

En toda institución, empresa de salud, ámbito de desempeño laboral o social existe un


grupo de personas que interactúa entre sí, y las interacciones humanas implican
comunicación, generan conflictos y requieren de una coordinación y resolución de los
mismos. Por eso este tema es de suma importancia. Encontraras temas como:

COMUNICACIÓN: El proceso comunicativo, Tipos y redes de comunicación, Obstáculos


de la comunicación, Comunicación asertiva y Mejoramiento de la comunicación,
Instrumentos de comunicación, Coordinación, Tipos de coordinación

SOLUCIÓN DE CONFLICTOS: Conflicto, Causas, Tipos de conflictos, Etapas del


conflicto, Ventajas/Desventajas, Consecuencias, Solución de conflictos, Enfoque
estructural, del proceso y mixto, Estrategias para prevenir los conflictos.
BIBLIOGRAFIA

Análisis y Diseño de Sistemas. 6ª Edición; Ed. Pearson Educación México. 2005.

Sistema de Información Gerencial. Administración de la Empresa Digital. 10ª Edición; Ed.


Pearson Prentice Hall. 2008.

Análisis y Diseño de Sistemas. 6ª Edición; Ed. Pearson Educación México. 2005.

Fundamentos de Sistemasde Información. 2da. Edición. Ed. Prentice Hall. 1998.

Das könnte Ihnen auch gefallen