Anda di halaman 1dari 28

Ingeniería de

software

●Desarrollo de software profesional.


Conceptos básicos. Ciclo de vida y ciclo de
desarrollo. Tendencias de la Ing. de Software

31/01/2018 S. Solé - IS A-2018 1


Software
En casi todos los aspectos de nuestras vidas está
involucrado el software, por lo que el número de
personas interesadas en él ha crecido
dramáticamente

Los requisitos de tecnologías de información se


hacen mas complejos con cada año que pasa.

Diseño de software se hace una actividad


esencial

31/01/2018 S. Solé - IS A-2018 2


Importancia del
software

El software debe tener alta calidad – fallas


catastróficas para personas, negocios, gobiernos

El software debe ser fácil de mantener

31/01/2018 S. Solé - IS A-2018 3


Ingeniería de
software
Abarca un proceso, una colección de métodos
(práctica) y un conjunto de herramientas que
permiten a los profesionales construir software de
calidad

Ingenieros de software

Nos permite construir sistemas complejos de


manera oportuna y con alta calidad. Impone
disciplina al trabajo que puede volverse caótico.

31/01/2018 S. Solé - IS A-2018 4


Pasos en Ingeniería
de software
Aplicar un proceso ágil, adaptable que lleve a un
resultado de alta calidad que satisfaga las
necesidades de los usuarios del producto.

Productos generados: un conjunto de programas,


contenido (datos), información resultante que de
alguna manera hace al mundo mejor

31/01/2018 S. Solé - IS A-2018 5


Ingeniería de
software
Definición IEEE: es la aplicación de un enfoque
sistemático, disciplinado, cuantificable al
desarrollo, operación y mantenimiento de
software

Un enfoque aplicado con éxito a un proyecto


puede no ser tan bueno para otro, por lo que
necesitamos disciplina pero también
adaptabilidad y agilidad.

31/01/2018 S. Solé - IS A-2018 6


Capas de la Ing. de
software
Herramientas

Métodos
Procesos
Foco en calidad
Ing. de Software como tecnología en capas

Cualquier enfoque ingenieril (incluida la ing. de


software) debe descansar en un compromiso
organizacional hacia la calidad
31/01/2018 S. Solé - IS A-2018 7
Ciclo de vida de
desarrollo de software
Análisis de
requerimientos

Publicación Diseño

Pruebas Implementación

31/01/2018 S. Solé - IS A-2018 8


Análisis de
requerimientos
● Trabajar directamente con los clientes
● Identificar el problema a resolver

● Enfocar en el que, no en el como

● Resultado: especificación funcional

● Clientes y diseñadores de software

revisan el resultado

31/01/2018 S. Solé - IS A-2018 9


Diseño

● Enfocar en el como
● Dividir el problema en partes pequeñas

● Decidir como trabaja cada componente y

como ellos trabajan en conjunto


● Resultado: especificación de diseño

● Diseñadores de software y

programadores revisan el resultado

31/01/2018 S. Solé - IS A-2018 10


Implementación

● Escribir el código según el diseño del


software
● Frecuentemente es la fase mas corta

● Resultado: código fuente del software

● Diseñadores de software y

programadores y probadores revisan el


resultado

31/01/2018 S. Solé - IS A-2018 11


Pruebas

● Verificar que el software trabaja de


acuerdo a la especificación funcional
● Buscar los casos límite

● Resultado: plan de pruebas, software

que funciona bien


● Diseñadores de software y

programadores y probadores revisan el


resultado
31/01/2018 S. Solé - IS A-2018 12
Publicación

● Trabajar directamente con los clientes


● Validar las expectativas de los clientes

● Obtener realimentación para la próxima

versión
● Mantener este programa

● Resultado final: cliente feliz, pago del

proyecto (opcional)

31/01/2018 S. Solé - IS A-2018 13


Cosas que pasan

31/01/2018 S. Solé - IS A-2018 14


Proceso de software

Un conjunto estructurado de actividades


para el desarrollo de software

Cosas que hacemos cuando


desarrollamos software

31/01/2018 S. Solé - IS A-2018 15


Actividades fundamentales
en un proceso de software

● Especificación: definir que debe hacer el


software
● Diseño: organizar la estructura del software
● Implementación y pruebas: programar y

probar que esté libre de bugs y cumpla los


requerimientos del cliente
● Mantenimiento: cambiar el software después que

se ha comenzado a utilizar

31/01/2018 S. Solé - IS A-2018 16


Procesos de software
basados en planes

Procesos donde todas las actividades se


planifican por adelantado y su progreso se
mide contrastando la ejecución con el plan

31/01/2018 S. Solé - IS A-2018 17


Modelo Cascada
Análisis de
requerimientos

Diseño

Implementación

Pruebas

1970s Proceso orientado a


documentos: hay una Publicación
salida para cada una
de estas fases. Evita
que ocurran cambios
31/01/2018 S. Solé - IS A-2018 18
Uso del modelo
Cascada
Los requerimientos se conocen bien y no
van a cambiar mucho durante el desarrollo
del software.

Múltiples equipos desarrollando distintas


partes del software, los documentos ayudan
a coordinar el trabajo

31/01/2018 S. Solé - IS A-2018 19


Procesos ágiles

No tienen un plan detallado sino que


desarrollan el software en una serie de
incrementos con la funcionalidad de cada
incremento dependiente del progreso
general del desarrollo

Planificación incremental → es más fácil


cambiar el plan
31/01/2018 S. Solé - IS A-2018 20
Actividades en
proceso ágil
Iteraciones
Actividades concurrentes

Versión inicial
Diseño
Versiones
intermedias

Publicación
Análisis de
Implementación
requerimientos

Versión final
Pruebas

31/01/2018 S. Solé - IS A-2018 21


Procesos ágiles

Iteraciones cortas, de 2 a 4 semanas


En cada iteración se desarrollan algunas
funcionalidades del sistema

Objetivo: minimizar la documentación y el


gasto de comunicación para enfocarse en
desarrollar el software y realizar entregas
frecuentes de funcionalidades a los usuarios
31/01/2018 S. Solé - IS A-2018 22
Beneficios y problemas
de procesos ágiles
✔Cuesta menos acomodar los cambios de requerimientos
del cliente
✔Es mas fácil conseguir realimentación del cliente por las

entregas frecuentes

✗Proceso es invisible, como se evita la documentación es


difícil saber como va el progreso del desarrollo de
software y también coordinar actividades entre diferentes
equipos
✗Los cambios frecuentes llevan a refactorizar el software

para evitar la degradación de su estructura.


31/01/2018 S. Solé - IS A-2018 23
Modelo Espiral

31/01/2018 S. Solé - IS A-2018 24


Procesos basados en
integración y reutilización

Usando procesos basados en integración y


reutilización (BIR) los sistemas se integran a
partir de componentes o aplicaciones.

Necesario configurar los elementos


reutilizados para adaptar su comportamiento
y funcionalidades a los requerimientos de
los usuarios
31/01/2018 S. Solé - IS A-2018 25
Tipo de software
reutilizable

●Aplicaciones stand-alone que se configuran


para satisfacer las necesidades del usuario.
●Componentes reutilizables que se pueden

combinar con otros componentes para crear


el software
●Servicios web que se pueden acceder e

invocar mediante la Web para entregar una


funcionalidad
31/01/2018 S. Solé - IS A-2018 26
Actividades fundamentales
de procesos BIR

Búsqueda de
software
Análisis y
Especificación de Refinamiento de
requerimientos requerimientos

Evaluación de
software

Adaptación de
componentes Aplicación
Componentes disponible
Desarrollo de disponibles
Componentes Configuración de
nuevos aplicación

31/01/2018 S. Solé - IS A-2018 27


Bibliografía

Libros de referencia:

●R. Pressman y B. Maxim. Ingeniería del software. Un


enfoque práctico.
●Sommerville, Ian. Ingeniería del software.

31/01/2018 S. Solé - IS A-2018 28

Anda mungkin juga menyukai