Monografias.com > Uncategorized
Descargar Imprimir Comentar Ver trabajos relacionados

Ingenieria de software (página 2)




Enviado por solangegalaz



Partes: 1, 2

7. Diccionario de
datos.

Contiene las características lógicas de los
sitios donde se almacenan los datos del
sistema,
incluyendo nombre, descripción, alias, contenido y
organización. Identifica los procesos donde
se emplean los datos y los sitios donde se necesita el acceso
inmediato a la información, se desarrolla durante el
análisis de flujo de datos y auxilia a los
analistas que participan en la determinación de los
requerimientos del sistema, su contenido también se emplea
durante el diseño.

Razones para su utilización:

  1. Los sistemas al sufrir cambios continuos, es muy
    difícil manejar todos los detalles. Por eso se
    registra la información, ya sea sobre hoja de papel o
    usando procesadores
    de texto. Los analistas mas organizados usan el diccionario de datos automatizados
    diseñados específicamente para el
    análisis y diseño de software.

  2. Para manejar los detalles en sistemas
    muy grandes, ya que tienen enormes cantidades de datos, aun
    en los sistemas mas chicos hay gran cantidad de
    datos.

    Los diccionarios de datos proporcionan asistencia
    para asegurar significados comunes para los elementos y
    actividades del sistema y registrando detalles adicionales
    relacionadas con el flujo de datos en el sistema, de tal
    manera que todo pueda localizarse con rapidez.

  3. Para asignarle un solo significado a cada uno de los
    elementos y actividades del sistema.
  4. Para documentar las características del sistema,
    incluyendo partes o componentes así como los aspectos
    que los distinguen. Tambien es necesario saber bajo que
    circunstancias se lleva a cabo cada proceso y
    con que frecuencia ocurren. Produciendo una comprensión
    mas completa. Una vez que las características
    están articuladas y registradas, todos los participantes
    en el proyecto
    tendrán una fuente común de información
    con respecto al sistema.

  5. Para facilitar el análisis de los detalles con la
    finalidad de evaluar las características y determinar
    donde efectuar cambios en el sistema.

Determina si son necesarias nuevas características
o si están en orden los cambios de cualquier
tipo.

Se abordan las características:

* Naturaleza de
las transacciones: las actividades de la empresa que
se llevan a cabo mientras se emplea el sistema.

* Preguntas: solicitudes para la recuperación o
procesamiento de información para generar una respuesta
especifica.

* Archivos y
bases de datos:
detalles de las transacciones y registros
maestros que son de interés
para la
organización.

* Capacidad del sistema: Habilidad del sistema para
aceptar, procesar y almacenar transacciones y datos

5- Localizar errores y omisiones en el sistema, detectan
dificultades, y las presentan en un informe. Aun en
los manuales, se
revelan errores.

Contenido de un registro del
diccionario

El diccionario tiene dos tipos de descripciones para el
flujo de datos del sistema, son los elementos datos y estructura de
datos.

Elemento dato: son los bloques básicos para todos
los demás datos del sistema, por si mismos no le dan un
significado suficiente al usuario. Se agrupan para formar una
estructura de
datos.

Descripción: Cada entrada en el diccionario consiste
de un conjunto de detalles que describen los datos utilizados o
producidos por el sistema.

Cada uno esta identificado con:

Un nombre: para distinguir un dato de otro.

Descripción: indica lo que representa en el
sistema.

Alias: porque un dato puede recibir varios nombres,
dependiendo de quien uso este dato.

Longitud: porque es de importancia de saber la cantidad de
espacio necesario para cada dato.

Valores de los datos: porque en algunos procesos solo son
permitidos valores muy
específicos para los datos. Si los valores de
los datos están restringidos a un intervalo especifico,
esto debe estar en la entrada del diccionario.

Estructura de datos: es un grupo de datos
que están relacionados con otros y que en conjunto
describen un componente del sistema.

Descripción:

Se construyen sobre cuatro relaciones de componentes. Se
pueden utilizar las siguientes combinaciones ya sea
individualmente o en conjunción con alguna otra.

Relación secuencial: define los componentes que
siempre se incluyen en una estructura de datos.

Relación de selección: (uno u otro), define
las alternativas para datos o estructuras de
datos incluidos en una estructura de datos.

Relación de iteración: (repetitiva), define
la repetición de un componente.

Relación opcional: los datos pueden o no estar
incluidos, o sea, una o ninguna iteración.

Notación

Los analistas usan símbolos especiales con la
finalidad de no usar demasiada cantidad de texto para la
descripción de las relaciones entre datos y mostrar con
claridad las relaciones estructurales. En algunos casos se
emplean términos diferentes para describir la misma
entidad (alias) estos se representan con un signo igual (=) que
vincula los datos.

8. Diagrama de
estructura de datos

Es una descripción de la relación entre
entidades (personas, lugares, eventos y
objetos) de un sistema y el conjunto de información
relacionado con la entidad.

Finalidades:

  1. Verificar los requerimientos de información.
  2. Describir los datos asociados con las entidades.
  3. Mostrar la relación entre entidades.
  4. Comunicar los requerimientos de datos a un diseñador
    de archivos o administrador
    de la base de
    datos.

Notación

Una común se usa al preparar los diagramas de
estructura de datos. Las entidades se representan mediante
rectángulos, con el nombre de la entidad en la parte de
arriba y una lista de atributos que describan la entidad. Cada
entidad se puede identificar mediante un atributo llave.

Uso en el diseño de archivo.

El uso de los diagramas de estructura de datos requiere que el
analista haga preguntas importantes acerca de la entidad a
describir. La llave de registro, identifica de una forma
única a la cuenta. Los demás detalles son los
atributos.

Además de los componentes básicos existen dos
elementos adicionales esenciales:

* Apuntadores atributos: enlazan dos entidades mediante la
información común, usualmente un atributo llave en
uno y un atributo (no llave) en el otro.

* Apuntadores lógicos: identifican las relaciones entre
las entidades, sirven para obtener acceso inmediato a la
información en una entidad, definiendo un atributo llave
en otra entidad.

Usualmente se indican en la parte inferior del diagrama, son
los enlaces con las demás entidades incluidas en el
diagrama.

Compartir datos entre las aplicaciones.

Cada sistema se puede desarrollar por separado, guardando los
datos de los estados de cuenta aparte de los datos del inventario. Al
desarrollar mas sistemas y crecer su utilidad, muy
seguido existe la necesidad de integrar los sistemas para
permitir que la información sea compartida por mas de un
sistema.

Redundancia e integridad:

Si cada sistema se desarrolla en forma independiente, la
información puede ser almacenada al menos una vez en cada
sistema, éste además de requerir espacio de
almacenamiento
extra, esta duplicación es llamada redundancia, para
reducir la integridad de la información; cuando se duplica
información es muy probable de que los detalles no
coincidan o que no todos sean actualizados. Resultando la perdida
de integridad en los datos, pudiendo ser corregido mejorando los
procedimientos.

Se puede evitar del todo disminuyendo la redundancia de datos
en los archivos.

9. Gráfica de
estructura

Muestra con símbolos la relación entre los
módulos de procesamiento y el software de la
computadora. Describen la jerarquía de los
módulos componentes y los datos que serán
transmitidos entre ellos. Incluye el análisis de las
transformaciones entrada-salida y el análisis de
transacción.

Las flechas con una circunferencia indican datos, mientras que
las que tienen un circulo representa información de
control de
programa,
tales como notas o condiciones de error.

Diagrama de contexto

Se pueden usar diagramas de flujos de datos para representar
el sistema a cualquier nivel de abstracción. El diagrama de flujo
de dato de nivel 0 se llama diagrama de contexto y en él
el sistema esta representado por un solo proceso, que identifica
cual es la función principal del sistema, mostrando
además, los flujos de información que lo relacionan
con otros sistemas: las entidades externas. El diagrama de
contexto tiene una gran importancia puesto que resume el
requisito principal del sistema de recibir ciertas entradas,
procesarlas de acuerdo con determinada función y generar
ciertas salidas. A partir del diagrama de contexto se puede ir
construyendo nuevos diagramas que vayan definiendo con mayor
nivel de detalle lo flujos de datos y procesos de
transformación que ocurren en el sistema, de forma que al
final obtenemos una jerarquía de diagramas.

Método del desarrollo por
prototipos

Los sistemas pueden desarrollarse con métodos y
lenguajes de
programación convencionales, aunque no tengan todas
las características y toques finales de un sistema
terminado. Quizás los informes no
tengan encabezados, logos, etc., falten controles de entradas y
procesamiento. Lo importante es el ensayo, y
hallar los requerimientos.

Los generadores de aplicaciones, son programas que
sirven para hacer otros programas, son un apoyo en la construcción de prototipos, permitiendo
definir la estructura visual de las pantallas, los registros de
entrada y el formato de los informes.

En algunos casos donde el sistema no será utilizado
frecuentemente, puede convertirse el prototipo en el sistema
terminado, o bien, cuando no son muchos los beneficios que se
obtienen.

Razones para desarrollar prototipos de sistemas

Los requerimientos de información no siempre
están bien definidos, pueden ser demasiados vagos
aún al formular el diseño. En otros casos, es
probable que una investigación de sistemas bien llevada, de
como resultado un conjunto muy amplio de requerimientos de
sistemas, pero construir un sistema que satisfaga a todos ellos
quizás necesite del desarrollo de nueva tecnología.

Los prototipos permiten evaluar situaciones extraordinarias
donde los encargados de diseñar e implantar sistemas no
tienen información ni experiencia, o también donde
existen situaciones de riesgo y costos elevados,
y aquellas donde el diseño propuesto es novedoso y
aún no ha sido probada.

La información obtenida con su uso se aplica en un
nuevo diseño que se emplea, otra vez, como prototipo y que
revela más información valiosa sobre diseño.
El proceso se repite las veces que sea necesario para revelar los
requerimientos esenciales del diseño.

Maquetas

Cuando se comienza el desarrollo, tiene por objetivo
presentar a los usuarios y/o clientes la
apariencia del sistema final. Los usuarios pueden manifestar su
opinión.

Ambos métodos son muy útiles para establecer la
viabilidad del proyecto y definir acuerdos sobre los objetivos y
resultados esperados.

10. Etapas del método de
prototipos

1- Identificación de requerimientos conocido.

La determinación de los requerimientos de una
aplicación es tan importante para el método de
desarrollo de prototipo como lo es para los métodos del
ciclo clásico de desarrollo de sistemas o análisis
estructurado (aunque las tácticas son diferentes). Por
consiguiente, antes de crear el prototipo, los analistas y
usuarios deben trabajar juntos para identificar los
requerimientos conocidos que tiene que satisfacerse. Para hacerlo
determinan los fines para lo que servirá el sistema y el
alcance de sus capacidades.

2- Desarrollo de un modelo de
trabajo

Es útil comenzar el proceso de construcción del
prototipo con el desarrollo de un plan general que
permita a las personas conocer lo que se espera de ellas y del
proceso de desarrollo. Es difícil, y en ocasiones
imposibles, fijar una fecha tentativa de terminación. La
experiencia con el sistema es la que determina eventualmente
cuando en sistema esta terminado.

Para comenzar la primera iteración, usuarios y
analistas identifican de manera conjunta los datos que son
necesarios para el sistema y especifican la salida que debe
producir la aplicación.

Las decisiones de diseño necesarias para desarrollar la
salida del sistema cambian muy poco en relación con las
tomadas en otros métodos de desarrollo. Sin embargo, con
un prototipo, se espera que las especificaciones iniciales
estén incompletas.

En el desarrollo de un prototipo se preparan los siguientes
componentes:

*El lenguaje
para el diálogo o conversación entre el usuario y
el sistema

*Pantallas y formato para la entrada de datos

*módulos esenciales de procesamiento

*Salida del sistema

Al construir el prototipo se deben seguir los
estándares para datos que emplea la
organización.

En esta etapa es más importante la rapidez con que se
construye el prototipo que la eficiencia de
operación. Es por esto que el analista no intenta
optimizar la velocidad de
operación del sistema

Durante la evaluación
los analistas de sistemas desean capturar 3)El prototipo y el
usuario

Es responsabilidad del usuario trabajar con prototipo
y evaluar su característica y operación. La
experiencia con el sistema bajo condiciones permite obtener la
familiaridad indispensable para determinar los cambios o mejoras
que sean necesarios así como la eliminación de
características inadecuadas o innecesarias.

4)Revisión del prototipo

información sobre los que les gusta y los que les
desagrada a los usuarios. La información obtenida
tendrá influencia sobre las características de la
siguiente versión de la aplicación.

Los cambios al prototipo son planificados con los usuarios
antes de llevarlos a cabo. El analista es el responsable de
realizar las modificaciones.

5) Repetición del proceso las veces que sea
necesario.

El proceso finaliza cuando los usuarios y analistas
están de acuerdo en que el sistema ha evolucionado lo
suficiente como para incluir todas las características
necesarias o cuando ya es evidente que no se obtendrá
mayor beneficio.

6) El abandono o dejarlo como esta:

Cuando se verifica de que no es posible desarrollar el sistema
para satisfacer los objetivos deseados, ya sea por la
tecnología existente o por el factor economico.

11. Coordinación y
Gestión
del proyecto.

La gestión del proyecto presupone establecer
condiciones para el desarrollo del mismo. Involucra actividades
de: planificación, estimación de
recursos,
seguimiento y control y evaluación del proyecto.

  • La planificación de proyectos se
    define como la predicción de la duración de las
    actividades y tareas a nivel individual.
  • La estimación se define como la predicción de
    personal,
    esfuerzo y costo que se
    requerirá para terminar todas las actividades y productos
    conocidos asociados con el proyecto. El tamaño del
    producto a
    desarrollar es una de las primeras tareas en la gestión
    del proyecto. El tamaño se define como la cantidad de
    código fuente, especificaciones, casos de prueba,
    documentación del usuario y otros productos tangibles
    que son salida del proyecto, éste se basa principalmente
    en la experiencia de proyecto anteriores.
  • El seguimiento de proyectos es la recolección de
    datos y su acumulación sobre recursos consumidos, costos
    generados asociados con un proyecto. La medición en los
    proyectos de desarrollo de software es una actividad
    fundamental para la mejora de la productividad,
    el costo y la calidad del
    producto final.

Proceso de Iniciación del Proyecto.

Abarca aquellas actividades de creación de la
estructura del proyecto. Durante este ciclo se define el ciclo de vida
del software para este proyecto y se establecen en los planes
para su gestión. Se estiman y asignan los recursos
necesarios a fin de ejecutar las distintas tareas que demanda el
proyecto. Se identifican y seleccionan estándares,
metodologías y herramientas
para la gestión y ejecución del mismo y, por
último, se prepara y establece un plan para su
implementación adecuada y oportuna. El plan de
Gestión del Proyecto Software que conducirá el
desarrollo se produce como culminación de este
proceso.

12. Mediciones y
estimaciones

El software al ser intangible, no tener peso, ni volumen, ni
superficie, etc. se mide a través de diversos aspectos
clave en el desarrollo. La medición determina cuales son
los aspectos y proporcionan métodos para medirlos.

La medición y estimación atacan los tres
problemas
claves de la ingeniería del software:

  1. Estimar costos y recursos en un proyecto software
  2. Garantizar la calidad del producto final
  3. Mejorar la productividad del ingeniero de software durante
    el desarrollo.

Teniendo en cuenta estos objetivos, las métricas se
centran en cuatro aspectos:

Para estimar los recursos es necesario tener en cuenta una
serie de factores de riesgo que influyen sustancialmente en la
precisión de las estimaciones de los recursos
humanos necesarios para la realización del proyecto.
Los mas importantes son:

*Complejidad de la tarea.

*Modificaciones permitidas a lo largo del desarrollo

*Experiencia previa de los desarrolladores

*Duración fijada del proyecto.

*Estructuración del problema y de las tareas.

*Disponibilidad de datos e información suministrada por
el usuario.

*Disponibilidad y facilidad de comunicación con el usuario.

Además de las fases estándar del desarrollo, hay
que tener en cuenta la coordinación y seguimiento del
proyecto que suponen una importante carga de trabajo y que son
olvidadas durante la planificación o no se le dedica
mucho.

El costo global se compone de las partidas de viajes,
hardware (nuevo o
actualización), software (en caso de comprar algún
paquete para el desarrollo), gastos comunes, y
personal que es el mas influyente, ya que el costo de un proyecto
es directamente proporcional a los recursos humanos.

El proceso engloba todas las actividades y fases que se llevan
a cabo durante la realización del proyecto. Se persigue
determinar si en cada fase los resultados producidos se
corresponden con los esperados y en establecer un control sobre
los recursos estimados para cada una de las fases.

El producto incluye cualquier documento o software
desarrollado que se genere durante el proceso completo. En las
medidas de productos software existen medidas directas (costo del
proyecto, esfuerzo empleado, líneas de código
implementadas, etc.) y medidas indirectas

( funcionalidad, fiabilidad, eficiencia, facilidad de mantenimiento,
etc.).

Herramientas para el desarrollo de sistemas

Las herramientas son cualquier dispositivo que,
empleándose adecuadamente, mejora el desempeño del
desarrollo de sistemas de
información.

Se agrupan en las tres siguientes herramientas
automatizadas:

Herramientas de tipo Front-end

Automatizan las primeras actividades del proceso de desarrollo
de sistemas.

Esta herramienta proporciona soporte para el desarrollo de
modelos
gráficos de sistemas y procesos

Los diagramas de
flujo son representativos de este tipo de herramientas.

Herramientas para análisis

Éstas herramientas ayudan a los especialistas en
sistemas a documentar un sistema existente, ya sea manual o
automatizado. También sirve para determinar los
requerimientos de una nueva aplicación. Incluye:

– Herramientas para recolección de datos: capturan
detalles que describen sistemas y procedimientos en uso.
Documentan procesos y actividades de decisión, se utilizan
para apoyar la tarea de identificar requerimientos.

– Herramientas para diagramación: crean
representaciones gráficas de sistemas y actividades.
Apoyan el dibujo y
revisión de diagramas de flujos de datos e iconos
asociados con el análisis estructurado. Incluyen programas
para representación en diagramas de flujo.

– Herramientas para el diccionario: registran y mantienen
descripciones de los elementos del sistema, como grupo de datos,
procesos, alimentos de
datos, etc. Frecuentemente proporcionan la capacidad de examinar
las descripciones del sistema, para decidir si son incompletas o
inconsistentes.

Herramientas para diseño

Apoyan el proceso de formular las características que
el sistema debe tener para satisfacer los requerimientos deseados
durante las actividades de análisis. Incluye:

– Herramienta de especificación: apoyan el proceso de
formular las características, como por ejemplo deben tener
una aplicación como entradas, salidas, procesamientos
específicos de control.

– Herramienta para presentación: se utilizan para
describir la posición de datos, mensajes, y encabezados
sobre las pantallas de las terminales, informes y otros medios de
entradas y salidas.

Los analistas utilizan las herramientas para el diseño de
sistemas desde el inicio de la era de las computadoras.
Ahora a las herramientas se le están dando un nuevo
significado en el diseño de software.

Herramientas de tipo back-end

Su finalidad es ayudar al analista a formular la lógica
del programa, los algoritmos de
procesamiento y la descripción física de datos.

Tambien ayudan a la intersección con los dispositivos
(para entrada y salida). Estas actividades convierten los
diseños lógicos del software en un código de
programación; este es que da existencia a
la aplicación.

Herramientas para el desarrollo

Ayudan al analista a trasladar los diseños en
aplicaciones funcionales. Incluye:

– Herramientas para ingeniería Software: apoyan el
proceso de formular diseños de software, incluyendo
procesamientos y controles.

– Generadores de códigos: producen el código
fuente y las aplicaciones a partir de especificaciones
funcionales bien articuladas

– Herramientas para pruebas:
apoyan la fase evaluación de un sistema. Incluyen
facilidades para examinar la correcta operación del
sistema.

Herramientas integrales

Proporcionan un ambiente que
automatiza tareas claves a lo largo del proceso de desarrollo.
Estas herramientas facilitan el diseño, administración y mantenimiento del
código. Brinda un ambiente eficiente para crear,
almacenar, manipular y documentar sistemas.

13. Reingeniería e ingeniería
inversa

Los conceptos de reingeniería e ingeniería
inversa están ligados al desarrollo de software a gran
escala, donde una
mejora en proceso de este desarrollo supone un aumento en la
competitividad
de la empresa.

Aunque hay que tener en cuenta que esta mejora es, en general
a largo plazo (normalmente de uno a dos años) ambas
actividades, están orientadas a automatizar el
mantenimiento de aplicaciones. Esta es una tarea que consume gran
cantidad de recursos, por lo que cualquier reducción en el
tiempo y
recursos empleados en ella supone una importante mejora en la
productividad del proceso. Este es el principal objetivo de la
reingeniería. Se trata, de analizar el código o el
diseño actual y modificarlo con la ayuda de herramientas
automáticas para traducirlos a códigos mas
estructurados, y más eficientes.

Dentro de la reingeniería, el proceso de pasar del
código a una descripción de mas alto nivel es lo
que se denomina:

Ingeniería inversa.

La reingeniería e ingeniería inversa prolongan
la vida del software.

Dado que es una labor estratégica, es conveniente
conocer cuando conviene realizar la tarea de reingeniería
para una aplicación y cuándo es más rentable
sustituirla e implementar una nueva. Las aplicaciones para el
primer paso, son aquellas en la que se produce las siguientes
situaciones:

  • Fallos frecuentes, que son difíciles de
    localizar
  • Son poco eficientes, pero realizan la función
    esperada
  • Dificultades en la integración con otros sistemas
  • Calidad pobre del software final
  • Resistencia a introducir cambios
  • Pocas personas capacitadas para realizar
    modificaciones
  • Dificultades para realizar pruebas
  • El mantenimiento consume muchos recursos
  • Es necesario incluir nuevos requisitos, pero los
    básicos se mantienen.

Desarrollo de software con y para reuso

El desarrollo de software con reúso consiste en
desarrollar una aplicación usando software ya existente.
Cualquier profesional lo utiliza

El desarrollo de software para reuso consiste en la
construcción de un sistema con la intención de
reutilizar partes de él en futuros desarrollos. Con
software a gran escala, un buen profesional con experiencia puede
desarrollarlo.

Estudios realizados determinan que la práctica de
reutilización del software en un proyecto aumenta la
productividad durante el desarrollo de dicho proyecto.

Sin embargo, la reutilización del software no cubre
solo el reuso de códigos, abarca todo un amplio de
posibilidades en los diferentes niveles, metodología, ciclos de vida, planes del
proyecto, especificaciones de requisitos, diseños,
arquitectura
software, planes de validación, juegos de
prueba y documentación.

 

 

Autor:

Solange Galáz

1ro. de Analista de Sistemas, C. Del U. Entre Ríos,
Argentina

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter