2. INTRODUCCIÓN:
En esta presentación podrás a aprender todo lo relacionado con la
ingeniería de software, como sus conceptos y cómo se clasifica las
aplicaciones de cómputo, temas relacionadas con ello como
Software Engineering Institute (SEI) y W3C. Además de su modelos
y filosofías del desarrollo, procesos y arquitectura.
3. INGENIERÍA DE SOFTWARE:
IMPORTANCIA:
Uno de los objetivos más perseguidos desde los inicios de la
informática ha sido la búsqueda de técnicas que mejorasen la
calidad y permitiesen reducir los costes de las soluciones de
software.
4. INGENIERÍA DE SOFTWARE:
INICIOS:
A mediados de los 60, la creación de un producto software se
convirtió en una tarea angustiosa (crisis del software), y se hizo por
tanto necesario introducir una serie de herramientas y
procedimientos que facilitaran por un lado, la labor de creación de
nuevo software y por otro, la comprensión y el manejo del mismo.
Estos fueron los inicios de la ingeniería del software.
5. INGENIERÍA DE SOFTWARE:
DEFINICION:
Definición: Según Bauer (1969), entendemos por ingeniería del
software “el establecimiento y uso de principios de ingeniería
robustos, orientados a obtener software económico, que sea fiable y
funcione eficientemente sobre máquinas reales.”
6. INGENIERÍA DE SOFTWARE:
CLASIFICACIÓN DE LOS TIPOS DE APLICACIONES DE COMPUTO:
Software de sistemas: Está formado por todos aquellos programas
cuya finalidad es servir al desarrollo o al funcionamiento de otros
programas.
Software de aplicación: Son aplicaciones típicas como word, excel,
etc.
Software científico y de Ingeniería: Se encarga de realizar
complejos cálculos sobre datos numéricos de todo tipo.
7.
Software empotrado: Software empotrado es aquel que va
instalado en otros productos industriales, como por ejemplo la
electrónica de consumo, dotando a estos productos de un grado de
inteligencia cada vez mayor.
Software de línea de productos: satisfacer clientes.
Aplicaciones basadas en web: aplicaciones de espectro como
correos electrónicos.
Software de inteligencia artificial: El software basado en lenguajes
procedimentales es útil para realizar de forma rápida y fiable
operaciones que para el ser humano son tediosas e incluso
inabordables.
8. SOFTWARE ENGINEERING INSTITUTE (SEI):
Software Engineering Institute (SEI) es un instituto federal
estadounidense de investigación y desarrollo, fundado por Congreso
de los Estados Unidos en 1984 para desarrollar modelos de
evaluación y mejora en el desarrollo de software, que dieran
respuesta a los problemas que generaba al ejército estadounidense
la programación e integración de los sub-sistemas de software en la
construcción de complejos sistemas militares.
9. PROCESO PARA EL DESARROLLO DE SOFTWARE:
Un proceso para el desarrollo de software, también
denominado ciclo de vida del desarrollo de software es una
estructura aplicada al desarrollo de un producto de software.
Hay varios modelos a seguir para el establecimiento de un proceso
para el desarrollo de software, cada uno de los cuales describe un
enfoque diferente para diferentes actividades que tienen lugar
durante el proceso.
10. MODELOS Y FILOSOFÍAS DE DESARROLLO DE
SOFTWARE:
Modelo lineal secuencial (Ciclo de vida clásico) Enfoque sistemático
y secuencial del desarrollo del software que comienza en un nivel de
sistemas y progresa con el análisis, diseño, codificación, pruebas y
mantenimiento.
Actividades:
1.- Ingeniería y modelado de Sistemas/Información:
– Ubicación del software en el ámbito donde va a funcionar.
2.- Análisis de los requisitos del software:
– Se deben conocer los aspectos relacionados con la información a
tratar, la función requerida, comportamiento, rendimiento, etc del
software.
– El cliente debe dar el visto bueno.
11.
3.- Diseño:
– Estructura del programa y arquitectura del software.
– Representaciones de la Interfaz.
– Detalle Procedimental (algoritmo).
4.- Generación de código o Implementación:
– Puede automatizarse si el diseño está bien detallado.
5.- Pruebas:
–De Caja Blanca: Análisis de los distintos caminos de ejecución de los
algoritmos.
–De Caja Negra: Análisis de los procesos externos funcionales.
6.- Mantenimiento Gestión de cambios en el software debidos a:
– Errores durante el desarrollo.
– Adaptación a nuevos entornos. Ej. Sistema Operativo
– Mejoras funcionales o de Rendimiento.
12.
Modelo de construcción de prototipos:
Se dan un conjunto de objetivos generales de entrada, procesamiento y
salida. Con ellos se desarrolla un prototipo inicial que sirve para detallar
objetivos (requisitos) más concretos del producto final. El prototipo se
suele desechar.
13.
Desarrollo Rápido de Aplicaciones (DRA)
Es una adaptación a “alta velocidad” del modelo lineal secuencial en el
que se logra el desarrollo rápido utilizando un enfoque de construcción
basado en componentes. Puede permitir el desarrollo de un sistema
completamente funcional en periodos cortos de tiempo (de 60 a 90
días).
14. – Se delimita muy bien el ámbito del problema.
– La interacción del software con el nuevo sistema no es complicada o
se utilizan nuevas tecnologías que no son dominadas por el equipo de
desarrollo.
Inconvenientes:
– Debe haber un compromiso por parte del equipo de desarrollo y del
cliente en el desarrollo rápido de actividades.
– Requiere recursos suficientes para crear el número de equipos
necesarios.
15.
Modelos Evolutivos:
Necesidad: El software, al igual que el resto de sistemas evoluciona
con el tiempo. Necesidad de procedimientos que permitan una
evolución del software.
16.
Modelo Incremental.
– Combina elementos del modelo lineal secuencial con la filosofía
interactiva de construcción de prototipos.
– Entrega por incrementos.
– Fácil adaptación a requerimientos temporales de entrega.
17.
Modelo en Espiral.
– Combina el modelo lineal secuencial y el de construcción de
prototipos aparte de proporcionar el potencial para el desarrollo rápido
de versiones incrementales del software.
– Se debe establecer el número de interacciones.
18.
Arquitectura de software:
La arquitectura de software es un conjunto de patrones que
proporcionan un marco de referencia necesario para guiar la
construcción
de
un
software,
permitiendo
a
los programadores, analistas y todo el conjunto de desarrolladores
del software compartir una misma línea de trabajo y cubrir todos los
objetivos y restricciones de la aplicación. Es considerada el nivel más
alto en el diseño de la arquitectura de un sistema puesto que
establecen la estructura, funcionamiento e interacción entre las partes
del software.
19. CONCLUSION:
La ingeniería de software es herramientas y procedimientos que
facilitaran por un lado, la labor de creación de nuevo software y por
otro, la comprensión y el manejo del mismo, la cual cuenta con una
arquitectura la cual es considerada el nivel más alto en el diseño y
es la que da el funcionamiento e interacción entre las partes del
software.Además cuenta con modelos y filosofías que nos ayudan
para hacer una buena ingeniería de software. Todo esto para crear
software de mejor calidad.