Está en la página 1de 29

Ingeniería de software

Ing. Fernando Ibarra


Ingeniería de software

“La ingeniería de software es una disciplina que integra


métodos, herramientas y procedimientos para el
desarrollo de software de computadora.”
Ingeniería de software

Proceso del software


Ingeniería de software
Proceso del 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
estándar como Java, C entre otros.
Ingeniería de software
Proceso del software
Sin embargo, las aplicaciones de
negocios no se desarrollan
precisamente de esta forma.
El nuevo software empresarial con
frecuencia ahora se desarrolla
extendiendo y modificando los
sistemas existentes, o
configurando e integrando el
software comercial o
componentes del sistema.
Ingeniería de software
Proceso del software
Existen diferentes procesos de
software, pero todos deben incluir
cuatro actividades que son
fundamentales para la ingeniería
de software:
1. Especificación del software
Tienen que definirse tanto la
funcionalidad del software como
las restricciones de su operación.
Ingeniería de software
Proceso del software
2. Diseño e implementación del software
Debe desarrollarse el software para
cumplir con las especificaciones.
3. Validación del software Hay que
validar el software para asegurarse de
que cumple lo que el cliente quiere(2
tipos pruebas para el ejercicio) .
4. Evolución del software El software
tiene que evolucionar para satisfacer las
necesidades cambiantes del cliente.
Ingeniería de software
Proceso del software
Aspectos importantes a considerar
1. Productos, que son los resultados de
una actividad del proceso. Por ejemplo, el
resultado de la actividad del diseño
arquitectónico es un modelo de la
arquitectura de software.
2. Roles, que reflejan las
responsabilidades de la gente que
interviene en el proceso. Ejemplos de
roles: gerente de proyecto, gerente de
configuración, programador, etcétera.
Ingeniería de software
Proceso del software
Aspectos importantes a considerar
3. Precondiciones y postcondiciones, que
son declaraciones válidas antes y después
de que se realice una actividad del
proceso o se cree un producto.
Por ejemplo, antes de comenzar el diseño
arquitectónico, una precondición es que
el cliente haya aprobado todos los
requerimientos; después de terminar esta
actividad, una postcondición podría ser
que se revisen aquellos modelos UML
que describen la arquitectura.
Ingeniería de software
Proceso del software
Modelos del proceso de software
1. El modelo en cascada (waterfall)
Éste toma las actividades
fundamentales del proceso de
especificación, desarrollo, validación y
evolución y, luego, los representa
como fases separadas del proceso, tal
como especificación de
requerimientos, diseño de software,
implementación, pruebas, etcétera.
Ingeniería de software
Proceso del software
Modelos del proceso de software
1. El modelo en cascada (waterfall)
Ingeniería de software
Proceso del software
Modelos del proceso de software
2. Desarrollo incremental Este enfoque
vincula las actividades de especificación,
desarrollo y validación. El sistema se
desarrolla como una serie de versiones
(incrementos), y cada versión añade
funcionalidad a la versión anterior.
3. Ingeniería de software orientada a la
reutilización Este enfoque se basa en la
existencia de un número significativo de
componentes reutilizables. El proceso de
desarrollo del sistema se enfoca en la
integración de estos componentes en un
sistema, en vez de desarrollarlo desde cero.
Ingeniería de software

Arquitectura de un sistema
de información o software
Ingeniería de software

Arquitectura de un sistema de
información
Características a tomar en cuenta
• Es necesario definir reglas.
• Hay que basarse en modelos o
prototipos.
• Tiene que buscar adaptabilidad y
evolución.
• Bajos costos de replicación y
distribución.
Ingeniería de software

Arquitectura de un sistema de
información
¿Qué es?
• La arquitectura del software es la
organización fundamental del sistema
que incluye a sus componentes, sus
relaciones entre ellos y el ambiente y
los principios que dictan su diseño y
evolución.
• Involucra un conjunto de decisiones
significativas acerca de la organización
del sistema.
Ingeniería de software

Arquitectura de un sistema de
información
¿Qué es?
• Selección de sus elementos
estructurales y sus interfaces.
• Comportamiento, especificado en
función de la colaboración de los
elementos.
• Composición de sub-sistemas más
grandes a partir de elementos
estructurales y elementos con
comportamiento.
Ingeniería de software
Arquitectura de un sistema de
información

https://app.creately.com/
Ingeniería de software
Arquitectura de un sistema de
información
¿Qué involucra?
La arquitectura de software también
involucra:
1. Funcionalidad.
2. Usabilidad.
3. Tolerancia a cambios.
4. Reutilización.
5. Restricciones económicas y
tecnológicas.
6. Aspectos estéticos.
Ingeniería de software

Arquitectura de un sistema de
información
Patrones
• Un patrón es una solución conocida a
un problema recurrente.
• Un patrón codifica conocimiento
específico recogido de la experiencia
en un dominio.
• Si se estructura bien un sistema, se va
a encontrar patrones ejecutados.
Ingeniería de software

Arquitectura de un sistema de
información
Patrones
• Los patrones de arquitectura son
esquemas base de organización
estructural para sistemas de software.
– Definir susbistemas con sus
responsabilidades.
– Incluir reglas y pautas para
organizar las relaciones entre
ellos.
Ingeniería de software

Tipos de Arquitectura de un
sistema de información
Ingeniería de software

Tipos de Arquitectura de un
sistema de información
• Arquitectura en capas:
– Organiza los componentes
en grupos de sub tarreas,
donde cada grupo se
encuentra en un nivel de
abstracción diferente.
Ingeniería de software

Tipos de Arquitectura de un
sistema de información
• Pipes and Filters
– Sirve en sistemas que procesan un
flujo de datos.
– Cada paso es encapsulado en un
“filtro”.
– Los canales pasan datos de un
filtro a otro.
– Al recombinar filtros puedo
construir familias de sistemas
relacionados.
Ingeniería de software

Tipos de Arquitectura de un
sistema de información
• Arquitectura de pizarra o repositorio
– Contiene 2 componentes
principales:
• Una estructura que representa el
estado actual y el otro una
colección de componentes que
operan sobre el.
• Las transacciones definen el proceso
a ejecutar y los repositorios
representan a los datos
almacenados en una base de datos
tradicional.
Ingeniería de software

Tipos de Arquitectura de un
sistema de información
• Arquitectura orientada a objetos
– Conocida por la aplicación
abstracta de los objetos. Contiene
herencia, polimorfismo y
encapsulamiento de datos,
permite heredar propiedades de
un objeto y puede encapsular
métodos.
Ingeniería de software

Tipos de Arquitectura de un
sistema de información
• Arquitectura de máquinas virtuales
– Conocida como intérpretes
basados en tablas. Utilizado para
mejorar la implementación de
sistemas en cualquier plataforma
o dispositivo a través de estas
máquinas virtuales.
Ingeniería de software

Tipos de Arquitectura de un
sistema de información
• Arquitectura orientada a servicios
– Utilizados en servicios web
basados en XML.
– Servicios transportados por
HTTP,FTP, SMTP, IIOP y MQ
Ingeniería de software

Tipos de Arquitectura de un
sistema de información
• Cliente - Servidor
– Permite estructurar sistemas
distribuidos con
componentes desacoplados
que interactúan por medio
de invocaciones remotas a
servicios.
Ingeniería de software
Tipos de Arquitectura de un sistema de
información
• Cliente - Servidor
– El procesamiento se distribuye
entre:
• Cliente
• Servidor
– Los procesos cliente requieren de
recursos provistos por los
servidores.
– Clientes y servidores pueden
residir en el mismo host o en hosts
diferentes conectados a través de
una red.

También podría gustarte