+ All Categories
Home > Documents > Desarrollo de Software

Desarrollo de Software

Date post: 25-Mar-2016
Category:
Upload: carola-romero-bonilla
View: 213 times
Download: 0 times
Share this document with a friend
Description:
Ingenieria de Software
48
Unidad 1.- Introducción a la Ingeniería de Software Ing. José Alberto Rojas Aragón Modelado de Procesos de Desarrollo de Software Tecnologías de la Información y Comunicación
Transcript
Page 1: Desarrollo de Software

Unidad 1.- Introducción a la Ingeniería de Software

Ing. José Alberto Rojas AragónModelado de Procesos de Desarrollo de SoftwareTecnologías de la Información y Comunicación

Page 2: Desarrollo de Software

Co

nte

nid

o

• Definición de Ingeniería de Software y su importancia

• Ciclo de vida de un sistema de software

Modelado de Procesos de Desarrollo de Software

Page 3: Desarrollo de Software

Ingeniería de software y su importancia

Modelado de Procesos de Desarrollo de Software

Page 4: Desarrollo de Software

¿Qu

é es

ser

inge

nie

ro?

• Ingeniero: Persona que aplica los conocimientos de una o varias ramas de la ciencia para resolver cierto tipo de necesidades de la gente– Mediante el diseño, construcción u

operación de algún tipo de artefacto o sistema

Modelado de Procesos de Desarrollo de Software

Page 5: Desarrollo de Software

Car

acte

ríst

icas

de

un

a in

gen

ierí

a

• Se necesitan conocimientos avanzados para diseñar y construir el tipo de sistemas que le caracteriza. Diferencia entre técnico e ingeniero.

• Existen dos “momentos”:– Primero, conocer el problema, y– Sólo después, podemos diseñar y construir

la solución.

• Para conseguir buenos resultados (en calidad, tiempo y costo) es necesario trabajar de forma organizada y sistemática.

• La creatividad es necesaria (diseño), pero no es suficiente, Diferencia entre artista e ingeniero.

Modelado de Procesos de Desarrollo de Software

Page 6: Desarrollo de Software

Co

nsi

der

acio

nes

• El sentido común es muy importante

– Ley del mínimo esfuerzo

• Entre las opciones correctas elegir la más sencilla

• Reutilización (código, artefactos y conocimiento)

– No inventar la rueda

• Emplear estándares y metodologías

– Aprender de la experiencia

• Utilizar “buenas prácticas” y “lecciones aprendidas”

Modelado de Procesos de Desarrollo de Software

Page 7: Desarrollo de Software

¿Qu

é es

el S

oft

war

e?

• Software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos que pertenecen a un sistema de cómputo

Modelado de Procesos de Desarrollo de Software

Page 8: Desarrollo de Software

• A que se parece el software:

Modelado de Procesos de Desarrollo de Software

Page 9: Desarrollo de Software

Tip

os

de

Soft

war

e• Un producto de software es un

producto diseñado para un usuario

– Genéricos

– Hechos a la medida

• Tipos de Software

– Interfaces Hombre Maquina

– Compiladores

– Bases de Datos

– Sistemas basados en Web

– Sistemas Operativos

– Etc….

Modelado de Procesos de Desarrollo de Software

Page 10: Desarrollo de Software

Car

acte

ríst

icas

de

un

bu

en

soft

war

e

• Mantenibles– Debe ser posible que el software evolucione

y que siga cumpliendo con sus especificaciones.

• Confiabilidad– El software no debe causar daños físicos o

económicos en el caso de fallos.

• Eficiencia– El software no debe desperdiciar los

recursos del sistema.

• Utilización adecuada– El software debe contar con una interfaz de

usuario adecuada y su documentación.

Modelado de Procesos de Desarrollo de Software

Page 11: Desarrollo de Software

¿Qu

é es

Inge

nie

ría

de

Soft

war

e?

• Ingeniería de Software es la rama de la ingeniería que aplica los principios de la ciencia de la computación y las matemáticas para lograr soluciones costo-efectivas (eficaces en costo o económicas) a los problemas de desarrollo de software.

Modelado de Procesos de Desarrollo de Software

Page 12: Desarrollo de Software

Def

inic

ión

IEEE

• Aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación (funcionamiento) y mantenimiento del software; es decir, la aplicación de los principios y hábitos de la ingeniería al software.

• Instituto de Ingenieros en Electricidad y Electrónica (IEEE), 1993

Modelado de Procesos de Desarrollo de Software

Page 13: Desarrollo de Software

Pro

ceso

s d

e D

esar

rollo

de

Soft

war

e

• Proceso de desarrollo de software

– Conjuntos sistemático de actividades cuya meta es el desarrollo o la evolución del software

• No existe un proceso universal efectivo para todos los contextos de proyectos de desarrollo

Modelado de Procesos de Desarrollo de Software

Page 14: Desarrollo de Software

Def

inic

ion

es B

ásic

as• ¿Cuál es proceso de desarrollo del

software?

– Especificación: lo que el sistema debería hacer y sus restricciones de desarrollo

– Desarrollo: producción del sistema

– Validación: comprobar que el software es lo que el cliente quiere

– Evolución: cambios y mantenimiento al software con relación a los cambios de requerimientos y demandas

Modelado de Procesos de Desarrollo de Software

Page 15: Desarrollo de Software

Otr

a p

ersp

ecti

va• Esta perspectiva establece relaciones

entre elementos que permiten responder ¿Quién debe hacer? ¿Qué debe hacer? ¿Cómo debe hacerlo?

Modelado de Procesos de Desarrollo de Software

Page 16: Desarrollo de Software

Mo

del

os

de

Pro

ceso

G

enér

ico

s

• Modelo de Cascada– Separar en distintas fases de especificación y

desarrollo.

• Desarrollo Evolutivo– La especificación y el desarrollo están

intercalados.

• Prototipado– Un modelo sirve de prototipo para la

construcción del sistema final.

• Transformación Formal– Un modelo matemático del sistema se

transforma formalmente en la implementación.

• Desarrollo basado en Reutilización– El sistema es ensamblado a partir de

componentes existentes.

Modelado de Procesos de Desarrollo de Software

Page 17: Desarrollo de Software

¿Cu

ánto

cu

esta

hac

er

Sofw

tare

?

• Los costos del software a menudo dominan al costo del sistema. El costo del software en un PC es a menudo mas caro que la PC.

• Cuesta mas mantener el software que desarrollarlo. Para sistemas con una larga vida, este costo se multiplica.

• La distribución de los costos dependedel modelo empleado para el desarrollo del software

Modelado de Procesos de Desarrollo de Software

Page 18: Desarrollo de Software

Co

sto

de

Efic

ien

cia

Modelado de Procesos de Desarrollo de Software

Costos

Eficiencia

Page 19: Desarrollo de Software

Met

od

olo

gías

de

Des

arro

llo d

e So

ftw

are

• Proceso de desarrollo de software detallado y completo• Definen con precisión los artefactos, roles y actividades

involucrados, junto con prácticas y técnicas recomendadas, guías de adaptación de la metodología al proyecto, guías para uso de herramientas de apoyo, etc.

• Metodologías tradicionales (no ágiles)– Fuerte planificación durante todo el proceso de desarrollo

– Intensa etapa de análisis y diseño antes de la construcción del sistema.

• Metodologías ágiles– incremental (entregas pequeñas de software, con ciclos

rápidos)

– cooperativo (cliente y desarrolladores trabajan juntos constantemente con una cercana comunicación)

– sencillo (el método en sí mismo es fácil de aprender y modificar, bien documentado)

– adaptable (permite realizar cambios de último momento)

Modelado de Procesos de Desarrollo de Software

Page 20: Desarrollo de Software

Met

od

olo

gías

Tradicional

RUP

Agil

SCRUM

Extreme Programming

AUP

Crystal

Modelado de Procesos de Desarrollo de Software

Page 21: Desarrollo de Software

Her

ram

ien

tas

CA

SE• Sistemas de software cuya finalidad es la

de proveer soporte automatizado para actividades de proceso o desarrollo de software.

• Los sistemas CASE son usados con frecuencia como soporte dentro de la metodología de desarrollo.– Herramientas CASE tempranas o Superiores

• Herramientas para soportar las actividades tempranas de requerimientos y diseño dentro del proceso de software;

– Herramientas CASE tardías o Inferiores• Herramientas para soportar actividades

posteriores como ser la programación, depuración y prueba o testeo.

Modelado de Procesos de Desarrollo de Software

Page 22: Desarrollo de Software

Des

afío

s d

e la

Inge

nie

ría

de

Soft

war

e

• Heterogeneidad, entrega y confianza.

• Heterogeneidad– Técnicas de desarrollo para la construcción

de software que puedan encararse con plataformas heterogéneas y ambientes de ejecución apropiados;

• Entrega– Técnicas de desarrollo que lleven a una

entrega de software más rápida;

• Confianza– Técnicas de desarrollo que demuestren que

el software es de confianza para con sus usuarios.

Modelado de Procesos de Desarrollo de Software

Page 23: Desarrollo de Software

Res

po

nsa

bili

dad

étic

ay

pro

fesi

on

al

• La Ingeniería de Software implica responsabilidades mayores que el simple uso de habilidades técnicas

• Los ingenieros de software deben comportarse de manera honesta y éticamente responsable si van a ser respetados como profesionales

• Comportamiento éticamente responsable es mucho más que simplemente actuar dentro de la ley

Modelado de Procesos de Desarrollo de Software

Page 24: Desarrollo de Software

Asp

ecto

s d

e re

spo

nsa

bili

dad

p

rofe

sio

nal

• Confidencialidad – Los ingenieros deberían normalmente

respetar la confidencialidad de sus clientes independientemente de que se haya firmado o no un previo acuerdo de confidencialidad.

• Capacidad – Los ingenieros no deberían pretender

tener mayor capacidad (intelectual y laboral) de la que tienen, deben aceptar conscientemente trabajo que esté acorde a su capacidad.

Modelado de Procesos de Desarrollo de Software

Page 25: Desarrollo de Software

Asp

ecto

s d

e re

spo

nsa

bili

dad

p

rofe

sio

nal

• Derechos de propiedad intelectual

– Los ingenieros deberían estar conscientes de las leyes que gobiernan el uso de propiedad intelectual, como ser patentes y derechos reservados. Deben ser cuidadosos al garantizar que la propiedad intelectual de sus clientes está protegida.

• Mal uso de la computadora

– Los ingenieros de software no deberían usar sus habilidades técnicas para un mal uso de las computadoras de otras personas. El mal uso de una computadora comprende desde lo relativamente simple (jugar en la computadora del cliente) hasta lo extremamente serio (diseminar virus).

Modelado de Procesos de Desarrollo de Software

Page 26: Desarrollo de Software

dig

od

e Et

ica

-P

rin

cip

ios

• Juicio

– Los ingenieros de software mantendrán su integridad e independencia de juicio como profesional.

• Gerencia

– Gerentes y líderes de Ingeniería de Software suscribirán y promoverán un acercamiento ético hacia el manejo de desarrollo de software y evolución.

• Profesión

– Los ingenieros de Software incrementarán la integridad y reputación de la profesión en constancia con el interés público.

Modelado de Procesos de Desarrollo de Software

Page 27: Desarrollo de Software

dig

o d

e Et

ica

-P

rin

cip

ios

• Colegas

– Los ingenieros de software serán condescendientes y brindarán apoyo a sus colegas.

• Uno Mismo

– Los ingenieros de software participarán en la formación continua con respecto a la práctica de su profesión y promoverán un acercamiento ético a la práctica de la profesión.

Modelado de Procesos de Desarrollo de Software

Page 28: Desarrollo de Software

Dile

mas

Eti

cos

• Desacuerdo en principio con las políticas de administración superior.

• El empleador actúa de un modo no ético y lanza un sistema de seguridad crítico sin terminar la prueba del sistema.

• Participación en el desarrollo de armamento militar o sistemas nucleares.

Modelado de Procesos de Desarrollo de Software

Page 29: Desarrollo de Software

Ciclos de Vida del Software

Modelado de Procesos de Desarrollo de Software

Page 30: Desarrollo de Software

Mod

elo

s d

e D

esar

roll

o d

e

So

ftw

are

• Representación formal o simplificada del procesode software.

• Modelos Genéricos:

– Modelo de Cascada: Separar en distintas fases de especificación y desarrollo

– Desarrollo Evolutivo: La especificación y el desarrollo están intercalados

– Prototipado: Un modelo sirve de prototipo para la construcción del sistema final

– Transformación Formal: Un modelo matemático del sistema se transforma formalmente en la implementación

– Desarrollo basado en Reutilización: El sistema es ensamblado a partir de componentes existentes

Modelado de Procesos de Desarrollo de Software

Page 31: Desarrollo de Software

Model

o d

e C

asca

da

(grá

fica

)

Diseño del Softwarey del Sistema

Implementación yPrueba de unidades

Integración y Prueba del Sistema

Operación yMantenimiento

Definición de Requerimientos

Modelado de Procesos de Desarrollo de Software

Page 32: Desarrollo de Software

Fas

es d

el M

od

elo

de

Cas

cad

a

• Análisis de requerimientos y

definición.

• Diseño del sistema y del software.

• Implementación y prueba de unidades

• Integración y prueba del sistema.

• Operación y mantenimiento.

• La dificultad en esta modelo reside, en

la dificultad de hacer cambios entre

etapas.

Modelado de Procesos de Desarrollo de Software

Page 33: Desarrollo de Software

Des

arro

llo

Ev

olu

tiv

o

Descripcióndel sistema

VersiónInicial

VersiónFinal

VersionesIntermedias

Especificación

Desarrollo

Validación

ActividadesConcurrentes

Modelado de Procesos de Desarrollo de Software

Page 34: Desarrollo de Software

Des

arro

llo

Ev

olu

tiv

o• Problemas

– Poca visibilidad en el proceso

– Los sistemas están pobremente

especificados

– Se requieren habilidades especiales.

• Aplicabilidad

– Para sistemas interactivos pequeños o

medianos.

– Para partes de sistemas grandes (p.ej. la

interfaz de usuario).

– Para sistemas de corta vida.

Modelado de Procesos de Desarrollo de Software

Page 35: Desarrollo de Software

Pro

toti

pad

o• Prototipado exploratorio

– El objetivo es trabajar con clientes hasta

evolucionar a un sistema final, a partir de

una especificación inicial. Se debe

comenzar con unas especificaciones bien

entendidas.

• Prototipado de “throw-away”.

– El objetivo es entender los requerimientos

del sistema. Se puede comenzar con

especificaciones poco entendidas.

Modelado de Procesos de Desarrollo de Software

Page 36: Desarrollo de Software

Pro

ble

mas

y R

iesg

os

con

los

Model

os.

• Cascada.

– Alto riesgo en sistemas nuevos debido a problemas en las especificaciones y en el diseño.

– Bajo riesgo para desarrollos bien comprendidos utilizando tecnología conocida.

• Prototipado.

– Bajo riesgo para nuevas aplicaciones debido a que las especificaciones y el diseño se llevan a cabo paso a paso.

– Alto riesgo debido a falta de visibilidad

• Evolutivo.

– Alto riesgo debido a la necesidad de tecnología avanzada y habilidades del grupo desarrollador.

Modelado de Procesos de Desarrollo de Software

Page 37: Desarrollo de Software

Man

ejo d

e R

iesg

os

• La tarea principal del administrador

consiste en minimizar riesgos.

• El “riesgo” inherente en una actividad es

se mide en base a la incertidumbre que

presenta el resultado de esa actividad.

• Las actividades con alto riesgo causan

sobre-costes en cuanto a planeación y

costos

• El riesgo es proporcional al monto de la

calidad de la información disponible.

Cuanto menos información, mayor el

riesgo.

Modelado de Procesos de Desarrollo de Software

Page 38: Desarrollo de Software

Model

os

de

Pro

ceso

s

Híb

rido

s

• Los sistemas grandes están hechos

usualmente de varios subsistemas.

• No es necesario utilizar el mismo

modelo de proceso para todos los

subsistemas.

• El prototipado es recomendado cuando

existen especificaciones de alto riesgo.

• El modelo de cascada es utilizado en

desarrollos bien comprendidos.

Modelado de Procesos de Desarrollo de Software

Page 39: Desarrollo de Software

Model

o d

e P

roce

so d

e

Esp

iral

Modelado de Procesos de Desarrollo de Software

Page 40: Desarrollo de Software

Fas

es d

el M

od

elo

de

Esp

iral

• Planteamiento de Objetivos

– Se identifican los objetivos específicos para cada

fase del proyecto

• Identificación y reducción de riesgos.

– Los riesgos clave se identifican y analizan, y la

información sirve para minimizar los riesgos

• Desarrollo y Validación.

– Se elige un modelo apropiado para la

siguiente fase del desarrollo

• Planeación.

– Se revisa el proyecto y se trazan planes para la

siguiente ronda del espiral

Modelado de Procesos de Desarrollo de Software

Page 41: Desarrollo de Software

Pla

nti

lla

par

a u

na

ron

da

del

esp

iral

• Objetivos.

• Restricciones.

• Alternativas.

• Riesgos.

• Resolución de riesgos.

• Resultados.

• Planes.

• Garantías (commitments).

Modelado de Procesos de Desarrollo de Software

Page 42: Desarrollo de Software

Ven

taja

s del

Mo

del

o d

e

Esp

iral

• Centra su atención en la reutilización

de componentes y eliminación de

errores en información descubierta en

fases iniciales.

• Los objetivos de calidad son el primer

objetivo.

• Integra desarrollo con mantenimiento.

• Provee un marco de desarrollo de

hardware/software.

Modelado de Procesos de Desarrollo de Software

Page 43: Desarrollo de Software

Pro

ble

mas

co

n e

l M

od

elo

de

Esp

iral

• El desarrollo contractual especifica el

modelo del proceso y los resultados a

entregar por adelantado.

• Requiere de experiencia en la

identificación de riesgos.

• Requiere refinamiento para uso

generalizado.

Modelado de Procesos de Desarrollo de Software

Page 44: Desarrollo de Software

Que

model

o u

tili

zar

?• Para sistemas bien comprendidos

utiliza el Modelo de Cascada. La fase

de análisis de riesgos es relativamente

fácil.

• Con requerimientos estables y

sistemas de seguridad críticos, utiliza

modelos formales.

• Con especificaciones incompletas,

utiliza el modelo de prototipado.

• Pueden utilizarse modelos híbridos en

distintas partes del desarrollo.

Modelado de Procesos de Desarrollo de Software

Page 45: Desarrollo de Software

Vis

ibil

idad

de

Pro

ceso

s• Los sistemas de software son intangibles

por lo que los administradores necesitan

documentación para identificar el

progreso en el desarrollo.

• Esto puede causar problemas..•El tiempo planeado para entrega de resultados puede no

coincidir con el tiempo necesario para completar una

actividad.

•La necesidad de producir documentos restringe la iteración

entre procesos.

•.El tiempo para revisar y aprobar documentos es

significativo.

• El modelo de cascada es aún el modelo

basado en resultados mas utilizado.

Modelado de Procesos de Desarrollo de Software

Page 46: Desarrollo de Software

Docu

men

tos

del

Mo

del

o

de

Cas

cada

Actividad Documentos Producidos

Análisis de Requerimientos Documento de Requerimientos

Definición de Requerimientos Documento de Requerimientos.

Especificación del Sistema. Especificación Funcional, Plan de Pruebas de Aceptación.

Diseño Arquitectural Especificación de la Arquitectura, y Plan de Pruebas del Sistema

Diseño de Interfaces Especificación de la Interfaces y Plan de pruebas de Integración.

Diseño Detallado Especificación del diseño y Plan de prueba de Unidades.

Codificación Código de Programa

Prueba de Unidades Reporte de prueba de unidades

Prueba de Módulos Reporte de prueba de módulos

Prueba de Integración Reporte de prueba de integración y Manual de usuario final

Prueba del Sistema Reporte de prueba del sistema

Prueba de Aceptación Sistema final mas la documentación.Modelado de Procesos de Desarrollo

de Software

Page 47: Desarrollo de Software

Vis

ibil

idad

del

Mo

del

o

Modelo de Proceso Visibilidad del Proceso

Modelo de Cascada Buena visibilidad, cada actividad produce un documento o resultado

Desarrollo Evolutivo Visibilidad pobre, muy caro al producir docuementos en cada iteración.

Modelos Formales Buena visibilidad, en cada fase deben producirse documentos.

Desarrollo orientado a la reutilización

Visibilidad moderada. Importante contar con documentación de componentes reutilizables.

Modelo de Espiral Buena visibilidad, cada segmento y cada anillo del espiral debe producir un documento.

Modelado de Procesos de Desarrollo de Software

Page 48: Desarrollo de Software

Actividadesde Evaluación

• Construye un mapa conceptual sobre los conceptos tratados en esta presentaciónModo de entrega: correo electrónico

• Realiza un investigación sobre los ciclos de vida y las metodologías de Desarrollo que se mencionan en la presentación. Recuerda agregar tu cuestionario. Min. 5 Max. 10 PreguntasModo de entrega: impreso

Modelado de Procesos de Desarrollo de Software


Recommended