Professional Documents
Culture Documents
- Camila Gimnez
Resumen: Ingenieria de Software.............................................................................................3
1- Qu es la ingeniera de software?..................................................................................3
2- Modelado del proceso.....................................................................................................3
3- Planificacin y gerencia de proyecto.............................................................................10
3.1- WBS(Work Breakdown Structure ).........................................................................10
3.1.1- Diagramas WBS...............................................................................................10
4- Estimaciones..................................................................................................................11
4.1- Mtricas de Tamao................................................................................................11
4.1.1- Locs (Lines of Code)........................................................................................11
4.1.2- Punto de Funcion (Capitulo 18.2 de Software Estimation).............................11
4.2- Tecnicas de Estimacion...........................................................................................15
Estimaciones basadas en Proxies...............................................................................15
Juicio de Expertos......................................................................................................16
Estimacin por Analoga............................................................................................16
Mtodos Algortmicos (COCOMO)...........................................................................16
Mtodos basados en Aprendizaje Automatizado........................................................17
5- Requisitos......................................................................................................................17
5.1- Proceso de Requisitos.............................................................................................17
5.2- Definiciones............................................................................................................17
5.3- Obtencion de requerimientos (1er paso de las actividades)....................................18
5.4- Tcnicas para la obtencin de Requisitos...............................................................18
1- Entrevista Individual/Grupal:.................................................................................19
2- Encuesta/Cuestionario............................................................................................19
3- Observacion/Participacion.....................................................................................19
4- Tormenta de ideas:.................................................................................................19
5- Casos de Uso:.........................................................................................................20
6- Prototipos:..............................................................................................................20
Anlisis de requerimientos (2er paso de las actividades)...............................................20
5.5- Redes de Petri (ppts 2)............................................................................................20
5.6- Casos de Uso (ppts 3)..............................................................................................20
Definiciones................................................................................................................21
Forma de encontrar los Casos de uso:........................................................................21
Relaciones entre CU Include...................................................................................22
Relaciones entre CU Extend....................................................................................23
Relaciones entre CU Generalizacion.......................................................................24
5.7- UML (ppts 4)...........................................................................................................25
6- Diseo de la Interfaz de Usuario (IU)...........................................................................28
7- Diseo............................................................................................................................28
8- Diseo del sistema (Arquitectura de Software).............................................................29
8.1 Estilos de Software...................................................................................................29
Qu es la ingeniera de software?
Def: 1) Aplicacin de un enfoque sistemtico, disciplinado y cuantificable al desarrollo,
operacin y mantenimiento de software, esto es, la aplicacin de a ingeniera de
software.
2) (IEEE 90) El estudio de enfoques como en 1)
2-
Modelo en Cascada:
Ventajas:
Introdujo el orden en el modelado de procesos de software.
Desventajas:
Error en etapas tardias del proyecto en cuanto a requerimientos es muy caro.
No se utiliza en la vida real.
Variacion: Modelo en cascada con prototipos
Ventajas:
En las estapas tempranas del proyecto se hacen prototipos de forma de validar los
requerimientos y diseo del proyecto.
Errores en etapas tempranas no cuestan tan caros.
Desventajas:
Sigue siendo secuencial, lo cual no es bueno para el paralelismo de tareas.
Modelo en V
Ventajas:
Se saca ventaja de que cada etapa del diseo tiene una contraparte en pruebas. Por lo tanto
se inicializa el testing en las primeras etapas de diseo pudiendo verificar y validar al
comienzo reduciendo el impacto de errores en diseo.
Desventajas:
No contempla la posibilidad de retornar a etapas inmediatamente anteriores??
Modelo de Prototipacion
Especificacion Operacional
Ventajas:
Desarrollo en Fases
*) Con liberaciones parciales
Ventajas:
Se le presenta al cliente liberaciones parciales del producto o de partes de el.
Existe retroalimentacin de los usuarios.
Desventajas:
Gasto de tiempo separar el producto en partes que sean utilizables, no siempre es posible.
Variaciones: con evaluaciones parciales
El producto no es liberado para la produccin, solo se les da a los usuarios en varias etapas
evaluaciones para verificar y validar.
Modelo Incremental Iterativo
Ventajas:
Permite al desarrollador sacar ventaja de lo que se ha aprendido a lo largo del desarrollo
anterior, incrementando, versiones entregables del sistema.
Desventajas:
No sirve para proyectos grandes, retroalimentacin muy lenta.
Modelo Espiral
Ventajas:
Introduce el factor de Riesgo.
Reduce riesgos del proyecto
Incorpora objetivos de calidad
Integra el desarrollo con el mantenimiento.
Desventajas:
Planificar un proyecto con esta metodologa es a menudo imposible, debido a la
incertidumbre en el nmero de iteraciones que sern necesarias.
Genera mucho tiempo en el desarrollo del sistema
7
Lai
(no hay nada!)
Lleva los siguientes documentos:
Tablas de estado muestran informacin referida a cun completo est un artefacto en
un instante dado
Tablas de estado muestran cmo puede operar el proceso sobre los artefactos
Diagramas de transicin de estado muestran cmo se relacionan unos estados con
otros (mquina de estados compuestos)
Formularios para definir cada tipo de elemento (en los que se especifican las
relaciones)
3-
10
3- Gantt
Su objetivo es mostrar el tiempo de dedicacin previsto para diferentes tareas o actividades a
lo largo de un tiempo total determinado (tiempo del proyecto).
4-
Estimaciones
Una estimacion es una prediccion, en el ambito del software nos referimos a estimaciones en
cuanto al tiempo y/o costo de un proyecto.
En el software ocurre un fenomeno llamado:
Deseconoma de escala. El Esfuerzo crece exponencialmente con tamao, en proyectos de
diferente tamao no se puede multiplicar por la misma productividad.
4.1- Mtricas de Tamao
4.1.1- Locs (Lines of Code)
Mide el costo del proyecto en lneas de cdigo.
Ventajas:
-Fcil de medir
Desventajas:
-depende del lenguaje
-depende del personal
-el programa debe estar terminado para poder contar.
-diseo, requerimiento y testing no generan locs
4.1.2- Punto de Funcion (Capitulo 18.2 de Software Estimation)
Utilizado para estimar el tamao de un programa en etapas temprano del proyecto.
El punto de Funcion se calcula de la siguiente manera:
PF =
PFSA
Factor de Ajuste
11
Internal Logical Files (ILF): Archivos, data o informacin de control que estn
completamente controlados por el programa. (ej. Una tabla de la base de datos).
External Interface Files (EIF): Archivos controlados por otros programas con el que
nuestro programa en cuestin debe interactuar.
OBS: Un EIF para una aplicacin tiene que ser un ILF para alguna otra.
External Inputs (EI): El usuario final agrega, cambia o borra datos del programa.
Modifica al menos un ILF as como podra alterar el estado del sistema.
External Queries (EQ): Es una consulta que realiza el programa que se hace visible para
el usuario, los datos que cruzan la frontera NO son derivados. Se muestran tal cual est.
NO altera el estado del sistema ni de ningun ILF.
12
Rojo: SI!,
Amarillo: En una columna uno al menos tiene que ser SI!
Azul: NO!
P: posible
EO,EQ,EI son Procesos elementales, esto quiere decir es una minima unidad de actividad
(debe dejar al sistema en un estado consistente)que tiene significado para el usuario.
Frontera de la Aplicacin
Define lo que es externo a la aplicacin
Interfaz entre lo interno y el mundo exterior
Se puede concebir como una membrana que atraviesan los datos procesados por las transacciones
(EI,EO,EQ)
Incide en la cuenta total de PF (Al partir una aplicacin se incrementan los PF totales porque los ILF
se cuentan 1 vez como tales, por lo menos, y tambin se cuentan como EIF )
Se determina a partir de la visin de usuario basada en reas funcionales separadas y NO en
consideraciones tcnicas
13
1 a 4 DET
5 a 15 DET
16 o ms DET
0 a 1 FTR
Baja
Baja
Media
2 FTRs
Baja
Media
Alta
3 o ms FTRs
Media
Alta
Alta
Para EO/EQ
1 a 5 DET
6 a 19 DET
20 o ms DET
0 a 1 FTR
Baja
Baja
Media
2 a 3 FTRs
Baja
Media
Alta
4 o ms FTRs
Media
Alta
Alta
14
Una aplicacin puede usar un mismo ILF o EIF en mltiples procesos, pero
el archivo se cuenta una sola vez y no se puede contar como ILF y EIF a la
misma vez.
Si un grupo de datos no fue contado como ILF ni EIF, contar sus DET para el
ILF o EIF que incluye al grupo
No asumir que un archivo fsico, tabla o clase de objetos corresponde a un
archivo lgico desde el punto de vista del usuario
No asumir que todo archivo fsico debe ser contado o incluido como parte de
un ILF o EIF. Pe. Archivos temporales o de trabajo.
Asignar a cada uno un tipo (ILF, EIF)
Identificar la cantidad de RET y DET
Det idem a transacciones
Ret se cuenta 1 por cada archivo que es percibido por el usuario
Asignar a cada uno un valor de complejidad (Alta, Media, Baja) en funcin de la
cantidad de RET y DET
15
16
5-
Requisitos
5.2- Definiciones
Requisitos:
17
Requerimientos No Funcionales:
Restricciones de los servicios o funciones ofrecidos por el sistema, Restringen las elecciones
para construir una solucin. Pueden tambin restringir el proceso que se utiliza para
desarrollar.
Tipos de Requerimientos No Funcionales:
Requerimientos del Producto:
Especifican el comportamiento del producto. Ej. Rendimiento en la rapidez de ejecucin,
portabilidad, usabilidad.
Requerimientos Organizacionales:
Derivan de polticas y procedimientos existentes en la organizacin del cliente y en la
del desarrollador. Ej. Estndares, lenguajes de programacin, requerimientos de
entregas.
Requerimientos externos
Incluye todos los requerimientos que se derivan de factores externos al sistema y de su
proceso de desarrollo. Ej. requerimientos legislativos, interoperabilidad.
Ejemplos
Las consultas deben resolverse en menos de 3 segundos
El lenguaje de programacin debe ser java
18
19
5- Casos de Uso:
Es una buena tcnica para entender y describir requisitos, especifican que es lo que el
sistema tiene que hacer, bueno para requisitos funcionales!
Usar cuando:
Si el sistema est orientado a la funcionalidad, con varios tipos de usuarios
Cuando la implementacin se va a hacer OO y con UML
No usar cuando:
Sistemas sin usuarios y con pocas interfaces
Sistemas dominados primariamente por requisitos no funcionales y restricciones de
diseo.
Pros: Desarrolladores y clientes trabajan juntos,
Generan buenas oportunidades para mostrar interfaces al usuario
6- Prototipos:
Implementacin parcial, permite a los desarrolladores y usuarios, entender mejor los
requisitos y as acotar riesgos
Dos posibilidades:
Prototipo desechable: Se realiza el prototipo de forma de probar que se puede hacer, pero no
se lo sigue utilizando en el proyecto.
Prototipo evolutivo: Es implementado sobre la arquitectura del producto final, el sistema
final se obtiene de evolucionar el prototipo.
20
Mirar cada uno de los actores del sistema y preguntarse que es lo que buscan cuando usan el
sistema.
21
EJEMPLO
Flujo principal:
1. Cliente inserta una tarjeta bancaria en el lector del CA.
2. El CA lee el cdigo de la tarjeta y verifica que es correcto
3. El CA pide el cdigo de PIN de 4 dgitos
4. EL Cliente ingresa el PIN
5. El CA enva cdigo de Tarjeta y PIN al SC
6. El SC verifica que el PIN sea correcto y contesta: OK
7. El CA despliega las distintas alternativas disponibles: retiro, depsito, consulta
8. El Cliente elige Retiro
9. El CA pide cuenta y monto
10. El Cliente los ingresa
11. CA enva cdigo de Tarjeta, PIN, cuenta y monto al SC
12. El SC contesta: OK
13. El CA dispensa el dinero
14. El CA devuelve la tarjeta
15. El CA imprime el recibo
Flujos Alternativos :
2A. La tarjeta no es vlida
1. El CA devuelve la tarjeta con el mensaje tarjeta no vlida
2. Fin CU
6A. PIN invlido y menos de 3 intentos
El Cliente puede realizar tres intentos para ingresar el PIN vlido. Sino, el CA retiene la tarjeta.
1. El SC contesta indicando PIN invlido
2. El CA muestra el mensaje PIN incorrecto y sigue en punto 3
6B. PIN invlido y 3 intentos
El CA debe retener la tarjeta
1. El SC contesta indicando PIN invlido
2. El CA muestra el mensaje Se le retiene la tarjeta
3. Fin CU
9A. El CA no tiene dinero
1.La opcin Retiro en esta situacin no es una alternativa posible, y el CA despliega la advertencia:
Sin dinero.
2. Fin CU
11A. Monto insuficiente para el cajero
El monto indicado por el cliente no puede obtenerse a partir de los billetes de que dispone el CA
1 El CA despliega el mensaje No se cuenta con ese monto en este cajero
2 Vuelve a 9.
12A. No hay suficiente saldo en la cuenta.
1. CA despliega mensaje Su saldo no permite extraer ese monto
2. El CA devuelve la tarjeta
3. Fin CU
12B. No hay contacto con el Servicio de Cajeros (SC)
1. CA despliega el mensaje sin conexin a la red de cajeros
2 . El CA devuelve la tarjeta
3. Fin CU
12C. Enlace con el computador central se cae durante la transaccin
Hay que asegurar que el SC considera slo los retiros efectivamente realizados
14A. El dinero no es retirado de la bandeja.
1. Si despus de YY segundos el dinero est todava en la bandeja, el CA lo recupera y lo deja en el
depsito de dinero usado
1. Sigue en 14
14B. La tarjeta se tranca al intentar devolverla.
1. CA trata de devolverla durante xx segundos.
2. Si en ese tiempo no puede devolverla, CA avisa a mantenimiento
22
En el Caso de Uso:
Poner en el momento necesario: Se incluye el Caso de Uso a Incluir
En el Ejemplo del caso de uso Retiro:
Flujo principal:
1. Incluye el caso de uso: Identificar Cliente
2. El CA despliega las distintas alternativas disponibles: retiro, depsito, consulta
3. El Cliente elige Retiro
4. El CA pide cuenta y monto
5. El Cliente los ingresa
6. CA enva cdigo de Tarjeta, PIN, cuenta y monto al SC
7. El SC contesta: OK
8. El CA dispensa el dinero
9. El CA devuelve la tarjeta
10. El CA imprime el recibo
Obs: El caso de uso Identificar Cliente lo tendra que definir (el flujo principal son los primeros 6 pasos del
1er Flujo principal anterior, y el alternativo, son 2 A, 6 A, 6 B del 1er FA anterior)
23
En el Caso de Uso:
En el caso de uso principal marcar un punto de extensin dndole un nombre.
En el caso de uso de extensin en el flujo principal al comienzo poner: Extensin de Caso
de uso Principal en el punto de extensin.
En el caso del cajero:
Flujo Principal:
1. Incluye
..
8. El Cliente pide dispensar el dinero (Este paso se agreg)
24
CU
Hijo
CU
Hijo
Elementos:
25
Ejemplo
26
Validacin de Requisitos
Proceso por el cual se determina si los requisitos relevados son consistentes con las necesidades del
cliente.
Su objetivo es ver si se est construyendo lo que quiere el cliente, es decir, asegurar que se est
construyendo el sistema correcto
Formas (o Tcnicas) de Validacin:
Manuales
Lectura por parte del cliente.
Entrevistas.
Listas de comprobacin.
Automatizadas
Ejecucin de Modelos para verificar funciones y relaciones.
Construccin de Prototipos.
Simulaciones.
Verificacin de Requisitos
Objetivo: Asegurar que se est construyendo el sistema correctamente.
Formas de Verificacin:
revisiones formales (en grupo)
revisiones por pares
listas de comprobacin
modelos
Pruebas Matemticas: Si se us un lenguaje formal, pe. Z.
27
6-
Aspectos Importantes
Dos aspectos son clave para disear la interfaz de usuario:
a. Forma de interaccin del usuario con el sistema
b. Forma de presentar la informacin al usuario
Presentacin de la Informacin
Una buena gua de diseo es mantener separado el software de presentacin de la propia
informacin
Mensajes de Error
El diseo de los mensajes de error es crtico. Mensajes de error mal diseados pueden
significar que un usuario rechace el sistema
Los mensajes deben ser educados, concisos, consistentes y constructivos
Prototipado de IU
Prototipado que involucra al usuario es la nica forma prctica de disear y desarrollar las
interfaces de usuario grficas
Diseo
7-
28
Conceptos de Diseo
8-
29
El estilo y estructura particular elegido para una aplicacin dependen fuertemente de los
requerimientos no funcionales
Patrones de Software
Se agrupan en tres tipos:
Estilos arquitectnicos: Soluciones de organizacin a nivel del sistema
Patrones de diseo: Soluciones a problemas detallados de diseo de software
Idioms: Soluciones tiles para problemas especficos en algn lenguaje de
programacin
Pizarrn (Blackboard)
Se avisa al consumidor de nuevos datos de inters
Cliente-Servidor
Consta de un servidor que se encarga de atender los pedidos de un conjunto de clientes, as como
una red para que los clientes se comuniquen con el servidor.
30
Cliente fino:
El procesamiento de la informacin y la gestin de los datos ocurre en el servidor. El cliente slo
es responsable de ejecutar el software de presentacin.
Procesamiento pesado del lado del servidor. Mucho peso para la red.
Cliente grueso.
El servidor es responsable slo de la gestin de los datos. El cliente ejecuta el procesamiento de
la aplicacin (la lgica de la aplicacin) y la presentacin
Si cambia el software re instalar en todos los clientes
En 2 niveles hay que distribuir las tres capas (presentacin, lgica y datos) en dos sistemas de
computadoras
Pueden surgir problemas de escalabilidad y rendimiento con el cliente fino, o de gestin del
sistema si se usa cliente grueso
Alternativa:
Cliente Servidor en tres niveles:
La presentacin, la lgica y los datos se separan como procesos lgicos diferentes distribuidos
en distintas mquinas.
Es ms escalable que la de 2 niveles
Reduce el trfico en la red en comparacin con cliente fino
La capa de procesamiento de la aplicacin es fcilmente actualizada ya que est localizada
centralmente
Capas Jerrquicas
El sistema se organiza en capas.
Cada una provee un conjunto de servicios a las capas superiores y requiere servicios de las
inferiores.
Modelo estricto: una capa slo utiliza servicios de la inmediata inferior
Modelo relajado: se pueden saltar capas.
Ventajas: Facilita el mantenimiento, la portabilidad, la reutilizacin, etc.
Desventajas: No siempre es fcil distinguir las capas.
Descomposicin Orientada a Objetos
Se descompone el sistema en un conjunto de objetos que se comunican.
Ventajas: Fcil de comprender, modificar y reutilizar.
Desventajas: Problemas si se cambian las interfaces (cambia el comportamiento de los dems
objetos).
Tubos y Filtros (Descomposicin orientada a flujos de funciones)
Se descompone el sistema en mdulos funcionales.
Las transformaciones funcionales procesan sus entradas y producen salidas.
Los datos fluyen de una funcin a otra y se transforman a medida que se mueven a travs de la
secuencia de funciones.
Las transformaciones son representadas como procesos separados.
Los filtros son reutilizables y agregar nuevas transformaciones es sencillo.
Es complicado para sistemas interactivos. Es ineficiente si los filtros repiten chequeos.
Control Centralizado
31
Objetos Distribuidos
Se compone de objetos que proveen servicios a otros objetos y usan servicios de
otros objetosNo hay distincin entre clientes y servidores.
Pueden ser distribuidos entre distintas computadoras en una red y se comunican a
travs de middleware
Es ms complejo de disear que cliente-servidor
Peer-To-Peer
Sistemas descentralizados donde las computaciones pueden ser realizadas en
cualquier nodo de la red
En principio no hay distincin entre clientes y servidores
El sistema se disea para usar el poder de almacenamiento y procesamiento de
mltiples computadoras en una red
Los protocolos que permiten la comunicacin entre nodos estn embebidos en la
propia aplicacin
Cada nodo debe correr una copia de la aplicacin
32