Sesión 01 - Objetivos de la Ingeniería de Software I Conceptos y demás PDF

Title Sesión 01 - Objetivos de la Ingeniería de Software I Conceptos y demás
Author kocky ravenna rupay
Course Calidad de software
Institution Servicio Nacional de Adiestramiento en Trabajo Industrial
Pages 11
File Size 575.7 KB
File Type PDF
Total Downloads 35
Total Views 133

Summary

incluye conceptos básicos de lo que se debe saber para comprender el desarrollo del curso en lo que a continuación sigue. Hay algunos ejemplos....


Description

Ingeniería de Software

SESIÓN I PDSD – IV

OBJETIVO DE LA INGENIERÍA DE SOFTWARE 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, para diseñar aplicaciones informáticas que se ajusten a las necesidades de las organizaciones. Así mismo, permita dirigir y coordinar el desarrollo de aplicaciones complejas, intervenir en todas las fases del ciclo de vida de un producto. Estimar los costes de un proyecto y determinar los tiempos de desarrollo. La ingeniería de software aplica diferentes normas y métodos que permiten obtener mejores resultados, en cuanto al desarrollo y uso del software, mediante la aplicación correcta de estos procedimientos se puede llegar a cumplir de manera satisfactoria con los objetivos fundamentales de la ingeniería de software. Entre los objetivos de la ingeniería de software están: •

Mejorar el diseño de aplicaciones o software de tal modo que se adapten de mejor manera a las necesidades de las organizaciones o finalidades para las cuales fueron creadas.



Promover mayor calidad al desarrollar aplicaciones complejas.



Brindar mayor exactitud en los costos de proyectos y tiempo de desarrollo de los mismos.



Aumentar la eficiencia de los sistemas al introducir procesos que permitan medir mediante normas específicas, la calidad del software desarrollado, buscando siempre la mejor calidad posible según las necesidades y resultados que se quieren generar.



Una mejor organización de equipos de trabajo, en el área de desarrollo y mantenimiento de software.



Detectar a través de pruebas, posibles mejoras para un mejor funcionamiento del software desarrollado.

¿Qué es la Ingeniería de Software? Ingeniería de software es el área de la ingeniería que ofrece métodos y técnicas para desarrollar y mantener software. 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 Ing. Billy Roger Socla Mezarino

Página 1

Ingeniería de Software

SESIÓN I PDSD – IV

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. Una definición precisa aún no ha sido contemplada en los diccionarios, sin embargo, se pueden citar las enunciadas por algunos de los más prestigiosos autores: •

Ingeniería de software es el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software (Zelkovitz, 1978)



Ingeniería de software es la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para desarrollar, operar y mantenerlos. Se conoce también como desarrollo de software o producción de software (Bohem, 1976).



Ingeniería de software trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales (Bauer, 1972).



Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software; es decir, la aplicación de la ingeniería al software (IEEE, 1993). La ingeniería de software tiene el objetivo de resolver estos problemas mediante la producción de buena calidad, software fácil de mantener, a tiempo, dentro del

presupuesto. Para lograr este objetivo, tenemos que centrarse de manera disciplinada tanto en la calidad del producto y en el proceso usado para desarrollar el producto. ¿Qué involucra la Ingeniería de Software? Para empezar, podemos definir diferentes elementos que definen la ingeniería del software: 1. Especificación de los requerimientos que se necesitan para el software. 2. Desarrollo que tendrá, es decir el enfoque con el que se trabajará. 3. Validación de su uso y aplicación. 4. Evolución del software, es decir, como se irá adaptando y creciendo conforme se trabaje con él una vez terminado. Para poder llevar a cabo lo anteriormente dicho, la ingeniería del software se vale de herramientas, métodos, procesos y su base es la calidad del mismo.

Ing. Billy Roger Socla Mezarino

Página 2

Ingeniería de Software

SESIÓN I PDSD – IV

Un buen ejemplo de métodos que cumplen con el desarrollo del software, son las metodologías ágiles, cuyo objetivo es buscar un mejor proceso para el desarrollo del software.

Objetivos de la Ingeniería de Software Para esto, debes de tener en cuenta que la ingeniería del software tiene diferentes retos en el mundo actual: 1. Ser capaz de hacer frente a la creciente diversidad que existe. 2. Cumplir las demandas en tiempos reducidos. 3. Ser un sistema confiable. Cabe mencionar que un proceso de desarrollo de software, tiene un 60% de los costos durante el desarrollo, un 40% durante las pruebas y validaciones, sin embargo, es durante el mantenimiento donde se extiende el coste del mismo. Si quieres lograr que tu sistema sea el más confiable y menos costoso, asegúrate de cumplir los siguientes objetivos: •

Mantenibilidad Enfocarse en un camino que le permita adaptarse para cubrir las necesidades de los clientes.



Confiabilidad y Seguridad Cumplir con características, tales como, confianza, seguridad y protección.



Eficiencia

Ing. Billy Roger Socla Mezarino

Página 3

Ingeniería de Software

SESIÓN I PDSD – IV

Ser capaz de adaptarse a los diferentes sistemas en donde se desea implementar. •

Aceptabilidad Debe ser aceptable por el usuario, para el cual, fue diseñado.

¿Por qué usar la ingeniería de Software? Actualmente las compañías dependen más del software, estamos hablando de que emplean grandes bases de datos, aplicaciones móviles, control de aparatos electrónicos, sin mencionar ya todas las funcionalidades que tienen en nuestra vida diaria, para lograr tener un impacto en el mercado. Es por ello que la Ingeniería de Software debe ser tomada en cuenta para el desarrollo de una empresa, para tener un mejor esquema organizativo con los equipos de trabajo y que la misma trabaje de manera más eficiente. Recuerda: “La innovación es lo que distingue a un líder de los demás” -Steve JobsMETODOLOGÍAS Y ETAPAS DEL PROCESO Modelo en cascada Es un proceso secuencial, fácil de desarrollo en el que los pasos de desarrollo son vistos hacia abajo (como en una cascada de agua) a través de las fases de análisis de las necesidades, el diseño, implantación, pruebas (validación), la integración, y mantenimiento. La primera descripción formal del modelo de cascada se cita a menudo a un artículo publicado por Winston Royce W.2 en 1970, aunque Royce no utiliza el término "cascada" de este artículo. Los principios básicos del modelo de cascada son los siguientes:1 •

El proyecto está dividido en fases secuenciales, con cierta superposición y splashback aceptable entre fases.



Se hace hincapié en la planificación, los horarios, fechas, presupuestos y ejecución de todo un sistema de una sola vez.



Un estricto control se mantiene durante la vida del proyecto a través de la utilización de una amplia documentación escrita, así como a través de comentarios y aprobación / signoff hechas por el usuario y la gestión del área TI al final de la mayoría de las fases y antes de comenzar la próxima fase.

Ing. Billy Roger Socla Mezarino

Página 4

Ingeniería de Software

SESIÓN I PDSD – IV

Iterativo El prototipo permite desarrollar modelos de aplicaciones de software que permiten ver la funcionalidad básica de la misma, sin necesariamente incluir toda la lógica o características del modelo terminado. El prototipo permite al cliente evaluar en forma temprana el producto, e interactuar con los diseñadores y desarrolladores para saber si se está cumpliendo con las expectativas y las funcionalidades acordadas. Los Prototipos no poseen la funcionalidad total del sistema, pero si condensa la idea principal del mismo, Paso a Paso crece su funcionalidad, y maneja un alto grado de participación del usuario. Incremental Provee una estrategia para controlar la complejidad y los riesgos, desarrollando una parte del producto software reservando el resto de aspectos para el futuro. Espiral Los principios básicos son: •

La atención se centra en la evaluación y reducción del riesgo del proyecto dividiendo el proyecto en segmentos más pequeños y proporcionar más facilidad de cambio durante el proceso de desarrollo, así como ofrecer la oportunidad de evaluar los riesgos y con un peso de la consideración de la continuación del proyecto durante todo el ciclo de vida.



Cada viaje alrededor de la espiral atraviesa cuatro cuadrantes básicos: 1. determinar objetivos, alternativas, y desencadenantes de la iteración. 2. Evaluar alternativas; Identificar y resolver los riesgos. 3. Desarrollar y verificar los resultados de la iteración. 4. Plan de la próxima iteración.



Cada ciclo comienza con la identificación de los interesados y sus condiciones de ganancia, y termina con la revisión y examinación.

Rapid Application Development (RAD) El desarrollo rápido de aplicaciones (RAD) es una metodología de desarrollo de software, que implica el desarrollo iterativo y la construcción de prototipos. El desarrollo rápido de aplicaciones es un término originalmente utilizado para describir un proceso de desarrollo de software introducido por James Martin en 1991. Principios básicos:

Ing. Billy Roger Socla Mezarino

Página 5

Ingeniería de Software •

SESIÓN I PDSD – IV

Objetivo clave es para un rápido desarrollo y entrega de una alta calidad en un sistema de relativamente bajo coste de inversión.



Intenta reducir los riesgos inherentes del proyecto partiéndolo en segmentos más pequeños y proporcionar más facilidad de cambio durante el proceso de desarrollo.



Orientación dedicada a producir sistemas de alta calidad con rapidez, principalmente mediante el uso de iteración por prototipos (en cualquier etapa de desarrollo), promueve la participación de los usuarios y el uso de herramientas de desarrollo computarizadas. Estas herramientas pueden incluir constructores de Interfaz gráfica de usuario (GUI), Computer Aided Software Engineering (CASE) las herramientas, los sistemas de gestión de bases de datos (DBMS), lenguajes de programación de cuarta generación, generadores de código, y técnicas orientada a objetos.



Hace especial hincapié en el cumplimiento de la necesidad comercial, mientras que la ingeniería tecnológica o la excelencia es de menor importancia.



Control de proyecto implica el desarrollo de prioridades y la definición de los plazos de entrega. Si el proyecto empieza a aplazarse, se hace hincapié en la reducción de requisitos para el ajuste, no en el aumento de la fecha límite.



En general incluye Joint application development (JAD), donde los usuarios están intensamente participando en el diseño del sistema, ya sea a través de la creación de consenso estructurado en talleres, o por vía electrónica.



La participación activa de los usuarios es imprescindible.



Iterativamente realiza la producción de software, en lugar de enfocarse en un prototipo.



Produce la documentación necesaria para facilitar el futuro desarrollo y mantenimiento.

Otros enfoques de desarrollo de software •

Metodologías de desarrollo Orientado a objetos, Diseño orientado a objetos (OOD) de Grady Booch, también conocido como Análisis y Diseño Orientado a Objetos (OOAD). El modelo incluye seis diagramas: de clase, objeto, estado de transición, la interacción, módulo, y el proceso.



Top-down programming, evolucionado en la década de 1970 por el investigador de IBM Harlan Mills (y Niklaus Wirth) en Desarrollo Estructurado.



Proceso Unificado, es una metodología de desarrollo de software, basado en UML. Organiza el desarrollo de software en cuatro fases, cada una de ellas con la ejecución

Ing. Billy Roger Socla Mezarino

Página 6

Ingeniería de Software

SESIÓN I PDSD – IV

de una o más iteraciones de desarrollo de software: creación, elaboración, construcción, y las directrices. Hay una serie de herramientas y productos diseñados para facilitar la aplicación. Una de las versiones más populares es la de Rational Unified Process. CICLO DE VIDA DEL PROCESO UNIFICADO El Proceso Unificado se repite a lo largo de una serie de ciclos que constituyen la vida de un sistema. Cada ciclo constituye una versión del sistema. Fases: cada ciclo constas de cuatro fases: 1. Inicio. 2. Elaboración. 3. Construcción. 4. Transición.

Cada fase se subdivide en iteraciones. En cada iteración se desarrolla en secuencia un conjunto de disciplinas o flujos de trabajos.

Ing. Billy Roger Socla Mezarino

Página 7

SESIÓN I PDSD – IV

Ingeniería de Software Disciplinas

Cada disciplina es un conjunto de actividades relacionadas (flujos de trabajo) vinculadas a un área específica dentro del proyecto total. Las más importantes son: 1. Requerimientos. 2. Análisis. 3. Diseño. 4. Codificación. 5. Prueba. El agrupamiento de actividades en disciplinas es principalmente una ayuda para comprender el proyecto

desde

la

visión

tradicional en cascada.

Cada disciplina está asociada con un conjunto de modelos que se desarrollan. Estos modelos están compuestos por artefactos. Los artefactos más importantes son los modelos que cada disciplina realiza: modelo de casos de uso,

modelo

de

diseño,

modelo de implementación, y modelo de prueba. El Proceso Unificado consiste en una serie de disciplinas o flujos de trabajo que van desde los requisitos hasta las pruebas. Los flujos de trabajo desarrollan modelos desde el modelo de casos de uso hasta el modelo de pruebas.

Fase de Inicio

Ing. Billy Roger Socla Mezarino

Página 8

Ingeniería de Software

SESIÓN I PDSD – IV

Durante la fase de inicio se desarrolla una descripción del producto final, y se presenta el análisis del negocio. Esta fase responde las siguientes preguntas: •

¿Cuáles son las principales funciones del sistema para los usuarios más importantes?



¿Cómo podría ser la mejor arquitectura del sistema?



¿Cuál es el plan del proyecto y cuánto costará desarrollar el producto?

En esta fase se identifican y priorizan los riesgos más importantes. El objetivo de esta fase es ayudar al equipo de proyecto a decidir cuáles son los verdaderos objetivos del proyecto. Las iteraciones exploran diferentes soluciones posibles, y diferentes arquitecturas posibles. Puede que todo el trabajo físico realizado en esta fase sea descartado. Lo único que normalmente sobrevive a la fase de inicio es el incremento del conocimiento en el equipo. Los artefactos que típicamente sobreviven a esta fase son: -

Un enunciado de los mayores requerimientos planteados generalmente como casos de uso.

-

Un boceto inicial de la arquitectura.

-

Una descripción de los objetivos del proyecto.

-

Una versión muy preliminar del plan del proyecto.

-

Un modelo del negocio.

La fase de inicio finaliza con el Hito de Objetivos del Ciclo de Vida. Este hito es alcanzado cuando el equipo de proyectos y los stakeholders llegan a un acuerdo sobre: -

Cuál es el conjunto de necesidades del negocio, y que conjunto de funciones satisfacen estas necesidades.

-

Una planificación preliminar de iteraciones.

-

Una arquitectura preliminar.

Debe poder responderse las siguientes cuestiones: ¿Se ha determinado con claridad el ámbito del sistema? ¿Se ha determinado lo que va a estar dentro del sistema y fuera del sistema? ¿Se ha llegado a un acuerdo con todas las personas involucradas (stakeholders) sobre los requisitos funcionales del sistema? ¿Se vislumbra una arquitectura que pueda soportar estas características? ¿Se identifican los riesgos críticos? ¿Se prevé forma de mitigarlos? ¿El uso del producto justifica la relación costo-beneficio? ¿Es factible para su organización llevar adelante el proyecto? Ing. Billy Roger Socla Mezarino

Página 9

SESIÓN I PDSD – IV

Ingeniería de Software ¿Están los inversores de acuerdo con los objetivos? Fase de Elaboración

Durante la fase de elaboración se especifican en detalle la mayoría de los casos de uso del producto y se diseña la arquitectura. Las iteraciones en la fase de elaboración: -

Establecen una firme comprensión del problema a solucionar.

-

Establece la fundación arquitectural para el software.

-

Establece un plan detallado para las siguientes iteraciones.

-

Elimina los mayores riesgos

El resultado de esta fase es la línea base de la arquitectura. En esta fase se construyen típicamente los siguientes artefactos: -

El cuerpo básico del sw en la forma de un prototipo arquitectural.

-

Casos de prueba.

-

La mayoría de los casos de uso (80%) que describen la funcionalidad del sistema.

-

Un plan detallado para las siguientes iteraciones.

La fase de elaboración finaliza con el hito de la Arquitectura del Ciclo de Vida. Este hito se alcanza cuando el equipo de desarrollo y los stakeholders llegan a un acuerdo sobre: -

Los casos de uso que describen la funcionalidad del sistema.

-

La línea base de la arquitectura.

-

Los mayores riesgos han sido mitigados.

-

El plan del proyecto.

Al alcanzar este hito debe poder responderse a preguntas como: ¿Se ha creado una línea base de la arquitectura? ¿Es adaptable y robusta? ¿Puede evolucionar? ¿Se han identificado y mitigado los riesgos más graves? ¿Se ha desarrollado un plan del proyecto hasta el nivel necesario para respaldar una agenda, costes, y calidades realistas? ¿Proporciona el proyecto, una adecuada recuperación de la inversión? ¿Se ha obtenido la aprobación de los inversores? Fase de Construcción Durante la fase de construcción se crea el producto. La línea base de la arquitectura crece hasta convertirse en el sistema completo. Al final de esta fase, el producto contiene todos Ing. Billy Roger Socla Mezarino

Página 10

Ingeniería de Software

SESIÓN I PDSD – IV

los casos de uso implementados, sin embargo, puede que no esté libre de defectos. Los artefactos producidos durante esta fase son: -

El sistema software.

-

Los casos de prueba.

-

Los manuales de usuario.

La fase de construcción finaliza con el hito de Capacidad Operativa Inicial. Este hito se alcanza cuando el equipo de...


Similar Free PDFs