analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS...

47
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON AMADO CODIGO 20111078089 EDISON ANDRES QUIJANO CODIGO 20131078045 BRAIAN ESTIVEN ALVARADO 20131078098 PRESENTADO A: JUAN CARLOS GUEVARA BOLAÑOS BOGOTÁ D.C MARZO DE 2015

Transcript of analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS...

Page 1: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS

TRABAJO INVESTIGATIVO 2

ANALISIS DE SISTEMAS

PRESENTADO POR:

IVAN GUSTAVO PINZON AMADO

CODIGO 20111078089

EDISON ANDRES QUIJANO

CODIGO 20131078045

BRAIAN ESTIVEN ALVARADO

20131078098

PRESENTADO A:

JUAN CARLOS GUEVARA BOLAÑOS

BOGOTÁ D.C MARZO DE 2015

Introducción

Page 2: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

El software al igual que todo, desde su comienzo ha sufrido por una serie de cambios importantes que marcaron su funcionamiento y concepto. El software es el equipamiento lógico que poseen prácticamente todas los dispositivos en la actualidad, pero en el principio de la tecnología los mecanismos o maquinas se realizaban con una metodología diferente. El software en sus inicios apareció en la década de los cincuenta y sufrió una serie de cambios que marcaron 4 etapas, mediante las cuales han surgido muchas metodologías de estudio tecnológico, con las cuales se han realizado muchos avances en la humanidad, hasta el punto de crear mecanismos capases de interactuar con humanos imitando nuestra inteligencia y capases de elaborar trabajos difíciles que han facilitado nuestra existencia.Existen varios Ítems que han aparecido con las diferentes metodologías, los cuales marcan la estructura estandarizada para realizar algunas labores. Esto no es solo en la rama informática también en otros sectores como la economía o la elaboración de proyectos entre otros. Algunas de los estándares mas conocidos los trataremos en este trabajo con el fin de dar a conocer el ciclo de vida óptimo para un software o para la elaboración de un proyecto informático. Además explicaremos algunas metodologías en detalle, con el fin de darlas a conocer y entenderlas para aprender a realizar un proyecto o un software respetando los estándares.

3. Evolución del Software

El software es el soporte lógico que administra nuestras computadoras, el cual ha surgido a partir de varias etapas y al igual que el hardware es fundamental para que nuestros ordenadores funcionen

Page 3: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

correctamente con una estructura completa y óptima para la solución de nuestros problemas tecnológicos. La ingeniería de software es una disciplina que lleva más de cincuenta años evolucionando, creando nuevas tendencias en programación y estilos de vida dedicados al estudio de la tecnología.La historia del software se ha dividido en cuatro etapas, de importante avance y una quinta, que es la actual en la cual se a reforzando muchos de los trabajos anteriormente creados y con la aparición de la web se han repotenciado. A continuación explicaremos la evolución en el tiempo, del software dentro del contexto tecnológico explicando los más importantes ingenios dentro del campo.

Primera etapa (1950 - 1965):

La aparición del software estaba en su cuna. La mayoría del software se desarrollaba y era utilizado por la

misma persona u organización. La misma persona lo escribía, lo ejecutaba y, si fallaba, lo depuraba. Debido a que la movilidad en el trabajo era baja.

El software era un añadido en algunos mecanismos por lo cual no era tan comercial.

En esta etapa el software no se elaboraba con un diseño algorítmico y se elaboraba sin ninguna planeación, puesto que solo se realizaban experimentos de resultado y no existían muchos métodos para la programación.

El diseño del software era realizado a pura mente y solo el diseñador trabajaba en su realización, por lo cual no era documentado.

Aparecieron algunos tipos de programación, como el lenguaje ensamblador FORTRAN y COBOL el cual era orientado a negocios. Eran escritos en Tarjetas Perforadas y posteriormente llevados a cuartos de entrada, esto con la aparición de los transistores y sistemas de procesamiento por lotes (Segunda generación de los Sistemas Operativos).

La segunda etapa (1965 - 1975):

Page 4: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Aparecieron la Multiprogramación y sistemas multiusuarios, introducen nuevos conceptos de interacción hombre-máquina y realizando mucho más eficientes algunos procedimientos.

Sistemas de tiempo real que podían recoger, analizar y transformar datos de múltiples fuentes y ayudaban a tomar decisiones de una manera más práctica y correcta.

Se empieza a realizar software como producto. produciéndose así una amplia distribución en el mercado, dándole creación a barias empresa encargadas al diseño de software y ayudando a el funcionamiento de grandes computadoras y microcomputadores

Debido a avances en los dispositivos de almacenamiento en línea, inicio la primera generación de sistemas de gestión de Base de Datos, puesto que era más fácil la administración de datos de entrada y salida, debido a que aparecieron algunas formas más eficientes para guardar dicha información.

Empieza la crisis del software. Debido a que el diseño del software era autónomo, en cada uno de los programadores y este era distribuido por medio de llamadas “casas de software” a diferentes empresas en el exterior. Los costos del mantenimiento eran extensos, ya que era conformado por muchas líneas de código, además tocaba realizarle correcciones en caso de fallos o modificaciones cuando cambiaba los requisitos por lo cual apareció el mantenimiento de software como resultado de esta crisis ya que el software se estaba quedando como nublado por los altos costos del mantenimiento.

Durante estos años y como innovación importante para el software apareció el lenguaje de programación C en 1972, el cual incluso en la actualidad es muy utilizado por los programadores y es la base de otros tipos de programación.

La tercera etapa (1975 - 1985):

Procesamiento Distribuido. El cual permitía realizar trabajos en conjunto, permitiendo interconectar computadores bajo funciones concurrentes.

Debido a lo anterior incrementó notablemente la complejidad de los sistemas informáticos

Redes de área local y de área global. Comunicaciones digitales de alto ancho de banda y la creciente demanda de acceso "instantáneo" a los datos.

Aparecieron los microprocesadores. Amplio uso de microprocesadores y computadoras personales

(hardware de bajo costo). Incorporación de "inteligencia" (autos, hornos de microondas, robots industriales y equipos de

Page 5: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

diagnóstico de suero sanguíneo), los cuales fueron de alto impacto en el mercado.

La cuarta etapa (1985 -2000):

Aparece la tecnología orientada a objetos, la cual facilita la elaboración de proyectos, realizando desde otra perspectiva de programación.

En 1990 se creó Java. Ratificándose como un lenguaje de programación muy eficiente y usado por los programadores en la solución de problemas informáticos

Los sistemas expertos y la inteligencia artificial se han trasladado del laboratorio a las aplicaciones prácticas, dándole vida a miles de proyectos investigativos como robótica o aplicaciones en la biotecnología entre otras

Se crea Software para redes neuronales artificiales simulando acciones de los humanos y sistemas de aprendizaje por sí mismo, creando maquinas capases de pensar autónomamente.

Sistemas operativos operativos sofisticados , en redes globales y locales

Aparece la arquitectura cliente servidor la cual hace mas eficiente las interaccones entre ordenadores y crea funciones en cada uno de las entidades encargadas se administrar información.

EL software al igual que la red se vuelven parte fundamental en la economía por el gran acceso de la población a la información y la orientación a los negocios.

Existe una Quinta generación proveniente después del 2000 hasta la actualidad, en la cual se ha aumentado la omnipresencia de la web y la reutilización de la información y componentes del software.

Ciclo de vida del software

El término ciclo de vida del software describe el desarrollo de software, desde la fase inicial hasta la fase final. El propósito de este programa es definir las distintas fases intermedias que se requieren para validar el desarrollo de la aplicación, es decir, para garantizar que el software cumpla los requisitos para la aplicación y verificación de los

Page 6: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

procedimientos de desarrollo: se asegura de que los métodos utilizados son apropiados.Estos programas se originan en el hecho de que es muy costoso rectificar los errores que se detectan tarde dentro de la fase de implementación. El ciclo de vida permite que los errores se detecten lo antes posible y por lo tanto, permite a los desarrolladores concentrarse en la calidad del software, en los plazos de implementación y en los costos asociados.El ciclo de vida básico de un software consta de los siguientes procedimientos: Definición de objetivos: definir el resultado del proyecto y su papel

en la estrategia global. Análisis de los requisitos y su viabilidad: recopilar, examinar y

formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar.

Diseño general: requisitos generales de la arquitectura de la aplicación.

Diseño en detalle: definición precisa de cada subconjunto de la aplicación.

Programación (programación e implementación): es la implementación de un lenguaje de programación para crear las funciones definidas durante la etapa de diseño.

Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones.

Integración: para garantizar que los diferentes módulos se integren con la aplicación. Éste es el propósito de la prueba de integración que está cuidadosamente documentada.

Prueba beta (o validación), para garantizar que el software cumple con las especificaciones originales.

Documentación: sirve para documentar información necesaria para los usuarios del software y para desarrollos futuros.

Implementación Mantenimiento: para todos los procedimientos correctivos

(mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo).

4.1. Descripción del ISO/IEC 12207-1

Page 7: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

La importancia del software es una parte integral y necesaria de muchos productos y sistemas, requiere un marco común internacional, para especificar las mejores practicas de los procesos de software actividades y tareas

En 1987 en una sección plenaria de la ISO, la delegación norteamericana solicito al International Software Engineering Standards Group el desarrollo de una norma relativa al proceso del ciclo de vida del software. En 1987 se constituyo el grupo de trabajo 7 para darle inicio al proyecto.

EL estándar ISO /EIC 12207 describe la arquitectura del siclo de vida del software, pero no especifica los detalles de cómo realizar o llevar a cabo los detalles del proceso.

El estándar 12207 especifica tres clases de procesos:

Primarios Organizacionales Soporte

Procesos Primarios

Estos son los promotores principales para conducir a mejorar las funciones dentro del ciclo de vida; está compuesto por cinco procesos:

Adquisición:Define las actividades del adquiriente, la organización que adquiere un producto, servicio o sistema de software

Suministro:Define las actividades del suministrador, la organización que provee el producto, servicio o sistema software. Es un complemento del proceso de adquisición

Proceso de desarrollo:

Page 8: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Define las actividades del desarrollador. Esta subdivididos en trece actividades que involucran: implementación, análisis de requerimientos del sistema, diseño de la arquitectura del software, diseño detallado del software, codificación y pruebas, integración del software, pruebas de calidad del sistema, instalación de software, aceptación del software.Estos procesos de desarrollo marcan el inicio de la implementación.

OperaciónDefine las actividades del operador, la organización que provee el servicio de operar el sistema de cómputo en el ambiente de usuario.

Mantenimiento Organiza las actividades de mantener el software en buen estado. Existen varios tipos de mantenimiento; Correctivo, perfectivo, preventivo y adaptativo)

Procesos organizaciones

Estas son las actividades que soportan y coordinan el desarrollo y el ciclo de vida de las actividades primarias. In proceso de soporte, apoya otros procesos que llevan a cabo una función especializada

Administración:

La interacción de este proceso es la de proporcionar administración a todos los demás procesos del proyecto, incluyendo administración del producto y administración del proyecto

Infraestructura:

Establece y mantiene el “hardware, software, herramientas, técnicas y estándares” que se requieren para la ejecución de los otros procesos. Cualquier estándar utilizado en un proyecto por una organización se vuelve parte de la infraestructura.

Mejoras

Define las actividades básicas que una organización (adquiriente, proveedor, operador, administrador, etc.) realiza para establecer, medir controlar y mejorar los procesos de su ciclo de vida.

Entrenamiento:

Page 9: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Define las actividades para proveer personal entrenado adecuado

Proceso de Soporte

Estan son las actividades que soportan y coodinan el desarrollo y el ciclo de las actividades primarias. Un proceso de soporte, apoya otros procesos que llevar a cabo una función espcializada. Esta compueta por ocho procesos:

Documentacion:

El proceso de documentación define las actividades necesarias para registrar toda la información producida por los procesos del ciclo de vida .

Administración de la configuración:

Incorpora actividades de identificación, control estadística y evaluación de las configuraciones así como las de la administración de versiones

Proceso de aseguramiento de la calidad

Define las actividades para asegurar objetivamente que los productos de software satisfacen los requerimientos espcificados y se adhieren a los planes establecidos.

Verificacion:

Define las actividades (para el adquiriente, el proveedor u organización independiente) para verificar los productos y servicios de software.

Validacion:

Define las actividades (para el adquiriente, el proveedor u organización independiente) para validar los productos de software del proyecto de software.

Revisiones conjuntas

Este proceso es para revisiones tanto técnicas como administrativas, para que de esta forma unas de las partes evalué el estado de los productos producidos y las actividades realizadas por la parte.

Auditorias:

Page 10: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Define las actividades para determinar el cumplimiento de los requerimientos, planes y contratos. Este proceso puede ser usado por cualquiera de las dos partes. Donde una parte (auditora) audita los productos o actividades de la otra parte (auditada).

Resolución de problemas:

Define un proceso para analizar y eliminar (resolver) todos los problemas incluyendo inconformidades, sin importar su naturaleza u origen, que sean descubiertos durante la ejecución del desarrollo, operación mantenimiento y otros procesos.

4.2. Descripción del ISO/IEC 15504-2

SO / IEC 15504-2: 2003 define los requisitos para la realización de la evaluación de proceso como base para su uso en la mejora de procesos y la determinación de la capacidad.

Evaluación de proceso se basa en un modelo de dos dimensiones que contiene una dimensión de proceso y una dimensión de capacidad. La dimensión de proceso es proporcionado por un modelo de referencia de proceso externo, el cual define un conjunto de procesos que se caracterizan por estados de resultados de propósito proceso y de proceso. La dimensión de la capacidad consiste en un marco de medición que comprende seis niveles de capacidad del proceso y sus atributos de proceso asociados.

La salida de evaluación consta de un conjunto de puntuaciones de atributos proceso para cada proceso evaluado, denominado el perfil de proceso, y también puede incluir el nivel de capacidad alcanzado por ese proceso.

ISO / IEC 15504-2: 2003 identifica el marco de medición de la capacidad del proceso y los requisitos para:

la realización de una evaluación; modelos de referencia proceso; modelos de evaluación de proceso;

Page 11: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

la verificación de la conformidad de la evaluación del proceso.

Los requisitos para la evaluación de los procesos definidos en la norma ISO / IEC 15504-2: 2003 forma una estructura que:

facilita la autoevaluación; proporciona una base para su uso en la mejora de procesos y la

determinación de la capacidad; tiene en cuenta el contexto en el que se implementa el proceso de

evaluar; produce una calificación de proceso; aborda la capacidad del proceso para lograr su propósito; es aplicable en todos los dominios de aplicación y tamaños de

organización; y puede proporcionar un punto de referencia objetiva entre

organizaciones. El conjunto mínimo de requisitos definidos en la norma ISO / IEC

15504-2: 2003 garantiza que los resultados de la evaluación son objetiva, imparcial, consistente y repetible y representante de los procesos evaluados. Resultados de las evaluaciones de proceso conformes pueden compararse cuando los alcances de las evaluaciones se consideran similar; orientación sobre este asunto, consulte la norma ISO / IEC 15504-4.

4.3. Descripción del IEEE STD 1074

Este estándar ha sido desarrollado por la IEEE para determinar el conjunto de actividades esenciales que deben ser incorporadas en el desarrollo de un producto software, sin recomendar un ciclo de vida específico. Cabe mencionar que el IEEE 1074 requiere adaptarse a cada proyecto. Las actividades que no se incluyan deben justificarse.

El IEEE 1074 contempla 17grupos de actividades y 65 actividades en total. Los grupos de actividades son:

• De Gestión del Proyecto (17 actividades)

Iniciación (4 actividades) Planificación (8)

Page 12: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Monitoreo y control (5)

•De pre-desarrollo (11)

Exploración de conceptos (4) Asignación al Sistema (3) Importación al software (4)

• De desarrollo (10)

Requisitos (3) Diseño (4) Implementación (3)

• De post-desarrollo (12)

Instalación (3) Operación y soporte (3) Mantenimiento (3) Retiro (3)

• Integrales (15)

Evaluación (7) Gestión de configuración (3) Desarrollo de documentación(2) Capacitación (3)

Page 13: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

5. Conceptos: 5.1. Ciclo de vida del software

Es la forma mediante la cual se describen los diferentes pasos que se deben seguir para el desarrollo de un software, partiendo desde una necesidad hasta llegar a la puesta en marcha de una solución y su apropiado mantenimiento. El ciclo de vida para un software comienza cuando se tiene la necesidad de resolver un problema, y termina cuando el programa que se desarrolló para cumplir con los requerimientos y deja de ser utilizado. El ciclo de vida del software es el proceso que se sigue para construir, entregar y hacer evolucionar el software, desde la concepción de una idea hasta la entrega y el retiro del sistema.

5.2. Proceso de desarrollo de software

Un proceso de desarrollo de software es la descripción de una secuencia de actividades que deben ser seguidos por un equipo de trabajadores para generar un conjunto coherente de productos, uno de los cuales en el programa del sistema deseado.

Un proceso de desarrollo de software tiene como propósito la producción eficaz y eficiente de un producto software que reúna los requisitos del clienteLa meta de la ingeniería de software es construir productos de software, o mejorar los existentes; en ingeniería de procesos, la meta es desarrollar o mejorar procesos.Un proceso de desarrollo de software es un conjunto de personas, estructuras de organización, reglas, políticas, actividades y sus procedimientos, componentes de software, metodologías, y herramientas utilizadas o creadas específicamente para definir, desarrollar, ofrecer un servicio, innovar y extender un producto de software.

El objetivo de un proceso de desarrollo de programas es la formalización de las actividades relacionadas con el desarrollo del software de un sistema informático. La mayoría de los proyectos que se desarrollan siguiendo un modelo de procesos, finalizan tarde o cuesta mucho más de lo estimado.

Page 14: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

5.3. Metodología de desarrollo de software

Un proceso de software detallado y completo suele denominarse “Metodología”. Las metodologías se basan en una combinación de los modelos de proceso genéricos (cascada, evolutivo, incremental, espiral entre otros). Adicionalmente una metodología debería definir con precisión los acciones y guías asociadas, que son aplicables a una (o algunas) actividades del proceso de desarrollo, por ejemplo, suele hablarse de métodos de análisis y/o diseño.

Una metodología de desarrollo de software es un conjunto de pasos y procedimientos que deben seguirse para desarrollar software. Una metodología está compuesta por:

Cómo dividir un proyecto en etapas. Qué tareas se llevan a cabo en cada etapa. Qué restricciones deben aplicarse. Qué técnicas y herramientas se emplean. Cómo se controla y gestiona un proyecto.

En ingeniería de software es un marco de trabajo usado para estructurar, planificar y controlar el proceso de desarrollo en sistemas de información.

Se entiende por metodología de desarrollo una colección de documentación formal referente a los procesos, las políticas y los procedimientos que intervienen en el desarrollo del software.

La finalidad de una metodología de desarrollo es garantizar la eficacia (por ejemplo, cumplir los requisitos iniciales) y la eficiencia (por ejemplo, minimizar las pérdidas de tiempo) en el proceso de generación de software. Los riesgos a afrontar y los controles a establecer varían en función de las diferentes etapas del ciclo de vida de desarrollo.

5.4. Proyecto de software

Page 15: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

La definición de un proyecto de software se hace identificando los requerimientos del software a partir de las necesidades que se deben satisfacer del negocio. La definición cubre aspectos funcionales del proyecto y los atributos de calidad que debe tener en términos de desempeño, facilidad de uso, confiabilidad, seguridad, y facilidad de mantenerlo a lo largo del tiempo. Teniendo claro estos elementos, la definición se complementa con los modelos de arquitectura que garanticen el éxito del proyecto desde el punto de vista técnico.

 En conclusión un proyecto de software es un emprendimiento que tiene como objetivo la realización de un programa para computadora o servidor web, y es necesario contar con ciertos recursos, como personal especializado, equipamiento, tiempo, recursos económicos (a veces no) y herramientas para el desarrollo.

6. Proceso de desarrollo de software

Los "procesos de desarrollo de software" poseen reglas preestablecidas, y deben ser aplicados en la creación del software de mediano y gran porte, ya que en caso contrario lo más seguro es que el proyecto o no logre concluir o termine sin cumplir los objetivos previstos, y con variedad de fallos inaceptables (fracasan, en pocas palabras).

6.1. Nombre

“Modelo en cascada “

El modelo de la cascada es uno de los primeros modelos empleados en el desarrollo de software, se popularizo en 1970 por Winston Royce y aún está vigente en algunos desarrollos. Éste modelo se define como una secuencia de actividades a ser seguidas en orden, donde la estrategia principal es definir y seguir el progreso del desarrollo de

Page 16: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

software hacia puntos de revisión bien definidos, es decir, se codifica y reparan los errores; es un proceso continuo de codificación y reparación.

6.2. Características

Es lineal  Las actividades están relacionadas secuencialmente  Cada etapa tiene una entrada y una salida  Es rígido y sistemático: La entrada de una actividad es la salida de

la etapa anterior, por lo cual no se puede dar inicio a la siguiente fase. 

Es monolítico: Existe una única fecha de entrega.  La implementación se pospone hasta que no se comprendan los

objetivos. Los documentos a entregar rigen el proceso de software Las fases que contempla el modelo de la cascada son al Análisis

y especificación de requerimientos, diseño, codificación, integración y pruebas, liberación y mantenimiento.

Ventajas:Se tiene todo bien organizado y no se mezclan las fasesAyuda a localizar errores en las primeras etapas del proyecto a un bajo costo.Ayuda a minimizar los gastos de la planificación porque permite realizarla sin problemas.

Desventajas: Gran dependencia en los requerimientos inícialesDifícilmente un cliente va a establecer al principio todos los requerimientos necesarios, por lo que provoca un gran atraso trabajando

Page 17: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

en este modelo, ya que este es muy restrictivo y no permite movilizarse entre fases.El modelo genera pocos signos visibles de progreso hasta el final. Esto puede dar la impresión de un desarrollo lento, existe la incertidumbre de los clientes si sus proyectos serán entregados a tiempo.Inicio de la codificación muy tarde en el ciclo de vida del proyecto

6.3. Etapas

1. Ingeniería y Análisis del Sistema:  Debido a que el software es siempre parte de un sistema mayor el trabajo comienza estableciendo los requisitos de todos los elementos del sistema y luego asignando algún subconjunto de estos requisitos al software. 

2. Análisis de los requisitos del software: 

Page 18: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

 El proceso de recopilación de los requisitos se centra e intensifica especialmente en el software. El ingeniero de software (Analistas) debe comprender el ámbito de la información del software, así como la función, el rendimiento y las interfaces requeridas.

3. Diseño: El diseño del software se enfoca en cuatro atributos distintos del programa: la estructura de los datos, la arquitectura del software, el detalle procedimental y la caracterización de la interfaz. El proceso de diseño traduce los requisitos en una representación del software con la calidad requerida antes de que comience la codificación. 

4. Codificación:  El diseño debe traducirse en una forma legible para la máquina. El paso de codificación realiza esta tarea. Si el diseño se realiza de una manera detallada la codificación puede realizarse mecánicamente. 

5. Prueba: Una vez que se ha generado el código comienza la prueba del programa. La prueba se centra en la lógica interna del software, y en las funciones externas, realizando pruebas que aseguren que la entrada definida produce los resultados que realmente se requieren. 

6. Verificación: Es la fase en donde el usuario final ejecuta el sistema, para ello el o los programadores ya realizaron exhaustivas pruebas para comprobar que el sistema no falle. 

7. Mantenimiento: El software sufrirá cambios después de que se entrega al cliente. Los cambios ocurrirán debido a que hayan encontrado errores, a que el software deba adaptarse a cambios del entorno externo (sistema operativo o dispositivos periféricos), o debido a que el cliente requiera ampliaciones funcionales o del rendimiento

Page 19: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

6.4. Ejemplo explicativo

El proceso para desarrollar un software mediante el modelo en cascada, inicia con un requerimiento del cliente el cual se lo presenta al diseñador para que lo analice.

Posteriormente Realiza un diseño el cual incluye varios Diagramas. Acá solo mostraremos el del diagrama de clases

Page 20: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Después de realizado el diagrama ya puede implementarlo en el lenguaje de programación que desee. Hay que recordar que si el diagrama esta bien la lógica del programa también lo estará, entonces solo faltaría codificar lo diseñado …..

7. Metodología de desarrollo de software 01

Metodología de desarrollo de software en ingeniería de software es un marco de trabajo usado para estructurar, planificar y controlar el proceso de desarrollo en sistemas de información7.1. Nombre

“Programación Orientada a objetos “

Page 21: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objeto

7.2. Características

Existe un acuerdo acerca de qué características contempla la "orientación a objetos". Las características siguientes son las más importantes:Abstracción

Denota las características esenciales de un objeto, donde se capturan sus comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos, y, cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción. El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.

EncapsulamientoSignifica reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los

Page 22: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.

ModularidadSe denomina modularidad a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan la modularidad de diversas formas.

Principio de ocultaciónCada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas; solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no puedan cambiar el estado interno de un objeto de manera inesperada, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.

PolimorfismoComportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre; al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O, dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia

Page 23: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.

HerenciaLas clases no se encuentran aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hayherencia múltiple; siendo de alta complejidad técnica por lo cual suele recurrirse a la herencia virtual para evitar la duplicación de datos.

7.3. Etapas Los modelos de datos que se utilizan como principales metodologías orientadas a objetos, para el análisis diseño y implementación son las siguientes: El método BOOCH: define modelos para describir un sistema, soportando el desarrollo iterativo e incremental. El método incluye diferentes diagramas según el enfoque que se le.

Page 24: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Método OOSE: fue desarrollado por IVAN JACOBSON OOSE ha sido llamado un Enfoque para el manejo de caso de uso, sirve como modelo central, describe la funcionalidad completa del sistema. Método OMT: el sistema es descrito a partir de tres modelos diferentes: un modelo de objetos, un modelo dinámico, y un modelo funcional.

7.4. Diagramas utilizados en cada etapaAnálisis:

Page 25: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Diseño:

Implementación:

Page 26: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Interfaz

7.5. Ejemplo explicativoPROBLEMAImplementar un programa para un supermercado que calcule el descuento que se le debe hacer a una compra de acuerdo a su edad

Page 27: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Análisis

DiseñoLógica (Diagrama de clases)

IngresarDatos

Supetermercado

Consultar la promoción

Controlador

- Obj: compra

+main()

Compra

-descuento::doublé

-Edad::doublé

+evaluarPecio(doublé,double)+Descuento (doublé)

Ejecutar

-Obj: compra

+ main()

Page 28: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Interfaz

8. Metodología de desarrollo de software 02

Page 29: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Una metodología de desarrollo de software se refiere a una forma de trabajo o un framework que es usado para estructurar, planear y controlar el proceso de desarrollo en sistemas de información.A lo largo del tiempo, una gran cantidad de métodos han sido desarrollados diferenciándose por su fortaleza y debilidad.El framework para metodología de desarrollo de software consiste en:

Una filosofía de desarrollo de programas de computación con el enfoque del proceso de desarrollo de software

Herramientas, modelos y métodos para asistir al proceso de desarrollo de software

Estos frameworks son a menudo vinculados a algún tipo de organización, que además desarrolla, apoya el uso y promueve la metodología. La metodología es a menudo documentada en algún tipo de documentación formal

8.1. Nombre

“Rational Unified Process ( RUP )”RUP es un marco de desarrollo, te indica una forma de enfocar un proyecto de desarrollo de software y después en función de la naturaleza del mismo haces las adaptaciones oportunas (sin salirte de las fronteras que te marca la metodología porque de lo contrario estaríamos hablando de algo que no sería RUP).RUP sigue principios de ingeniería del software para la obtención de sistemas de información de calidad y de esta forma proporcionar una alternativa que permita evitar que los productos que se obtengan caigan en los aspectos que caracterizan a la crisis del software (todavía muy presente en nuestros días).RUP sigue una estrategia de ciclo de vida iterativo e incremental.

8.2. CaracterísticasEl ciclo de vida RUP se divide en 4 fases: Iniciación, Elaboración, Construcción y Transición.

Page 30: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

En cada fase se realizan una o más iteraciones (con el objeto de ir perfeccionando los objetivos, mediante la interfaz  del usuario capaz de dar respuestas) y hasta que no finaliza una fase no se comienza con la siguiente. Por regla general, la fase en la que se realizan más iteraciones es la Construcción.En cada fase se refinan los objetivos de las fases anteriores en el proceso de conseguir el objetivo u objetivos de la fase, por ejemplo, en la fase de construcción se pueden modificar, añadir o eliminar requisitos, casos de uso, etc… lo que tiene un impacto en lo obtenido en fases anteriores, acercándonos cada vez más a un sistema que satisfaga las necesidades de los usuarios.En cada fase y en cada iteración se realiza un ciclo de vida en cascada con las siguientes etapas: Análisis, Diseño, Construcción (las tareas de programación que se realizan, sobre todo las fases de Construcción y Transición son perfectamente compatibles con la utilización de técnicas de integración continua y análisis estático de código), Pruebas/Integración/Implantación. El alcance del ciclo de vida depende en la fase en la que nos encontremos, es decir, aunque se realice un ciclo de vida en cascada en la fase de Iniciación, lo más probable es que no se llegue a construir nada o se llegue a algún a hacer algún prototipo de muy alto nivel.

Algunas características más.

Forma disciplinada de asignar tareas y responsabilidades (quién hace qué, cuándo y cómo)

Pretende implementar las mejores prácticas en Ingeniería de Software

Desarrollo iterativo Administración de requisitos Uso de arquitectura basada en componentes Control de cambios Modelado visual del software Verificación de la calidad del software

8.3. EtapasRUP divide el proceso en 4 fases, dentro de las cuales se realizan varias iteraciones en número variable según el proyecto y en las que se hace un mayor o menor hincapié en los distintas actividades. 

Page 31: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

• Inicio

Esta fase tiene como propósito definir y acordar el alcance del proyecto con los patrocinadores, identificar los riesgos asociados al proyecto, proponer una visión muy general de la arquitectura de software y producir el plan de las fases y el de iteraciones posteriores. • Elaboración

En la fase de elaboración se seleccionan los casos de uso que permiten definir la arquitectura base del sistema y se desarrollaran en esta fase, se realiza la especificación de los casos de uso seleccionados y el primer análisis del dominio del problema, se diseña la solución preliminar. • Construcción

El propósito de esta fase es completar la funcionalidad del sistema, para ello se deben clarificar los requisitos pendientes, administrar los cambios de acuerdo a las evaluaciones realizados por los usuarios y se realizan las mejoras para el proyecto.

• Transición

El propósito de esta fase es asegurar que el software esté disponible para los usuarios finales, ajustar los errores y defectos encontrados en las pruebas de aceptación, capacitar a los usuarios y proveer el soporte técnico necesario. Se debe verificar que el producto cumpla con las especificaciones entregadas por las personas involucradas en el proyecto.

8.4. Diagramas utilizados en cada etapa

Inicio:

Documento Visión

Page 32: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Diagramas de caso de uso Especificación de Requisitos Diagrama de Requisitos

Elaboración: Documento Arquitectura que trabaja con las siguientes vistas:

Vista Lógica

Diagrama de clases Modelo E-R (Si el sistema así lo requiere)Vista de Implementación

Diagrama de Secuencia Diagrama de estados Diagrama de ColaboraciónVista Conceptual

Modelo de dominioVista física

Page 33: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Mapa de comportamiento a nivel de hardware. Diseño y desarrollo de casos de uso, o flujos de casos de uso

arquitectónicos Pruebas de los casos de uso desarrollados, que demuestran que la

arquitectura documentada responde adecuadamente a requerimientos funcionales y no funcionales.

Construcción:

Especificación de requisitos faltantes Diseño y desarrollo de casos de uso y/o flujos de acuerdo con la

planeación iterativa Pruebas de los casos de uso desarrollados, y pruebas de regresión

según sea el casoTransición:

Pruebas finales de aceptación

Page 34: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Puesta en producción Estabilización

8.5. Ejemplo explicativo

El proyecto es el desarrollo de un sistema para la gestión de artículos deportivos de una empresa del sector de ventas de deportes a clientes tanto mayoristas como minoristas Para facilitar el desarrollo de este proyecto se utilizaron como soporte las siguientes plantillas basadas en la metodológica RUP.

Page 35: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Se muestra las planificaciones temporales de desarrollo del proyecto en sus fase de inicio y de elaboración, así como el diario de la ejecución del proyecto, junto con el diario de construcción de la aplicación y cumplimiento de los plazos estimados.

Page 36: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Planificación del proyecto:

Page 37: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Se muestra los artefactos utilizados de la metodología RUP para definir un modelo del negocio, modelo de objetos del negocio y el modelo del dominio

Modelo del negocio :

Page 38: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Modele del dominio

Page 39: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Modelo del seguimiento preventivo del negocio:

Page 40: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

Modelo final de entrega del producto:

9. Conclusiones

Page 41: analisisdesistemas1.files.wordpress.com · Web viewUNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS TRABAJO INVESTIGATIVO 2 ANALISIS DE SISTEMAS PRESENTADO POR: IVAN GUSTAVO PINZON

La elaboración de software es un proceso que a lo largo del tiempo siempre se ha realizado bajo algunos parámetros, sean los requerimientos del usuario o las normas para diseñarlo. Es fundamental seguir los ítems recomendados por entidades reconocidas para la elaboración de proyectos, ya que es importante para el desarrollo del mismo. Además en la vida laboral estos requerimientos son muy cotidianos ya que todas las empresas trabajan siguiendo las normas de las entidades más reconocidas como las vistas en este proyecto.Basta con entender que todo en la vida tiene un orden, y en el desarrollo de software ya hay varias organizaciones que nos muestran el camino más eficaz en diferentes procesos de desarrollo de software

10. Bibliografía

http://ocw.uc3m.es/ingenieria-informatica/diseno-de-software-avanzado/material-de-clase-1/01-El_Proceso_de_Desarrollo_de_Software.pdf

http://www.monografias.com/trabajos73/evolucion-software/evolucion-software.shtml

http://datateca.unad.edu.co/contenidos/301404/301404_ContenidoEnLinea/leccin_2__evolucin_del_software.html

http://www.academia.edu/6362716/METODO_EN_CASCADA

http://es.slideshare.net/jpbthames/modelo-en-cascada-7640217

http://es.slideshare.net/hector_h30/metodologas-para-anlisis-y-diseo-orientado-a-objetos-1095524

http://rdsoporteymantenimientodepc.blogspot.com/2014/03/metodologia-de-desarrollo-de-software.html

http://ocw.uc3m.es/ingenieria-informatica/diseno-de-software-avanzado/material-de-clase-1/01-El_Proceso_de_Desarrollo_de_Software.pdf

http://www.ctr.unican.es/asignaturas/MC_OO/Doc/OO_08_I2_Proceso.pdf

http://www.monografias.com/trabajos5/desof/desof.shtml