Ingeniería de software IILópez Castillo Rafael Fernando
Universidad Tecnológica de Hermosillo
Definiciones de la
ingeniería de software
En éste documento se definirán los conceptos generales, las
importancias y las actividades de la ingeniería de software,
además de las metodologías y sus procesos. Las
organizaciones encargadas de estandarizar el desarrollo de
software para tener productos de calidad.
Conceptos generales
El software:
Producto lógico, intangible, le complementa el hardware. Es
desarrollado, no fabricado, no se deteriora y mayormente
está hecho a la medida
Conceptos generales
Ingeniería de software:
Entendemos por ingeniería de 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”.
Conceptos generales
Ingeniería de software:
Herramientas: Proporcionan un soporte automático o
semiautomático para la aplicación de los procedimientos y
los métodos.
Conceptos generales
Ingeniería de software:
Procedimientos: se puede caracterizar por un conjunto de
actividades que se pueden aplicar en el desarrollo de
cualquier proyecto software así como la forma de abarcarlas
durante el desarrollo del mismo.
Conceptos generales
Ingeniería de software:
Análisis: se centra en el QUÉ
Desarrollo: Se centra en el CÓMO
Mantenimiento: Se centra en el cambio que va asociado a la
corrección de errores.
Inicios de la ingeniería
de software
El concepto de ingeniería de software surgió en 1998, tras
una conferencia en Garmish que tuvo como objetivo
resolver el problema de la crisis del software. Éste fue
ocasionado por el avance desmesurado del hardware. Se
necesitaba un mejor software para aprovechar los recursos
del hardware.
Importancia de la
ingeniería de software
Con ella se puede analizar, diseñar, programar y aplicar un
software de manera correcta y organizada, cumpliendo con
todas las especificaciones del cliente y el usuario final.
En la construcción y desarrollo de proyectos se aplican
métodos y técnicas para resolver los problemas
Tipo de aplicaciones de
computo
• Software de aplicación: aplicaciones típicas
• Software científico y de ingeniería: complejos cálculos
• Software empotrado: va instalado de fabrica
• Software de línea de productos: satisfactorio al cliente
• Aplicaciones basadas en WEB: funcionan en red
SEI (Software Engineering
Institute)
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
W3C (World Wide Web
Consortium)
Es un consorcio internacional que produce
recomendaciones para la World Wide Web.
Está dirigida por Tim Berners-Lee, el creador original de
URL, HTTP y HTML que son las principales tecnologías
sobre las que se basa la Web.
Modelos y filosofías de
desarrollo de software
Una metodología de desarrollo de software se refiere a un
framework que es usado para estructurar, planear y
controlar el proceso de desarrollo en sistemas de
información.
Modelo cascada
Es un proceso secuencial
de desarrollo en el que los
pasos de desarrollo son
vistos hacia abajo
Modelo prototipo
El prototipo es el
framework de
actividades dedicada al
desarrollo de software
prototipo, es decir,
versiones incompletas
del software a
desarrollar.
Modelo incremental
Provee una estrategia para
controlar la complejidad y
los riesgos, desarrollando
una parte del producto
software reservando el resto
de aspectos para el futuro.
Modelo espiral
La atención se centra en la
evaluación y reducción
del riesgo del proyecto
dividiendo el proyecto en
segmentos más pequeños
y proporcionar más
facilidad de cambio
durante el proceso de
desarrollo.
Ciclo de vida del
desarrollo de software
El término ciclo de vida del software describe el desarrollo
de software, desde la fase inicial hasta la fase final. El
propósito es definir las distintas fases intermedias que se
requieren para validar el desarrollo, es decir, para garantizar
que el software cumpla los requisitos para la aplicación y
verificación de los procedimientos de desarrollo.
Ciclo de vida del
desarrollo de software
El modelo de ciclo de vida
en cascada se define como
una secuencia de fases en
la que al final de cada una
de ellas se reúne la
documentación para
garantizar que cumple las
especificaciones y los
requisitos antes de pasar a
la fase siguiente:
Ciclo de vida del
desarrollo de software
El modelo de ciclo de
vida V proviene del
principio que establece
que los procedimientos
utilizados para probar si la
aplicación cumple las
especificaciones ya deben
haberse creado en la fase
de diseño.
Arquitectura de software
En los años 1960 ya se acercaba el concepto de arquitectura
de software en los círculos de investigación. No obstante,
toma popularidad en los años 1990 tras reconocerse la
denominada crisis del software y como tema de interés de la
incipiente disciplina de la ingeniería del software.
Arquitectura de software
La Arquitectura del Software es el diseño de más alto nivel
de la estructura de un sistema.
Una Arquitectura de Software, también denominada
Arquitectura lógica, consiste en un conjunto de patrones y
abstracciones coherentes que proporcionan el marco
Arquitectura de software
Una arquitectura de software se selecciona y diseña con
base en objetivos y restricciones. Los objetivos son aquellos
prefijados para el sistema de información, pero no
solamente los de tipo funcional, también otros objetivos
como la mantenibilidad, flexibilidad e interacción con otros
sistemas de información.
Arquitectura de software
No es necesario inventar una nueva arquitectura de software
para cada sistema de información. Lo habitual es adoptar
una arquitectura conocida en función de sus ventajas e
inconvenientes para cada caso en concreto.
Arquitectura de software
• Monolítica. Donde el software se estructura en grupos funcionales muy acoplados.
• Cliente-servidor. Donde el software reparte su carga de cómputo en dos partes independientes pero sin reparto claro de funciones.
• Arquitectura de tres niveles. Especialización de la arquitectura cliente-servidor donde la carga se divide en tres partes (o capas) con un reparto claro de funciones: una capa para la presentación (interfaz de usuario), otra para el cálculo (donde se encuentra modelado el negocio) y otra para el almacenamiento (persistencia). Una capa solamente tiene relación con la siguiente.
Conclusiones
Con ella se puede analizar, diseñar, programar y aplicar un
software de manera correcta y organizada, cumpliendo con
todas las especificaciones del cliente y el usuario final.
En la construcción y desarrollo de proyectos se aplican
métodos y técnicas para resolver los problemas, la
informática aporta herramientas y procedimientos sobre los
que se apoya la ingeniería de software.
Bibliografía
• http://ingenieriadesoftware3.blogspot.mx/p/importancia-de-la-ingenieria-del.html
•
• http://es.wikipedia.org/wiki/Software_Engineering_Institute
•
• http://es.wikipedia.org/wiki/Metodolog%C3%ADa_de_desarrollo_de_software
•
• http://es.kioskea.net/contents/223-ciclo-de-vida-del-software
•
• http://es.wikipedia.org/wiki/Arquitectura_de_software
•
• http://moodle.tic-uth.net/file.php/268/ISW.pdf