ÁMBITOS GENERALES DE LA INGENIERÍA DE SOFTWARE

2. Sistemas Socio técnicos

2.7. Disponibilidad y fiabilidad.
Seguridad.

Las disponibilidad y fiabilidad de un sistema sosn propiedades que están estrechamente relacionadas y que pueden expresar como probabilidades numéricas.

Los sistemas de seguridad son sistemas en los que esencial que el funcionamiento sea siempre seguro.

El software de seguridad critico se divide en dos clases:

El software de seguridad critico primario

Es el software que esta embetido como un controlador en un sistema.

El software de seguridad critico secundario

Es el software que indirectamente puede provocar lesiones.

2.6. Confiabilidad de un sistema

La confiabilidad de un sistema informático es una propiedad del sistema que es igual a su fidelidad. La fiabilidad esencialmente significa el grado de confianza del usuario en que el sistema operará tal y como se espera de él y uqe no fallará al utilizarlo normalmente.

Existen cuatro dimensiones principales de la confiabilidad

Disponibilidad

La capacidad del sistema para proporcionar servicios cuando son requeridos.

Fiabilidad

La capacidad del sistema para proporcionar servicios como han sido especificados.

Seguridad

La capacidad del sistema para funcionar sin fallos catastróficos.

Protección

La capacidad del sistema para protegerse a sí mismo frente a intrusiones accidentales o premeditadas.

2.5. Un sistema de seguridad crítico sencillo.

Hay muchos tipos de sistemas informáticos críticos, desde sistemas de control para dispositivos y maquinarias hasta sistemas de información y comercio electrónico. Estos podrían ser excelentes casos de estudio para un libro de ingeniería del software.

2.4. Sistemas Críticos

Las propiedades más importantes de un sistema crítico es su confiabilidad.

Los sistemas que son no fiables, inseguros desprotegidos son rechazados a menudo por sus usuarios.

Los costes de los fallos de funcionamiento del sistema pueden ser enormes.

Los sistemas no confiables pueden provocar pérdida de información

Los fallos de funcionamiento del software son relativamente comunes. estos sistemas se conocen como sistemas críticos. Si estos sistemas no ofrecen sus servicios de la forma esperada, pueden provocar graves problemas y perdidas importantes.

Hay tres tipos principales de sistema críticos:

Sistemas de seguridad críticos

Son sistemas cuyo fallo de funcionamiento puede provocar perjuicio, perdida de vidas o daños graves al medio ambiente.

Sistemas de misión críticos

Son sistemas cuyo fallo de funcionamiento puede provocar errores en algunas actividades dirigidas por objetivos.

Sistemas de negocio críticos

Son sistemas cuyo fallo de funcionamiento puede provocar costes muy elevados para el negocio que utiliza un sistema de este tipo.

2.3. Evolución del Sistema.

Los sistema grande y complejos tiene un periodo de vida largo. Durante su vida, se cambian para corregir errores en los requerimientos del sistema original y para implementar nuevos requerimientos que surgen. Los sistemas de computo se reemplazan por nuevas maquinas mas rápidas.

Las cuatro razones serian:

1. Los cambios propuestos tiene que analizarse cuidadosamente desde perspectivas técnicas y de negocio.

2. Debido a que los subsistemas nunca son completamente independientes, los cambios en uno pueden afectar de forma adversa al funcionamiento o comportamiento de otros.

3. A menudo no se registra las razones del diseño original.

4. Al paso del tiempo, sus estructura se corrompe por el cambio de tal forma que se incrementa los costos de cambios adicionales.

2.2. Integración del Sistema.

Durante el proceso de integración del sistema, se toman los subsistemas desarrollados de forma independiente se conjuntan para crear el sistema completo.

Por lo general, es imposible confeccionar una agenda para el desarrollo de todos los subsistemas de tal forma que todos terminen el mismo tiempo.

La integración creciente reduce el costo en la localización de errores.

2.1. Propiedades emergentes de los sistemas.

Las complejas relaciones entre los componentes de un sistema indican que el sistema es mas que simplemente la suma de sus partes. Este tiene propiedades que son propiedades del sistema como un todo.

Existen dos tipos de propiedades emergentes:

1. Las propiedades emergentes funcionales

Aparecen cuando todas las partes de un sistema trabajan de forma conjunta para cumplir algún objetivo.

2. Las propiedades emergentes no funcionales

Se refieren al comportamiento de los sistemas en su entorno operativo.

Existen tres influencias conexas sobre la fiabilidad de un sistema:

1. Fiabilidad del Hardware

2. Fiabilidad del software

3. Fiabilidad del operador

3. Procesos del Software

3.4. Ingeniería de Software asistida por
computadora.

Ingeniería de Software asistida por computadora (CASE) Es el nombre que se le da al software que se utiliza para ayudar a las actividades del proceso del software como la ingeniería de requerimientos, el diseño, el desarrollo de programas y las pruebas

Clasificación de CASE

Las clasificaciones de CASE nos ayuda a comprender los tipos de herramientas CASE y su papel en la ayuda a las actividades de proceso del software.

1. Una perspectiva funcional en la que la herramientas CASE se clasifican de acuerdo con su función específica.

2. Una perspectivas de proceso en la que las herramientas se clasifican de acuerdo con las actividades del proceso que ayudan

3. Una perspectiva de integración en la que las herramientas CASE se clasifican de acuerdo con la forma en que están organizadas en unidades integradas que proporcionan ayuda a una o más actividades del proceso.

3.3. Actividades del proceso

Las cuatro actividades básicas del procesos de especificación, desarrollo, validación y evolución se organizan de forma distinta en diferentes procesos del desarrollo.

Especificación del software

Es el proceso de comprensión y definición de qué servicios se requieren del sistema y de identificación de las restricciones de funcionamiento y desarrollo del mismo.

Diseño e implementación del software

La etapa de implementación del desarrollo de software es el proceso de convertir una especificación del sistema en un sistema ejecutable.

Validación del software

Se utiliza para mostrar que el sistema se ajusta a su especificación y que cumple las expectativas del usuario que lo comprará.

3.2. Iteración de Procesos.

Los cambios son inevitables en todos los proyectos de software grandes. Los requerimiento del sistema cambian cuando el negocio que procura el sistema responde a las presiones externas. Las prioridades de gestión cambian.

Entrega incremental

La especificación, el diseño y la implementación del software se divide en una serie de incrementos.

Desarrollo en espiral

El desarrollo del sistema gira en espiral hacia fuera.

Definición de objetivos

Evaluación y reducción de riesgos

Desarrollo y validación

Planificación

3.1. Modelos del proceso del software

Cada modelo de proceso representa un proceso desde una perspectiva particular, y así proporciona solo información parcial sobre ese proceso. Estos modelos generales no son descripciones definitivas de los procesos del software.

Los modelos de procesos que se incluyen en este capítulo son:

El modelo en cascada

Considera las actividades fundamentales del proceso de especiación, desarrollo, validación y evolución.

Desarrollo evolutivo

Este enfoque entrelaza las actividades de especificación, desarrollo y validación.

Ingeniería del software basa en componentes

Este enfoque se base en la existencia de un numero significativo de componentes reutilizables.

1. Introducción a la Ingeniería de Software

1.5. Desarrollo de los Subsistemas

Durante el desarrollo de los subsistemas, se implementan los que se hayan identificados durante el diseño del sistema. en esta etapa, puede tener que entrar de nuevo en la actividad de diseño para acomodar un componente comprado. es común que los subsistemas se desarrollen en paralelo

1.4. Modelado de Sistemas.

El modelo de sistema es el proceso para desarrollar modelos abstractos de un sistema, donde cada modelo presenta una visión o perspectiva diferente de dicho sistema. Los modelos se usan durante el proceso de ingeniería de requerimiento para ayudar a derivar los requerimientos de un sistema. Es posible desarrollar modelos tanto del sistema existente como el sistema a diseñar:

Tipos de diagramas

1. Diagramas de actividad.

Que muestran las actividades incluidas en un proceso o en el procesamiento de datos.

2. Diagrama de caso.

Que expone las interacciones entre un sistema y su entorno.

3. Diagrama de secuencias.

Que muestran las interacciones entre los actores y el sistema, y entre los componentes del sistema.

4. Diagrama de clase.

Que revelan las clases del objeto en el sistema y las asociaciones entre estas clases.

5. Diagrama de estado.

Que explican como reacciona el sistema frente a eventos internos y externos.

1.3. Definición de requerimientos del sistema

Los requerimientos para un sistema son descripciones de lo que el sistema debe hacer; el servicio que ofrece y las restricciones en su operación. " El termino requerimiento no se usa de manera continua en la industria del software.

Los requerimientos del usuario y los requerimientos del sistema se definen del siguiente modo:

Los requerimientos del usuario son enunciados, en un lenguaje natural junto con diagramas, acerca de que servicios esperan los usuarios del sistema, y de las restricciones con los cuales este debe operar.

Los requerimientos del sistema son descripciones mas detalladas de las funciones, y los servicios y las restricciones operacionales del sistema de software.

1.2. Que es un proceso de software.

Un proceso de software es una serie de actividades relacionadas que conduce a la elaboración de un producto de software. Estas actividades pueden incluir el desarrollo de software desde cero en un lenguaje de programación estando como JAVA o C.

Los procesos de Software son:

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..

Validacion del Software

Hay que validar el software para asegurarse de que cumple lo que cliente quiere.

Evolución del Software

El software tiene que evolucionar para satisfacer las necesidades cambiantes del cliente.

1.1. Que es la Ingeniería de Software.

Un sistema de software, denominado también aplicación o simplemente software, es un conjunto integrado de programas que en su forma definitiva se pueden ejecutar, pero comprende también las definiciones de estructuras de datos que utiliza estos programas y también la documentación referente a todo ello.

2. Los modelos del sistema existente se usan durante la ingeniería de requerimientos.

1. Los modelos del sistema nuevo se emplean durante la ingeniería de requerimientos para ayudar a explicar los requerimientos propuestos a otros participantes del sistema.