is_conceptos_generales__24468__

23
Conceptos Generales Ingeniería de Software

Upload: jose-santos-ruiz

Post on 08-Dec-2015

220 views

Category:

Documents


0 download

DESCRIPTION

ingenieria de software

TRANSCRIPT

Page 1: IS_Conceptos_Generales__24468__

Conceptos Generales

Ingeniería de Software

Page 2: IS_Conceptos_Generales__24468__

La Ingeniería de software fue definida por Fritz Bauer a finales de los 60s como el establecimiento y uso de principios de ingeniería para obtener software que fuera confiable y que funcionara eficientemente con las maquinas reales. A pesar de ser vieja, esta definición da el sentimiento correcto detrás de la disciplina.

¿Qué es la Ingenieria de Software?

Page 3: IS_Conceptos_Generales__24468__

• Termino utilizado por primera vez por Fritz Bauer en la primera conferencia sobre desarrollo de software patrocinada por el Comité de Ciencia de la OTAN celebrada en Garmisch, Alemania, en octubre de 1968.

• Según Alan Davis como la aplicación inteligente de principios probados, técnicas, lenguajes y herramientas para la creación y mantenimiento, dentro de un coste razonable, de software que satisfaga las necesidades del usuario.

¿Qué es la Ingenieria de Software?

Page 4: IS_Conceptos_Generales__24468__

• La palabra crisis se define como punto decisivo en el curso de algo; momento o etapa o evento decisivo o crucial. Sim enbargo para el software no ha habido ningún momento decisivo, solo un lento cambio evolutivo.

• En la industria del software hemos tenido una crisis que ha estado con nosotros cerca de 30 años y eso es una contradicción para el término.

Crisis del Software

Page 5: IS_Conceptos_Generales__24468__

Crisis del Software

Causas (Standish Gr.1995)Requerimientos incompletos (13.1%)Falta de involucramiento de usuarios (12.4%)Falta de recursos (10.6%)Expectativas no realistas (9.9%)Falta de soporte de ejecutivos (9.3%)Requerimientos y Especificaciones cambiantes (8.7%)Falta de planificación (8.1%)Sistema no se precisaba más (7.5%)

Page 6: IS_Conceptos_Generales__24468__

Crisis del Software

Page 7: IS_Conceptos_Generales__24468__

• El software se ha convertido en el elemento clave de los sistemas y productos basados en computadoras, así como una de las tecnologías mas importantes en el ámbito mundial.

• El software ha evolucionado desde ser una herramienta para la solución de problemas especializados y el análisis de información, hasta convertirse en una industria por si mismo.

• La intensión de la ingeniería de software es proporcionar un marco general para construir software con una calidad mucho mayor.

Metas

Page 8: IS_Conceptos_Generales__24468__

• El propósito de la ingeniería de software es generar y mantener sistemas de software dentro de las restricciones de tiempo, funcionalidad y costos acordados con el cliente

• Las METAS de esta disciplina tecnológica son mejorar la calidad de los productos desarrollados y aumentar la productividad de los ingenieros de software. El grado de formalidad y el tiempo asignado al proyecto de software varia de acuerdo al tamaño y complejidad del producto que será desarrollado.

Metas

Page 9: IS_Conceptos_Generales__24468__

• Muchas de las causas de la crisis del software se pueden encontrar en una mitología que surge durante los primeros años del desarrollo de software.

• Los mitos del software propagaron información errónea y confusa.

• Los mitos del software tienen varios atributos que los hacen insidiosos; por ejemplo, aparecieron como declaraciones razonables de hechos (algunas veces conteniendo elementos verdaderos); tuvieron un sentido intuitivo y frecuentemente fueron promulgados por expertos que estaban al día.

Mitos

Page 10: IS_Conceptos_Generales__24468__

• Hoy, la mayoría de los profesionales competentes consideran a los mitos por lo que son: actitudes erróneas que han causado serios problemas, tanto a los gestores como a los técnicos.

• Sin embargo, las viejas actitudes y hábitos son difíciles de modificar y, cuando vamos hacia la quinta década del software, todavía se cree en algunos restos de los mitos del software.

Mitos

Page 11: IS_Conceptos_Generales__24468__

Mitos

Page 12: IS_Conceptos_Generales__24468__

Mitos

Page 13: IS_Conceptos_Generales__24468__

Mitos

Page 14: IS_Conceptos_Generales__24468__

Ingenieria de Software en nuestros días

• En los últimos años, los cambios en hardware han sido enormes. Aparentemente los cambios en software también.

• Es así que la ingeniería de software tiene un efecto sobre la economía y sociedad.

• Lo que no ha cambiado ….

• Sin embargo, más allá de la tecnología, si miramos los procesos de ingeniería del software, desgraciadamente muchas cosas permanecen igual:

• El modelo en cascada sigue siendo utilizado por más del 40% de las empresas3, a pesar de que sus serios problemas fueron identificados hace más de 20 años.

Page 15: IS_Conceptos_Generales__24468__

Ingenieria de Software en nuestros días

• La prueba es la técnica de validación predominante, a pesar de que otras técnicas, como la inspección de programas, han sido usados más eficientemente desde los años 70.

• Las herramientas CASE son todavía en su mayoría, simplemente editores de diagramas con algunas funcionalidades de chequeo y generación de código.

• Todavía muchos proyectos terminan tarde, exceden el presupuesto o no entregan el software que esperaban los clientes.

• En muchas áreas sigue sin existir un conjunto de estándares que se use ampliamente, no existen suficientes datos - guía (estadísticas)

Page 16: IS_Conceptos_Generales__24468__

La Ingeniería de Software surge dentro de la ingeniería de sistemas y de hardware. Abarca un conjunto de 3 elementos: métodos, herramientas y procedimientos; que facilitan al gestor controlar el proceso de desarrollo del software y suministrar a los que practiquen dicha ingeniería, las bases para construir software de alta calidad de una forma productiva. A continuación examinaremos brevemente cada uno de esos elementos:.

Elementos de la Ingenieria de Software

Page 17: IS_Conceptos_Generales__24468__

Los métodos de la ingeniería de software indican como construir técnicamente el software. Los métodos abarcan un amplio espectro de tareas que incluyen: planificación y estimación de proyectos, análisis de los requisitos del sistema y del software, diseño de estructuras de datos, arquitectura de programas y procedimientos algorítmicos, codificación, prueba y mantenimiento. Los métodos de la ingeniería del software introducen frecuentemente una notación especial orientada a un lenguaje o grafica y un conjunto de

criterios para la calidad del software.

Elementos de la Ingenieria de Software

Page 18: IS_Conceptos_Generales__24468__

Las herramientas de la ingeniería del software suministran un soporte automático o semiautomático para los métodos. Hoy existen herramientas para soportar cada uno de los métodos mencionados anteriormente. Cuando se integran las herramientas de forma que la información creada por una herramienta pueda ser usada por otra, se establece un sistema

para el soporte del desarrollo del software, llamado ingeniería de software asistida por computadora (del inglés, CASE).

Elementos de la Ingenieria de Software

Page 19: IS_Conceptos_Generales__24468__

CASE combina software, hardware y bases de datos sobre ingeniería del software (una estructura de datos que contenga la información relevante sobre el análisis, diseño, codificación y prueba) para crear un entorno de ingeniería de software, por ejemplo, análogo al diseño asistido por computadora, CAD/CAE (de las siglas en inglés) para el hardware.

Elementos de la Ingenieria de Software

Page 20: IS_Conceptos_Generales__24468__

Los procedimientos de la ingeniería de software son el pegamento que junta los métodos y las herramientas y facilita su desarrollo racional y oportuno del software de computadora.

Los procedimientos definen la secuencia en la que se aplican los métodos, las entregas (documentos, informes, formas, etc.) que se requieren, los controles que ayudan a asegurar la calidad y coordinar los cambios, y las directrices que ayudan a los gestores del software a evaluar el progreso.

Elementos de la Ingenieria de Software

Page 21: IS_Conceptos_Generales__24468__

La ingeniería del software esta compuesta por una serie de pasos que abarcan los métodos, las herramientas y los procedimientos antes mencionados.

Estos pasos (Estrategía) se denominan frecuentemente modelos o paradigmas de la ingeniería del software (involucran el ciclo de vida del software).

La elección de un paradigma para la ingeniería del software se lleva a cabo de acuerdo con la naturaleza del proyecto y de la aplicación, los métodos y herramientas a usar y los controles y entregas requeridos.

Elementos de la Ingenieria de Software

Page 22: IS_Conceptos_Generales__24468__

El desarrollo de aplicaciones informáticas (proyectos medios-grandes) se ha convertido en una tarea compleja que involucra un gran número de recursos (tanto humanos como

materiales); resulta pues de vital importancia la adopción de métodos a fin de guiar la construcción, mantenimiento y evolución de la aplicación a través de su ciclo de vida.

Sommerville define modelo de proceso de software o ciclo de vida como “Una representación simplificada de un proceso de software, representada desde una perspectiva específica. Por su naturaleza los modelos son simplificados, por lo tanto un modelo de procesos del software es una abstracción de un proceso real.”

El producto software y su ciclo de vida

Page 23: IS_Conceptos_Generales__24468__

Los modelos genéricos no son descripciones definitivas de procesos de software; sin embargo, son abstracciones útiles que pueden ser utilizadas para explicar diferentes enfoques

del desarrollo de software.

Ejemplo de Ciclo de Vida el Modelo Iterativo e Incremental

El producto software y su ciclo de vida