Parte 1: Introducción a la ingeniería de software
Capitulo 4: Ingeniería de requerimientos
4.1 Requerimientos funcionales y no funcionales
4.2 El documento de requerimientos de software
4.3 Especificación de requeimientos
4.4 Procesos de ingeniería de requerimientos
4.5 Adquisición y análisis de requerimientos
4.6 Validación de requerimientos
4.7 Administración de requerimientos
Capitulo 5: Modelado del sistema
5.5 Ingeniería dirigida por modelo
5.4 Modelos de comportamiento
5.3 Modelos estructural
5.2 Modelos de interacción
5.1 Modelos de contexto
Capitulo 3: Desarrollo ágil de software
3.4 Administración de un proyecto ágiles
3.5 Escalamiento de métodos ágiles
3.3 Programación extrema
3.2 Desarrollo dirigido por un plan y desarrollo ágil
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.
Subtopic
Diseño de sistemas a la medida dentro de una organización
Desarrollo del producto
Capitulo 2: Procesos de software
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.
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.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:
Establecimiento de objetivos
Valoración y reducción del riesgo
Desarrollo y validacion
Planeación
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.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 ingeniería de requerimiento
En el proceso de diseño de sistemas
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.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.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 desarrollo
Las personas que desarrollan el sistema ponen a prueba los componentes que constituyen el sistema.
Prueba del sistema
Los componentes del sistema se integran para crear un sistema completo.
Prueba de aceptación
Esta es la etapa final en el proceso de prueba, ante de que el sistema se acepte para uso operacional.
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.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.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.
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:
Análisis de componente
Dada las especificaciones de requerimiento, se realiza una búsqueda de componentes para implementar dicha especificación.
Modificación de requerimiento
Durante esta etapa se realizan los requerimientos usando información de los componentes descubiertos.
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.
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
Subtopic
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:
1. Se reduce el costo de adaptar los requerimientos cambiante del cliente
2. Es mas sencillo obtener retroalimentación del cliente sobre el trabajo de desarrollo que se realizo
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.
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
Análisis y definición de requerimientos
Diseño del sistemas y del Software
Implementación y prueba de unidad
Integración y prueba de sistema
Operación y mantenimiento
Capitulo 1: Introducción
1.3 Estudios de caso
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.
Un sistema de información
Es un sistema donde software controla un dispositivo de hardware y está embebido en dicho dispositivos.
Un sistema embebido
Es un sistema cuyo principal propósito es gestionar y dar acceso a una base de datos de información.
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:
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.
2. Competencia
No debe desvirtuar su nivel de competencia.
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.
4. Mal uso de computadoras
No debe emplear sus habilidades técnicas para usar incorrectamente las computadoras de otros individuos.
1.1 Desarrollo de software profesional
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
Mantenimiento
El software debe escribirse de tal forma que pueda evolucionar para satisfacer las necesidades cambiantes de los clientes.
Confiabilidad
La confiabilidad del software incluye un rango de características que abarcan fiabilidad, seguridad y protección.
Eficiencia
El software no tiene que desperdiciar los recursos del sistema, como la memoria y los ciclos del procesador.
Aceptabilidad
El software debe ser aceptable al tipo de usuarios para quienes se diseña
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
Aplicaciones independientes
Trata de sistemas de aplicaciones que corren una computadora local.
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.
Sistema de control embebido
Se trata de sistemas de control de software que regulan y gestionan dispositivos
Sistema de procesamiento en lotes
Son sistemas empresariales que se diseñan para procesar datos en grandes lotes ( batch).
Sistema de entretenimiento
Son sistemas para uso sobre todo personal, que tienen la intención de entretener al usuario.
Sistema ara modelado y simulación
Éstos son sistemas que desarrollan científicos e ingenieros para modelar procesos o situaciones físicas.
Sistema de adquisición
Son sistemas que desde su entorno recopilan datos usando un conjunto de sensores
Capitulo 6: Diseño arquitectónico
6.1 Decisiones en el diseño arquitectónico
6.2 Vistas arquitectónicas
6.3 Patrones arquitectónicos
6.4 Arquitecturas de aplicación
Capitulo 7: Diseño e implementación
7.1 Diseño orientado a objetos con el uso de UML
7.2 Patrones de diseño
7.3 Conflictos de implementación
7.4 Desarrollo de códigos abierto
Capitulo 8: Pruebas de software
8.1 Pruebas de desarrollo
8.2 desarrollo dirigido por pruebas
8.3 Pruebas de versión
8.4 Pruebas de usuarios
Capitulo 9: Evolución del software
9.1 Procesos de evolución
9.2 Evolución dinámica del programa
9.3 Mantenimiento del software
9.4 Administración de sistemas heredados