sección de técnicas de ingeniería de software(2007)

24
Sección de técnicas de ingeniería de software Escuela especializada en ingeniería (ITCA-FEPADE) Docente: Lic. Mario quintanilla Alumno: Denny Osael López Medina. Sección: s-1-b

Upload: denny-osael-lopez-medina

Post on 09-Jun-2015

1.400 views

Category:

Education


3 download

DESCRIPTION

cuestionario de ingenieria de software, modelos de proceso de proceso de desarrollo de software, producto y proceso.

TRANSCRIPT

Page 1: SeccióN De TéCnicas  De IngenieríA De Software(2007)

Sección de técnicas de ingeniería de software

Escuela especializada en ingeniería (ITCA-FEPADE)

Docente:Lic. Mario quintanilla

Alumno:Denny Osael López Medina.Sección: s-1-b

Page 2: SeccióN De TéCnicas  De IngenieríA De Software(2007)

cuestionario

1.¿Existe alguna diferencia entre Programa, Software y aplicación? Describa la definición de cada uno de estos términos, relaciónelos y posteriormente encuentre las diferencias (si las hay), o las similitudes (si las hay)

 Programa: Un programa informático es un conjunto de instrucciones que una vez ejecutadas

realizarán una o varias tareas en una computadora. Sin programas, estas máquinas no pueden funcionar correctamente. Al conjunto general de programas, se lo denomina software y así, se refiere al equipamiento lógico o soporte lógico de una computadora digital.

 Software: Es el conjunto de los programas de cómputo, procedimientos, reglas,

documentación y datos asociados que forman parte de las operaciones de un sistema de computación.]

El software no son solo programas, sino todos los documentos asociados y la configuración de datos que se necesitan para hacer que estos programas operen de manera correcta

 Aplicación: En informática, una aplicación es un tipo de programa informático diseñado como

herramienta para permitir a un usuario realizar uno o diversos tipos de trabajo.

Page 3: SeccióN De TéCnicas  De IngenieríA De Software(2007)

2. ¿Qué es ingeniería? La ingeniería es el conjunto de conocimientos y técnicas científicas aplicadas, que

se dedica a la resolución u optimización de los problemas que afectan directamente a la humanidad.

 3.¿Qué es Ingeniería de Software?

Ingeniería de software es la disciplina o área de la informática que ofrece métodos y técnicas para desarrollar y mantener software de calidad.

  Esta ingeniería trata con áreas muy diversas de la informática y de las ciencias de

la computación, tales como construcción de compiladores, sistemas operativos, o desarrollos Intranet/Internet, abordando todas las fases del ciclo de vida del desarrollo de cualquier tipo de sistemas de información y aplicables a infinidad de áreas: negocios, investigación científica, medicina, producción, logística, banca, control de tráfico, meteorología, derecho, Internet, Intranet, etc.

4.¿Por qué se dice que “el Software no se crea ni se construye, si no se desarrolla” Creo que se refiere a que no ha sido creado sino que en el transcurso de los años

solamente se ha ido mejorando e incluso sigue mejorándose en la actualidad. 5.Qué es calidad? Calidad, significa desarrollar, diseñar y producir y mantener un producto que sea el

mas económico, el mas útil y siempre satisfactorio para el consumidor. Calidad, es la aplicación de los principios y técnicas estadísticas en todas las fases

de la producción, dirigida a la fabricación mas económica de un producto (servicio) que es útil en grado máximo y que tiene mercado.

Page 4: SeccióN De TéCnicas  De IngenieríA De Software(2007)

6.¿Qué es calidad de software? La calidad del software es el grado con el que un sistema, componente o proceso

cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario.

Concordancia del software producido con los requerimientos explícitamente establecidos, con los estándares de desarrollo prefijados y con los requerimientos implícitos no establecidos formalmente, que desea el usuario.

7.¿Porqué se dice que “No existe software Terminado” Cuando decimos esto nos referimos que cuando un software es entregado siempre

tiene un o muchos errores que se deben corregir 8.¿En qué consiste un Proyecto de Desarrollo de Software? Con un proyecto de desarrollo de software se pretende dotar con los recursos

necesarios al s software para que un buen funcionamiento y que pueda trabajar con mayor eficiencia y que cumpla con las necesidades o requerimientos del usuario.

 9.¿Cuáles son las etapas del 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).

 

Page 5: SeccióN De TéCnicas  De IngenieríA De Software(2007)

El proceso de desarrollo puede involucrar numerosas y variadas tareas, desde lo administrativo, pasando por lo técnico y hasta la gestión y el gerenciamiento. Pero casi rigurosamente siempre se cumplen ciertas etapas mínimas; las que se pueden resumir como sigue:

Captura, Elicitación, Especificación y Análisis de requisitos Diseño Codificación Pruebas (unitarias y de integración) Instalación y paso a Producción Mantenimiento10.¿Cuál es la diferencia entre el término ingeniería de software y el simple desarrollo o producción

de software? Ingeniería de software: es la disciplina o área de la informática que ofrece métodos y

técnicas para desarrollar y mantener software de calidad. 11.¿Cuáles son los Modelos de desarrollo de software? Modelos de desarrollo de software La ingeniería de software tiene varios modelos, paradigmas o filosofías de desarrollo en los

cuales se puede apoyar para la realización de software, de los cuales podemos destacar a éstos por ser los más utilizados y los más completos:

Modelo en cascada o Clásico (modelo tradicional) Modelo en espiral (modelo evolutivo) Desarrollo por etapas Desarrollo iterativo y creciente o Iterativo e Incremental RAD (Rapid Application Development) Desarrollo concurrente RUP (Modelo Racional) Proceso Unificado

Page 6: SeccióN De TéCnicas  De IngenieríA De Software(2007)

12.Revisar el video acerca de “¿Qué pasaría si los programadores hicieran los aviones?”¿Por qué se da ese fenómeno? Porque cuando un programa ó sistema es puesto a funcionar muchas veces tiene

que hacer correcciones o ajustes pero no antes porque solamente se pueden corregir cuando en sistema está funcionando normalmente.

 ¿Cuál es el mensaje que te deja el video? Nos da una perspectiva concreta de la verdad de los programadores. Se muestra en el video que los programadores van armando el avión a medida va

volando corrigiendo y añadiendo las partes que le hacen falta hasta que lo terminan.

¿Se hará realmente lo correcto? A aunque no lo queramos aceptar esa es la realidad de los programadores cuando

entregamos cierto sistema casi siempre tenemos que hacerle ajustes añadirle ó cambiarle muchas cosas hasta que esté completo.

 ¿Qué estrategias proporciona la Ingeniería de Software para solventar esta situación? Practica del conocimiento científico en el diseño y construcción de programas. Establecimiento y uso de principios sólidos de la ingeniería para obtener

económicamente un software confiable y que funcione de modo eficiente. La aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo

operación (funcionamiento) y mantenimiento del software. Disciplina de la ingeniería que comprende todos los aspectos de la producción de

software desde las etapas iníciales de la especificación del sistema hasta el mantenimiento de este después que se utiliza.

Page 7: SeccióN De TéCnicas  De IngenieríA De Software(2007)

 13.Revisar el video “Ariane Flight 501”¿Qué fue lo que sucedió? El software del Ariane Flight 501 estaba mal diseñado lo que ocasiono que 40

segundos después se partiera y explotara. ¿Qué efectos tienen las fallas del software sobre el cohete? Los efectos fueron devastadores pues el cohete se partió en dos y exploto

matando a sus tripulantes lo que ocasiono no solo pérdidas económicas sino pérdidas humanas.

 ¿Cómo afectan nuestras vidas que el software no sea de calidad? Cuando el software es de mala calidad tiende a no cumplir con las

necesidades para las que fueron hechos, creando un conflicto en el trabajo del usuario.

 ¿Cómo podremos garantizar calidad en el desarrollo de software? Haciendo pruebas meticulosas para evitar desastres de cómo el del “Ariane

Flight 501” En estos casos no se pueden permitir cometer errores de ese tipo pues

cuestan no solo dinero sino que también que las vidas de personas inocentes. 

Page 8: SeccióN De TéCnicas  De IngenieríA De Software(2007)

Modelos de desarrollo de software. El proceso de desarrollo del software 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 cliente. Este proceso es intensamente intelectual, afectado por la creatividad y juicio de las personas involucradas . Aunque un proyecto de desarrollo de software es equiparable en muchos aspectos a cualquier otro proyecto de ingeniería, en el desarrollo de software hay una serie de desafíos adicionales, relativos esencialmente a la naturaleza del producto obtenido. A continuación se explican algunas particularidades asociadas al desarrollo de software y que influyen en su proceso de construcción.

Un producto software en sí es complejo, es prácticamente inviable conseguir un

100% de confiabilidad de un programa por pequeño que sea. Existe una inmensa combinación de factores que impiden una verificación exhaustiva de las todas posibles situaciones de ejecución que se puedan presentar (entradas, valores de variables, datos almacenados, software del sistema, otras aplicaciones que intervienen, el hardware sobre el cual se ejecuta, etc.).

El proceso de desarrollo de software no es único. No existe un proceso de software universal que sea efectivo para todos los contextos de proyectos de desarrollo. Debido a esta diversidad, es difícil automatizar todo un proceso de desarrollo de software.

Page 9: SeccióN De TéCnicas  De IngenieríA De Software(2007)

Modelos de procesos de software

Codificar y corregir (Code-and-Fix) Este es el modelo básico utilizado en los inicios del desarrollo de software.

Contiene dos pasos: Escribir código. Corregir problemas en el código. Se trata de primero implementar algo de código y luego pensar acerca de

requisitos, diseño, validación, y mantenimiento. Este modelo tiene tres problemas principales [7]: Después de un número de correcciones, el código puede tener una muy

mala estructura, hace que los arreglos sean muy costosos. Frecuentemente, aún el software bien diseñado, no se ajusta a las

necesidades del usuario, por lo que es rechazado o su reconstrucción es muy cara.

El código es difícil de reparar por su pobre preparación para probar y modificar.

Page 10: SeccióN De TéCnicas  De IngenieríA De Software(2007)

Modelo en cascadaEl primer modelo de desarrollo de software que se publicó se derivó de otros procesos

de ingeniería [8]. Éste toma las actividades fundamentales del proceso de especificación, desarrollo, validación y evolución y las representa como fases separadas del proceso.

El modelo en cascada consta de las siguientes fases: Definición de los requisitos: Los servicios, restricciones y objetivos son establecidos

con los usuarios del sistema. Se busca hacer esta definición en detalle. Diseño de software: Se particiona el sistema en sistemas de software o hardware.

Se establece la arquitectura total del sistema. Se identifican y describen las abstracciones y relaciones de los componentes del sistema.

Implementación y pruebas unitarias: Construcción de los módulos y unidades de software. Se realizan pruebas de cada unidad.

Integración y pruebas del sistema: Se integran todas las unidades. Se prueban en conjunto. Se entrega el conjunto probado al cliente.

Operación y mantenimiento: Generalmente es la fase más larga. El sistema es puesto en marcha y se realiza la corrección de errores descubiertos. Se realizan mejoras de implementación. Se identifican nuevos requisitos.

Page 11: SeccióN De TéCnicas  De IngenieríA De Software(2007)

Desarrollo evolutivo La idea detrás de este modelo es el desarrollo de una implantación del sistema

inicial, exponerla a los comentarios del usuario, refinarla en N versiones hasta que se desarrolle el sistema adecuado. En la Figura 6 se observa cómo las actividades concurrentes: especificación, desarrollo y validación, se realizan durante el desarrollo de las versiones hasta llegar al producto final.

Una ventaja de este modelo es que se obtiene una rápida realimentación del usuario, ya que las actividades de especificación, desarrollo y pruebas se ejecutan en cada iteración.

Existen dos tipos de desarrollo evolutivo: Desarrollo Exploratorio: El objetivo de este enfoque es explorar con el usuario los

requisitos hasta llegar a un sistema final. El desarrollo comienza con las partes que se tiene más claras. El sistema evoluciona conforme se añaden nuevas características propuestas por el usuario.

Enfoque utilizando prototipos: El objetivo es entender los requisitos del usuario y trabajar para mejorar la calidad de los requisitos. A diferencia del desarrollo exploratorio, se comienza por definir los requisitos que no están claros para el usuario y se utiliza un prototipo para experimentar con ellos. El prototipo ayuda a terminar de definir estos requisitos.

Page 12: SeccióN De TéCnicas  De IngenieríA De Software(2007)

MÉTODO ESPIRAL Su Modelo de Ciclo de Vida en Espiral tiene en cuenta fuertemente el riesgo que

aparece a la hora de desarrollar software. Para ello, se comienza mirando las posibles alternativas de desarrollo, se opta por la de riesgo más asumible y se hace un ciclo de la espiral. Si el cliente quiere seguir haciendo mejoras en el software, se vuelve a evaluar las distintas nuevas alternativas y riesgos y se realiza otra vuelta de la espiral, así hasta que llegue un momento en el que el producto software desarrollado sea aceptado y no necesite seguir mejorándose con otro nuevo ciclo.

Cada ciclo de desarrollo se divide en cuatro fases: Definición de objetivos: Se definen los objetivos. Se definen las restricciones del

proceso y del producto. Se realiza un diseño detallado del plan administrativo. Se identifican los riesgos y se elaboran estrategias alternativas dependiendo de estos.

Evaluación y reducción de riesgos: Se realiza un análisis detallado de cada riesgo identificado. Pueden desarrollarse prototipos para disminuir el riesgo de requisitos dudosos. Se llevan a cabo los pasos para reducir los riesgos.

Desarrollo y validación: Se escoge el modelo de desarrollo después de la evaluación del riesgo. El modelo que se utilizará (cascada, sistemas formales, evolutivo, etc.) depende del riesgo identificado para esa fase.

Planificación: Se determina si continuar con otro ciclo. Se planea la siguiente fase del proyecto.

Page 13: SeccióN De TéCnicas  De IngenieríA De Software(2007)
Page 14: SeccióN De TéCnicas  De IngenieríA De Software(2007)

Desarrollo por etapas El modelo de desarrollo de software por etapas es similar al Modelo de prototipos ya

que se muestra al cliente el software en diferentes estados sucesivos de desarrollo, se diferencia en que las especificaciones no son conocidas en detalle al inicio del proyecto y por tanto se van desarrollando simultáneamente con las diferentes versiones del código.

Pueden distinguirse las siguientes fases: Especificación conceptual Análisis de requerimientos Diseño inicial Diseño detallado, codificación, depuración y liberación

Estas diferentes fases se van repitiendo en cada etapa del diseño.

Page 15: SeccióN De TéCnicas  De IngenieríA De Software(2007)

Desarrollo iterativo y creciente Desarrollo iterativo y creciente (o incremental) es un proceso de desarrollo de

software, creado en respuesta a las debilidades del modelo tradicional de cascada. Para apoyar el desarrollo de proyectos por medio de este modelo se han creado

frameworks (entornos de trabajo), de los cuales los dos más famosos son el Rational Unified Process y el Dynamic Systems Development Method. El desarrollo incremental e iterativo es también una parte esencial de un tipo de programación conocido como Extreme Programming y los demás frameworks de desarrollo rápido de software.

Ciclo de vida La idea principal detrás de mejoramiento iterativo es desarrollar un sistema de

programas de manera incremental, permitiéndole al desarrollador sacar ventaja de lo que se ha aprendido a lo largo del desarrollo anterior, incrementando, versiones entregables del sistema. El aprendizaje viene de dos vertientes: el desarrollo del sistema, y su uso (mientras sea posible). Los pasos claves en el proceso son comenzar con una implementación simple de los requerimientos del sistema, e iterativamente mejorar la secuencia evolutiva de versiones hasta que el sistema completo esté implementado. En cada iteración, se realizan cambios en el diseño y se agregan nuevas funcionalidades y capacidades al sistema.

El proceso en sí mismo consiste de: Etapa de inicialización Etapa de iteración Lista de control de proyecto

Page 16: SeccióN De TéCnicas  De IngenieríA De Software(2007)

Desarrollo rápido de aplicaciones El Desarrollo Rápido de Aplicaciones (DRA) (rapid application Development RAD) es un modelo

de proceso del desarrollo del software lineal secuencial que enfatiza un ciclo de desarrollo extremadamente corto. DRA es una adaptación a "Alta velocidad" en el que se logra el desarrollo rápido utilizando un enfoque de construcción basado en componentes. Si se comprenden bien los requisitos y se limita el ámbito del proyecto, el proceso DRA permite al equipo de desarrollo crear un "sistema completamente funcional" dentro de periodos cortos de tiempo. Cuando se utiliza principalmente para aplicaciones de sistemas de información, el enfoque DRA comprende las siguientes fases:

Modelado de gestión: el flujo de información entre las funciones de gestión se modela de forma que responda a las siguientes preguntas: ¿Qué información conduce el proceso de gestión? ¿Qué información se genera? ¿Quién la genera? ¿A dónde va la información? ¿Quién la proceso?

Modelado de datos: el flujo de información definido como parte de la fase de modelado de gestión se refina como un conjunto de objetos de datos necesarios para apoyar la empresa. Se definen las características (llamadas atributos) de cada uno de los objetos y las relaciones entre estos objetos.

Modelado de proceso: los objetos de datos definidos en la fase de modelado de datos quedan transformados para lograr el flujo de información necesario para implementar una función de gestión. Las descripciones del proceso se crean para añadir, modificar, suprimir, o recuperar un objeto de datos. Es la comunicación entre los objetos.

Generación de aplicaciones: El DRA asume la utilización de técnicas de cuarta generación. En lugar de crear software con lenguajes de programación de tercera generación, el proceso DRA trabaja para volver a utilizar componentes de programas ya existentes (cuando es posible) o a crear componentes reutilizables (cuando sea necesario). En todos los casos se utilizan herramientas automáticas para facilitar la construcción del software.

Pruebas de entrega: Como el proceso DRA enfatiza la reutilización, ya se han comprobado muchos de los componentes de los programas. Esto reduce tiempo de pruebas. Sin embargo, se deben probar todos los componentes nuevos y se deben ejercitar todas las interfaces a fondo.

Page 17: SeccióN De TéCnicas  De IngenieríA De Software(2007)

Proceso Unificado de Rational El Proceso Unificado de Racional (Rational Unified Process en inglés, habitualmente

resumido como RUP) es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos.

El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización.

También se conoce por este nombre al software desarrollado por Rational, hoy propiedad de IBM, el cual incluye información entrelazada de diversos artefactos y descripciones de las diversas actividades. Está incluido en el Rational Method Composer (RMC), que permite la personalización de acuerdo a necesidades.

Originalmente se diseñó un proceso genérico y de dominio público, el Proceso

Unificado, y una especificación más detallada, el Rational Unified Process, que se vendiera como producto independiente.

Principios de desarrollo El RUP está basado en 6 principios clave que son: Adaptar el proceso Equilibrar prioridades Demostrar valor iterativamente Colaboración entre equipos Elevar el nivel de abstracción Enfocarse en la calidad

Page 18: SeccióN De TéCnicas  De IngenieríA De Software(2007)

Proceso Unificado

El Proceso Unificado de Desarrollo Software o simplemente Proceso Unificado es un marco de desarrollo de software que se caracteriza por estar dirigido por casos de uso, centrado en la arquitectura y por ser iterativo e incremental. El refinamiento más conocido y documentado del Proceso Unificado es el Proceso Unificado de Rational o simplemente RUP.

El Proceso Unificado no es simplemente un proceso, sino un marco de trabajo extensible que puede ser adaptado a organizaciones o proyectos específicos. De la misma forma, el Proceso Unificado de Rational, también es un marco de trabajo extensible, por lo que muchas veces resulta imposible decir si un refinamiento particular del proceso ha sido derivado del Proceso Unificado o del RUP. Por dicho motivo, los dos nombres suelen utilizarse para referirse a un mismo concepto.

El nombre Proceso Unificado se usa para describir el proceso genérico que incluye aquellos elementos que son comunes a la mayoría de los refinamientos existentes. También permite evitar problemas legales ya que Proceso Unificado de Rational o RUP son marcas registradas por IBM (desde su compra de Rational Software Corporation en 2003.

Desde entonces los autores que publican libros sobre el tema y que no están afiliados a Rational utilizan el término Proceso Unificado, mientras que los autores que pertenecen a Rational favorecen el nombre de Proceso Unificado de Rational.

Características Iterativo e Incremental Dirigido por los casos de uso Centrado en la arquitectura Enfocado en los riesgos

Page 19: SeccióN De TéCnicas  De IngenieríA De Software(2007)

producto ¿Qué es producto?El software es un producto que diseñen y construyen los ingenieros

de software. es decir: Un producto de software es un producto diseñado para

un usuario"

¿ Quién lo hace? Los ingenieros de software lo construyen, y virtualmente

cualquier persona en el mundo industrializado lo utiliza bien directa o indirectamente.

producto obtenido? Desde el punto de vista de un ingeniero de software, el producto

obtenido son los programas, documentos y los datos que configuran el software de computadora. Pero desde el punto de vista de los usuarios en la información que hace de algún modo el mundo mejor a los usuarios.

Page 20: SeccióN De TéCnicas  De IngenieríA De Software(2007)

¿Qué es proceso? El proceso de ingeniería de software se define como "un

conjunto de etapas parcialmente ordenadas con la intención de logra un objetivo, en este caso, la obtención de un producto de software de calidad”. El proceso de desarrollo de software "es aquel en que las necesidades del usuario son traducidas en requerimientos de software, estos requerimientos transformados en diseño y el diseño implementado en código, el código es probado, documentado y certificado para su uso operativo". Concretamente "define quién está haciendo qué, cuándo hacerlo y cómo alcanzar un cierto objetivo" .

El proceso de desarrollo de software requiere por un lado un conjunto de conceptos, una metodología y un lenguaje propio. A este proceso también se le llama el ciclo de vida del software que comprende cuatro grandes fases: concepción, elaboración, construcción y transición. La concepción define le alcance del proyecto y desarrolla un caso de negocio. La elaboración define un plan del proyecto, especifica las características y fundamenta la arquitectura. La construcción crea el producto y la transición transfiere el producto a los usuarios.

Page 21: SeccióN De TéCnicas  De IngenieríA De Software(2007)

Capas de la Ingeniería de Software. Dichas capas se describen a continuación:

Cualquier disciplina de ingeniería (incluida la ingeniería del software) debe descansar sobre un esfuerzo de organización de calidad. La gestión total de la calidad y las filosofías similares fomentan una cultura continua de mejoras de procesos que conduce al desarrollo de enfoques cada vez más robustos para la ingeniería del software.

El fundamento de la ingeniería de software es la capa proceso. El proceso define un marco de trabajo para un conjunto de áreas clave, las cuales forman la base del control de gestión de proyectos de software y establecen el contexto en el cual: se aplican los métodos técnicos, se producen resultados de trabajo, se establecen hitos, se asegura la calidad y el cambio se gestiona adecuadamente.

Los métodos de la ingeniería de software indican cómo construir técnicamente el software. Los métodos abarcan una gran gama de tareas que incluyen análisis de requisitos, diseño, construcción de programas, pruebas y mantenimiento. Estos métodos dependen de un conjunto de principios básicos que gobiernan cada área de la tecnología e incluyen actividades de modelado y otras técnicas descriptivas.

Las herramientas de la ingeniería del software proporcionan un soporte automático o semi-automático para el proceso y los métodos, a estas herramientas se les llama herramientas CASE (Computer-Aided Software Engineering).

Dado lo anterior, el objetivo de la ingeniería de software es lograr productos de software de calidad (tanto en su forma final como durante su elaboración), mediante un proceso apoyado por métodos y herramientas.

Page 22: SeccióN De TéCnicas  De IngenieríA De Software(2007)

Capas de la Ingeniería de Software

Page 23: SeccióN De TéCnicas  De IngenieríA De Software(2007)

A pesar de la variedad de propuestas de proceso de software, existe un conjunto de actividades fundamentales que se encuentran presentes en todos ellos [4]:

Especificación de software: Se debe definir la funcionalidad y restricciones operacionales que debe cumplir el software.

Diseño e Implementación: Se diseña y construye el software de acuerdo a la especificación.

Validación: El software debe validarse, para asegurar que cumpla con lo que quiere el cliente.

Evolución: El software debe evolucionar, para adaptarse a las necesidades del cliente.

Además de estas actividades fundamentales, Pressman [1] menciona un conjunto de “actividades protectoras”, que se aplican a lo largo de todo el proceso del software. Ellas se señalan a continuación:

Seguimiento y control de proyecto de software. Revisiones técnicas formales. Garantía de calidad del software. Gestión de configuración del software. Preparación y producción de documentos. Gestión de reutilización. Mediciones. Gestión de riesgos.

Page 24: SeccióN De TéCnicas  De IngenieríA De Software(2007)

caracteriza un proceso de desarrollo de software como se muestra en la Figura 3. Los elementos involucrados se describen a continuación:

Un marco común del proceso, definiendo un pequeño número de actividades del marco de trabajo que son aplicables a todos los proyectos de software, con independencia del tamaño o complejidad.

Un conjunto de tareas, cada uno es una colección de tareas de ingeniería del software, hitos de proyectos, entregas y productos de trabajo del software, y puntos de garantía de calidad, que permiten que las actividades del marco de trabajo se adapten a las características del proyecto de software y los requisitos del equipo del proyecto.

Las actividades de protección, tales como garantía de calidad del software, gestión de configuración del software y medición, abarcan el modelo del proceso. Las actividades de protección son independientes de cualquier actividad del marco de trabajo y aparecen durante todo el proceso.