Está en la página 1de 42

INGENIERA DE

SOFTWARE

1 Ingeniera de Software Desarrollo de Software


REFERENCIA BIBLIOGRAFICA
PRESSMAN, Roger. Ingeniera de Software. 6ta Edicin.
005.1 P93 Mxico D.F.: McGraw-Hill, 2010. 777p. ISBN:
9786071503145
005.133 JOYANES, Luis. Programacin en C ++. Madrid.: McGraw-
J88 Hill Interamericana, 2006. 847p. ISBN: 844814645X
JOYANES, Luis. Programacin en C, C ++, Java y UML.
005.133
Mxico D.F.: McGraw-Hill, 2010. 930p. ISBN:
J99
9789701069493

2 Ingeniera de Software Ingeniera de Sistemas


Introduccin ...

3 Ingeniera de Software Desarrollo de Software


Ingeniera
Conjunto de conocimientos y tcnicas
cientficas

Software
Conjunto de instrucciones que permite al
Hardware desempear trabajo til.

4 Ingeniera de Software Ingeniera de Sistemas


Qu es Ingeniera de Software?

Es una disciplina o rea de la informtica o


ciencia de la computacin, que ofrece
conocimientos, tcnicas y mtodos para
desarrollar y mantener software de calidad que
resuelva problemas de todo tipo.

5 Ingeniera de Software Ingeniera de Sistemas


Qu es Software de Calidad?
Es la aptitud de un producto o servicio para
satisfacer la necesidades del usuario.

Funcionalidad
Fiabilidad
Usabilidad
Eficiencia
Mantenibilidad
Portabilidad

6 Ingeniera de Software Ingeniera de Sistemas


Calidad de Producto
ISO 9126 Caractersticas

7 Ingeniera de Software Ingeniera de Sistemas


Capas de la Ingeniera de Software

La Ing.Software es una tecnologa multicapa


Enfoque de Calidad
Proceso
Mtodos
Herramientas

8 Ingeniera de Software Ingeniera de Sistemas


Capas de la Ingeniera de Software

PROCESOS
Es la unin que mantiene juntas las capas de
tecnologa y que permite un desarrollo racional y
oportuno de la ingeniera de software.
Asegurando un Producto Excelente

9 Ingeniera de Software Ingeniera de Sistemas


Capas de la Ingeniera de Software
METODOS
Indican como construir tcnicamente el software
Abarcan una gran gama de tareas que incluyen anlisis de
requisitos, diseo, construccin de programas, pruebas y
mantenimiento.

HERRAMIENTAS
Uso de tecnologas para asistir el desarrollo del software y
asegurar el cumplimiento de los objetivos del software
Proporcionan un enfoque automtico / semiautomtico
para el proceso y para las metodologas.

10 Ingeniera de Software Ingeniera de Sistemas


El estado de desarrollo de software

La mayora de los proyectos de desarrollo de software fallan


Qu significa fallar?
No cumplir los cronogramas
No cumplir el presupuesto
No satisfacer la funcionalidad requerida
Demasiados defectos una vez en produccin
Demasiado frgil a los cambios
...

11 Ingeniera de Software Ingeniera de Sistemas


Qu tipo de Problemas Surgen?

Retrasos en los proyectos.


Falta de calidad.
Incumplimiento con la funcionalidad acordada.
Desarrolladores innovadores.
Exceso de requerimientos y funcionalidad.
Falta de planificacin.
Motivacin dbil, Falta de participacin.
No existe gestin de riesgos.

12 Ingeniera de Software Ingeniera de Sistemas


ALLSOFT, S.A.. de C.V., 2002
La gestin tradicional en la ing. de software

13 Ingeniera de Software Ingeniera de Sistemas


Planificar y Evaluar Proyectos ...

Podr cumplir con los plazos?


Estar dentro de lo presupuestado?
El cliente quedar satisfecho?

Las Metodologas pueden ser la ayuda que


necesitamos, si podemos usarlas correctamente !!

14 Ingeniera de Software Ingeniera de Sistemas


Metodologas ...

15 Ingeniera de Software Desarrollo de Software


Qu es una Metodologa ...

Las metodologas imponen un


proceso disciplinado sobre el
desarrollo de software con el fin
de hacerlo ms predecible y
eficiente.

16 Ingeniera de Software Ingeniera de Sistemas


Metodologas ...

Metodologa Monumental
Existen hace mucho tiempo, no han sido exitosas porque
son muy burcratas, se han orientado al documento ms
que a los resultados.

17 Ingeniera de Software Ingeniera de Sistemas


Metodologas ...

18 Ingeniera de Software Ingeniera de Sistemas


Clasificacin de las Metologas segn el
Modelo de Proceso
Modelos Convencionales o Tradicionales
Cascada
Incremental
Prototipado Evolutivo
Espiral

Modelos de Desarrollo AGILES

19 Ingeniera de Software Ingeniera de Sistemas


Modelo lineal o Cascada

El modelo lineal presenta una estructura secuencial (de ah el


nombre de Modelo en cascada)
Formada por seis fases o etapas:
Definicin de Requerimientos
Anlisis y Diseo
Implementacin
Prueba
Mantenimiento
El desarrollo de las fases, se produce de manera secuencial.
El Modelo en cascada no permite retroceder, por lo que se
hace estrictamente necesario que al final de cada fase el
analista de sistemas verifique y valide todo el trabajo
realizado.

20 Ingeniera de Software Ingeniera de Sistemas


Modelo de Cascada (grfica)

Definicin de
Requerimientos

Anlisis y Diseo
y del Sistema

Implementacin y
Prueba de unidades

Integracin y Prueba
del Sistema

Operacin y
Mantenimiento

21 Ingeniera de Software Ingeniera de Sistemas


Modelo incremental

El modelo incremental es una evolucin del modelo de


cascada; viene a suplir el problema de no poder retroceder en
las fases de desarrollo del software.
Comienza con el anlisis de los requisitos, tras el cual se
prepara un primer diseo.
Este modelo ofrece la posibilidad de comenzar un diseo,
arquitectura, estructura, etc del software, que de no convencer
al cliente (o al propio programador) es rechazado y se
comienza con una segunda iteracin (o un segundo diseo), sin
necesidad de realizar un nuevo anlisis de requisitos.
Pueden realizarse tantas iteraciones como sean necesarias.

22 Ingeniera de Software Ingeniera de Sistemas


Modelo incremental

Actividades
Concurrentes

Versin
Anlisis y Diseo Inicial

Anlisis de Versiones
Desarrollo
Requerimientos Intermedias

Versin
Validacin Final

23 Ingeniera de Software Ingeniera de Sistemas


Modelo de construccin de prototipos
Este modelo no secuencial, basado en la construccin de simulaciones o
modelos ejecutables de aplicaciones ms extensos
Persigue un objetivo principal: la participacin directa del cliente en la
construccin del software requerido.
Las fases son similares a las del modelo en cascada.
El diseo rpido del prototipo se mostrar al cliente para que evale el
trabajo realizado.
El prototipo es una versin reducida del programa completo. Tras
recoger los requisitos tanto del cliente como del sistema, se comienza
con el diseo rpido del prototipo;
El diseo completo obedece al previo diseo de pequeos prototipos
especficos para funciones individuales. Ms tarde, estos diseos sern
unidos en uno slo.
Despus, se procede a la construccin del mismo.

24 Ingeniera de Software Ingeniera de Sistemas


Modelo de construccin de prototipos

En Ingeniera de software la
construccin de prototipos
pertenece a los modelos de
desarrollo evolutivo, El
prototipo debe ser construido
en poco tiempo, usando los
programas adecuados y no se
debe utilizar mucho dinero
pues a partir de que este sea
aprobado es que el
desarrollador puede iniciar el
verdadero desarrollo del
software.

25 Ingeniera de Software Ingeniera de Sistemas


Modelo espiral

Este modelo, tambin no secuencial, es algo ms complejo que


los anteriores, aunque incluye un elemento muy til e
importante en el desarrollo del software: anlisis de riesgos.
El modelo en espiral concreta cuatro fases:
Definicin de Objetivos
Evaluacin y reduccin de riesgos
Desarrollo y Validacin
Planificacin
Si sta ltima fase es afirmativa, el modelo contina con la
estructura del Ciclo de vida Clsico. Si el cliente no est
satisfecho con el resultado, se cubre otra banda de la espiral y
se vuelve a la primera fase (de planificacin).

26 Ingeniera de Software Ingeniera de Sistemas


Modelo de Proceso de Espiral

Anlisis de riesgos
Definicin de objetivos
Anlisis de
Riesgos
Anlisis de
Riesgos
Anlisis de
Riesgos Prototipo
Prototipo Operacional
Anlisis Prototipo 3
de Proto 2
REVISIN Riesgostipo 3

Plan de requerimientos Simulaciones, modelos y benchmarks


Concepto de
Plan del ciclo de vida Operacin
Requeri
mientos de Analisis Diseo
SW Producto Detallado
Plan de Validacin de
Codificacin
Desarrollo Requerimientos
Prueba de
Plan de Integracin Diseo Unidades
Prueba de
y Prueba
Prueba de Integracin
Planificacin Aceptacin Desarrollo y Pruebas
Servicio

27 Ingeniera de Software Ingeniera de Sistemas


Metodologas ...

Metodologa gil

Son la justa medida entre ningn proceso y demasiado


proceso, proporcionando simplemente suficiente
proceso para que el esfuerzo valga la pena !!!

28 Ingeniera de Software Ingeniera de Sistemas


Modelos Tradicionales vs Agiles
Las Metodologas Tradicionales se centran especialmente el control
del proceso, mediante un rigorosa definicin de roles, actividades,
artefactos y herramientas y notaciones para el modelado y
documentacin detallada. Muy efectivas y necesarias para
proyectos grandes.
Las Metodologas Agiles dan mayor prioridad al individuo, a la
colaboracin con el cliente y al desarrollo incremental del software
con interacciones muy cortas.
Metodologa gil Metodologa Tradicional
Preparados para el cambio durante el proyecto Cierta resistencia al cambio
Pocos artefactos Ms artefactos
Pocos roles Ms roles
No existe un contrato tradicional o al menos es Existe un contrato prefijado
bastante flexible
El cliente es parte del equipo de desarrollo (adems El cliente interacta con el equipo de desarrollo
in-situ) mediante reuniones
Grupos pequeos (< 10 integrantes) y trabajando en Grupos grandes
el mismo sitio
29 Menos nfasis
Ingeniera en la arquitectura
de Software Ingeniera de Sistemas La arquitectura es esencial
Costo de los Cambio en la Costruccin de SW
A medida que avanza el tiempo, el costo es exponencial en el
caso de la construccin mediante una metodologa tradicional a
diferencia de la metodologa tradicional.

30 Ingeniera de Software Ingeniera de Sistemas


Principios de la Metologa Agil
Satisfacer al cliente a travs de tempranos y continuos entregables
Abrazar el cambio, ya que los requisitos cambian todo el tiempo
Entregar con frecuencia software que funcione, de dos semanas a un par de
meses
Trabajar juntos diariamente en el proyecto tanto las personas del negocio
como los desarrolladores.
El mtodo mas eficiente y eficaz para transmitir informacin a los
integrantes de un equipo de desarrollo, es conversacin cara a cara
La medida principal de avance es el software que funciona
Construir proyectos alrededor de individuos motivados
Asumir simplicidad
Promover el desarrollo sostenible

31 Ingeniera de Software Ingeniera de Sistemas


Cuando un mtodo es gil?

El desarrollo de software es

Incremental
liberaciones pequeas y ciclos rpidos.
Cooperativo
clientes y desarrolladores trabajando juntos.
Simple y Directo
el mtodo es fcil de aprender y modificar.
Adaptativo
es posible realizar cambios de ltimo momento.

32 Ingeniera de Software Ingeniera de Sistemas


Reflexin
Highsmith & Cockburn 2001

Lo que es nuevo en los procesos giles no son las


prcticas que usan, sino que reconozcan a las personas
como primeros implicados en el xito de un proyecto,
adems de un intenso foco en la efectividad y la
manejabilidad. Esto genera una nueva combinacin de
valores y principios que definen una visin gil del
mundo.

33 Ingeniera de Software Ingeniera de Sistemas


Las giles ms conocidas ...

XP (Programacin Extrema)
La familia Cristal de Cockburn
Cdigo Abierto
ASD (Desarrollo de Software Adaptable)
SCRUM
FFD (Desarrollo Manejado por Rasgos)
DSDM (Mtodo de desarrollo de sistema dinmico)
RUP (Rational Unified Process)

34 Ingeniera de Software Ingeniera de Sistemas


Programacin Extrema (XP)
Creado por Kent Beck
Metodologa gil
Diseada para entornos dinmicos
Pensada para equipos pequeos (hasta 10 programadores)
Orientada fuertemente hacia la codificacin
nfasis en la comunicacin informal, verbal

Basado en cinco valores


1. Comunicacin Eficaz: Colaboracin estrecha pero informal (verbal) entre los
clientes y los desarrolladores
2. Simplicidad: XP restringe a los desarrolladores para que diseen solo para las
necesidades inmediatas.
3. Retroalimentacin: XP usa las pruebas unitarias como tctica principal de pruebas
4. Coraje y Valenta: Permite a los desarrolladores que se sientan cmodos con
reconstruir su cdigo cuando sea necesario.

35 Ingeniera de Software Ingeniera de Sistemas


Proceso de la Programacin Extrema

36 Ingeniera de Software Ingeniera de Sistemas


SCRUM
SCRUM es un termino de Rugby, es la agrupacin de los
miembros del equipo. De esta manera el equipo trata de
recorrer la distancia hacia la meta como una unidad, pasndose
la pelota entre ellos.
Concebido por Jeff Sutherland y su equipo de desarrollo a
principios de la dcada de 1990.

37 Ingeniera de Software Ingeniera de Sistemas


Que es Scrum?
SCRUM es una metodologa gil de gestin de proyectos cuyo objetivo
primordial es elevar al mximo la productividad de un equipo.
Reduce al mximo la burocracia y actividades no orientadas a producir
software que funcione y produce resultados en periodos muy breves de
tiempo (cada 30 das), por medio de iteraciones o Sprints.
Ideal para proyectos con un rpido cambio de requerimientos.

Ciclo de Vida ?
Todo el trabajo es realizado en Sprints (30 das)
Durante el Sprint se realizan reuniones que constituyen la inspeccin
emprica y las practicas de adaptacin de Scrum.

38 Ingeniera de Software Ingeniera de Sistemas


Mensaje Final ...

39 Ingeniera de Software Desarrollo de Software


Mensaje Final ...

Las metodologas nos dan la posibilidad de


hacer mejor las cosas y generar valor.

El adoptar metodologas en una organizacin


no es un proceso fcil y requiere de ayuda
externa.
Hay prcticas que son aplicables a cualquier tipo de
proyecto que uno quiera emprender.

Para romper paradigmas hay que tener la mente abierta.

40 Ingeniera de Software Ingeniera de Sistemas


Preguntas ...

41 Ingeniera de Software Desarrollo de Software


Gracias ...

42 Ingeniera de Software Desarrollo de Software

También podría gustarte