Ingeniería de software
1. Introducción
1.1. Preguntas frecuentes sobre la ingeniería del software
1.1.1. ¿Qué es software?
1.1.2. ¿Qué e s 'a ingeniería del software?
1.1.3. ¿Cuál es la diferencia entre ingeniería del software y ciencia de la computación?
1.1.4. ¿Cuál es la diferencia entre ingeniería del software e ingeniería de sistemas? .
1.1.5. ¿Qué es un proceso del software?
1.1.6. ¿Qué es un modelo de procesos del software?
1.1.7. ¿Cuáles son los costos de la ingeniería del software?
1.1.8. ¿Qué son los métodos de la ingeniería del software?
1.1.9. ¿Qué es CASE?
1.1.10- ¿Cuáles son los atributos de un buen software?
1.1.11. ¿Cuáles son los retos fundamentales que afronta la ingeniería del software?
1.2. Responsabilidad profesional y ética
2. Sistemas socio-técnicos
2.1. Propiedades emergentes de los sistemas
2.2. Ingeniería de sistemas
2.2.1. Definición de requerimientos del sistema
2.2.2. Diseño del sistema
2.2.3. Modelado de sistemas
2.2.4. Desarrollo de los subsistemas
2.2.5. Integración del sistema
2.2.6. Evolución del sistema
2.2.7. Desmantelamiento del sistema
2.3. Organizaciones, personas y sistemas informáticos
2.3.1. Procesos organizacionales
2.4. Sistemas heredados
3. Sistemas críticos
3.1. Un sistema de seguridad crítico sencillo
3.2. Confiabilidad de un sistema
3.3. Disponibilidad y Habilidad
3.4. Seguridad
3.5. Protección
4. Procesos del software
4.1. Modelos del proceso del software
4.1.1. El modelo en cascada
4.1.2. Desarrollo evolutivo
4.1.3. Ingeniería del software basada en componentes
4.2. Iteración de procesos
4.2.1. Entrega incrementa
4.2.2. Desarrollo en espiral
4.3. Actividades del proceso
4.3.1. Especificación del software
4.3.2. Diseño e implementación del software
4.3.3. Validación del software
4.3.4. Evolución del software
4.4. El Proceso Unificado de Rational
4.5. Ingeniería del Software Asistida por computadora
4.5.1. Clasificación de CASE
5. G e s t i ó n de proyectos
5.1. Actividades de gestión
5.2. Planificación del proyecto
5.2.1. El plan del proyecto
5.2.2. Hitos y entregas
5.3. Calendarización del proyecto
5.3.1. Gráficos de barras y redes de actividades
5.4. Gestión de riesgos
5.4.1. Identificación de riesgos
5.4.2. Análisis de riesgos
5.4.3. Planificación de riesgos
5.4.4. Supervisión de riesgos
Parte II. REQUERIMIENTOS
6. Requerimientos del software
6.1. Requerimientos funcionales y no funcionales
6.1.1. Requerimientos funcionales
6.1.2. Requerimientos no funcionales
6.1.3. Los requerimientos del dominio
6.2. Requerimientos del usuario
6.3. Requerimientos del sistema
6.3.1. Especificaciones en lenguaje estructurado
6.4. Especificación de la interfaz
6.5. El documento de requerimientos del software
7. Procesos de la ingeniería de requerimientos
7.1. Estudios de viabilidad
7.2. Obtención y análisis de requerimientos
7.2.1. Descubrimiento de requerimientos
7.2.2. Etnografía
7.3. Validación de requerimientos
7.3.1. Revisiones de requerimientos
7.4. Gestión de requerimientos
7.4.1. Requerimientos duraderos y volátiles
7.4.2. Planificación de la gestión de requerimientos
7.4.3. Gestión del cambio de los requerimientos
Actualmente casi todos los países dependen de complejos sistemas informáticos.
La ingeniería de sistemas se refiere a todos los aspectos del desarrollo y de la evolución de sistemas complejos donde el software desempeña un papel principal. Es aquella que se ha encargado de la producción de software, el cual es el conjunto de programas que le permite al computador realizar determinadas tareas. Esto ha sido realizado para la comodidad de trabajo en computación desde el 1968.
La ciencia de la computación se refiere a las teorías y métodos subyacentes a las computadoras y los sistemas de software, mientras que la ingeniería del software se refiere a los problemas prácticos de producir software.
Los ingenieros de sistemas están involucrados en la especificación del sistema, en la definición de su arquitectura y en la integración de las diferentes partes para crear el sistema final. Están menos relacionados con la ingeniería de los componentes del sistema (hardware, software, etc.).
El software está dividido en dos tipos los cuales son:
Genéricos: Los cuales son producidos por una organización de desarrollo, este se comercializa en el mercado abierto para ser accesibles a cualquier cliente.
Personalizados: Desarrollados para clientes que lo han requerido.
Los productos de software consisten en programas desarrollados y en la documentación asociada. Los atributos esenciales de los productos son la mantenibilidad, con Habilidad, eficiencia y aceptabilidad.
Una herramienta muy importante es CASE la cual contiene sistemas de software que están diseñados para ayudar a las actividades rutinarias del proceso del software, como editar diagramas de diseño, verificar la consistencia de estos y mantener un banco de pruebas de los programas ejecutados.
Sistemas socio-técnicos: comprenden uno o más sistemas técnicos pero, crucialmente, también incluyen conocimiento de cómo debe usarse el sistema para alcanzar algún objetivo más amplio. Esto quiere decir que estos sistemas han definido los procesos operativos, incluyen personas (los operadores) como partes inherentes del sistema, son gobernados por políticas y reglas.
Factores humanos y organizacionales como la estructura y políticas organizacionales influyen de forma significativa en el funcionamiento de los sistemas socio-técnicos. Dentro de una organización, existen complejas relaciones entre los procesos de adquisición, desarrollo y operativo del sistema.
Asimismo, un sistema heredado es un sistema antiguo que aún proporciona servicios esenciales de negocio.
Un ejemplo es la Planta de Coca-Cola, que combina sofisticados equipos de producción y a la vez, éstos son supervisados por personal que dividido por áreas controla la calidad, el adecuado embotellamiento, distribución, etc.
Los sistemas críticos son sistemas técnicos o socio-técnicos de los cuales dependen las personas o los negocios. Si estos sistemas no ofrecen sus servicios de la forma esperada, pueden provocar graves problemas y pérdidas importantes.
Tres clases importantes de sistemas críticos son: Los sistemas de seguridad críticos, sistemas de misión críticos y sistemas de negocio críticos.
Los factores claves que se deben tomar en cuenta al momento del desarrollo del software son:
- La confiabilidad de un sistema informático es una propiedad del sistema que refleja el grado de confianza que el usuario tiene en el sistema.
- La disponibilidad de un sistema es la probabilidad de que le sea posible entregar los servicios a sus usuarios cuando se lo soliciten y la fiabilidad es la probabilidad de que los servicios del sistema se entreguen de acuerdo con lo especificado.
- La fiabilidad y la disponibilidad se consideran normalmente como las dimensiones más importantes de la confiabilidad.
Los modelos del proceso del software son representaciones abstractas de estos procesos.
Todos los procesos del software incluyen: la especificación, el diseño, la implementación, la validación y la evolución del software.
La Ingeniería de requerimientos es el proceso de desarrollar una especificación del software. Las especificaciones pretenden comunicar las necesidades del sistema del cliente a los desarrolladores del sistema.
La evolución del software se interesa en modificar los sistemas software existentes para cumplir los nuevos requerimientos. Esto se está conviniendo en el enfoque normal para el desarrollo de sistemas de pequeño y mediano tamaño.
La ventaja de este enroque es que evita compromisos prematuras con una especificación o diseño Ejemplos de este tipo de modelos son el desarrollo incremental y el modelo en espiral.
Es esencial una buena gestión de proyectos de software para que los proyectos de ingeniería de software se desarrollen a tiempo y según presupuesto.
Los requerimientos para un sistema software determinan lo que debe hacer el sistema y definen tas restricciones en su funcionamiento e implementación. Estos requerimientos reflejan las necesidades de los clientes de un sistema que ayude a resolver algún problema como el control de un dispositivo, hacer un pedido o encontrar información
Los requerimientos del usuario son para el uso por la gente relacionada con la utilización y obtención del sistema. Se deben redactar en lenguaje natural, con tablas y diagramas que sean fáciles de entender.
Los requerimientos del sistema se utilizan para comunicar, de forma precisa, las funciones que debe proporcionar el sistema. Para reducir la ambigüedad, se pueden redactar en un formulario estructurado del lenguaje natural complementado con tablas y modelos del sistema.
Los documentos de requerimientos de software son la declaración acordada de los requerimientos del sistema.
.Ingeniería del software. IAN SOMMERVILLE
0 comentarios:
Publicar un comentario