Sunteți pe pagina 1din 48

Maestra en Administracin de

Tecnologas de la Informacin

Ingeniera de
software
M. C. Ana Luisa Ballinas
Hernndez

1/02/2014

Agenda del da
Presentacin
Expectativas.
Presentacin
Acuerdos.

Exposicin

de los participantes.
del programa.

terica y prctica del

profesor
Prcticas de los alumnos

Ingeniera de Software Orientada a Objetos

1/02/2014

Presentacin
Ana

Luisa Ballinas Hernndez

Maestra

y Licenciatura en Ciencias de
la Computacin (Facultad de Ciencias de
la Computacin, BUAP, Mxico)

Contacto:

anage3@hotmail.com
Blog del curso: isuvp.blogspot.mx
Ingeniera de Software Orientada a Objetos

1/02/2014

Contenido del curso


Objetivo general:
Aplicar la metodologa de anlisis y
diseo de software en el marco del
paradigma de la orientacin a objetos,
elementos de ingeniera inversa, modelo
cliente
servidor,
reutilizacin
de
software y desarrollo basado en
componentes para definir las posibles
soluciones a problemas concretos de las
organizaciones.
Ingeniera de Software Orientada a Objetos

1/02/2014

Evaluacin
Prcticas
Proyectos
Tareas

Total:

40%
50%
10%
100%

Ingeniera de Software Orientada a Objetos

1/02/2014

Bibliografa

KIMMEL, Paul. Manual de UML. McGraw Hill


Interamericana, Mxico, 2006.
MARTIN, Rober C. UML para programadores
Java. Prentice Hall, Espaa, 2004.
PRESSMAN, Roger. Ingeniera del software. (5
Ed) McGraw Hill, Espaa, 2002.
SCHACH, Stephen R. Anlisis y diseo
orientado a objetos: con UML y el proceso
unificado. McGraw Hill Interamericana, Mxico,
2005.
SOMMERVILLE, Ian. Ingeniera del software. (8
Ed.) Pearson/Addison-Wesley,
Espaa,
2005.
Ingeniera
de Software
Orientada a Objetos

1/02/2014

Forma de trabajo
El

profesor expondr aspectos tericos y


prcticos de la materia.

El

profesor dejar lecturas en casa y debates


en el aula

El

alumno desarrollar un proyecto de


ingeniera de software siguiendo la
metodologa adecuada que sea de relevancia
y novedoso
Ingeniera de Software Orientada a Objetos

1/02/2014

Presentacin del programa


1. Conceptos bsicos.
1.
2.
3.
4.
5.
6.
7.

El software como producto y mercanca.


El proceso de desarrollo de software.
Proyectos de software.
Mtricas de proyectos.
Planificacin y mantenimiento.
Sistemas de software.
Modelado, anlisis y diseo.

Ingeniera de Software Orientada a Objetos

1/02/2014

2. Anlisis y diseo
orientado a objetos

1. Conceptos de OO.
2. Identificacin de elementos en un modelo OO.
3. Anlisis OO.
4. Anlisis de dominio.
5. Componentes genricos.
6. El proceso de AOO.
7. Diseo OO.
8. El proceso de diseo del sistema OO.
9. Patrones de diseo.
10.Programacin OO.
11.Pruebas AOO y DOO.
12.Estrategias de prueba.
13.Diseo de casos de prueba.
14.Mtodos de prueba de clases e interclases.
15.Mtricas OO.
16.Desarrollo de un sistema OO.
Ingeniera de Software Orientada a Objetos

10

1/02/2014

3. Desarrollo basado en
componentes ISBC.
1. Conceptos bsicos.
2. Ingeniera del dominio.
3. Desarrollo basado en componentes.
4. Clasificacin y recuperacin de componentes.
5. Costos de la ISBC.
6. Desarrollo de un sistema basado en componentes.
4. Modelo cliente/servidor (C/S).
1. El modelo CS y sistemas distribuidos.
2. Arquitectura en capas.
3. Protocolos.
4. Comercio electrnico.
5. Diseo de sistemas distribuidos.
6. Ingeniera de seguridad.
7. Componentes para sistemas CS.
8. Diseo de sistemas CS.
9. Pruebas en sistemas CS.
10.Desarrollo de un sistema CS.
Ingeniera de Software Orientada a Objetos

11

1/02/2014

5. Ingeniera sobre el
Web
1. Atributos de aplicaciones basadas en
Web.
2. El proceso de ingeniera Web (IWeb).
3. Formulacin y anlisis de sistemas
basados en Web.
4. Diseo de aplicaciones basadas en Web.
5. Gestin de proyectos y sistemas Web.
6. Desarrollo de un sistema Web.

Ingeniera de Software Orientada a Objetos

12

1/02/2014

Reingeniera
1.
2.
3.
4.
5.

Reingeniera de procesos.
Reingeniera de software.
Ingeniera inversa.
Reestructuracin.
Ingeniera directa.

Ingeniera de Software Orientada a Objetos

13

1/02/2014

Preguntas generadoras
Por qu es tan difcil desarrollar
software?
Qu problema tengo que resolver?
Qu hace el sistema?
Cmo lo hace el sistema?
El sistema hace lo que tiene que
hacer?

Ingeniera de Software Orientada a Objetos

14

Definicin de software.
Conjunto

de informacin:

capaz de producir en las maquinas el


comportamiento deseado, de forma eficaz
y eficiente,
que los usuarios puedan utilizar el
sistema de forma eficiente.
Al que los desarrolladores puedan dar
mantenimiento de forma eficaz y
eficiente.
El producto software (EOG tema2)

Caractersticas del Software

Es inmaterial e invisible

El comprador lo puede evaluar cuando ya ha


sido construido.

El Software se desarrolla, no se fabrica.

Es complejo.

Es excesivamente maleable.

El software como producto y


mercanca
El valor del software: de elemento aadido a principal elemento de coste

El desarrollo del software:

La crisis del software: problemas que aparecen en el desarrollo del software al


desarrollar, mantener y atender la demanda de nuevas aplicaciones:
1.
2.
3.
4.

Por
Por
Por
Por

qu
qu
qu
qu

se tarda tanto? (y casi siempre ms de lo previsto)


la productividad es tan baja?
cuesta tanto el software?
siempre quedan errores sin localizar?

17

1/02/2014

Software vs Sistema
Conjunto de programas y
procedimientos necesarios
para hacer posible la
realizacin de una tarea
especfica, en contraste a los
componentes fsicos del
sistema.

Un sistema de informacin es
un conjunto de elementos
que interactan entre s con
el fin de apoyar las
actividades de una empresa o
negocio.

Ingeniera de Software Orientada a Objetos

18

Clasificacin segn la
utilizacin del software:
De

Gestin.
Produccin y control de procesos.
Robtica.
De ingeniera y Cientfico.
Ofimtico.
de Formacin y divulgacin.
Domtico.
Ocio y Juegos.

El producto software (EOG tema2)

19

La importancia del Software.


Nuestra

sociedad depende en gran medida de


la informtica.

Ejemplos de sistemas son:


el

sistema para el control de semforos de una


ciudad,
medios de transporte areo,
los bancos,
los sistemas de produccin (fabricas),
hospitales, etc..
El producto software (EOG tema2)

20

RETO: Adems aun queda


mucho por hacer.
Empresas,

de todo tipo, plantean


nuevos problemas a ser resueltos.

Problemas inabordables hace unos aos


por el coste de las computadoras,

La ciencia sigue evolucionando, con lo


que problemas mas sofisticados pueden
ser abordados
El producto software (EOG tema2)

21

Porque es difcil desarrollar Software?


Lo

cierto es que muchos proyectos de


desarrollo de software fracasan

Ejemplo:

Una estadstica realizada sobre 8 proyectos de


Software Estadounidenses.
Caractersticas del Software.
Aplicaciones del Software.

El producto software (EOG tema2)

Estadstica realizada sobre 8 proyectos


de Software Estadounidenses.

El producto software (EOG tema2)

22

23

Curva de fallos del Hardware.


Estropeado

Indice de fallos

Defectos fabricacin

Obsolescencia

Tiempo
El producto software (EOG tema2)

24

Curva ideal de fallos del


Software.
Indice de fallos

Defectos fabricacin

Obsolescencia

Mismo nivel hasta obsoleto

Tiempo
El producto software (EOG tema2)

25

Curva real de fallos del


Software.
Defectos fabricacin

Cambio Cambio

Indice de fallos

Cambio

a
v
r
Cu l Obsolescencia
rea
Curva ideal
Tiempo
El producto software (EOG tema2)

La ingeniera del software es la


aplicacin de un enfoque sistemtico,
disciplinado y cuantificable para el
desarrollo, de
operacin
y mantenimiento
Ingeniera
software
del software.

Cmo se construye una casa?

Construida eficientemente y en un
tiempo razonable por un equipo de
trabajo.
Requiere:
Modelado
Proceso bien definido
Lo mismo para construir
Herramientas sofisticadas
software

28

Requisitos
de usuario

1/02/2014

Proceso de
desarrollo
software
de software
Ingeniera de Software Orientada a Objetos

Modelo de la ingeniera de
software
Ingeniera
Ingeniera del
del
software
software

Desarrollo
Desarrollo de
de
software
software

Gestin
Gestin de
de
proyectos
proyectos

Mtricas
Mtricas del
del
software
software

Mantenimient
Mantenimient
o
o de
de software
software

Anlisis
Anlisis

Planificacin
Planificacin

Fiabilidad
Fiabilidad

Correccin
Correccin de
de
errores
errores

Diseo
Diseo

Organizacin
Organizacin

Usabilidad
Usabilidad

Modificaciones
Modificaciones

Codificacin
Codificacin

Reclutamiento
Reclutamiento

Flexibilidad
Flexibilidad

Pruebas
Pruebas

Direccin
Direccin

Mantenibilidad
Mantenibilidad

Control
Control

Reusabilidad
Reusabilidad

Modelos del ciclo de vida del


software
Etapas

generales del desarrollo de software:

Modelo en cascada
Es puramente secuencial.

Modelo en V

La parte izquierda de la v representa la


descomposicin de los requisitos y la creacin de las
especificaciones del sistema. El lado derecho de la v
representa la integracin de partes y su verificacin.
V significa Validacin y Verificacin.

Modelo iterativo

Consiste en la iteracin de varios ciclos de vida en


cascada.

Modelo en espiral

El proceso empieza en la posicin central. Desde all


se mueve en el sentido de las agujas del reloj.

Modelo ciclo de vida de


prototipos
La

iteracin ocurre cuando el prototipo


se pone a punto para satisfacer las
necesidades del cliente, permitiendo al
mismo tiempo que el desarrollador
comprenda mejor lo que se necesita
hacer.

36

1/02/2014

Actividad 1.
Recoleccin de datos
Actividad:
Elabora

un cuestionario para hacer una


entrevista con un cliente.
Revisar el PDF de planeacin de
proyecto

Ingeniera de Software Orientada a Objetos

37

1/02/2014

Ver video sobre


metodologas giles

Ingeniera de Software Orientada a Objetos

38

1/02/2014

Metodologas XP

Ingeniera de Software Orientada a Objetos

39

1/02/2014

Scrum

Ingeniera de Software Orientada a Objetos

Planificacin de un proyecto de
software
Hacer

estimaciones
considerando el mejor y
peor caso.

La

planeacin efectiva
depende de:

La planeacin detallada de
su avance,
La anticipacin de
problemas
Las soluciones anticipadas.

Estimacin del proyecto


Esfuerzo

humano
Recursos materiales
Duracin
Costos

Diagrama de Gantt

Analiza la siguiente presentacin sobre la planeacin de


proyectos de software
http://prezi.com/ubzodpdy5yth/?utm_campaign=share&utm_m
edium=copy

Sitio oficial: www.smartsheet.com

SmartSheet

Manual de Smartsheet:
https://www.youtube.com/watch?v=JyWvYvNGgNI#t=136

Anlisis de caso: Hotel

El dueo de un hotel le pide a usted desarrollar un programa para consultar sobre


las habitaciones disponibles y reservar habitaciones de su hotel.
El hotel posee tres tipos de habitaciones: simple, doble y matrimonial, y dos tipos
de clientes: habituales y espordicos. Una reservacin almacena datos del
cliente, de la habitacin reservada, la fecha de comienzo y el nmero de das que
ser ocupada la habitacin.
El recepcionista del hotel debe poder hacer la siguientes operaciones:
Obtener un listado de las habitaciones disponible de acuerdo a su tipo
Preguntar por el precio de una habitacin de acuerdo a su tipo
Preguntar por el descuento ofrecido a los clientes habituales
Preguntar por el precio total para un cliente dado, especificando su numero de ID,
tipo de habitacin y nmero de noches.
Reservar una habitacin especificando el nmero de la habitacin, id y nombre
del cliente.
Eliminar una reserva especificando el nmero de la habitacin
El administrador puede usar el programa para:
Cambiar el precio de una habitacin de acuerdo a su tipo
Cambiar el valor del descuento ofrecido a los clientes habituales
Calcular las ganancias que tendrn en un mes especificado (considere que todos
los meses tienen treinta das).
El hotel posee informacin sobre cuales clientes son habituales. Esta estructura
puede manejarla con un diccionario, cuya clave sea el nmero de ID y como
significado tenga los datos personales del cliente.
El diseo a desarrollar debe facilitar la extensibilidad de nuevos tipos de
habitacin o clientes y a su vez permitir agregar nuevas consultas.

Actividad 2: Actividad individual


Realiza la planeacin del proyecto de caso
anterior (el hotel) en SmartSheet.
Elije la metodologa gil que mejor se adapte al
problema en cuestin.
Define la lista de tareas a realizar, los recursos
a utilizar y calcula el tiempo total del proyecto.
Incluye las tareas de la tabla de la diapositiva
28 y detallarlas ms.
Adems debe incluir el diagrama de Gantt y la
estimacin del tiempo del proyecto.

Mtricas de proyectos

Aseguramiento y control de
calidad

Modelos de fiabilidad

Modelos y evaluacin de
ejecucin

Modelos y medidas de
productividad

Tipos de mtricas
MTRICAS DEL
SOFTWARE.

Estn relacionadas con el desarrollo del software como


funcionalidad, complejidad y eficiencia.

MTRICAS
TCNICAS:

Se centran en las caractersticas de software por


ejemplo: la complejidad lgica, el grado de modularidad.

Tipos de mtricas

MTRICAS DE
CALIDAD:

Proporcionan una indicacin de cmo se ajusta el software


a los requisitos implcitos y explcitos del cliente.

MTRICAS DE
PRODUCTIVIDAD.

Se centran en el rendimiento del proceso de la ingeniera


del software.

MTRICAS
ORIENTADAS A LA
PERSONA.

Son las medidas que voy a hacer del personal que va


desarrollar el sistema.

MTRICAS
ORIENTADAS AL
TAMAO.

Sirve para saber en que tiempo voy a terminar el


software y cuantas personas voy a necesitar.

Tarea
Analiza el siguiente video acerca de las mtricas del
software y contesta el siguiente cuestionario.
1.
2.
3.
4.

Explica qu son las mtricas de software


Menciona y describe 3 factores importantes a
considerarse para evaluar un software de calidad
En qu consiste el modelo Mc Call?
De la tabla de calidad-precio lista 2 factores que sean
costosos y 2 que no lo sean en el aseguramiento de la
calidad del software

Subir cuestionario contestado a Drive.

S-ar putea să vă placă și