Categorias: Todos - evolución - implementación - diseño - especificación

por Alma Alvarado 3 anos atrás

167

Parte 1: Introducción a la ingeniería de software

La ingeniería de software es un campo que se centra en la creación de productos de software mediante una serie de actividades interrelacionadas. Estas actividades fundamentales incluyen la evolución del software para adaptarse a las necesidades cambiantes de los clientes, la especificación tanto de la funcionalidad como de las restricciones operativas, el diseño e implementación para cumplir con las especificaciones definidas, y la validación para asegurar que el producto final satisface las expectativas del cliente.

Parte 1:     Introducción a la ingeniería de software

Los procesos de desarrollo del software rápido se diseñan para producir rápidamente un software útil. Aun cuando existen muchas enfoques para el desarrollo de software rápido, comparten algunas características fundamentales:

Los procesos de especificación, diseño e implementación están entrelazados.

La interfaces de usuario del sistema se desarrollan usando con frecuencia un sistema de elaboración interactivo.

El sistemas se desarrolla en diferentes versiones.

Un proceso de software es una serie de actividades relacionadas que conduce a la elaboración de un producto de software. Existen muchos diferentes procesos de software, pero todos deben incluir cuatro actividades que son fundamentales para la ingeniería de software:

Especificación del software: Tienen que definirse tanto la funcionalidad del software como las restricciones de su operación.

Diseño e implementación del software: Debe desarrollarse el software para cumplir con las especificaciones.

Evolución del software: El software tiene que evolucionar para satisfacer las necesidades cambiantes del cliente

Validación del software: Hay que validar el software para asegurarse de que cumple lo que el cliente quiere.

La ingeniería de software busca apoyar el desarrollo de software profesional, en lugar de la programación individual. incluye de los cuales son normalmente relevantes para el desarrollo de software personal. Con el objetivo de ayudarlo a obtener una amplia visión de lo que trata la ingeniería de software.

Parte 1: Introducción a la ingeniería de software

Capitulo 9: Evolución del software

9.4 Administración de sistemas heredados
9.3 Mantenimiento del software
9.2 Evolución dinámica del programa
9.1 Procesos de evolución

Capitulo 8: Pruebas de software

8.4 Pruebas de usuarios
8.3 Pruebas de versión
8.2 desarrollo dirigido por pruebas
8.1 Pruebas de desarrollo

Capitulo 7: Diseño e implementación

7.4 Desarrollo de códigos abierto
7.3 Conflictos de implementación
7.2 Patrones de diseño
7.1 Diseño orientado a objetos con el uso de UML

Capitulo 6: Diseño arquitectónico

6.4 Arquitecturas de aplicación
6.3 Patrones arquitectónicos
6.2 Vistas arquitectónicas
6.1 Decisiones en el diseño arquitectónico

Capitulo 1: Introducción

1.1 Desarrollo de software profesional
1.1.2 Diversidad de la ingeniería de software

La ingeniería de software es un enfoque sistemático para la producción de software que toma en cuenta los temas prácticos de costo, fecha y confiabilidad, así como las necesidades de clientes y fabricantes de software.

Tipos de aplicación

Sistema de adquisición

Son sistemas que desde su entorno recopilan datos usando un conjunto de sensores

Sistema ara modelado y simulación

Éstos son sistemas que desarrollan científicos e ingenieros para modelar procesos o situaciones físicas.

Sistema de entretenimiento

Son sistemas para uso sobre todo personal, que tienen la intención de entretener al usuario.

Sistema de procesamiento en lotes

Son sistemas empresariales que se diseñan para procesar datos en grandes lotes ( batch).

Sistema de control embebido

Se trata de sistemas de control de software que regulan y gestionan dispositivos

Aplicaciones interactivas basadas en transacción

Consiste en aplicaciones que se ejecutan en una computadora remota ya las que los usuarios acceden desde sus propias PC o terminales.

Aplicaciones independientes

Trata de sistemas de aplicaciones que corren una computadora local.

1.1.1 Ingeniería de software

La ingeniería de software es una disciplina de ingeniería que se interesa por los aspectos de la producción de software, desde las primeras etapas d la especificación del sistema hasta el mantenimiento del sistema después de que se pone en operación.

Características del producto

Aceptabilidad

El software debe ser aceptable al tipo de usuarios para quienes se diseña

Eficiencia

El software no tiene que desperdiciar los recursos del sistema, como la memoria y los ciclos del procesador.

Confiabilidad

La confiabilidad del software incluye un rango de características que abarcan fiabilidad, seguridad y protección.

Mantenimiento

El software debe escribirse de tal forma que pueda evolucionar para satisfacer las necesidades cambiantes de los clientes.

1.2 Ética en la ingeniería de software
La ingeniería de software se realiza dentro de un marco social y legal que limita la libertad de la gente que trabaja en dicha área. Sin embargo, existen áreas donde los estándares de comportamiento aceptable no están acostados por la legislación, sino por la noción más difusa de responsabilidad profesional.

Algunas de ellas son:

4. Mal uso de computadoras

No debe emplear sus habilidades técnicas para usar incorrectamente las computadoras de otros individuos.

3. Derechos de propiedad intelectual

Tiene que conocer las leyes locales que rigen el uso de la propiedad intelectual, como las patentes y el copyright.

2. Competencia

No debe desvirtuar su nivel de competencia.

1. Confidencialidad

Por lo general, debe respetar la confidencialidad de sus empleadores o clientes sin importar si se firmó o no un acuerdo formal sobre la misma.

1.3 Estudios de caso
Un sistema embebido

Es un sistema cuyo principal propósito es gestionar y dar acceso a una base de datos de información.

Un sistema de información

Es un sistema donde software controla un dispositivo de hardware y está embebido en dicho dispositivos.

Un sistema de adquisición de datos basados en sensores

Es un sistema cuyo principal objetivo es recolectar datos de un conjunto de sensores y procesar esos datos de alguna forma.

Capitulo 2: Procesos de software

2.1 Modelos de proceso de software
Cada modelo del proceso representa a otros desde una particular perspectiva y, por lo tanto, un modelo de actividad del proceso muestra las actividades y sus secuencias, pero quizás sin presentar los roles de las personas que intervienen en esas actividades.

Modelo En Cascada

El modelo en cascada es un ejemplo de un proceso dirigido por un plan; en principio, usted debe planear y programar todas las actividades del proceso, antes de comenzar a trabajar con ellas.

Las principales etapas de modelo en cascadas

Operación y mantenimiento

Integración y prueba de sistema

Implementación y prueba de unidad

Diseño del sistemas y del Software

Análisis y definición de requerimientos

Desarrollo Incremental

Se base en la idea de diseñar un implementación inicial, exponer esta al comentario del usuario, y luego desarrollar en sus diversas versiones hasta producir un sistemas adecuado.

Tiene tres beneficios importantes:

3. Es posible que sea mas rápida la entrega e implementación de software útil al cliente, aun si no se ha incluido todas las funcionalidad.

2. Es mas sencillo obtener retroalimentación del cliente sobre el trabajo de desarrollo que se realizo

1. Se reduce el costo de adaptar los requerimientos cambiante del cliente

Ingeniería De Software Orientada A La Reutilización

En la mayoría de los proyecto de software hay cierta reutilización de software. Sucede con frecuencia de manera informal, cuando las personas que trabajan en el proyecto conocen diseños o códigos que son similares a los que se requieren. Los enfoques orientados a la reutilización se apoyan en una gran base de componentes de software reutilizado y en la integración de marcos para la composición de dichos componentes.

Dichas Etapas Son:

Desarrollo e integracion

Se diseña el software que no puede procurarse de manera externa, y se integran los componentes y los sistemas COTS para crear el nuevo sistema

Diseño de sistema con reutilización

Durante esta fase se diseña el marco conceptual del sistema o se reutiliza un marco conceptual existente.

Modificación de requerimiento

Durante esta etapa se realizan los requerimientos usando información de los componentes descubiertos.

Análisis de componente

Dada las especificaciones de requerimiento, se realiza una búsqueda de componentes para implementar dicha especificación.

2.2 Actividades del procesos
Los desarrolladores de software usan en sus trabajos diferentes herramientas de software. Las pruebas son ejecutables y se desarrollan antes del programa en si. La evolución incluye la reestructuración o refactorización sustancial del sistema.

2.2.1 Especificación del software

La especificación del software o la ingeniería de requerimientos consiste en el proceso de comprender y definir que servicio que requieres del sistema.

2.2.2.Dieseño e implementación del software

Es el proceso de convertir una especificación del sistema en un sistema ejecutable. Un diseño de software se entiende como una descripción de la estructura del software que se va a implementar, los modelos y las estructuras de datos utilizados por el sistema

2.2.3 Validacion de Software

Su verificación y validación se crea para mostrar que un sistema cumple tanto como con sus especificación como con las expectativas del cliente.

Las etapas en el proceso de prueba son:

Prueba de aceptación

Esta es la etapa final en el proceso de prueba, ante de que el sistema se acepte para uso operacional.

Prueba del sistema

Los componentes del sistema se integran para crear un sistema completo.

Prueba de desarrollo

Las personas que desarrollan el sistema ponen a prueba los componentes que constituyen el sistema.

2.2.4 Evolución del Software

La flexibilidad de los sistemas de software es una de las razones principales por las que cada vez mas software se incorporan en los sistemas grandes y completo.

2.3 Cómo enfrentar el cambio
Los requerimientos del sistema varían conforme la empresa procura que el sistema responda a precisiones externas y se modifican las prioridades administrativas.

2.3.1 Creación del prototipo

Un prototipo es una versión inicial de un sistema de software que se usa para demostrar conceptos, tratar opciones de diseño y encontrar más sobre el problema y sus posibles soluciones.

En el proceso de diseño de sistemas

En el proceso de ingeniería de requerimiento

2.3.2 Entrega incremental

Es un enfoque al desarrollo de software donde algunos de los incrementos diseñados se entregan al cliente y se implementan para usarse en un entorno operacional.

2.3.3 Modelo en espiral de boehm

El modelo en espiral combina el evitar el cambio con la tolerancia al cambio.

Cada ciclo en la espiral se divide en cuatro sectores:

Planeación

Desarrollo y validacion

Valoración y reducción del riesgo

Establecimiento de objetivos

2.4 El Proceso Unificado Racional
Es un ejemplo de un modelo de proceso moderno que se derivó del trabajo sobre el UML y el proceso asociado de desarrollo de software Unificado.

Capitulo 3: Desarrollo ágil de software

3.1 Métodos ágiles
Este software lo desarrollaron grandes equipos que trabajan para diferentes compañías. A menudo los equipos estaban geográficamente dispersos y laboraban por largos períodos en el software.

Desarrollo del producto

Diseño de sistemas a la medida dentro de una organización

Subtopic

3.2 Desarrollo dirigido por un plan y desarrollo ágil
3.3 Programación extrema
3.5 Escalamiento de métodos ágiles
3.4 Administración de un proyecto ágiles

Capitulo 5: Modelado del sistema

5.1 Modelos de contexto
5.2 Modelos de interacción
5.3 Modelos estructural
5.4 Modelos de comportamiento
5.5 Ingeniería dirigida por modelo

Capitulo 4: Ingeniería de requerimientos

4.7 Administración de requerimientos
4.6 Validación de requerimientos
4.5 Adquisición y análisis de requerimientos
4.4 Procesos de ingeniería de requerimientos
4.3 Especificación de requeimientos
4.2 El documento de requerimientos de software
4.1 Requerimientos funcionales y no funcionales