Академический Документы
Профессиональный Документы
Культура Документы
CONCEPTOS INTRODUCTORIOS
Software: Se conoce como software al equipamiento lgico o soporte lgico de una
computadora digital; comprende el conjunto de los componentes lgicos necesarios
que hacen posible la realizacin de tareas especficas, en contraposicin a los
componentes fsicos, que son llamados hardware.
Los componentes lgicos incluyen, entre muchos otros, las aplicaciones
informticas; tales como el procesador de textos, que permite al usuario realizar todas
las tareas concernientes a la edicin de textos; el software de sistema, tal como el
sistema operativo, que, bsicamente, permite al resto de los programas funcionar
adecuadamente, facilitando tambin la interaccin entre los componentes fsicos y el
resto de las aplicaciones, y proporcionando una interfaz para el usuario.
Sistema es un conjunto organizado de cosas o partes interactuantes e
interdependientes, que se relacionan formando un todo unitario y complejo. Cabe
aclarar que las cosas o partes que componen al sistema, no se refieren al campo
fsico (objetos), sino ms bien al funcional. De este modo las cosas o partes pasan a
ser funciones bsicas realizadas por el sistema. Podemos enumerarlas en: entradas,
procesos y salidas.
Sistema de informacin es un conjunto de elementos que interactan entre s con el
fin de realizar cuatro actividades bsicas: entrada, almacenamiento, procesamiento y
salida de informacin.
Sistema es un todo organizado y complejo, Los lmites o fronteras entre el sistema y
su ambiente admiten cierta arbitrariedad.
Un sistema es un conjunto de unidades recprocamente relacionadas, De ah se
deduce el concepto: globalismo (o totalidad).
Tipos de Sistemas
La estructura interna determina el comportamiento de los sistemas, y as podemos
establecer una tipologa de la estructura de los sistemas atendiendo al
comportamiento que nos muestran.
Un sistema es estable cuando se halla formado o dominado por un bucle negativo.
Un sistema es inestable cuando el bucle es positivo, es decir, cuando en el bucle
dominante haya un nmero impar de relaciones negativas, tendremos un bucle
negativo, y el sistema ser estable.
Para facilitar una metodologa comn entre el cliente y la compaa de software, los
modelos de ciclo de vida se han actualizado para reflejar las etapas de desarrollo
involucradas y la documentacin requerida, de manera que cada etapa se valide
antes de continuar con la siguiente etapa. Al final de cada etapa se arreglan las
revisiones de manera que no se encuentren errores.
Anlisis y diseo
Anlisis.
Es necesario determinar qu elementos intervienen en el sistemas a desarrollar, as
como su estructura, relaciones, evolucin en el tiempo, detalle de sus funcionalidades,
que van a dar una descripcin clara de que sistema vamos a construir, qu
funcionalidades va a aportar y qu comportamiento va a tener, responde a la pregunta
qu vamos hacer?
Diseo.
Tras la etapa anterior ya se tiene claro que debe hacer el sistema, ahora tenemos que
determinar cmo va a hacerlo (cmo debe ser construido el sistema; aqu se
definirn en detalle entidades y relaciones de las bases de datos, se pasar de casos
de uso esenciales a su definicin como casos expandidos reales, se seleccionara el
libre de problemas lo cual se puede describir durante este proceso, para llevar a cabo
las correcciones.
Confiable: Los errores del proceso son descubiertos antes de que se conviertan en
errores del producto.
Robusto: Puede continuar el proceso a pesar de problemas inesperados.
Mantenible: Puede el proceso evolucionar para cumplir con los objetivos
organizacionales.
Rapidez: Que tan rpido puede producirse el sistema.
Problemas: Normalmente, las especificaciones son incompletas o anmalas.
La garanta de la calidad del software es una actividad de proteccin que se aplica a
lo largo de todo el proceso de ingeniera de software. La SQA (Software Quality
Assurance) engloba:
* Un enfoque de gestin de calidad
* Tecnologa de Ingeniera de Software efectiva (mtodos y herramientas)
* Revisiones tcnicas formales que se aplican durante el proceso del software
* Una estrategia de prueba multi escalada
* Un control de la documentacin del software y de los cambios realizados
* Un procedimiento que asegure un ajuste a los estndares de desarrollo de software
* Mecanismos de medicin y de generacin de informes.
El control de la calidad es una serie de revisiones, y pruebas utilizados a lo largo del
ciclo del desarrollo para asegurar que cada producto cumple con los requisitos que le
han sido asignados.
El instituto de la ingeniera del software (CEI) ha desarrollado un modelo completo de
un amplio proceso basado en un conjunto de capacidades de software y de sistemas
que deben de estar presentes conforme las organizaciones alcanzan diferentes
grados de capacidad y madurez.
MODELO DE CAPACIDAD DE MADUREZ (IMCM)
Nivel 0: Incompleto. El rea del proceso (por ejemplo, la gestin de requisitos) an
no se realiza o todava no alcanza todas las metas y objetivos definidos.
Nivel 1: Realizado. Las tareas de trabajo requeridas para producir el producto
especfico han sido realizadas.
Nivel 2: Administrado. Todo el trabajo asociado con el rea de proceso se ajusta a
una poltica organizacional definida; toda la gente que ejecuta el trabajo tiene acceso
a recurso adecuados para realizar su labor; los clientes estn implicados de manera
activa en el rea de proceso, cuando esto se requiere todas las tareas de trabajo y
productos estn monitoreadas, controlados y revisados; y son evaluados en apego a
la descripcin del proceso.
El enfoque estructurado.
En el Enfoque Estructurado se usan los DFD (Diagramas de Flujos de Datos) como
principal herramienta para entender al sistema antes de plasmarlo a cdigo fuente. DFD
es un diagrama en el que participan procesos (mtodos), flujo de datos (argumentos) y
archivos (base de datos).
Muestran en forma visual slo el flujo de datos entre los distintos procesos, entidades
externas y almacenes que conforman un sistema.
Cuando los analistas de sistemas indagan sobre los requerimientos de informacin de los
usuarios, deben ser capaces de concebir la manera en que los datos fluyen a travs del
sistema u organizacin, los procesos que sufren estos datos y sus tipos de salida.
Diagramas de flujos de datos.
Un diagrama de flujo de datos (DFD por sus siglas en espaol e ingls) es una
descripcin grafica de un procedimiento para la resolucin de un problema. Son
frecuentemente usados para descubrir algoritmos y programas de computador.
Los diagramas de flujos estn compuestos por figuras conectadas con flechas. Para
ejecutar un proceso comienza por el Inicio y se siguen las acciones indicadas por cada
figura: El tipo de figura indica el tipo de paso que representa el Software.
Almacn de Datos
Se utiliza para modelar una coleccin de paquetes de datos en reposo. Se denota por
dos lneas paralelas, de modo caracterstico el nombre que se utiliza para identificar
los paquetes que entran y salen del almacn por medios de flujo.
Ejemplo
Diccionarios de datos
Un diccionario de datos: es un conjunto de metadatos (En general, un grupo de
metadatos se refiere a un grupo de datos). Que contiene las caractersticas lgicas y
puntuales de los datos que se van a utilizar en el sistema que se programa,
incluyendo nombre, descripcin, alias, contenido y organizacin.
Identifica los procesos donde se emplean los datos y los sitios donde se necesita el
acceso inmediato a la informacin, se desarrolla durante el anlisis de flujo de datos y
auxilia a los analistas que participan en la determinacin de los requerimientos del
sistema, su contenido tambin se emplea durante el diseo.
CONTENIDO DEL DICCIONARIO DE DATOS
Nombre: el nombre principal del elemento; del flujo de datos, del repositorio de datos o de
una entidad externa.
Alias: otros nombres usados para la entrada, dado que un mismo elemento puede ser
conocido por diferentes nombres.
Definicin: Exposicin clara y precisa de las caractersticas genricas y diferenciales del
objeto.
Descripcin: Explicar las diversas partes o circunstancias, que componen la definicin,
de los objetos.
Dnde se usa/cmo se usa: Un listado de los procesos que usan un elemento de datos,
o del control de cmo lo usan.
Descripcin del contenido: El contenido es representado mediante una anotacin que
se describe en la siguiente tabla.
Diseo de mdulos.
La definicin de Mdulo es una dimensin que convencionalmente se toma como unidad
de medida, Unidad de diseo que presenta una divisin de Software clara y manejable
con sus interfaces definidas, Puede representar un programa, subprograma o rutina.
En programacin, un mdulo es un software que agrupa un conjunto de subprogramas y
estructuras de datos. Los mdulos son unidades que pueden ser compiladas por
separado y los hace reusables y permite que mltiples programadores trabajen en
diferentes mdulos en forma simultnea, produciendo Ahorro en los tiempos de
desarrollo.
Criterios del Diseo Modular.
El objetivo principal del diseo estructurado es desarrollar una estructura de programa en
la que queden bien definidas las divisiones entre elementos homogneos y la
comunicacin entre ellos. Dichos elementos son llamados mdulos y su identificacin
har mucho ms sencillo un Software, as como su control y mantenimiento.
Conceptos de Divisin
La subdivisin de un sistema en subsistemas y de stos en mdulos se hace de
acuerdo a una serie de conceptos que se anuncian a continuacin
Abstraccin: El nivel de abstraccin disminuye a medida nos adentramos en
terrenos ms tcnicos.
Encontramos tres tipos de abstracciones:
1.- De procesos 2.-De datos 3.-De control.
Refinamiento: Mientras la abstraccin nos permite conceptualizar con
independencia los detalles de bajo nivel, el refinamiento nos permite avanzar hacia
estos.
Modularidad: Divisin del Software en elementos con funcin propia distinguibles
de otros que se comunican e intercambian informacin.
Diseo estructurado: Nos da una gua para modularizar un problema.
Consistencia en el DFD.
Cada proceso en un diagrama padre es una consolidacin del DFD hijo.
Balanceo de DFDs: Las E/S de un proceso padre deben correspondender con las
E/S del DFD hijo que lo explica.
Jerarqua de DFD's:
En un DFD completo cada proceso tiene un nmero nico que lo identifica en
funcin de su situacin en la jerarqua.
Cada DFD tiene tambin un nmero nico que coincide con el proceso que
describe.
Un modelo de datos es un lenguaje orientado a describir una Base de Datos.
Tpicamente un Modelo de Datos permite describir:
Las estructuras de datos de la base: El tipo de los datos que hay en la base y la
forma en que se relacionan.
Las restricciones de integridad: Un conjunto de condiciones que deben cumplir los
datos para reflejar correctamente la realidad deseada.
Operaciones de manipulacin de los datos: tpicamente, operaciones de agregado,
borrado, modificacin y recuperacin de los datos de la base.
Descomposicin en procesos.
En cualquier momento nos puede aparecer un proceso que no necesite
descomposicin y es lo que denominaremos Proceso Primitivo (PP). En ellos, se
detallar la entrada y salida que tenga, adems de la descripcin asociada que
explique lo que realiza.
Los procesos de descomponen en subprocesos, hasta llegar a los procesos
primitivos.
Entiende todo proceso como un : CONJUNTO DE TAREAS LOGICAMENTE
RELACIONADAS QUE EXISTEN PARA OBTENER UN RESULTADO BIEN
DEFINIDO DENTRO DE UN NEGOCIO.
Descomposicin funcional.
El modelo de anlisis est compuesto por tres modelos individuales: el modelo funcional,
representado por casos de uso y escenarios, el modelo de objetos de anlisis,
representado por diagramas de clase y objeto, y el modelo dinmico, representado por
grficas de estado y diagramas de secuencia.
Particularmente describimos: El anlisis para el enfoque orientado a objetos; En lugar de
considerar el SW desde una perspectiva bsica de entrada-proceso-salida como los
mtodos estructurados, se basa en modelar el sistema mediante los objetos que forman
parte de el y las relacin estticas (herencia y composicin )o dinmicas (uso entre otros
objetos ).
El anlisis identifica las clases y objetos relativamente en el dominio del problema, el
diseo proporciona detalles sobre la arquitectura, las interfaces y los componentes la
implementacin transforma el diseo en cdigo y la pruebas checan tanto la arquitectura
como la interfaz y los componentes. El enfoque para el anlisis orientado a objetos esta
basado en cinco capas.
1.- Capa Clase/Objeto: Esta capa del anlisis y diseo indica las clases y objetos.
2.- Capa de Estructura: Esta capa captura diversas estructuras de clases y objetos,
como las relaciones uno a muchos.
3.- Capa de Atributos: Esta capa detalla los atributos de las clases.
4.- Capa de Servicios: Esta capa indica los mensajes y comportamientos de los objetos.
5.- Capa de Tema: Esta capa divide el diseo en unidades de implementacin o
asignaciones de equipos.
Anlisis de Clases y Objetos
Objeto: Es una abstraccin de algo en un dominio de un problema que refleja las
capacidades de un sistema para llevar informacin acerca de ello, interactuar con ello o
ambas cosas. Una encapsulacin de valores de atributos y sus servicios exclusivos.
Clase: Una descripcin de uno o ms objetos con un conjunto de atributos y servicios
uniformes, incluyendo una descripcin de cmo crear nuevos objetos en la clase.
Las clases y objetos se pueden obtener haciendo un anlisis gramatical de la descripcin
del problema, subrayando trminos que podran ser representados con objetos dentro del
sistema.
Diseo.
El diseo de objetos incluye:
Especificacin de servicios: La cual describimos con precisin cada interfaz de
clase.
Modelo de cascada
Se ordena en etapas del ciclo de vida del software, de tal forma que el inicio de cada
etapa debe esperar a la finalizacin de la anterior
Metodologa de la cascada es:
1. Anlisis de requisitos
2. Diseo del Sistema
3. Diseo del Programa
4. Codificacin
5. Pruebas
6. Implantacin
7. Mantenimiento
El modelo en espiral
Las actividades de este modelo se conforman en una espiral, en la que cada bucle o
iteracin representa un conjunto de actividades.
Las actividades no estn fijadas a prioridad, sino que las siguientes se eligen en
funcin del anlisis de riesgo, comenzando por el bucle interior.
Planificacin: Determinacin de objetivos, alternativas y restricciones.
Anlisis de riesgo: Anlisis de alternativas e identificacin/resolucin de riesgos.
Ingeniera: Desarrollo del producto del "siguiente nivel",
Evaluacin del cliente: Valorizacin de los resultados de la ingeniera.
Modelo incremental.
Al final de cada incremento se entrega un producto completamente operacional.
Los primeros pasos los pueden realizar un grupo reducido de personas y en cada
incremento de estas de ser necesario. Por otro lado los incrementos se pueden
planear para gestionar riesgos tcnicos.
Descripcin
Combina elementos del modelo lineal con la filosofa de creacin de prototipos.
El primer incremento a menudo es un producto esencial (ncleo).
A partir de la evaluacin se planea el siguiente incremento y as sucesivamente.
Es interactivo por naturaleza.
Es til cuando el personal no es suficiente para la implementacin completa.
Fase de concepcin.
Esta fase tiene como propsito definir y acordar el alcance del proyecto con los
patrocinadores, identificar los riesgos potenciales asociados al proyecto, proponer una
visin muy general de la arquitectura de software y producir el plan de las fases y el
de iteraciones.
Fase de elaboracin.
Se seleccionan los casos de uso que permiten definir la arquitectura base del sistema
y se desarrollaran en esta fase, se realiza la especificacin de los casos de uso
seleccionados y el primer anlisis del dominio del problema, se disea la solucin
preliminar.
Fase de construccin.
El propsito de esta fase es completar la funcionalidad del sistema, para ello se deben
clarificar los requerimientos pendientes, administrar los cambios de acuerdo a las
evaluaciones realizados por los usuarios y se realizan las mejoras para el proyecto.
Fase de transicin.
El propsito de esta fase es asegurar que el software est disponible para los
usuarios finales, ajustar los errores y defectos encontrados en las pruebas de
aceptacin, capacitar a los usuarios y proveer el soporte tcnico necesario.
Herramientas CASE.
Las herramientas CASE (Computer Aided Software Engineering, Ingeniera de
Software Asistida por Ordenador) son diversas aplicaciones informticas destinadas a
aumentar la productividad en el desarrollo de software reduciendo el coste de las
mismas en trminos de tiempo y de dinero.
Estas herramientas nos pueden ayudar en todos los aspectos del ciclo de vida de
desarrollo del software en tareas como el proceso de realizar un diseo del proyecto,
calculo de costes, implementacin de parte del cdigo automticamente con el diseo
dado, compilacin automtica, documentacin o deteccin de errores entre otras.
Objetivos
1. Mejorar la productividad en el desarrollo y mantenimiento del software.
2. Aumentar la calidad del software.
3. Mejorar el tiempo y coste de desarrollo y mantenimiento de los sistemas
informticos.
4. Mejorar la planificacin de un proyecto
5. Aumentar la biblioteca de conocimiento informtico de una empresa ayudando a la
bsqueda de soluciones para los requisitos.
6. Automatizar, desarrollo del software, documentacin, generacin de cdigo,
pruebas de errores y gestin del proyecto.
7. Ayuda a la reutilizacin del software, portabilidad y estandarizacin de la
documentacin
8. Gestin global en todas las fases de desarrollo de software con una misma
herramienta.
9. Facilitar el uso de las distintas metodologas propias de la ingeniera del software.
La siguiente clasificacin es la ms habitual basada en las fases del ciclo de
desarrollo que cubren:
Desarrollo de prototipos
Qu es un Prototipo?
Es un modelo a escala o facsmil de lo real, pero no tan funcional para que equivalga
a un producto final, ya que no lleva a cabo la totalidad de las funciones necesarias del
sistema final. Proporcionando una retroalimentacin temprana por parte de los
usuarios acerca del Sistema.
En la fase de Anlisis de un proyecto, su principal propsito es obtener y validar los
requerimientos esenciales, manteniendo abiertas, las opciones de implementacin
El proceso de desarrollo y empleo de prototipos tiene las siguientes
caractersticas:
Los prototipos se crean con rapidez.
Los prototipos evolucionan a travs de un proceso iterativo.
Los prototipos tienen un costo bajo de desarrollo.
El profesional de Sistema por medio de la observacin, evaluacin y la
retroalimentacin, obtendr cmo reaccionan los usuarios al trabajar con el prototipo,
y que tan conveniente es el acoplamiento entre las necesidades y las caractersticas
modeladas en el sistema.
Descomposicin modular
Esta tcnica consiste en dividir el problema en un conjunto de sub problemas, y estos
a su vez en otros de mayor facilidad de trabajo; generando los Mdulos Funcionales.
Son deseables para la programacin estructurada; que permite resolver cada mdulo
de forma independiente y, si no se sabe resolver alguno de ellos, puede asignrsele
un nombre y pasar al desarrollo de otro mdulo, ms adelante retomar el mdulo
incompleto para darle solucin al obtener mayor conocimiento sobre dicho proceso, es
decir, la solucin del problema no se detiene por falta de conocimiento de algn
proceso en particular.