SlideShare una empresa de Scribd logo
1 de 21
Universidad Fermín Toro
 Vice-rectorado Académico
   Facultad de Ingeniería
  Escuela de Computación




 DISEÑO ESTRUCTURADO
      (UNIDAD II)




                            Autor: Wilcar A. Rojas

                                  C.I: 13.313.297




CABUDARE, NOVIEMBRE 2012
Desarrollo Estructurado
      El desarrollo estructurado comenzó con la programación. A mediados de los
60 el enfoque estructurado se extiende a la fase de diseño que se conoce como
diseño estructurado, el cual se basa en definir una abstracción más amplia usando
los módulos de programa como componentes básicos de construcción. A mediados
de los 70, se empezaron a surgir las técnicas estructuradas, donde se empezó a
construir programas de una forma artesanal con métodos de ingeniería. El
desarrollo estructurado permitió facilitar la comprensión de programas, normas
para la aplicación de estructuras de datos y de control.
      En el diseño estructurado se caracteriza por lo siguiente:
      Mayor nivel de abstracción (independencia del lenguaje programación).
      Elemento básico de diseño: módulo.
      Modularidad que permite medir la calidad de programas.
      Representa los procesos, flujos y estructuras de datos, de una manera
      jerárquica y descendente.
      Ven el sistema como entradas-proceso-salidas.
      Se concentran en la parte del proceso.
      Se lee de porciones, independientes de las especificaciones.
Aunque este desarrollo permite diseñar un buen proceso y estructura de un
programa, tiene inconvenientes como:
      Leer todas las especificaciones para entender el problema.
      Se repetía la misma información en partes diferentes del documento.
      El enfoque de requisitos se interpretaba diferente por cada usuario.
      Cuando se finalizaba el proceso de desarrollo las especificaciones eran
      obsoletas.


      Este enfoque se conoce como análisis estructurado o análisis descendente o
top - down. Desde su aparición se han hecho mejoras como dar menor
importancia a la construcción de los modelos físicos actuales y a los modelos
lógicos actuales, diferenciar más los modelos físicos y lógicos. Ampliar las técnicas
de análisis estructurado, para modelar sistemas en tiempo real y enfocarse en el
modelo de datos.
      En el desarrollo estructurado los programas están divididos en distintos
bloques, estos bloques tienen funciones que se van confeccionado en forma de
arriba-abajo, empezando desde las generales hasta las particulares, hasta llegar a
detallar cada uno de los procedimientos y su interacción. Este desarrollo se enfoca
al diseño del programa y la compresión se hace mas fácil. Se ha hecho evidente
que este enfoque aun está un poco arraigado ya que se tiende a no pasar de un
proceso o iteración a otra, sin culminar con la anterior, ademas que el ciclo de vida
debe recorrerse completo y al manejarse de esta manera, trae como
consecuencias información redundante, costos y desperdicio de tiempo.


                        Desarrollo Orientado a Objetos
      El desarrollo del paradigma de Orientado a Objetos (OO) trata los procesos
y datos de forma conjunta. Este comienza a mediados de los 80 con los lenguajes
de programación Orienta a Objetos en los que se daba énfasis a la abstracción de
datos para los que se adjuntaba un conjunto de operaciones. Por otra parte los
conceptos de técnicas estructuradas han servido de base para muchas de las
metodológicas OO.
      La orientación a objetos empieza con los lenguajes de programación
orientados a objetos; en estos lenguajes los problemas del mundo real se
representan como un conjunto de objetos para los que se adjuntan un conjunto de
operaciones. Ej. C++, Java, entre otros.
      En la metodología orientada a objetos el sistema se organiza como una
colección de objetos que interactúan entre sí y que contienen tanto estructuras de
datos como un comportamiento. Esto se opone a la programación convencional, en
la cual las estructuras de datos y el comportamiento solamente están relacionadas
de forma débil, ya que estos se enfocan principalmente a las funciones.
Los principios del modelo OO son:
     Abstracción: Es una descripción simplificada o especificación de un sistema
     que enfatiza algunos de los detalles o propiedades del sistema, mientras
     suprime otros.
     Encapsulación: En el proceso de ocultar todos los detalles de un objeto que
     no contribuyen a sus características esenciales.
     Modularidad: Es la propiedad de un sistema que ha sido descompuesto en
     un conjunto de módulos coherentes e independientes.
     Jerarquía o herencia: Es el orden de las abstracciones organizado por
     niveles.
     Tipificación: Es la definición precisa de un objeto de tal forma que objetos
     de diferentes tipos no puedan ser intercambiados o, cuando mucho, puedan
     intercambiarse de manera muy restringida.
     Concurrencia: Es la propiedad que distingue un objeto que está activo de
     uno que no lo está.
     Persistencia: Es la propiedad de un objeto a través de la cual su existencia
     trasciende el tiempo (es decir, el objeto continua existiendo después de que
     su creador ha dejado de existir) y/o el espacio (es decir, la localización del
     objeto se mueve del espacio de dirección en que fue creado).


      Booch (1986) dice que “si un modelo que se dice OO no contiene alguno de
los primeros cuatro elementos, entonces no es Orientado a Objetos”.


      El desarrollo orientado a objetos comprende dividir un programa en clases,
donde estas clases estarán estructuradas por propiedades, atributos, variables,
pretendiendo simular y describir de manera conceptual a un objeto, y lo
importante de este desarrollo es que al usar el principio de encapsulamiento
proporciona la ventaja de que se evite interferencias extrañas entre distintas
partes del programa y podemos cambiar la implementación concreta de un objeto
sin afectar al resto del sistema. Actualmente este desarrollo es el que esta
aflorando más en los aspectos de desarrollo de software ya que permite crear un
modelo parecido a la realidad y ver las cosas como un objeto, es decir, realmente
como son y como se comportan.


               Características deseables de una metodología
      Existencia de reglas predefinidas, fases y subfases, tareas, productos
      intermedios, técnicas y herramientas tales que se amolden a cualquier
      desarrollo.
      Cobertura total del ciclo de desarrollo.
      Verificaciones intermedias.
      Planificación y control.
      Comunicación efectiva.
      Utilización sobre un abanico amplio de proyectos.
      Fácil formación.
      Herramientas case.
      La metodología debe contener actividades que mejoren el proceso de
      desarrollo.
      Soporte al mantenimiento. Por ejemplo. Reingeniería.
      Soporte de la reutilización de software, no solo reutilización de código.
      Actualmente, se huye de métodos muy burocráticos o monolíticos.


      Se dice entonces que una metodología es la que permita definir las etapas,
las salidas, entradas de un proyecto. Mantener un programa no es fácil pero se
puede lograr, por lo tanto, las metodologías deben permitir una robusta formación
del proyecto que permita utilizar mecanismos de mejora y que se usen los recursos
disponibles con su mayor rendimiento y eficacia.
Metodologías Vs. Ciclo de vida




       Una metodología es un conjunto integrado de técnicas y métodos que
permite abordar de forma homogénea y abierta cada una de las actividades del
ciclo de vida de un proyecto de desarrollo. Una definición estándar de metodología
puede ser el conjunto de métodos que se utilizan en una determinada actividad
con el fin de formalizarla y optimizarla. Determina los pasos a seguir y cómo
realizarlos para finalizar una tarea.
       Si esto se aplica a la Ingeniería de software, podemos destacar que una
metodología:
       Optimiza el proceso y el producto software.
       Es una guía en la planificación y en el desarrollo del software.
       Define qué hacer, cómo y cuándo durante todo el desarrollo y
       mantenimiento de un proyecto.
Una metodología define una estrategia global para enfrentarse con el
proyecto. Entre los elementos que forman parte de una metodología se pueden
destacar:
      Fases: tareas a realizar en cada fase.
      Productos: E/S de cada fase, documentos.
      Procedimientos y herramientas: apoyo a la realización de cada tarea.
      Criterios de evaluación: del proceso y del producto. Saber si se han logrado
      los objetivos.


      El ciclo de vida es el conjunto de fases por las que pasa el sistema que se
está desarrollando desde que nace la idea inicial hasta que el software es retirado
o remplazado.
Entre las funciones que debe tener un ciclo de vida se pueden destacar:
      Determinar el orden de las fases del proceso de software.
      Establecer los criterios de transición para pasar de una fase a la siguiente.
      Definir las entradas y salidas de cada fase.
      Describir los estados por los que pasa el producto.
      Describir las actividades a realizar para transformar el producto.
      Definir un esquema que sirve como base para planificar, organizar,
      coordinar, desarrollar, entre otros.


Las etapas de un ciclo de vida de un software son:
      Inicio: éste es el nacimiento de la idea. Aquí definimos los objetivos del
      proyecto y los recursos necesarios para su ejecución. Hacia dónde
      queremos ir, y no cómo queremos ir. Las características implícitas o
      explícitas de cada proyecto hacen necesaria una etapa previa destinada a
      obtener el objetivo por el cual se escribirán miles o cientos de miles de
      líneas de código. Un alto porcentaje del éxito de nuestro proyecto se
      definirá en estas etapas que, al igual que la etapa de debugging, muchos
      líderes de proyecto subestiman.
Planificación: idearemos un planeamiento detallado que guíe la gestión
del proyecto, temporal y económicamente.
Implementación: acordaremos el conjunto de actividades que componen
la realización del producto.
Puesta en producción: nuestro proyecto entra en la etapa de definición,
allí donde se lo presentamos al cliente o usuario final, sabiendo que
funciona correctamente y responde a los requerimientos solicitados en su
momento. Esta etapa es muy importante no sólo por representar la
aceptación o no del proyecto por parte del cliente o usuario final sino por
las múltiples dificultades que suele presentar en la práctica, alargándose
excesivamente y provocando costos no previstos.
Control en producción: control del producto, analizando cómo el proceso
difiere o no de los requerimientos originales e iniciando las acciones
correctivas si fuesen necesarias. Cuando decimos que hay que corregir el
producto,   hacemos      referencia   a     pequeñas   desviaciones   de   los
requerimientos originales que puedan llegar a surgir en el ambiente
productivo. Si nuestro programa no realiza la tarea para lo cual fue creada,
esta etapa no es la adecuada para el rediseño. Incluimos también en esta
etapa el liderazgo, documentación y capacitación, proporcionando directivas
a los recursos humanos, para que hagan su trabajo en forma correcta y
efectiva.


                     Objetivos de cada etapa:
Expresión de necesidades: Esta etapa tiene como objetivo el armado de
un documento en el cual se reflejan los requerimientos y funcionalidades
que ofrecerá al usuario el sistema a implementar (qué, y no cómo, se va a
implementar).
Especificaciones:     Formalizamos    los    requerimientos;   el   documento
obtenido en la etapa anterior se tomará como punto de partida para esta
etapa.
Análisis: Determinamos los elementos que intervienen en el sistema a
desarrollar, su estructura, relaciones, evolución temporal, funcionalidades,
tendremos una descripción clara de qué producto vamos a construir, qué
funcionalidades aportará y qué comportamiento tendrá.
Diseño: Ya sabemos qué hacer, ahora tenemos que determinar cómo
debemos hacerlo (¿cómo debe ser construido el sistema en cuestión?);
definimos en detalle entidades y relaciones de las bases de datos,
seleccionamos el lenguaje que vamos a utilizar, el Sistema Gestor de Bases
de Datos, entre otros).
Implementación: Empezamos a codificar algoritmos y estructuras de
datos, definidos en las etapas anteriores, en el correspondiente lenguaje de
programación o para un determinado sistema gestor de bases de datos. En
muchos proyectos se pasa directamente a esta etapa; son proyectos muy
arriesgados que adoptan un modelo de ciclo de vida de code & fix (codificar
y corregir) donde se eliminan las etapas de especificaciones, análisis y
diseño con la consiguiente pérdida de control sobre la gestión del proyecto.
Debugging (Depuración): El objetivo de esta etapa es garantizar que
nuestro programa no contiene errores de diseño o codificación. En esta
etapa no deseamos saber si nuestro programa realiza lo que solicitó el
usuario, esa tarea le corresponde a la etapa de implementación. En ésta
deseamos encontrar la mayor cantidad de errores. Todas los programas
contienen errores: encontrarlos es cuestión de tiempo. Lo ideal es encontrar
la mayoría, si no todos, en esta etapa. También se pueden agregar pruebas
de rendimiento.
Validación: Esta etapa tiene como objetivo la verificación de que el
sistema desarrollado cumple con los requerimientos expresados inicialmente
por el cliente y que han dado lugar al presente proyecto. En muchos
proyectos las etapas de validación y debugging se realizan en paralelo por
la estrecha relación que llevan. Sin embargo, tenemos que evitar la
confusión: podemos realizarlos en paralelo, pero no como una única etapa.
Evolución: En la mayoría de los proyectos se considera esta etapa como
      Mantenimiento y evolución, y se le asigna, no sólo el agregado de nuevas
      funcionalidades (evolución); sino la corrección de errores que surgen
      (mantenimiento). En la práctica esta denominación no es del todo errónea,
      ya que es posible que aun luego de una etapa de debugging y validación
      exhaustiva, se filtren errores.


      Una metodología puede seguir uno o varios modelos de ciclo de vida,
adaptándose a cada uno de ellos, dependiendo de las necesidades dadas en un
momento determinado, es decir, el ciclo de vida indica lo que hay que obtener a lo
largo del desarrollo del proyecto pero no da las indicaciones de como obtenerlo. La
metodología indica los diferentes pasos y fases para obtener los distintos
productos parciales y finales. En sí para el desarrollo de software, se necesita
aplicar una metodología o varias metodologías, dentro de un ciclo de vida, de
manera que sepamos qué hacer y como hacerlo para conseguir lo que se quiere y
cumplir con las metas planteadas.


             Modelos de procesos en el desarrollo de software
Un modelo de proceso para el desarrollo de software es una representación
simplificada de pasos, representada desde una perspectiva específica. Por su
naturaleza los modelos son simplificados, por lo tanto un modelo de procesos del
software es una abstracción de un proceso real.
Estos modelos tienen como propósito la producción eficaz y eficiente de un
producto software que reúna los requisitos del cliente. Este proceso es
intensamente intelectual, afectado por la creatividad y juicio de las personas
involucradas. La mayoría de los modelos de procesos de desarrollo del software
son dirigidos por el tiempo; cuanto más tarde sea, más atrás se encontrará en el
proceso de desarrollo. Como todo proceso, están constituidos de pasos o fases que
contienen a su vez actividades, estos modelos de desarrollo de software se basan
en un ciclo de vida para desarrollar el mismo, como lo son:
             La   necesidad   de    solucionar   un   problema   (surgimiento   de
             necesidades)
             Inicio del proceso (desarrollo), dentro de esta fase se encuentra la
             definición del proyecto, el análisis del contexto, definición de
             requerimientos, diseño del sistema, construcción del sistema,
             pruebas e implantación.
             Operación y mantenimiento, donde realiza ajustes y se buscan fallas.
             Renovación o extinción.
      Los procesos de software son complejos debido a que un producto de
software es intangible y por lo general muy abstracto, esto dificulta la definición
del producto y sus requisitos, sobre todo cuando no se tiene precedentes en
productos software similares. En general este producto está compuesto por
hardware y software. En cuanto al hardware, su producción se realiza
sistemáticamente y la base de conocimiento para el desarrollo de dicha actividad
está claramente definida. Respecto del software, su construcción y resultados han
sido históricamente cuestionados debido a los problemas asociados


      Los modelos de procesos permiten al analista de sistemas desarrollar un
plan de requisitos del software, permiten establecer un trabajo en forma ordenada,
además que existen muchos modelos que se adaptan a las exigencias del
proyecto, solo debemos saber cual nos conviene, pero lo mas importante, es que
estos modelos nos llevan a presentar los proyectos al cliente de manera que éste
vea su diseño y sus funciones y que la mayoría de ellos están orientados al
mantenimiento.


      Clasificación de las Metodologías según el modelo de proceso
            Modelos Convencionales o Prescriptivos de Procesos
      Los modelos convencionales o modelos prescriptivos de procesos permiten
llenar el marco de trabajo con un conjunto de tareas orientadas al desarrollo de un
software.
      Se les llama "prescriptivos" porque prescriben un conjunto de elementos del
proceso, tales como:
             Actividades del Marco de Trabajo.
             Acciones de la Ingeniería del software.
             Tareas.
             Productos de trabajo.
             Aseguramiento de la calidad.
             Mecanismos de control del cambio para cada proyecto.
      Estos modelos son útiles si queremos describir un conjunto único de
actividades dentro de un marco de trabajo para un proceso de software. cada
actividad debe contener un conjunto de acciones de ingeniería del software, y
definir cada acción en cuanto a un conjunto de tareas que identifique el trabajo (y
los productos del trabajo) que deben completarse para alcanzar las metas de
desarrollo. Sin importar el modelo del proceso que se desee usar, los ingenieros de
software eligen una manera tradicional para realizar el marco de trabajo genérico
para el proceso, ya que estos modelos se caracterizan por ser en esencia rígidos,
estrictos y los más utilizados.




       En las metodologías convencionales, el ciclo de vida de un proyecto, puede
definirse como un ciclo de vida lineal, ya que imponen una disciplina de trabajo
sobre el proceso de desarrollo del software, con el fin de conseguir un software
más eficiente. Para ello, se hace énfasis en la planificación total de todo el trabajo
a realizar y una vez que está todo detallado, comienza el ciclo de desarrollo del
producto software. Se centran especialmente en el control del proceso, mediante
una rigurosa definición de roles, actividades, artefactos, herramientas y notaciones
para el modelado y documentación detallada. Además, las metodologías
tradicionales no se adaptan adecuadamente a los cambios, por lo que no son
métodos adecuados cuando se trabaja en un entorno, donde los requisitos no
pueden predecirse o bien pueden variar.
       Los modelos prescriptivos de proceso definen un conjunto distinto de
actividades, acciones, tareas fundamentos y productos de trabajo que es requieren
para desarrollar software de alta calidad. Los ingenieros de software y sus
gerentes deben adaptar un modelo prescripto de proceso a sus necesidades y
después lo siguen. Además, la gente que ha solicitado el software tiene un papel
por desempeñar se ejecuta el modelo de software. ¿Por qué es importante?
Porque proporciona estabilidad, control y organización a una actividad que si no se
controla puede volverse caótica. ¿Cuáles son los pasos? El proceso conduce a un
equipo de software a través de un conjunto de actividades del marco de trabajo
que se organizan en un flujo de proceso. ¿Cuál es un obtenido? Desde punto de
vista de un ingeniero de software, los productos de trabajo son los programas,
documentos y datos que se producen como consecuencia de las actividades y
tareas que define el proceso.


                                Modelo en Cascada




      El modelo en cascada, algunas veces llamado el ciclo de vida clásico,
sugiere un enfoque sistemático, secuencial hacia el desarrollo del software, que se
inicia con la especificación de requerimientos del cliente y que continúa con la
planeación, el modelado, la construcción y el despliegue para culminar en el
soporte del software terminado.
      Este modelo es aplicable en donde existen ocasiones en que los requisitos
de un problema se entienden de una manera razonable y deben estar bien
definidos, también cuando el trabajo fluye desde la comunicación a través del
despliegue de una manera casi lineal, esta situación se encuentra a veces cuando
es necesario hacer adaptaciones o mejorías bien definidas a un sistema existente.
El modelo en cascada es el paradigma más antiguo para la ingeniería del software.
Sin embargo, en las décadas pasadas, las criticas a este modelo de proceso han
ocasionado que aun sus más fervientes practicantes hayan cuestionado su eficacia.
Entre los problemas que algunas veces se encuentran al aplicar el modelo en
cascada están:
1. Es muy raro que los proyectos reales sigan el flujo secuencial que propone el
modelo. A pesar de que el modelo lineal incluye iteraciones, lo hace de manera
indirecta. Como resultado, los cambios confunden mientras el equipo de proyecto
actúa.
2. Con frecuencia es difícil para el cliente establecer todos los requisitos de manera
explícita. El modelo en cascada lo requiere y se enfrentan dificultades al incorporar
la incertidumbre natural presente en el inicio de muchos proyectos.
3. El cliente debe tener paciencia. Una versión que funcione de los programas
estará disponible cuando el proyecto esté muy avanzado. Un error grave será
desastroso si no se detecta antes de la revisión del programa.
En un análisis interesante de proyectos reales, Bradac(1994) concluyó que la
naturaleza lineal del modelo en cascada conduce a "estados de bloqueo" en los
cuales algunos miembros del equipo del proyecto deben esperar a otros para
terminar tareas dependientes. De hecho, el tiempo de espera puede superar el que
se aplica en el trabajo productivo. El estado de bloqueo tiende a ser más común al
principio y al final del proceso secuencial.
En la actualidad, el trabajo del software está acelerado y sujeto a una cadena
infinita de cambios (de características, funciones y contenido de la información).
Con frecuencia, el modelo en cascada no es apropiado para dicho trabajo. Sin
embargo, puede servir como un modelo de proceso útil en situaciones donde los
requerimientos están fijos y donde el trabajo se realiza, hasta su conclusión, de
una manera lineal.
Las principales etapas de este modelo según Sommerville (2005) son:
              Análisis    y   definición       de   requerimientos.   Los   servicios,
              restricciones y metas del sistema se definen a partir de las consultas
              con los usuarios. Se define una especificación del sistema.
              Diseño del sistema y del software. El proceso de diseño del
              sistema divide los requerimientos en sistemas hardware o software.
Establece una arquitectura completa del sistema. El diseño del
             software identifica y describe las abstracciones fundamentales del
             sistema software y sus relaciones.
             Implementación y prueba de unidades. Durante esta etapa, el
             diseño del software se lleva a cabo como un conjunto o unidades de
             programas.
             Integración y prueba del sistema. Los programas o las unidades
             individuales de programas se integran y prueban como un sistema
             completo para asegurar que se cumplan los requerimientos del
             software.
             Funcionamiento y mantenimiento. El sistema se instala y se
             pone en funcionamiento práctico. El mantenimiento implica corregir
             errores no descubiertos en las etapas anteriores del ciclo de vida.


                    Modelo de Procesos Incrementables




      El modelo incremental combina elementos del modelo en cascada aplicado
en forma iterativa. El modelo incremental aplica secuencias lineales de manera
escalonada conforme avanza el tiempo en el calendario. Cada secuencia lineal
produce "incrementos" del software. Por ejemplo, el software procesador de texto,
desarrollado con el paradigma incremental en su primer incremento, podría realizar
funciones básicas de administración de archivos, edición y producción de
documentos; en el segundo incremento, ediciones más sofisticadas, y tendría
funciones más complejas de producción de documentos; en el tercer incremento,
funciones de corrección ortográfica y gramatical; y en el cuarto, capacidades
avanzadas de configuración de página. Se debe tener en cuenta que el flujo del
proceso de cualquier incremento puede incorporar el paradigma de construcción
de prototipos que se expone más adelante.
      A menudo, al utilizar un modelo incremental el primer incremento es un
producto esencial. Es decir, se incorporan los requisitos básicos, pero muchas
características suplementarias (algunas conocidas, otras no) no se incorporan. El
producto esencial queda en manos del cliente (o se somete a una evaluación
detallada). Como resultado de la evaluación se desarrolla un plan para el
incremento siguiente. El plan afronta la modificación del producto esencial con el
fin de satisfacer de mejor manera las necesidades del cliente y la entrega de
características y funcionalidades adicionales. Este proceso se repite después de la
entrega de cada incremento mientras no se haya elaborado el producto completo.
      El modelo de proceso incremental, al igual que la construcción de prototipos
y otros enfoques evolutivos, es iterativo por naturaleza. Pero a diferencia de la
construcción de prototipos, el modelo incremental se enfoca en la entrega de un
producto operacional con cada incremento. Los primeros incrementos son
versiones “incompletas del producto final, pero proporcionan al usuario la
      funcionalidad que necesita y una plataforma para evaluarlo.
El desarrollo incremental es útil sobre todo cuando el personal necesario para una
implementación completa no está disponible. Los primeros incrementos se pueden
implementar con menos gente. Si el producto esencial es bien recibido se agrega
(si se requiere) más personal para implementar el incremento siguiente. Además,
los incrementos se pueden planear para manejar los riesgos técnicos. Por ejemplo,
un sistema grande podría requerir la disponibilidad de un hardware nuevo que está
en desarrollo y cuya fecha de entrega es incierta. Sería posible planear los
primeros incrementos de forma que se evite el uso de este hardware, lo que
permitiría la entrega de funcionalidad parcial a los usuarios finales sin retrasos
desordenados.


      Combina elementos del modelo en cascada aplicado en forma iterativa. El
modelo incremental aplica secuencias lineales de manera escalonada conforme
avanza el tiempo en el calendario. Cada secuencia lineal produce incrementos.
Produce entregas de software pequeñas pero usables (incrementos). Cada parte se
construye sobre partes ya entregadas.


            Modelo de desarrollo rápido de aplicaciones (DRA)




      El desarrollo rápido de aplicaciones (DRA) es un modelo de proceso de
software incremental que resalta un ciclo de desarrollo corto. El modelo DRA es
una adaptación a "alta velocidad" del modelo en cascada en el que se logra el
desarrollo rápido mediante un enfoque de construcción basado en componentes. Si
se entienden bien los requisitos y se limita el ámbito del proyecto, el proceso DRA
permite que un equipo de desarrollo cree un "sistema completamente funcional"
dentro de un periodo muy corto (por ejemplo, de 60 a 90 días).
      Como otros modelos de proceso, el enfoque DRA cumple con las actividades
genéricas del marco de trabajo que ya se han presentado. La comunicación trabaja
para entender el problema de negocios y las características de información que
debe incluir el software. La planeación es esencial porque varios equipos de
software trabajan en paralelo sobre diferentes funciones del sistema. El modelado
incluye tres grandes fases — modelado de negocios, modelado de datos y
modelado del proceso — y establece representaciones del diseño que sirven como
base para la actividad de construcción del modelo DRA. La construcción resalta el
empleo de componentes de software existente y la aplicación de la generación
automática de código. Por último, el despliegue establece una base para las
iteraciones subsecuentes, si éstas son necesarias.
      El modelo de proceso DRA se ilustra en la siguiente figura. Es obvio que las
restricciones de tiempo impuestas sobre un proyecto DRA exigen un "ámbito de
escalas". Si una aplicación de negocios se puede modular de forma que cada gran
función pueda completarse en menos de tres meses (mediante la aplicación del
enfoque ya descrito), ésta es una candidata para el DRA. Cada gran función se
puede abordar mediante un equipo de DRA por separado, para después integrarlas
y formar un todo.
Como todos los modelos de procesos, el enfoque DRA tiene inconvenientes:
1) Para proyectos grandes, pero escalables, el DRA necesita suficientes recursos
humanos para crear en número correcto de equipos DRA.
2) Si los desarrolladores y clientes no se comprometen con las actividades rápidas
necesarias para completar el sistema en un marco de tiempo muy breve, los
proyectos DRA fallarán.
3) Si un sistema no se puede modular en forma apropiada, la construcción de los
componentes necesarios para el DRA será problemática.
4) Si el alto rendimiento es un aspecto importante, y se alcanzará al convertir
interfaces en componentes del sistema, el enfoque DRA podría no funcionar.
5) El DRA sería inapropiado cuando los riesgos técnicos son altos (por ejemplo,
cuando una aplicación nueva aplica muchas nuevas tecnologías).
Es un modelo de proceso del software incremental que resulta un ciclo de
desarrollo corto. El modelo DRA es una adaptación a alta velocidad del modelo en
cascada en el que se logra el desarrollo rápido mediante un enfoque de
construcción basado en componentes. Hace un uso intensivo de componentes
reusables de software con un ciclo de desarrollo extremadamente corto.
      Es importante destacar que los Modelo Prescriptivos proporcionan un
conjunto de pautas para el diseño, uso y rehusó de los objetos de aprendizaje,
como complemento al proceso de su descripción, de una manera iterativa o
incremental, desde la concepción del objeto de aprendizaje hasta su reusabilidad a
corto, mediano y largo plazo. Pero el éxito en la creación de cualquier objeto de
aprendizaje dependerá de la adecuada aplicación del proceso de Ingeniería de
Software, cuyas etapas facilitan el desarrollo de los objetos de aprendizaje.


TECNICA DE DISEÑO ESTRUCTURADO
OBJETIVOS DE LA TECNICA
• Obtener la estructura modular y los detalles de proceso del sistema, partiendo
solamente de los «productos» obtenidos en la fase de Análisis del Sistema.
• Cambiar la atención del QUE al COMO.
• Obtener un diseño que no sólo «funcione», sino que también sea mantenible,
mejore la reutilización y se pueda probar y entender fácilmente.
• Utilizar herramientas gráficas (Diagramas de Estructura de Cuadros) para
representar la estructura modular del sistema.
      Se trata por tanto, de conseguir que cada módulo de la estructura en árbol
que se obtenga cumpla las siguientes características:
   1. Módulos de pequeño tamaño.
El impacto de un cambio a realizar puede ser perfectamente aislado. Si el tamaño
de los módulos es reducido, una determinada modificación afectará a un número
mayor de módulos, sin embargo, la cantidad de código a considerar será menor.
o Independencia modular. Cuanto mayor es la independencia de un módulo es
más sencillo trabajar con él, por tanto, el diseño debe reducir la compartición de
ficheros, de datos, la de dispositivos, las interfases comunes con el Sistema
Operativo y las llamadas, desde o hacia otros módulos.
2. Características de Caja Negra.
La característica de Caja Negra se aplica a cualquier sistema, programa o módulo,
para dar una visión exclusiva de sus entradas y salidas, sin tener en cuenta los
detalles de cómo se realiza el proceso. El uso de la Caja Negra permite una visión
más fácil del conjunto, posponiendo la consideración de los detalles para una
etapa posterior.
   3. Modelización conceptual.
Un sistema será más fácil de mantener si el modelo utilizado en su diseño se ha
basado en los conceptos lógicos de la organización, los cuales serán más familiares
y comprensibles para el personal de mantenimiento que las descripciones físicas
(equipo, organización de la unidad, cómo se realiza el trabajo en la actualidad,...).
o Aislamiento de los detalles. En un sistema existen partes que reflejan la filosofía
y otras partes que reflejan los detalles. Debido a que los detalles son más
susceptibles de cambiar, ambas partes deben diseñarse por separado para evitar
que una variación en los detalles afecte a la filosofía del sistema.

Más contenido relacionado

La actualidad más candente

Modelos de ciclo de vida del software
Modelos de ciclo de vida del softwareModelos de ciclo de vida del software
Modelos de ciclo de vida del softwareIEO Santo Tomás
 
Arquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositórioArquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositóriorehoscript
 
Decisiones de diseño arquitectónico
Decisiones de diseño arquitectónicoDecisiones de diseño arquitectónico
Decisiones de diseño arquitectónicoEmil Quinones
 
IDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientosIDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientosFranklin Parrales Bravo
 
Importancia del análisis de requerimientos
Importancia del análisis de requerimientosImportancia del análisis de requerimientos
Importancia del análisis de requerimientosalmarza1
 
Cuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientadoCuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientadoFreddySantiago32
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de softwaremonik1002
 
Metodología Estructurada -
Metodología Estructurada - Metodología Estructurada -
Metodología Estructurada - wilmery29
 
Gestion de la configuracion del software
Gestion de la configuracion del softwareGestion de la configuracion del software
Gestion de la configuracion del softwareYaniris Sepulveda
 
IDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitosIDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitosFranklin Parrales Bravo
 
Casos de Uso ejercicios
Casos de Uso ejerciciosCasos de Uso ejercicios
Casos de Uso ejerciciosWalter Chacon
 
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...Uriel Herrera
 
Metodologías para el desarrollo de sistemas
Metodologías para el desarrollo de sistemasMetodologías para el desarrollo de sistemas
Metodologías para el desarrollo de sistemasUNEFA
 

La actualidad más candente (20)

Ejemplo dfd
Ejemplo dfdEjemplo dfd
Ejemplo dfd
 
Modelos de ciclo de vida del software
Modelos de ciclo de vida del softwareModelos de ciclo de vida del software
Modelos de ciclo de vida del software
 
Arquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositórioArquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositório
 
Diagrama de contexto
Diagrama de contextoDiagrama de contexto
Diagrama de contexto
 
Decisiones de diseño arquitectónico
Decisiones de diseño arquitectónicoDecisiones de diseño arquitectónico
Decisiones de diseño arquitectónico
 
IDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientosIDR Unidad 2: Elicitación de requerimientos
IDR Unidad 2: Elicitación de requerimientos
 
Importancia del análisis de requerimientos
Importancia del análisis de requerimientosImportancia del análisis de requerimientos
Importancia del análisis de requerimientos
 
Software design
Software designSoftware design
Software design
 
Cuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientadoCuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientado
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
 
Metodología RUP
Metodología RUPMetodología RUP
Metodología RUP
 
Metodología Estructurada -
Metodología Estructurada - Metodología Estructurada -
Metodología Estructurada -
 
Metodologias rup
Metodologias rupMetodologias rup
Metodologias rup
 
Gestion de la configuracion del software
Gestion de la configuracion del softwareGestion de la configuracion del software
Gestion de la configuracion del software
 
IDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitosIDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitos
 
Ieee 830
Ieee 830Ieee 830
Ieee 830
 
Casos de Uso ejercicios
Casos de Uso ejerciciosCasos de Uso ejercicios
Casos de Uso ejercicios
 
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
 
Pt7seccion2
Pt7seccion2Pt7seccion2
Pt7seccion2
 
Metodologías para el desarrollo de sistemas
Metodologías para el desarrollo de sistemasMetodologías para el desarrollo de sistemas
Metodologías para el desarrollo de sistemas
 

Destacado

Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDat@center S.A
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de softwareAtributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de softwareGustavo Cuen
 
Analisis estructurado y Orientado a objeto
Analisis estructurado y Orientado a objetoAnalisis estructurado y Orientado a objeto
Analisis estructurado y Orientado a objetoNormanBonavista24
 
Enfoques de desarrollo de sw
Enfoques de desarrollo de swEnfoques de desarrollo de sw
Enfoques de desarrollo de swWalterJes
 
Los sistemas en el contexto de la solución de problemas unidad 3
Los sistemas en el contexto de la solución de problemas unidad 3Los sistemas en el contexto de la solución de problemas unidad 3
Los sistemas en el contexto de la solución de problemas unidad 3Alejandro Sanchez Rodriguez
 
Aplicaciones del mantenimiento
Aplicaciones del mantenimientoAplicaciones del mantenimiento
Aplicaciones del mantenimientojairo curipoma
 
Sesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareSesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareLuis Fernández
 
Modelos Prescriptivos del Desarrollo del Sistema de Información
Modelos Prescriptivos del Desarrollo del Sistema de InformaciónModelos Prescriptivos del Desarrollo del Sistema de Información
Modelos Prescriptivos del Desarrollo del Sistema de InformaciónIsaias Toledo
 
U6 metodología de sistemas blandos
U6 metodología de sistemas blandosU6 metodología de sistemas blandos
U6 metodología de sistemas blandosMariana Alor
 
metodología de Diseño Estructurado y las Técnicas
metodología de Diseño Estructurado y las Técnicasmetodología de Diseño Estructurado y las Técnicas
metodología de Diseño Estructurado y las TécnicasHenry Rosales
 
Mantenimiento de Software
Mantenimiento de SoftwareMantenimiento de Software
Mantenimiento de SoftwareLia IS
 
Gestion De Proyecto De Desarrollo De Software
Gestion De Proyecto De Desarrollo De SoftwareGestion De Proyecto De Desarrollo De Software
Gestion De Proyecto De Desarrollo De SoftwareDecimo Sistemas
 
Programacion Orientada a Objetos y a Eventos
Programacion Orientada a Objetos y a EventosProgramacion Orientada a Objetos y a Eventos
Programacion Orientada a Objetos y a EventosNICK
 
Arquitectura de un sitio web
Arquitectura de un sitio webArquitectura de un sitio web
Arquitectura de un sitio webedgarcajun
 
Métodos estructurados
Métodos estructuradosMétodos estructurados
Métodos estructuradosAndres Morales
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetosjose_rob
 
Modelos de Ciclo de Vida del Software [Ventajas y Desventajas]
Modelos de Ciclo de Vida del Software [Ventajas y Desventajas]Modelos de Ciclo de Vida del Software [Ventajas y Desventajas]
Modelos de Ciclo de Vida del Software [Ventajas y Desventajas]Cloud Rodriguez
 
Metodologia de desarrollo de software
Metodologia de desarrollo de softwareMetodologia de desarrollo de software
Metodologia de desarrollo de softwareVictor Varela
 

Destacado (20)

Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a Objetos
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de softwareAtributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software
 
Metodologia estructurada
Metodologia estructuradaMetodologia estructurada
Metodologia estructurada
 
Analisis estructurado y Orientado a objeto
Analisis estructurado y Orientado a objetoAnalisis estructurado y Orientado a objeto
Analisis estructurado y Orientado a objeto
 
Enfoques de desarrollo de sw
Enfoques de desarrollo de swEnfoques de desarrollo de sw
Enfoques de desarrollo de sw
 
Los sistemas en el contexto de la solución de problemas unidad 3
Los sistemas en el contexto de la solución de problemas unidad 3Los sistemas en el contexto de la solución de problemas unidad 3
Los sistemas en el contexto de la solución de problemas unidad 3
 
Aplicaciones del mantenimiento
Aplicaciones del mantenimientoAplicaciones del mantenimiento
Aplicaciones del mantenimiento
 
Sesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareSesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de software
 
Modelos Prescriptivos del Desarrollo del Sistema de Información
Modelos Prescriptivos del Desarrollo del Sistema de InformaciónModelos Prescriptivos del Desarrollo del Sistema de Información
Modelos Prescriptivos del Desarrollo del Sistema de Información
 
U6 metodología de sistemas blandos
U6 metodología de sistemas blandosU6 metodología de sistemas blandos
U6 metodología de sistemas blandos
 
Modelado conceptual de aplicaciones web
Modelado conceptual de aplicaciones webModelado conceptual de aplicaciones web
Modelado conceptual de aplicaciones web
 
metodología de Diseño Estructurado y las Técnicas
metodología de Diseño Estructurado y las Técnicasmetodología de Diseño Estructurado y las Técnicas
metodología de Diseño Estructurado y las Técnicas
 
Mantenimiento de Software
Mantenimiento de SoftwareMantenimiento de Software
Mantenimiento de Software
 
Gestion De Proyecto De Desarrollo De Software
Gestion De Proyecto De Desarrollo De SoftwareGestion De Proyecto De Desarrollo De Software
Gestion De Proyecto De Desarrollo De Software
 
Programacion Orientada a Objetos y a Eventos
Programacion Orientada a Objetos y a EventosProgramacion Orientada a Objetos y a Eventos
Programacion Orientada a Objetos y a Eventos
 
Arquitectura de un sitio web
Arquitectura de un sitio webArquitectura de un sitio web
Arquitectura de un sitio web
 
Métodos estructurados
Métodos estructuradosMétodos estructurados
Métodos estructurados
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
Modelos de Ciclo de Vida del Software [Ventajas y Desventajas]
Modelos de Ciclo de Vida del Software [Ventajas y Desventajas]Modelos de Ciclo de Vida del Software [Ventajas y Desventajas]
Modelos de Ciclo de Vida del Software [Ventajas y Desventajas]
 
Metodologia de desarrollo de software
Metodologia de desarrollo de softwareMetodologia de desarrollo de software
Metodologia de desarrollo de software
 

Similar a Desarrollo estructurado

Metodologia y prototipo
Metodologia y prototipoMetodologia y prototipo
Metodologia y prototipoArturo Jimenez
 
Clasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareClasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareEliset Gonzales Uceda
 
¡Summit loxa ingenieria de software
¡Summit loxa ingenieria de software¡Summit loxa ingenieria de software
¡Summit loxa ingenieria de softwareJorgeArmijosC
 
TallernMetodolognnandelnDesarrollondenSoftwarennnMiguelnVergarandocx___7064ee...
TallernMetodolognnandelnDesarrollondenSoftwarennnMiguelnVergarandocx___7064ee...TallernMetodolognnandelnDesarrollondenSoftwarennnMiguelnVergarandocx___7064ee...
TallernMetodolognnandelnDesarrollondenSoftwarennnMiguelnVergarandocx___7064ee...Jose Alexis Villamizar
 
Metodologías para desarrollo de software
Metodologías para desarrollo de softwareMetodologías para desarrollo de software
Metodologías para desarrollo de softwareAbner Garcia
 
Fundamentos Y Métodos De Análisis De Requerimientos10
Fundamentos Y Métodos De Análisis De Requerimientos10Fundamentos Y Métodos De Análisis De Requerimientos10
Fundamentos Y Métodos De Análisis De Requerimientos10EstebanOrtegon
 
Metodologias de Analisis y Diseno de Sistemas
Metodologias de Analisis y Diseno de SistemasMetodologias de Analisis y Diseno de Sistemas
Metodologias de Analisis y Diseno de SistemasElvis Mendoza Sequera
 
Metodologías para el desarrollo de sistemas
Metodologías para el desarrollo de sistemasMetodologías para el desarrollo de sistemas
Metodologías para el desarrollo de sistemasEliset Gonzales Uceda
 
Administracion de proyectos software i estudiantes
Administracion de proyectos software i estudiantesAdministracion de proyectos software i estudiantes
Administracion de proyectos software i estudiantesCyber Brel'R
 
Clasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareClasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareElvisAR
 

Similar a Desarrollo estructurado (20)

Presentación2
Presentación2Presentación2
Presentación2
 
Metodologia y prototipo
Metodologia y prototipoMetodologia y prototipo
Metodologia y prototipo
 
Presentación2
Presentación2Presentación2
Presentación2
 
ASD.pptx
ASD.pptxASD.pptx
ASD.pptx
 
Clasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareClasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de software
 
3 proceso sw
3 proceso sw3 proceso sw
3 proceso sw
 
Ender metodologia estructura
Ender metodologia estructuraEnder metodologia estructura
Ender metodologia estructura
 
Monografia
MonografiaMonografia
Monografia
 
3 proceso sw (caso de uso)
3 proceso sw  (caso de uso)3 proceso sw  (caso de uso)
3 proceso sw (caso de uso)
 
Ingenieria del Software
Ingenieria del SoftwareIngenieria del Software
Ingenieria del Software
 
Metodologías de modelado para aplicaciones web
Metodologías de modelado para aplicaciones webMetodologías de modelado para aplicaciones web
Metodologías de modelado para aplicaciones web
 
¡Summit loxa ingenieria de software
¡Summit loxa ingenieria de software¡Summit loxa ingenieria de software
¡Summit loxa ingenieria de software
 
TallernMetodolognnandelnDesarrollondenSoftwarennnMiguelnVergarandocx___7064ee...
TallernMetodolognnandelnDesarrollondenSoftwarennnMiguelnVergarandocx___7064ee...TallernMetodolognnandelnDesarrollondenSoftwarennnMiguelnVergarandocx___7064ee...
TallernMetodolognnandelnDesarrollondenSoftwarennnMiguelnVergarandocx___7064ee...
 
AMSI
AMSIAMSI
AMSI
 
Metodologías para desarrollo de software
Metodologías para desarrollo de softwareMetodologías para desarrollo de software
Metodologías para desarrollo de software
 
Fundamentos Y Métodos De Análisis De Requerimientos10
Fundamentos Y Métodos De Análisis De Requerimientos10Fundamentos Y Métodos De Análisis De Requerimientos10
Fundamentos Y Métodos De Análisis De Requerimientos10
 
Metodologias de Analisis y Diseno de Sistemas
Metodologias de Analisis y Diseno de SistemasMetodologias de Analisis y Diseno de Sistemas
Metodologias de Analisis y Diseno de Sistemas
 
Metodologías para el desarrollo de sistemas
Metodologías para el desarrollo de sistemasMetodologías para el desarrollo de sistemas
Metodologías para el desarrollo de sistemas
 
Administracion de proyectos software i estudiantes
Administracion de proyectos software i estudiantesAdministracion de proyectos software i estudiantes
Administracion de proyectos software i estudiantes
 
Clasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareClasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de software
 

Más de waralivt

Investigación Expositiva
Investigación ExpositivaInvestigación Expositiva
Investigación Expositivawaralivt
 
Wilcar rojas
Wilcar rojasWilcar rojas
Wilcar rojaswaralivt
 
Evaluación
EvaluaciónEvaluación
Evaluaciónwaralivt
 
Recursos disponibles
Recursos disponiblesRecursos disponibles
Recursos disponibleswaralivt
 
Proceso de una maquinas de turing
Proceso de una maquinas de turingProceso de una maquinas de turing
Proceso de una maquinas de turingwaralivt
 
Maquinas de turing
Maquinas de turingMaquinas de turing
Maquinas de turingwaralivt
 
Lenguajes Formales y AF
Lenguajes Formales y AFLenguajes Formales y AF
Lenguajes Formales y AFwaralivt
 
Desarrollo estructurado
Desarrollo estructuradoDesarrollo estructurado
Desarrollo estructuradowaralivt
 
ANALISIS NUMERICO
ANALISIS NUMERICOANALISIS NUMERICO
ANALISIS NUMERICOwaralivt
 
Arquitecturas
ArquitecturasArquitecturas
Arquitecturaswaralivt
 

Más de waralivt (10)

Investigación Expositiva
Investigación ExpositivaInvestigación Expositiva
Investigación Expositiva
 
Wilcar rojas
Wilcar rojasWilcar rojas
Wilcar rojas
 
Evaluación
EvaluaciónEvaluación
Evaluación
 
Recursos disponibles
Recursos disponiblesRecursos disponibles
Recursos disponibles
 
Proceso de una maquinas de turing
Proceso de una maquinas de turingProceso de una maquinas de turing
Proceso de una maquinas de turing
 
Maquinas de turing
Maquinas de turingMaquinas de turing
Maquinas de turing
 
Lenguajes Formales y AF
Lenguajes Formales y AFLenguajes Formales y AF
Lenguajes Formales y AF
 
Desarrollo estructurado
Desarrollo estructuradoDesarrollo estructurado
Desarrollo estructurado
 
ANALISIS NUMERICO
ANALISIS NUMERICOANALISIS NUMERICO
ANALISIS NUMERICO
 
Arquitecturas
ArquitecturasArquitecturas
Arquitecturas
 

Último

Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfCarol Andrea Eraso Guerrero
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Cuadernillo de las sílabas trabadas.pdf
Cuadernillo de las sílabas trabadas.pdfCuadernillo de las sílabas trabadas.pdf
Cuadernillo de las sílabas trabadas.pdfBrandonsanchezdoming
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 

Último (20)

Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Cuadernillo de las sílabas trabadas.pdf
Cuadernillo de las sílabas trabadas.pdfCuadernillo de las sílabas trabadas.pdf
Cuadernillo de las sílabas trabadas.pdf
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 

Desarrollo estructurado

  • 1. Universidad Fermín Toro Vice-rectorado Académico Facultad de Ingeniería Escuela de Computación DISEÑO ESTRUCTURADO (UNIDAD II) Autor: Wilcar A. Rojas C.I: 13.313.297 CABUDARE, NOVIEMBRE 2012
  • 2. Desarrollo Estructurado El desarrollo estructurado comenzó con la programación. A mediados de los 60 el enfoque estructurado se extiende a la fase de diseño que se conoce como diseño estructurado, el cual se basa en definir una abstracción más amplia usando los módulos de programa como componentes básicos de construcción. A mediados de los 70, se empezaron a surgir las técnicas estructuradas, donde se empezó a construir programas de una forma artesanal con métodos de ingeniería. El desarrollo estructurado permitió facilitar la comprensión de programas, normas para la aplicación de estructuras de datos y de control. En el diseño estructurado se caracteriza por lo siguiente: Mayor nivel de abstracción (independencia del lenguaje programación). Elemento básico de diseño: módulo. Modularidad que permite medir la calidad de programas. Representa los procesos, flujos y estructuras de datos, de una manera jerárquica y descendente. Ven el sistema como entradas-proceso-salidas. Se concentran en la parte del proceso. Se lee de porciones, independientes de las especificaciones. Aunque este desarrollo permite diseñar un buen proceso y estructura de un programa, tiene inconvenientes como: Leer todas las especificaciones para entender el problema. Se repetía la misma información en partes diferentes del documento. El enfoque de requisitos se interpretaba diferente por cada usuario. Cuando se finalizaba el proceso de desarrollo las especificaciones eran obsoletas. Este enfoque se conoce como análisis estructurado o análisis descendente o top - down. Desde su aparición se han hecho mejoras como dar menor importancia a la construcción de los modelos físicos actuales y a los modelos lógicos actuales, diferenciar más los modelos físicos y lógicos. Ampliar las técnicas
  • 3. de análisis estructurado, para modelar sistemas en tiempo real y enfocarse en el modelo de datos. En el desarrollo estructurado los programas están divididos en distintos bloques, estos bloques tienen funciones que se van confeccionado en forma de arriba-abajo, empezando desde las generales hasta las particulares, hasta llegar a detallar cada uno de los procedimientos y su interacción. Este desarrollo se enfoca al diseño del programa y la compresión se hace mas fácil. Se ha hecho evidente que este enfoque aun está un poco arraigado ya que se tiende a no pasar de un proceso o iteración a otra, sin culminar con la anterior, ademas que el ciclo de vida debe recorrerse completo y al manejarse de esta manera, trae como consecuencias información redundante, costos y desperdicio de tiempo. Desarrollo Orientado a Objetos El desarrollo del paradigma de Orientado a Objetos (OO) trata los procesos y datos de forma conjunta. Este comienza a mediados de los 80 con los lenguajes de programación Orienta a Objetos en los que se daba énfasis a la abstracción de datos para los que se adjuntaba un conjunto de operaciones. Por otra parte los conceptos de técnicas estructuradas han servido de base para muchas de las metodológicas OO. La orientación a objetos empieza con los lenguajes de programación orientados a objetos; en estos lenguajes los problemas del mundo real se representan como un conjunto de objetos para los que se adjuntan un conjunto de operaciones. Ej. C++, Java, entre otros. En la metodología orientada a objetos el sistema se organiza como una colección de objetos que interactúan entre sí y que contienen tanto estructuras de datos como un comportamiento. Esto se opone a la programación convencional, en la cual las estructuras de datos y el comportamiento solamente están relacionadas de forma débil, ya que estos se enfocan principalmente a las funciones.
  • 4. Los principios del modelo OO son: Abstracción: Es una descripción simplificada o especificación de un sistema que enfatiza algunos de los detalles o propiedades del sistema, mientras suprime otros. Encapsulación: En el proceso de ocultar todos los detalles de un objeto que no contribuyen a sus características esenciales. Modularidad: Es la propiedad de un sistema que ha sido descompuesto en un conjunto de módulos coherentes e independientes. Jerarquía o herencia: Es el orden de las abstracciones organizado por niveles. Tipificación: Es la definición precisa de un objeto de tal forma que objetos de diferentes tipos no puedan ser intercambiados o, cuando mucho, puedan intercambiarse de manera muy restringida. Concurrencia: Es la propiedad que distingue un objeto que está activo de uno que no lo está. Persistencia: Es la propiedad de un objeto a través de la cual su existencia trasciende el tiempo (es decir, el objeto continua existiendo después de que su creador ha dejado de existir) y/o el espacio (es decir, la localización del objeto se mueve del espacio de dirección en que fue creado). Booch (1986) dice que “si un modelo que se dice OO no contiene alguno de los primeros cuatro elementos, entonces no es Orientado a Objetos”. El desarrollo orientado a objetos comprende dividir un programa en clases, donde estas clases estarán estructuradas por propiedades, atributos, variables, pretendiendo simular y describir de manera conceptual a un objeto, y lo importante de este desarrollo es que al usar el principio de encapsulamiento proporciona la ventaja de que se evite interferencias extrañas entre distintas partes del programa y podemos cambiar la implementación concreta de un objeto sin afectar al resto del sistema. Actualmente este desarrollo es el que esta
  • 5. aflorando más en los aspectos de desarrollo de software ya que permite crear un modelo parecido a la realidad y ver las cosas como un objeto, es decir, realmente como son y como se comportan. Características deseables de una metodología Existencia de reglas predefinidas, fases y subfases, tareas, productos intermedios, técnicas y herramientas tales que se amolden a cualquier desarrollo. Cobertura total del ciclo de desarrollo. Verificaciones intermedias. Planificación y control. Comunicación efectiva. Utilización sobre un abanico amplio de proyectos. Fácil formación. Herramientas case. La metodología debe contener actividades que mejoren el proceso de desarrollo. Soporte al mantenimiento. Por ejemplo. Reingeniería. Soporte de la reutilización de software, no solo reutilización de código. Actualmente, se huye de métodos muy burocráticos o monolíticos. Se dice entonces que una metodología es la que permita definir las etapas, las salidas, entradas de un proyecto. Mantener un programa no es fácil pero se puede lograr, por lo tanto, las metodologías deben permitir una robusta formación del proyecto que permita utilizar mecanismos de mejora y que se usen los recursos disponibles con su mayor rendimiento y eficacia.
  • 6. Metodologías Vs. Ciclo de vida Una metodología es un conjunto integrado de técnicas y métodos que permite abordar de forma homogénea y abierta cada una de las actividades del ciclo de vida de un proyecto de desarrollo. Una definición estándar de metodología puede ser el conjunto de métodos que se utilizan en una determinada actividad con el fin de formalizarla y optimizarla. Determina los pasos a seguir y cómo realizarlos para finalizar una tarea. Si esto se aplica a la Ingeniería de software, podemos destacar que una metodología: Optimiza el proceso y el producto software. Es una guía en la planificación y en el desarrollo del software. Define qué hacer, cómo y cuándo durante todo el desarrollo y mantenimiento de un proyecto.
  • 7. Una metodología define una estrategia global para enfrentarse con el proyecto. Entre los elementos que forman parte de una metodología se pueden destacar: Fases: tareas a realizar en cada fase. Productos: E/S de cada fase, documentos. Procedimientos y herramientas: apoyo a la realización de cada tarea. Criterios de evaluación: del proceso y del producto. Saber si se han logrado los objetivos. El ciclo de vida es el conjunto de fases por las que pasa el sistema que se está desarrollando desde que nace la idea inicial hasta que el software es retirado o remplazado. Entre las funciones que debe tener un ciclo de vida se pueden destacar: Determinar el orden de las fases del proceso de software. Establecer los criterios de transición para pasar de una fase a la siguiente. Definir las entradas y salidas de cada fase. Describir los estados por los que pasa el producto. Describir las actividades a realizar para transformar el producto. Definir un esquema que sirve como base para planificar, organizar, coordinar, desarrollar, entre otros. Las etapas de un ciclo de vida de un software son: Inicio: éste es el nacimiento de la idea. Aquí definimos los objetivos del proyecto y los recursos necesarios para su ejecución. Hacia dónde queremos ir, y no cómo queremos ir. Las características implícitas o explícitas de cada proyecto hacen necesaria una etapa previa destinada a obtener el objetivo por el cual se escribirán miles o cientos de miles de líneas de código. Un alto porcentaje del éxito de nuestro proyecto se definirá en estas etapas que, al igual que la etapa de debugging, muchos líderes de proyecto subestiman.
  • 8. Planificación: idearemos un planeamiento detallado que guíe la gestión del proyecto, temporal y económicamente. Implementación: acordaremos el conjunto de actividades que componen la realización del producto. Puesta en producción: nuestro proyecto entra en la etapa de definición, allí donde se lo presentamos al cliente o usuario final, sabiendo que funciona correctamente y responde a los requerimientos solicitados en su momento. Esta etapa es muy importante no sólo por representar la aceptación o no del proyecto por parte del cliente o usuario final sino por las múltiples dificultades que suele presentar en la práctica, alargándose excesivamente y provocando costos no previstos. Control en producción: control del producto, analizando cómo el proceso difiere o no de los requerimientos originales e iniciando las acciones correctivas si fuesen necesarias. Cuando decimos que hay que corregir el producto, hacemos referencia a pequeñas desviaciones de los requerimientos originales que puedan llegar a surgir en el ambiente productivo. Si nuestro programa no realiza la tarea para lo cual fue creada, esta etapa no es la adecuada para el rediseño. Incluimos también en esta etapa el liderazgo, documentación y capacitación, proporcionando directivas a los recursos humanos, para que hagan su trabajo en forma correcta y efectiva. Objetivos de cada etapa: Expresión de necesidades: Esta etapa tiene como objetivo el armado de un documento en el cual se reflejan los requerimientos y funcionalidades que ofrecerá al usuario el sistema a implementar (qué, y no cómo, se va a implementar). Especificaciones: Formalizamos los requerimientos; el documento obtenido en la etapa anterior se tomará como punto de partida para esta etapa.
  • 9. Análisis: Determinamos los elementos que intervienen en el sistema a desarrollar, su estructura, relaciones, evolución temporal, funcionalidades, tendremos una descripción clara de qué producto vamos a construir, qué funcionalidades aportará y qué comportamiento tendrá. Diseño: Ya sabemos qué hacer, ahora tenemos que determinar cómo debemos hacerlo (¿cómo debe ser construido el sistema en cuestión?); definimos en detalle entidades y relaciones de las bases de datos, seleccionamos el lenguaje que vamos a utilizar, el Sistema Gestor de Bases de Datos, entre otros). Implementación: Empezamos a codificar algoritmos y estructuras de datos, definidos en las etapas anteriores, en el correspondiente lenguaje de programación o para un determinado sistema gestor de bases de datos. En muchos proyectos se pasa directamente a esta etapa; son proyectos muy arriesgados que adoptan un modelo de ciclo de vida de code & fix (codificar y corregir) donde se eliminan las etapas de especificaciones, análisis y diseño con la consiguiente pérdida de control sobre la gestión del proyecto. Debugging (Depuración): El objetivo de esta etapa es garantizar que nuestro programa no contiene errores de diseño o codificación. En esta etapa no deseamos saber si nuestro programa realiza lo que solicitó el usuario, esa tarea le corresponde a la etapa de implementación. En ésta deseamos encontrar la mayor cantidad de errores. Todas los programas contienen errores: encontrarlos es cuestión de tiempo. Lo ideal es encontrar la mayoría, si no todos, en esta etapa. También se pueden agregar pruebas de rendimiento. Validación: Esta etapa tiene como objetivo la verificación de que el sistema desarrollado cumple con los requerimientos expresados inicialmente por el cliente y que han dado lugar al presente proyecto. En muchos proyectos las etapas de validación y debugging se realizan en paralelo por la estrecha relación que llevan. Sin embargo, tenemos que evitar la confusión: podemos realizarlos en paralelo, pero no como una única etapa.
  • 10. Evolución: En la mayoría de los proyectos se considera esta etapa como Mantenimiento y evolución, y se le asigna, no sólo el agregado de nuevas funcionalidades (evolución); sino la corrección de errores que surgen (mantenimiento). En la práctica esta denominación no es del todo errónea, ya que es posible que aun luego de una etapa de debugging y validación exhaustiva, se filtren errores. Una metodología puede seguir uno o varios modelos de ciclo de vida, adaptándose a cada uno de ellos, dependiendo de las necesidades dadas en un momento determinado, es decir, el ciclo de vida indica lo que hay que obtener a lo largo del desarrollo del proyecto pero no da las indicaciones de como obtenerlo. La metodología indica los diferentes pasos y fases para obtener los distintos productos parciales y finales. En sí para el desarrollo de software, se necesita aplicar una metodología o varias metodologías, dentro de un ciclo de vida, de manera que sepamos qué hacer y como hacerlo para conseguir lo que se quiere y cumplir con las metas planteadas. Modelos de procesos en el desarrollo de software Un modelo de proceso para el desarrollo de software es una representación simplificada de pasos, representada desde una perspectiva específica. Por su naturaleza los modelos son simplificados, por lo tanto un modelo de procesos del software es una abstracción de un proceso real.
  • 11. Estos modelos tienen como propósito la producción eficaz y eficiente de un producto software que reúna los requisitos del cliente. Este proceso es intensamente intelectual, afectado por la creatividad y juicio de las personas involucradas. La mayoría de los modelos de procesos de desarrollo del software son dirigidos por el tiempo; cuanto más tarde sea, más atrás se encontrará en el proceso de desarrollo. Como todo proceso, están constituidos de pasos o fases que contienen a su vez actividades, estos modelos de desarrollo de software se basan en un ciclo de vida para desarrollar el mismo, como lo son: La necesidad de solucionar un problema (surgimiento de necesidades) Inicio del proceso (desarrollo), dentro de esta fase se encuentra la definición del proyecto, el análisis del contexto, definición de requerimientos, diseño del sistema, construcción del sistema, pruebas e implantación. Operación y mantenimiento, donde realiza ajustes y se buscan fallas. Renovación o extinción. Los procesos de software son complejos debido a que un producto de software es intangible y por lo general muy abstracto, esto dificulta la definición del producto y sus requisitos, sobre todo cuando no se tiene precedentes en productos software similares. En general este producto está compuesto por
  • 12. hardware y software. En cuanto al hardware, su producción se realiza sistemáticamente y la base de conocimiento para el desarrollo de dicha actividad está claramente definida. Respecto del software, su construcción y resultados han sido históricamente cuestionados debido a los problemas asociados Los modelos de procesos permiten al analista de sistemas desarrollar un plan de requisitos del software, permiten establecer un trabajo en forma ordenada, además que existen muchos modelos que se adaptan a las exigencias del proyecto, solo debemos saber cual nos conviene, pero lo mas importante, es que estos modelos nos llevan a presentar los proyectos al cliente de manera que éste vea su diseño y sus funciones y que la mayoría de ellos están orientados al mantenimiento. Clasificación de las Metodologías según el modelo de proceso Modelos Convencionales o Prescriptivos de Procesos Los modelos convencionales o modelos prescriptivos de procesos permiten llenar el marco de trabajo con un conjunto de tareas orientadas al desarrollo de un software. Se les llama "prescriptivos" porque prescriben un conjunto de elementos del proceso, tales como: Actividades del Marco de Trabajo. Acciones de la Ingeniería del software. Tareas. Productos de trabajo. Aseguramiento de la calidad. Mecanismos de control del cambio para cada proyecto. Estos modelos son útiles si queremos describir un conjunto único de actividades dentro de un marco de trabajo para un proceso de software. cada actividad debe contener un conjunto de acciones de ingeniería del software, y definir cada acción en cuanto a un conjunto de tareas que identifique el trabajo (y
  • 13. los productos del trabajo) que deben completarse para alcanzar las metas de desarrollo. Sin importar el modelo del proceso que se desee usar, los ingenieros de software eligen una manera tradicional para realizar el marco de trabajo genérico para el proceso, ya que estos modelos se caracterizan por ser en esencia rígidos, estrictos y los más utilizados. En las metodologías convencionales, el ciclo de vida de un proyecto, puede definirse como un ciclo de vida lineal, ya que imponen una disciplina de trabajo sobre el proceso de desarrollo del software, con el fin de conseguir un software más eficiente. Para ello, se hace énfasis en la planificación total de todo el trabajo a realizar y una vez que está todo detallado, comienza el ciclo de desarrollo del producto software. Se centran especialmente en el control del proceso, mediante una rigurosa definición de roles, actividades, artefactos, herramientas y notaciones para el modelado y documentación detallada. Además, las metodologías tradicionales no se adaptan adecuadamente a los cambios, por lo que no son métodos adecuados cuando se trabaja en un entorno, donde los requisitos no pueden predecirse o bien pueden variar. Los modelos prescriptivos de proceso definen un conjunto distinto de actividades, acciones, tareas fundamentos y productos de trabajo que es requieren para desarrollar software de alta calidad. Los ingenieros de software y sus gerentes deben adaptar un modelo prescripto de proceso a sus necesidades y después lo siguen. Además, la gente que ha solicitado el software tiene un papel por desempeñar se ejecuta el modelo de software. ¿Por qué es importante? Porque proporciona estabilidad, control y organización a una actividad que si no se controla puede volverse caótica. ¿Cuáles son los pasos? El proceso conduce a un
  • 14. equipo de software a través de un conjunto de actividades del marco de trabajo que se organizan en un flujo de proceso. ¿Cuál es un obtenido? Desde punto de vista de un ingeniero de software, los productos de trabajo son los programas, documentos y datos que se producen como consecuencia de las actividades y tareas que define el proceso. Modelo en Cascada El modelo en cascada, algunas veces llamado el ciclo de vida clásico, sugiere un enfoque sistemático, secuencial hacia el desarrollo del software, que se inicia con la especificación de requerimientos del cliente y que continúa con la planeación, el modelado, la construcción y el despliegue para culminar en el soporte del software terminado. Este modelo es aplicable en donde existen ocasiones en que los requisitos de un problema se entienden de una manera razonable y deben estar bien definidos, también cuando el trabajo fluye desde la comunicación a través del despliegue de una manera casi lineal, esta situación se encuentra a veces cuando es necesario hacer adaptaciones o mejorías bien definidas a un sistema existente. El modelo en cascada es el paradigma más antiguo para la ingeniería del software. Sin embargo, en las décadas pasadas, las criticas a este modelo de proceso han ocasionado que aun sus más fervientes practicantes hayan cuestionado su eficacia.
  • 15. Entre los problemas que algunas veces se encuentran al aplicar el modelo en cascada están: 1. Es muy raro que los proyectos reales sigan el flujo secuencial que propone el modelo. A pesar de que el modelo lineal incluye iteraciones, lo hace de manera indirecta. Como resultado, los cambios confunden mientras el equipo de proyecto actúa. 2. Con frecuencia es difícil para el cliente establecer todos los requisitos de manera explícita. El modelo en cascada lo requiere y se enfrentan dificultades al incorporar la incertidumbre natural presente en el inicio de muchos proyectos. 3. El cliente debe tener paciencia. Una versión que funcione de los programas estará disponible cuando el proyecto esté muy avanzado. Un error grave será desastroso si no se detecta antes de la revisión del programa. En un análisis interesante de proyectos reales, Bradac(1994) concluyó que la naturaleza lineal del modelo en cascada conduce a "estados de bloqueo" en los cuales algunos miembros del equipo del proyecto deben esperar a otros para terminar tareas dependientes. De hecho, el tiempo de espera puede superar el que se aplica en el trabajo productivo. El estado de bloqueo tiende a ser más común al principio y al final del proceso secuencial. En la actualidad, el trabajo del software está acelerado y sujeto a una cadena infinita de cambios (de características, funciones y contenido de la información). Con frecuencia, el modelo en cascada no es apropiado para dicho trabajo. Sin embargo, puede servir como un modelo de proceso útil en situaciones donde los requerimientos están fijos y donde el trabajo se realiza, hasta su conclusión, de una manera lineal. Las principales etapas de este modelo según Sommerville (2005) son: Análisis y definición de requerimientos. Los servicios, restricciones y metas del sistema se definen a partir de las consultas con los usuarios. Se define una especificación del sistema. Diseño del sistema y del software. El proceso de diseño del sistema divide los requerimientos en sistemas hardware o software.
  • 16. Establece una arquitectura completa del sistema. El diseño del software identifica y describe las abstracciones fundamentales del sistema software y sus relaciones. Implementación y prueba de unidades. Durante esta etapa, el diseño del software se lleva a cabo como un conjunto o unidades de programas. Integración y prueba del sistema. Los programas o las unidades individuales de programas se integran y prueban como un sistema completo para asegurar que se cumplan los requerimientos del software. Funcionamiento y mantenimiento. El sistema se instala y se pone en funcionamiento práctico. El mantenimiento implica corregir errores no descubiertos en las etapas anteriores del ciclo de vida. Modelo de Procesos Incrementables El modelo incremental combina elementos del modelo en cascada aplicado en forma iterativa. El modelo incremental aplica secuencias lineales de manera escalonada conforme avanza el tiempo en el calendario. Cada secuencia lineal produce "incrementos" del software. Por ejemplo, el software procesador de texto, desarrollado con el paradigma incremental en su primer incremento, podría realizar
  • 17. funciones básicas de administración de archivos, edición y producción de documentos; en el segundo incremento, ediciones más sofisticadas, y tendría funciones más complejas de producción de documentos; en el tercer incremento, funciones de corrección ortográfica y gramatical; y en el cuarto, capacidades avanzadas de configuración de página. Se debe tener en cuenta que el flujo del proceso de cualquier incremento puede incorporar el paradigma de construcción de prototipos que se expone más adelante. A menudo, al utilizar un modelo incremental el primer incremento es un producto esencial. Es decir, se incorporan los requisitos básicos, pero muchas características suplementarias (algunas conocidas, otras no) no se incorporan. El producto esencial queda en manos del cliente (o se somete a una evaluación detallada). Como resultado de la evaluación se desarrolla un plan para el incremento siguiente. El plan afronta la modificación del producto esencial con el fin de satisfacer de mejor manera las necesidades del cliente y la entrega de características y funcionalidades adicionales. Este proceso se repite después de la entrega de cada incremento mientras no se haya elaborado el producto completo. El modelo de proceso incremental, al igual que la construcción de prototipos y otros enfoques evolutivos, es iterativo por naturaleza. Pero a diferencia de la construcción de prototipos, el modelo incremental se enfoca en la entrega de un producto operacional con cada incremento. Los primeros incrementos son versiones “incompletas del producto final, pero proporcionan al usuario la funcionalidad que necesita y una plataforma para evaluarlo. El desarrollo incremental es útil sobre todo cuando el personal necesario para una implementación completa no está disponible. Los primeros incrementos se pueden implementar con menos gente. Si el producto esencial es bien recibido se agrega (si se requiere) más personal para implementar el incremento siguiente. Además, los incrementos se pueden planear para manejar los riesgos técnicos. Por ejemplo, un sistema grande podría requerir la disponibilidad de un hardware nuevo que está en desarrollo y cuya fecha de entrega es incierta. Sería posible planear los primeros incrementos de forma que se evite el uso de este hardware, lo que
  • 18. permitiría la entrega de funcionalidad parcial a los usuarios finales sin retrasos desordenados. Combina elementos del modelo en cascada aplicado en forma iterativa. El modelo incremental aplica secuencias lineales de manera escalonada conforme avanza el tiempo en el calendario. Cada secuencia lineal produce incrementos. Produce entregas de software pequeñas pero usables (incrementos). Cada parte se construye sobre partes ya entregadas. Modelo de desarrollo rápido de aplicaciones (DRA) El desarrollo rápido de aplicaciones (DRA) es un modelo de proceso de software incremental que resalta un ciclo de desarrollo corto. El modelo DRA es una adaptación a "alta velocidad" del modelo en cascada en el que se logra el desarrollo rápido mediante un enfoque de construcción basado en componentes. Si se entienden bien los requisitos y se limita el ámbito del proyecto, el proceso DRA permite que un equipo de desarrollo cree un "sistema completamente funcional" dentro de un periodo muy corto (por ejemplo, de 60 a 90 días). Como otros modelos de proceso, el enfoque DRA cumple con las actividades genéricas del marco de trabajo que ya se han presentado. La comunicación trabaja
  • 19. para entender el problema de negocios y las características de información que debe incluir el software. La planeación es esencial porque varios equipos de software trabajan en paralelo sobre diferentes funciones del sistema. El modelado incluye tres grandes fases — modelado de negocios, modelado de datos y modelado del proceso — y establece representaciones del diseño que sirven como base para la actividad de construcción del modelo DRA. La construcción resalta el empleo de componentes de software existente y la aplicación de la generación automática de código. Por último, el despliegue establece una base para las iteraciones subsecuentes, si éstas son necesarias. El modelo de proceso DRA se ilustra en la siguiente figura. Es obvio que las restricciones de tiempo impuestas sobre un proyecto DRA exigen un "ámbito de escalas". Si una aplicación de negocios se puede modular de forma que cada gran función pueda completarse en menos de tres meses (mediante la aplicación del enfoque ya descrito), ésta es una candidata para el DRA. Cada gran función se puede abordar mediante un equipo de DRA por separado, para después integrarlas y formar un todo. Como todos los modelos de procesos, el enfoque DRA tiene inconvenientes: 1) Para proyectos grandes, pero escalables, el DRA necesita suficientes recursos humanos para crear en número correcto de equipos DRA. 2) Si los desarrolladores y clientes no se comprometen con las actividades rápidas necesarias para completar el sistema en un marco de tiempo muy breve, los proyectos DRA fallarán. 3) Si un sistema no se puede modular en forma apropiada, la construcción de los componentes necesarios para el DRA será problemática. 4) Si el alto rendimiento es un aspecto importante, y se alcanzará al convertir interfaces en componentes del sistema, el enfoque DRA podría no funcionar. 5) El DRA sería inapropiado cuando los riesgos técnicos son altos (por ejemplo, cuando una aplicación nueva aplica muchas nuevas tecnologías). Es un modelo de proceso del software incremental que resulta un ciclo de desarrollo corto. El modelo DRA es una adaptación a alta velocidad del modelo en
  • 20. cascada en el que se logra el desarrollo rápido mediante un enfoque de construcción basado en componentes. Hace un uso intensivo de componentes reusables de software con un ciclo de desarrollo extremadamente corto. Es importante destacar que los Modelo Prescriptivos proporcionan un conjunto de pautas para el diseño, uso y rehusó de los objetos de aprendizaje, como complemento al proceso de su descripción, de una manera iterativa o incremental, desde la concepción del objeto de aprendizaje hasta su reusabilidad a corto, mediano y largo plazo. Pero el éxito en la creación de cualquier objeto de aprendizaje dependerá de la adecuada aplicación del proceso de Ingeniería de Software, cuyas etapas facilitan el desarrollo de los objetos de aprendizaje. TECNICA DE DISEÑO ESTRUCTURADO OBJETIVOS DE LA TECNICA • Obtener la estructura modular y los detalles de proceso del sistema, partiendo solamente de los «productos» obtenidos en la fase de Análisis del Sistema. • Cambiar la atención del QUE al COMO. • Obtener un diseño que no sólo «funcione», sino que también sea mantenible, mejore la reutilización y se pueda probar y entender fácilmente. • Utilizar herramientas gráficas (Diagramas de Estructura de Cuadros) para representar la estructura modular del sistema. Se trata por tanto, de conseguir que cada módulo de la estructura en árbol que se obtenga cumpla las siguientes características: 1. Módulos de pequeño tamaño. El impacto de un cambio a realizar puede ser perfectamente aislado. Si el tamaño de los módulos es reducido, una determinada modificación afectará a un número mayor de módulos, sin embargo, la cantidad de código a considerar será menor. o Independencia modular. Cuanto mayor es la independencia de un módulo es más sencillo trabajar con él, por tanto, el diseño debe reducir la compartición de ficheros, de datos, la de dispositivos, las interfases comunes con el Sistema Operativo y las llamadas, desde o hacia otros módulos.
  • 21. 2. Características de Caja Negra. La característica de Caja Negra se aplica a cualquier sistema, programa o módulo, para dar una visión exclusiva de sus entradas y salidas, sin tener en cuenta los detalles de cómo se realiza el proceso. El uso de la Caja Negra permite una visión más fácil del conjunto, posponiendo la consideración de los detalles para una etapa posterior. 3. Modelización conceptual. Un sistema será más fácil de mantener si el modelo utilizado en su diseño se ha basado en los conceptos lógicos de la organización, los cuales serán más familiares y comprensibles para el personal de mantenimiento que las descripciones físicas (equipo, organización de la unidad, cómo se realiza el trabajo en la actualidad,...). o Aislamiento de los detalles. En un sistema existen partes que reflejan la filosofía y otras partes que reflejan los detalles. Debido a que los detalles son más susceptibles de cambiar, ambas partes deben diseñarse por separado para evitar que una variación en los detalles afecte a la filosofía del sistema.