PDF de programación - Introducción a la ingeniería del software

Imágen de pdf Introducción a la ingeniería del software

Introducción a la ingeniería del softwaregráfica de visualizaciones

Publicado el 1 de Junio del 2017
1.503 visualizaciones desde el 1 de Junio del 2017
757,3 KB
62 paginas
Creado hace 11a (07/09/2012)
Introducción a la
Ingeniería del Software

Autores:



Simon Pickin
Marisol García Valls



Address: Departamento de Ingeniería Telemática


Universidad Carlos III de Madrid



Version:

1.0

Software de

Comunicaciones

2012-2013



© UC3M

1

Índice

1. Visión General / Definición de términos

2. Modelos de ciclo de vida

3. Captura, análisis y especificación de requisitos

4. Diseño del software

5. Prueba del software

6. Temas transversales

– el modelado

– la calidad del software

– métodos formales

Software de

Comunicaciones

2012-2013



© UC3M

– algunos acontecimientos recientes

2

1. Visión general / definición de términos

Software de

Comunicaciones

2012-2013



© UC3M

3

¿Qué es la ingeniería del software? (1/4)

• El establecimiento y uso de principios de
ingeniería robustos, orientados a obtener
económicamente software que sea fiable y
funcione eficientemente sobre máquinas
reales.

F.L. Bauer. Software Engineering.
Information Processing 71., 1972


Software de

Comunicaciones

2012-2013



© UC3M

4

¿Qué es la ingeniería del software? (2/4)

• La disciplina tecnológica y de gestión que

concierne a la producción y el mantenimiento
sistemático de productos software
desarrollados y modificados dentro de unos
plazos estipulados y costes estimados.

R. Fairley. Software Engineering Concepts.

New York: McGraw-Hill, 1985.

Software de

Comunicaciones

2012-2013



© UC3M

5

¿Qué es la ingeniería del software? (3/4)

• Ingeniería del software. (1) La aplicación de

un enfoque sistemático, disciplinado y
cuantificable del desarrollo, la operación y
el mantenimiento del software; esto es, la
aplicación de la ingeniería al software. (2)
El estudio de enfoques tales como (1).



IEEE Std 610-1990

Software de

Comunicaciones

2012-2013



© UC3M

6

¿Qué es la ingeniería del software? (4/4)



Ingeniería es la aplicación sistemática de
conocimiento científico en la creación y construcción
de soluciones, que satisfacen una buena relación
efectividad/precio, de problemas prácticos al servicio
de la humanidad. La ingeniería del software es la
forma de ingeniería que aplica los principios de las
ciencias de la computación y las matemáticas en la
obtención de soluciones de los problemas del
software que satisfacen una buena relación
efectividad/precio.

SEI Report on Undergraduate Software Engineering

Education, 1990.

Software de

Comunicaciones

2012-2013



© UC3M

7

¿Qué no es la ingeniería del software? (1/2)

• Las ciencias de la computación

– atañe a la teoría y a los aspectos fundamentales

– la ingeniería del software atañe a los aspectos

prácticos del desarrollo y entrega de software útil.

– aún son insuficientes para actuar como

apuntalamiento de la ingeniería del software (al
contrario, p.e., de la física y la ingeniería eléctrica)



Software Engineering,
Sommerville

8

Software de

Comunicaciones

2012-2013



© UC3M

¿Qué no es la ingeniería del software? (2/2)

• La ingeniería de sistemas

– atañe a todos los aspectos del desarrollo de

sistemas basados en ordenadores, incluyendo el
hardware, el software y la ingeniería de procesos

– la ingeniería del software es la parte de este

proceso que atañe al desarrollo de la
infrastructura software, el control, las
aplicaciones y las bases de datos del sistema.

– los ingenieros de sistema están implicados en la

especificación del sistema, el diseño
arquitectónico, la integración y el despliegue.

Software de

Comunicaciones

2012-2013



© UC3M



Software Engineering,
Sommerville

9

¿Para qué la ingeniería del software? (1/4)?

• El término “ingeniería del software” se

popularizó al final de los años 60

• Respuesta a la llamada “crisis del software”

– las prestaciones del hardware aumentaban

mucho más rápido que las del software.

– el desarrollo de sistemas de software grandes

resultaba muy insatisfactorio:

• entrega habitualmente retrasada (a veces por mucho)

• presupuesto habitualmente excedido (a veces

masivamente)

• calidad del producto final habitualmente baja: productos

poco fiables y difíciles de mantener

10

Software de

Comunicaciones

2012-2013



© UC3M

¿Para qué la ingeniería del software? (2/4)?

• Las técnicas utilizadas para software “uni-

desarrollador” no escalan

– proyectos grandes necesitan un equipo

– la calidad de comunicación entre los miembros

es un problema serio → documentación

• Deseo de beneficiarse de experiencia previa

• Necesidad de planificar para el

mantenimiento y la evolución

Software de

Comunicaciones

2012-2013



© UC3M

– Las decisiones de diseño importantes deben

documentarse

11

¿Para qué la ingeniería del software? (3/4)?

• La comunicación con el cliente/usuario es

primordial

– entender los requisitos del cliente

– p.e. Xtreme programming (programación

extrema): el cliente tiene representante en el
equipo de desarrollo

Software de

Comunicaciones

2012-2013



© UC3M

12

¿Para qué la ingeniería del software? (4/4)?

• Necesidad de estimar el dinero, tiempo y

esfuerzo requeridos

– las estimaciones se basan principalmente en el
modelado del proyecto actual y su comparación
con proyectos anteriores

– ¿Queremos el trabajo? ¿Cuánto cobramos?

– Constructive Cost Model COCOMO
Constructive Systems Engineering Cost Model

COSYSMO

Software de

Comunicaciones

2012-2013



© UC3M

– The mythical man month, Brooks, 1975:
añadir recursos humanos a un proyecto de

software atrasado lo atrasa más

13

¿Qué es un proceso de desarrollo? (1/2)

• Proceso:

Una serie de acciones u operaciones que

conducen a un fin (Websters)

conjunto de las fases sucesivas de un fenómeno

natural o de una operación artificial (RAE)

• Proceso de desarrollo de software

El conjunto de actividades, métodos y prácticas

utilizados en la producción y evolución de
software.

Software de

Comunicaciones

2012-2013



© UC3M

14

¿Qué es un proceso de desarrollo? (2/2)

• Un proceso de desarrollo de software puede incluir

– un modelo de ciclo de vida

• divide el desarrollo en fases y prescribe las actividades que

deben realizarse en cada fase

• proporciona criterios para determinar cuándo cada fase de

desarrollo ha terminado

• define los deliverables / artefactos / productos de cada fase

– consideración de herramientas y equipamiento

– consideración de personal y de su organización

– restricciones sobre las actividades, los artefactos, las

herramientas, el personal etc.

• Para muchos autores:

Software de

Comunicaciones

2012-2013



© UC3M

proceso de desarrollo de software = ciclo de vida de software

15

¿Qué es un ciclo de vida de software?

• El periodo de tiempo que comienza cuando se concibe un

software y concluye cuando el producto ya no está
disponible para su uso.

• El ciclo de vida del software típicamente incluye una fase

de requisitos, una fase de diseño, una fase de pruebas,
una fase de instalación y aceptación, una fase de
operación y mantenimiento, y, en ocasiones, una fase de
retirada.

• Un modelo de ciclo de vida es una abstracción particular
que representa un ciclo de vida de software. Un modelo
de ciclo de vida se denomina con frecuencia un ciclo de
vida de desarrollo software (SDLC, siglas inglesas).



IEEE Standard Glossary of Soft. Eng. Terminology

16

Software de

Comunicaciones

2012-2013



© UC3M

El modelado de software (& hardware)

• Perspectiva escéptica sobre modelos de software:

“burbujas y flechas, al contrario que los programas,
nunca cascan” Bertrand Meyer 1997

• El uso de modelos es tan antiguo como la ingeniería

– antes de construir el ente real, los ingenieros construyen

modelos y aprenden de ellos

• Algunas características deseables de un modelo

– abstracto

– comprensible

– preciso

– predictivo

– no muy caro de construir

Software de

Comunicaciones

2012-2013



© UC3M

17

Modelado: el propósito de modelos

• Ayudarnos a entender un problema complejo

mediante análisis y simulación

• Permitir la investigación y comparación de

soluciones alternativas

• Facilitar la comunicación de ideas sobre un

problema o sobre su solución

• Permitir la detección de errores y omisiones durante

el diseño

• Para dirigir la implementación



Software de

Comunicaciones

2012-2013



© UC3M

18

2. Modelos de ciclo de vida

Software de

Comunicaciones

2012-2013



© UC3M

19

El proceso de desarrollo de software

Análisis de
sistema

Desarrollo

Operación y

Mantenimiento

Requisitos
de usuario

Sistema software

Software de

Comunicaciones

2012-2013



© UC3M

20

Modelo de ciclo de vida en cascada (1/2)

Análisis de
requisitos

Diseño

Implementación
y prueba unitaria

Integración

y prueba sistema

Software de

Comunicaciones

2012-2013



© UC3M

Operación

y mantenimiento

21

Modelo de ciclo de vida en cascada (2/2)

Análisis de
requisitos

Especificación del
sistema software

Diseño

Arquitectura y diseño
de componentes

Implementación
y prueba unitaria

Componentes
implementados

Software de

Comunicaciones

2012-2013



© UC3M

Integración

y prueba sistema

Sistema
integrado

Operación

y mantenimiento

22

Modelo de ciclo de vida en V

Captura de
requisitos

Análisis de
requisitos

Diseño de

arquitectura

Diseño de

componentes

Mundo real

validación

Sistema

verificación

Subsistemas

verificación

Componentes

verifcación

Operación y
Mantenim.

Prueba de
aceptación

Integración de

sistema

Integración

de subsistemas

Codificación de
componentes

Prueba
unitaria

Software de

Comunicaciones

2012-2013



© UC
  • Links de descarga
http://lwp-l.com/pdf3845

Comentarios de: Introducción a la ingeniería del software (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad