aboutsummaryrefslogtreecommitdiff
path: root/pds
diff options
context:
space:
mode:
authorJuan Marín Noguera <juan.marinn@um.es>2021-05-25 20:10:53 +0200
committerJuan Marín Noguera <juan.marinn@um.es>2021-05-25 20:10:53 +0200
commit4143cfa8576ef6eb66bbea038f7e05703acbab2d (patch)
tree9649c0c21ade36be0ca0af6c5bcbb62f12cbbd3e /pds
parent4103366f978a6eec781a73f1f1c459469c6079e1 (diff)
Terminados apuntes de PDS
Diffstat (limited to 'pds')
-rw-r--r--pds/n.lyx24
-rw-r--r--pds/n1.lyx159
-rw-r--r--pds/n3.lyx6
-rw-r--r--pds/n4.lyx172
-rw-r--r--pds/n5.lyx139
-rw-r--r--pds/n6.lyx88
-rw-r--r--pds/n8.lyx63
-rw-r--r--pds/n9.lyx750
8 files changed, 942 insertions, 459 deletions
diff --git a/pds/n.lyx b/pds/n.lyx
index 0808d9f..c5da033 100644
--- a/pds/n.lyx
+++ b/pds/n.lyx
@@ -287,7 +287,7 @@ filename "n4.lyx"
\end_layout
\begin_layout Chapter
-Modelado de diseño preliminar
+Modelado de diseño
\end_layout
\begin_layout Standard
@@ -301,13 +301,13 @@ filename "n5.lyx"
\end_layout
\begin_layout Chapter
-Modelado de diseño completo
+Diseño lógico
\end_layout
\begin_layout Standard
\begin_inset CommandInset include
LatexCommand input
-filename "n6.lyx"
+filename "n7.lyx"
\end_inset
@@ -315,13 +315,13 @@ filename "n6.lyx"
\end_layout
\begin_layout Chapter
-Diseño lógico
+Modelado de componentes
\end_layout
\begin_layout Standard
\begin_inset CommandInset include
LatexCommand input
-filename "n7.lyx"
+filename "n6.lyx"
\end_inset
@@ -342,5 +342,19 @@ filename "n8.lyx"
\end_layout
+\begin_layout Chapter
+Métodos de desarrollo
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n9.lyx"
+
+\end_inset
+
+
+\end_layout
+
\end_body
\end_document
diff --git a/pds/n1.lyx b/pds/n1.lyx
index ce9005e..9d481ac 100644
--- a/pds/n1.lyx
+++ b/pds/n1.lyx
@@ -331,44 +331,9 @@ El modelo permite una mayor expresividad y capacidad de comunicación que
\end_layout
\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-sremember{TDS}
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
Los modelos se expresan en un lenguaje, y a mediados de los 90 había muchos
- lenguajes de modelos de software orientado a objetos.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-eremember
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Algunos métodos que usan este tipo de modelos son:
+ lenguajes de modelado orientado a objetos.
+ Algunos métodos que usan este tipo de modelos son:
\end_layout
\begin_layout Enumerate
@@ -383,9 +348,11 @@ OMT
\series bold
\emph on
+\lang english
Booch Method
\series default
\emph default
+\lang spanish
, especialmente útil para sistemas concurrentes y de tiempo real, muy relacionad
o con el lenguaje Ada.
\end_layout
@@ -482,22 +449,6 @@ diagrama
\end_layout
\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-begin{samepage}
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
UML tiene 5 vistas, cada una con varios tipos de diagramas:
\end_layout
@@ -544,113 +495,13 @@ Vista de despliegue
\end_layout
\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-end{samepage}
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
Muchas empresas de software hacen poco o ningún modelado, pues este requiere
un proceso de desarrollo, personas formadas en las técnicas, tiempo y herramien
tas.
\end_layout
\begin_layout Section
-Métodos de desarrollo de software
-\end_layout
-
-\begin_layout Standard
-Un método consta de un proceso, notación, herramientas, procedimientos,
- etc.
- Algunos métodos son:
-\end_layout
-
-\begin_layout Enumerate
-
-\series bold
-Proceso Unificado
-\series default
- (
-\series bold
-\lang english
-UP
-\series default
-\lang spanish
-,
-\emph on
-\lang english
-Unified Process
-\emph default
-\lang spanish
-), un marco de proceso para UML.
-\end_layout
-
-\begin_layout Enumerate
-
-\series bold
-RUP
-\series default
- (
-\emph on
-\lang english
-Rational Unified Process
-\emph default
-\lang spanish
-), una instancia de
-\lang english
-UP
-\lang spanish
- con proceso detallado.
-\end_layout
-
-\begin_layout Enumerate
-
-\series bold
-Larman
-\series default
-, una instancia de
-\lang english
-UP
-\lang spanish
- con método simplificado.
-\end_layout
-
-\begin_layout Enumerate
-
-\series bold
-Métrica 3
-\series default
-, un método prescriptivo para UML y para descomposición funcional.
-\end_layout
-
-\begin_layout Enumerate
-
-\series bold
-Scrum
-\series default
-, un método ágil.
-\end_layout
-
-\begin_layout Enumerate
-
-\series bold
-Kanban
-\series default
-, un método
-\emph on
-lean
-\emph default
-.
+Fases del desarrollo
\end_layout
\begin_layout Standard
diff --git a/pds/n3.lyx b/pds/n3.lyx
index 1d212b5..77582fd 100644
--- a/pds/n3.lyx
+++ b/pds/n3.lyx
@@ -814,8 +814,10 @@ Si son importantes, podemos añadir restricciones en el dominio mediante
\begin_layout Itemize
Una etiqueta
\family sans
+\lang english
{ordered}
\family default
+\lang spanish
en una posición
\begin_inset Formula $i$
\end_inset
@@ -832,8 +834,10 @@ Una etiqueta
\begin_layout Itemize
Una flecha etiquetada con
\family sans
+\lang english
{xor}
\family default
+\lang spanish
de una asociación a otra que comparten una única clase en una única posición
cada una indica que las instancias de dicha clase se relacionan con una
o con otra, y no con ambas.
@@ -866,12 +870,14 @@ Si
, una etiqueta
\family sans
+\lang english
{subsets
\begin_inset Formula $A$
\end_inset
}
\family default
+\lang spanish
en
\begin_inset Formula $B$
\end_inset
diff --git a/pds/n4.lyx b/pds/n4.lyx
index 1f0bcee..8eb236f 100644
--- a/pds/n4.lyx
+++ b/pds/n4.lyx
@@ -80,178 +80,6 @@ algorithm2e
\begin_body
-\begin_layout Standard
-\begin_inset Note Note
-status open
-
-\begin_layout Plain Layout
-TODO Mover el proceso de Larman como tal al tema 7 y centrar este capítulo
- en el modelado y los diagramas.
-\end_layout
-
-\end_inset
-
-El
-\series bold
-proceso de Larman
-\series default
- es una versión iterativa y ágil del Proceso Unificado dirigida por casos
- de uso.
- Sus fases son:
-\end_layout
-
-\begin_layout Enumerate
-
-\series bold
-Inicio.
-
-\series default
- Dura una o dos semanas como mucho.
- Se definen los objetivos del producto, las características, las alternativas
- y los riesgos para hacer una estimación del coste y la viabilidad, y se
- crea un borrador de la visión del producto
-\begin_inset Note Note
-status open
-
-\begin_layout Plain Layout
-Todavía no se ha definido.
-\end_layout
-
-\end_inset
-
-.
- Se hacen los primeros talleres de requisitos, se escriben casos de uso
- en formato breve, se crea un prototipo desechable de la interfaz de usuario
- para validar los requisitos y se planifica la primera iteración del desarrollo.
-\end_layout
-
-\begin_layout Enumerate
-
-\series bold
-Modelado del negocio
-\series default
-
-\begin_inset Note Note
-status open
-
-\begin_layout Plain Layout
-Todavía no se ha definido.
-\end_layout
-
-\end_inset
-
- mediante diagramas de proceso
-\begin_inset Note Note
-status open
-
-\begin_layout Plain Layout
-Todavía no se ha definido.
-\end_layout
-
-\end_inset
-
- y otros medios.
- Se refina la identificación de objetivos de usuario y casos de uso y la
- especificación complementaria.
- No está en el proceso original.
-\end_layout
-
-\begin_layout Enumerate
-
-\series bold
-Desarrollo.
-
-\series default
- Se hacen iteraciones de entre 2 y 8 semanas en las que se describen y se
- implementan los casos de uso de mayor prioridad, establecida según el nivel
- de riesgo y la importancia para el negocio del caso de uso.
- Cada iteración termina con un ejecutable listo para entregar.
- El objetivo de llegar rápido a las pruebas y la validación para tener retroalim
-entación rápida.
-\end_layout
-
-\begin_deeper
-\begin_layout Enumerate
-
-\series bold
-Modelado de requisitos
-\series default
-, con modelos de caso de uso y de dominio conceptual.
-\end_layout
-
-\begin_layout Enumerate
-
-\series bold
-Diseño preliminar.
-
-\series default
- Se identifican y especifican las clases y colaboraciones para los objetivos
- del dominio.
- Se crean un diagrama de secuencia del sistema
-\begin_inset Note Note
-status open
-
-\begin_layout Plain Layout
-Todavía no se ha definido.
-\end_layout
-
-\end_inset
-
- para cada caso de uso; un contrato
-\begin_inset Note Note
-status open
-
-\begin_layout Plain Layout
-Todavía no se ha definido.
-\end_layout
-
-\end_inset
-
- de cada interacción de cada diagrama de secuencia, que normalmente se omite,
- y al menos una colaboración
-\begin_inset Note Note
-status open
-
-\begin_layout Plain Layout
-Todavía no se ha definido.
-\end_layout
-
-\end_inset
-
- por contrato, así como un diagrama de clases que se crea en tándem con
- las colaboraciones.
-\end_layout
-
-\begin_layout Enumerate
-
-\series bold
-Diseño completo.
-
-\series default
- Se resuelven los problemas de diseño relacionados con la arquitectura del
- sistema, la división y distribución en paquetes, la interfaz de usuario,
- la plataforma, el rendimiento, la base de datos, la red, las estructuras
- de datos y los patrones de diseño a usar, nuevas clases y colaboraciones,
- etc.
-\end_layout
-
-\begin_layout Enumerate
-
-\series bold
-Implementación y pruebas
-\series default
-, tanto unitarias como de integración.
-\end_layout
-
-\begin_layout Enumerate
-
-\series bold
-Validación
-\series default
- con clientes y usuarios.
-\end_layout
-
-\end_deeper
\begin_layout Section
Diagramas de actividades
\end_layout
diff --git a/pds/n5.lyx b/pds/n5.lyx
index c497771..9bf1912 100644
--- a/pds/n5.lyx
+++ b/pds/n5.lyx
@@ -114,33 +114,6 @@ Diagrama de secuencia del sistema (DSS)
\end_layout
\begin_layout Standard
-\begin_inset Note Note
-status open
-
-\begin_layout Plain Layout
-TODO Cada evento da lugar a una operación, que se puede describir mediante
- un
-\series bold
-contrato
-\series default
- especificado con una plantilla.
- Crear una
-\series bold
-colaboración
-\series default
- por operación y crear el
-\series bold
-modelo de clases del diseño
-\series default
- a partir del modelo del dominio conforme se definen las operaciones.
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
Es un diagrama de secuencia UML que muestra los eventos generados por un
actor durante un escenario de un caso de uso y las posibles comunicaciones
con sistemas externos.
@@ -161,17 +134,17 @@ Normalmente se hace un DSS para el escenario principal de un caso de uso
\begin_layout Standard
Cuando el caso de uso se inicia automáticamente, lo inicia un actor de tipo
- Sistema.
-
-\begin_inset Note Note
-status open
-
-\begin_layout Plain Layout
-TODO Resto del FAQ.
-\end_layout
+ Sistema, como en la figura
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:dss-system"
+plural "false"
+caps "false"
+noprefix "false"
\end_inset
+.
Los argumentos de los mensajes deben ser valores primitivos, no colecciones
(salvo cadenas de caracteres, consideradas primitivas) ni objetos del dominio.
Para referirse a objetos del dominio se usan identificadores.
@@ -200,6 +173,12 @@ status open
\begin_inset Caption Standard
\begin_layout Plain Layout
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:dss-system"
+
+\end_inset
+
DSS de una interacción iniciada automáticamente.
\end_layout
@@ -498,7 +477,7 @@ o
\begin_inset space ~
\end_inset
-casual Actividades distintas sin relaciones significativas entre ellas.]
+casual Actividades distintas sin relaciones significativas entre ellas.
\end_layout
\begin_layout Standard
@@ -728,13 +707,14 @@ Indirección
\begin_layout Standard
Cuando no sea deseable un acoplamiento directo entre dos clases, crear una
clase intermediaria que proporcione una interfaz más adecuada a cada parte.
-\begin_inset Foot
+\begin_inset ERT
status open
\begin_layout Plain Layout
-Teorema Fundamental de la Ingeniería de Software: Todo problema se puede
- solucionar con un nivel más de indirección, salvo el problema de demasiados
- niveles de indirección.
+
+
+\backslash
+footnotemark{}
\end_layout
\end_inset
@@ -797,6 +777,35 @@ eremember
\end_layout
\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+footnotetext{
+\end_layout
+
+\end_inset
+
+Teorema Fundamental de la Ingeniería de Software: Todo problema se puede
+ solucionar con un nivel más de indirección, salvo el problema de demasiados
+ niveles de indirección.
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
Algunos servicios aparecen en patrones de diseño, como pueden ser:
\end_layout
@@ -1230,8 +1239,22 @@ El modelo de clases del diseño es de especificación y se crea a partir del
de las clases del dominio para reducir el salto entre problema y solución,
y se añaden las clases y los métodos usados en las colaboraciones y los
atributos usados en los contratos.
- Puede haber conceptos en el modelo conceptual que no aparezcan en el de
+\end_layout
+
+\begin_layout Standard
+Puede haber conceptos en el modelo conceptual que no aparezcan en el de
diseño.
+ Por ejemplo, los actores de los casos de uso suelen aparecer en el modelo
+ conceptual, pero solo hay que añadirlos al dominio si incluyen información
+ relevante, no simplemente credenciales de inicio de sesión, que no aparecen
+ en el diagrama de especificación.
+ Hay que sospechar de las clases que solo contengan métodos y no atributos,
+ o al revés, salvo que sean el resultado de aplicar algún patrón de diseño
+ o
+\lang english
+GRASP
+\lang spanish
+.
\end_layout
\begin_layout Standard
@@ -1278,12 +1301,30 @@ propiedad
\family default
, como
\family sans
-{readOnly}
+\lang english
+{read
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+\family sans
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+Only}
\family default
+\lang spanish
o
\family sans
+\lang english
{addOnly}
\family default
+\lang spanish
.
Los atributos de clase van subrayados, y los calculados se almacenan.
\end_layout
@@ -1328,16 +1369,22 @@ propiedad
\family default
)*, y propiedades como
\family sans
+\lang english
{isQuery}
\family default
+\lang spanish
,
\family sans
+\lang english
{sequential}
\family default
+\lang spanish
o
\family sans
+\lang english
{concurrent}
\family default
+\lang spanish
.
\end_layout
@@ -1684,8 +1731,10 @@ Un estado se representa con un rectángulo redondeados con el nombre del
Acciones de entrada,
\family sans
\series bold
+\lang english
entry
\series default
+\lang spanish
/
\emph on
acción
@@ -1694,8 +1743,10 @@ acción
, y de salida,
\family sans
\series bold
+\lang english
exit
\series default
+\lang spanish
/
\emph on
acción
@@ -1722,8 +1773,10 @@ compuesto
Actividades, en segundo plano,
\family sans
\series bold
+\lang english
do
\series default
+\lang spanish
/
\emph on
acción
@@ -1740,9 +1793,11 @@ evento
\emph default
/
\series bold
+\lang english
defer
\family default
\series default
+\lang spanish
.
\end_layout
diff --git a/pds/n6.lyx b/pds/n6.lyx
index 809c57e..739cdf9 100644
--- a/pds/n6.lyx
+++ b/pds/n6.lyx
@@ -83,23 +83,6 @@ algorithm2e
\begin_body
-\begin_layout Standard
-Una vez hecho el diseño preliminar, refinamos iterativamente el modelo de
- clases del diseño y las colaboraciones considerando los requisitos no funcional
-es y las restricciones del entorno hasta obtener un diseño adecuado para
- pasar a la implementación.
-\end_layout
-
-\begin_layout Standard
-Se define la arquitectura del sistema; se concretan estructuras de datos
- y patrones de diseño, y se diseñan la interfaz de usuario, el manejo de
- la persistencia y la distribución.
-\end_layout
-
-\begin_layout Standard
-.
-\end_layout
-
\begin_layout Section
Arquitectura en capas
\end_layout
@@ -254,7 +237,7 @@ Los paquetes permiten agrupar elementos, normalmente del mismo tipo, para
\end_layout
\begin_layout Section
-Modelo de componentes
+Diagramas de componentes
\end_layout
\begin_layout Standard
@@ -462,7 +445,7 @@ user interaction
\end_layout
\begin_layout Section
-Diagrama de despliegue
+Diagramas de despliegue
\end_layout
\begin_layout Standard
@@ -629,72 +612,5 @@ noprefix "false"
.
\end_layout
-\begin_layout Section
-Más allá del diseño
-\end_layout
-
-\begin_layout Standard
-Tras el diseño, se hace la implementación y las actividades V&V (Verificación
- y Validación).
- En la
-\series bold
-verificación
-\series default
- o
-\series bold
-prueba
-\series default
- se comprueba si el software funciona bien, y en la
-\series bold
-validación
-\series default
- se comprueba con el usuario si el software que se está construyendo es
- el correcto.
-\end_layout
-
-\begin_layout Standard
-La programación
-\series bold
-
-\begin_inset Quotes cld
-\end_inset
-
-prueba primero
-\begin_inset Quotes crd
-\end_inset
-
-
-\series default
- consiste en escribir código de prueba antes de escribir la implementación,
- para luego escribir el código que satisface las pruebas.
- Tiene la ventaja de que las pruebas se escriben; el programador queda satisfech
-o y grita
-\begin_inset Quotes cld
-\end_inset
-
-¡He superado la prueba!
-\begin_inset Quotes crd
-\end_inset
-
-
-\begin_inset Foot
-status open
-
-\begin_layout Plain Layout
-Fuente: Apuntes de la asignatura.
- El grito de entusiasmo puede variar según el programador.
-\end_layout
-
-\end_inset
-
-; se verifica la corrección, y no hay miedo a los cambios.
-\end_layout
-
-\begin_layout Standard
-La validación la hace el usuario comprobando, para cada caso de uso, que
- el sistema muestra el comportamiento esperado, considerando el escenario
- principal, los excepcionales y los requisitos no funcionales.
-\end_layout
-
\end_body
\end_document
diff --git a/pds/n8.lyx b/pds/n8.lyx
index d5841eb..6760c41 100644
--- a/pds/n8.lyx
+++ b/pds/n8.lyx
@@ -646,5 +646,68 @@ micro-proceso
la arquitectura del sistema, que interesa al programador.
\end_layout
+\begin_layout Section
+Verificación y validación (V&V)
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+verificación
+\series default
+ o
+\series bold
+prueba
+\series default
+ consiste en comprobar si el software funciona bien.
+ La programación
+\series bold
+
+\begin_inset Quotes cld
+\end_inset
+
+prueba primero
+\begin_inset Quotes crd
+\end_inset
+
+
+\series default
+ consiste en escribir código de prueba antes de escribir la implementación,
+ para luego escribir el código que satisface las pruebas.
+ Tiene la ventaja de que las pruebas se escriben; el programador queda satisfech
+o y grita
+\begin_inset Quotes cld
+\end_inset
+
+¡He superado la prueba!
+\begin_inset Quotes crd
+\end_inset
+
+
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+Fuente: Apuntes de la asignatura.
+ El grito de entusiasmo puede variar según el programador.
+\end_layout
+
+\end_inset
+
+; se verifica la corrección, y no hay miedo a los cambios.
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+validación
+\series default
+ consiste en comprobar con el usuario si el software que se está construyendo
+ es el que este quiere.
+ La hace el usuario comprobando, para cada caso de uso, que el sistema muestra
+ el comportamiento esperado, considerando el escenario principal, los excepciona
+les y los requisitos no funcionales.
+\end_layout
+
\end_body
\end_document
diff --git a/pds/n9.lyx b/pds/n9.lyx
new file mode 100644
index 0000000..ee00327
--- /dev/null
+++ b/pds/n9.lyx
@@ -0,0 +1,750 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\begin_preamble
+\input{../defs}
+\end_preamble
+\use_default_options true
+\begin_modules
+algorithm2e
+\end_modules
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+Un
+\series bold
+método de desarrollo de software
+\series default
+ es un conjunto de procedimientos, técnicas, herramientas y soporte documental
+ para ayudar a los desarrolladores a producir nuevo software.
+ Está formado por un modelo de ciclo de vida con fases, etapas y actividades
+ en cada etapa; procedimientos y heurísticas (recomendaciones) sobre cómo
+ ejecutar las tareas; técnicas gráficas o textuales como casos de uso o
+ diagramas, y herramientas CASE a utilizar.
+\end_layout
+
+\begin_layout Standard
+Mientras un ciclo de vida indica qué hay que hacer, un método indica cómo
+ hacerlo, basándose en modelos gráficos y su uso para la especificación
+ y el diseño, y puede acomodar distintos ciclos de vida.
+\end_layout
+
+\begin_layout Standard
+Podemos describir un método indicando la notación utilizada en los modelos,
+ las reglas o restricciones aplicables a los modelos, las recomendaciones
+ que caracterizan buenas prácticas de diseño y las guías en el proceso,
+ descripciones de las actividades a seguir para desarrollar los modelos
+ del sistema y la organización de estas actividades.
+\end_layout
+
+\begin_layout Standard
+Un bueno método ayuda a conseguir sistemas de mayor calidad.
+ No hay un método universal o ideal, sino que estos son aplicables a distintas
+ áreas y están condicionados por el tamaño y la estructura de la organización
+ y el tipo de aplicaciones, y organizaciones distintas usarán distintos
+ métodos o, en todo caso, variaciones del mismo.
+\end_layout
+
+\begin_layout Section
+Tipos de métodos
+\end_layout
+
+\begin_layout Standard
+Según el tipo de sistema, de gestión o en tiempo real.
+ Según el nivel de formalidad, informal, semiformal o formal (con métodos
+ formales).
+\end_layout
+
+\begin_layout Standard
+Según el enfoque:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Estructurados:
+\series default
+ Anteriores a la orientación a objetos.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\series bold
+Orientados a procesos:
+\series default
+ Centrados en los procesos ejecutados.
+ Análisis estructurado, Análisis estructurado moderno y MÉTRICA.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Orientados a datos:
+\series default
+ se centran en las entradas y salidas.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\series bold
+Orientados a objetos.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Basados en componentes
+\series default
+, una evolución de los métodos orientados a objetos hacia sistemas abiertos
+ y distribuidos basados en servicios.
+\end_layout
+
+\begin_layout Standard
+Según la planificación:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Prescriptivos:
+\series default
+ Intentan planificar y predecir en detalle las actividades y la asignación
+ de recursos en un intervalo largo de tiempo, como todo el proyecto.
+ Suelen ser en cascada.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Adaptables:
+\series default
+ Para dominios no predecibles.
+ Aceptan el cambio.
+ Suelen ser iterativos.
+\end_layout
+
+\begin_layout Standard
+Según la carga de trabajo:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Pesados
+\series default
+,
+\series bold
+burocráticos
+\series default
+ o
+\series bold
+monolíticos:
+\series default
+ Lo habitual en los 80 y principios de los 90, a partir de experiencia en
+ desarrollo de sistemas grandes y críticos.
+ Son prescriptivos y rígidos y generan muchos artefactos.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Ligeros:
+\series default
+ Evitan la sobrecarga en planificación, diseño y documentación.
+\end_layout
+
+\begin_layout Section
+Métodos ágiles
+\end_layout
+
+\begin_layout Standard
+Métodos ligeros y adaptables, como XP (
+\emph on
+\lang english
+eXtreme Programming
+\emph default
+\lang spanish
+) y Scrum, surgidos a finales de los 90 para evitar la sobrecarga de trabajo
+ de los métodos pesados al hacer software de gestión de tamaño medio o pequeño.
+\end_layout
+
+\begin_layout Standard
+Son iterativos, con el cliente evaluando las iteraciones; asumen el cambio,
+ y buscan mantener la simplicidad en el software y en el proceso, y sacar
+ partido a las destrezas de los miembros del equipo de desarrollo.
+\end_layout
+
+\begin_layout Standard
+La documentación se reduce al mínimo y en vez de casos de uso se usan
+\series bold
+historias de usuario
+\series default
+, de la forma
+\begin_inset Quotes cld
+\end_inset
+
+como
+\emph on
+rol
+\emph default
+, quiero que el sistema
+\emph on
+haga una funcionalidad
+\emph default
+ para obtener
+\emph on
+un beneficio
+\emph default
+
+\begin_inset Quotes crd
+\end_inset
+
+, que se suelen complementar con pruebas de aceptación del usuario.
+\end_layout
+
+\begin_layout Standard
+Son útiles para software de gestión con requisitos que cambian rápidamente.
+ No lo son en desarrollo a gran escala con equipos de desarrollo en sitios
+ distintos, ni en sistemas críticos en lo que hace falta un análisis detallado
+ de los requisitos para comprender las implicaciones de seguridad informática
+ (
+\emph on
+\lang english
+security
+\emph default
+\lang spanish
+) y humana (
+\emph on
+\lang english
+safety
+\emph default
+\lang spanish
+).
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+Scrum
+\series default
+ es un marco para el desarrollo ágil que supone la existencia de caos.
+ Tiene 3 fases:
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Inicio.
+
+\series default
+ Se planifica una versión del software a construir con una estimación inicial
+ de tiempo y costo.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Fase iterativa
+\series default
+ en
+\series bold
+\emph on
+\lang english
+sprints
+\series default
+\emph default
+\lang spanish
+, iteraciones de paso fijo (unos 15 días) con objetivos establecidos al
+ inicio y durante el cual no se introducen cambios.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Cierre.
+
+\series default
+ Se preparan la versión del software a instalar, la documentación final
+ y los entornos.
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+desarrollo
+\emph on
+lean
+\series default
+\emph default
+ es aun más flexible que el ágil, y su principal método es
+\series bold
+Kanban
+\series default
+.
+ En este la estimación es opcional; las iteraciones son de tiempo fijo pero
+ con posibilidad de expandirlo si no se terminan las tareas y de introducir
+ nuevas tareas una vez empezada la iteración, y no es obligatorio terminar
+ una tarea en una iteración.
+\end_layout
+
+\begin_layout Section
+Proceso unificado
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+\lang english
+UP
+\series default
+\lang spanish
+,
+\emph on
+\lang english
+Unified Process
+\emph default
+\lang spanish
+, es un marco de método orientado a objetos basado en UML, con 4 fases:
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Inicio.
+
+\series default
+ Se define el alcance del proyecto.
+ Se hace análisis de negocio, considerando objetivos y características del
+ producto, alternativas y riesgos, para decidir la viabilidad y dar una
+ estimación imprecisa del coste.
+ Se crea una visión aproximada del producto.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Elaboración.
+
+\series default
+ Visión refinada e implementación iterativa del núcleo de la arquitectura
+ y resolución de los riesgos más elevados.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Construcción.
+
+\series default
+ Implementación iterativa de los requisitos que quedan, de menor riesgo.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Transición.
+
+\series default
+ Pruebas beta y despliegue.
+\end_layout
+
+\begin_layout Standard
+Las fases de inicio y fin son las más cortas, siendo la construcción la
+ más larga y la que requiere de más desarrolladores.
+ Cada fase es iterativa y cada iteración se divide en
+\series bold
+disciplinas
+\series default
+: modelado del negocio, requisitos, análisis y diseño, codificación, y prueba,
+ junto con administración del proyecto y gestión de configuración y cambio.
+\end_layout
+
+\begin_layout Standard
+En las primeras iteraciones se da la mayor parte del tiempo al modelado
+ del negocio y los requisitos, y en las últimas se dedica la mayor parte
+ al despliegue.
+\end_layout
+
+\begin_layout Standard
+Cada disciplina, del modelado de negocio al despliegue, produce modelos,
+ como de casos de uso de negocio, de objetos de negocio, de casos de uso,
+ de diseño, de implementación (el código fuente) y de prueba (el resultado
+ de los
+\emph on
+\lang english
+tests
+\emph default
+\lang spanish
+).
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+RUP
+\series default
+ (
+\emph on
+\lang english
+Rational Unified Process
+\emph default
+\lang spanish
+) es una instancia pesada de
+\lang english
+UP
+\lang spanish
+.
+\end_layout
+
+\begin_layout Section
+Método de Larman
+\end_layout
+
+\begin_layout Standard
+Es una instancia ágil de
+\lang english
+UP
+\lang spanish
+ dirigida por casos de uso.
+ Respecto a las fases:
+\end_layout
+
+\begin_layout Enumerate
+El inicio dura una o dos semanas como mucho.
+ Se hacen los primeros talleres de requisitos, se escriben casos de uso
+ en formato breve, se crea un prototipo desechable de interfaz de usuario
+ para validar los requisitos y se planifica la primera iteración del desarrollo.
+\end_layout
+
+\begin_layout Enumerate
+Aunque no es parte del método de Larman, se puede añadir tras el inicio
+ una fase de modelado de negocio, donde se usan diagramas de proceso y otros
+ medios y se refinan la identificación de objetivos de usuario y casos de
+ uso y la especificación complementaria.
+\end_layout
+
+\begin_layout Enumerate
+En la elaboración y la construcción, las iteraciones duran entre 2 y 8 semanas,
+ y en ellas se identifican, describen e implementan los casos de uso de
+ mayor prioridad según el nivel de riesgo y la importancia para el negocio.
+\end_layout
+
+\begin_layout Standard
+Las disciplinas son las siguientes y se hacen en orden en el desarrollo:
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Modelado de requisitos
+\series default
+, con modelos de caso de uso y de clases conceptuales.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Diseño preliminar.
+
+\series default
+ Se crea un DSS para cada caso de uso y, para cada operación de cada DSS,
+ un contrato si se considera importante y una colaboración.
+ Junto a las colaboraciones se crea un diagrama de clases de especificación.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Diseño completo.
+
+\series default
+ Se resuelven los problemas de diseño relacionados con la arquitectura del
+ sistema, la división y distribución en paquetes, la interfaz de usuario,
+ la plataforma, el rendimiento, la base de datos, la red, las estructuras
+ de datos y los patrones de diseño a usar, nuevas clases y colaboraciones,
+ etc.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Implementación y pruebas
+\series default
+, tanto unitarias como de integración.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Validación
+\series default
+ con clientes y usuarios.
+\end_layout
+
+\begin_layout Section
+Métrica 3
+\end_layout
+
+\begin_layout Standard
+MÉTRICA es una metodología de planificación, desarrollo y mantenimiento
+ de sistemas de información promovida por el Consejo Superior de Administración
+ Electrónica del Gobierno de España para su uso en las administraciones
+ públicas.
+\end_layout
+
+\begin_layout Standard
+Es muy prescriptiva, y establece una jerarquía formada, de arriba a abajo,
+ por la Administración Central del Estado, la Administración Autonómica,
+ la Administración Local y el resto de empresas e instituciones.
+\end_layout
+
+\begin_layout Standard
+Tiene versiones 1, 2, 2.1 y 3, con la 1 creada por la consultora ERITEL y
+ la 2.1 por la Universidad Carlos III.
+\end_layout
+
+\begin_layout Standard
+Métrica 3 incorpora los paradigmas orientado a objetos y cliente-servidor,
+ y se basa en UML y descomposición funcional.
+ Está influenciado por métodos de Reino Unido y Francia, y sus componentes
+ más usados son el Plan de General de Garantía de Calidad y la parte de
+ seguridad, MAGERIT.
+ Se estructura en:
+\end_layout
+
+\begin_layout Itemize
+Planificación de Sistemas de Información.
+\end_layout
+
+\begin_layout Itemize
+Desarrollo de Sistemas de Información.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+Estudio de Viabilidad del Sistema.
+\end_layout
+
+\begin_layout Itemize
+Análisis del Sistema de Información.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Actividades: Definición del sistema; Establecimiento de requisitos; Identificaci
+ón de subsistemas de análisis; para orientado a objetos, Análisis de casos
+ de uso o Análisis de clases; para estructurado, Elaboración del modelo
+ de datos o Elaboración del modelo de procesos; etc.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+Diseño del Sistema de Información.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Actividades: Definición de la arquitectura del sistema; Diseño de la Arquitectur
+a de Soporte; para orientado a objetos, Diseño de casos de uso reales o
+ Diseño de clases; etc.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+Construcción del Sistema de Información.
+\end_layout
+
+\begin_layout Itemize
+Implantación y Aceptación del Sistema.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+Mantenimiento de Sistemas de Información.
+\end_layout
+
+\begin_layout Section
+Herramientas CASE
+\end_layout
+
+\begin_layout Standard
+Asisten y automatizan partes del proceso de desarrollo de software a lo
+ largo de su ciclo de vida, incluyendo gestión, desarrollo y mantenimiento.
+ Suelen estar formadas por un repositorio, un meta-modelo y un generador
+ de informes.
+\end_layout
+
+\begin_layout Standard
+Según el grado de integración, tenemos:
+\end_layout
+
+\begin_layout Description
+
+\emph on
+\lang english
+Tool
+\begin_inset space ~
+\end_inset
+
+kits
+\emph default
+\lang spanish
+ Conjunto de programas que automatizan algún proceso, con poca integración.
+\end_layout
+
+\begin_layout Description
+
+\emph on
+\lang english
+Workbenches
+\emph default
+\lang spanish
+ Conjunto de programas que comparten repositorio e interfaz de usuario y
+ automatizan más de una fase del ciclo de vida.
+\end_layout
+
+\begin_layout Description
+Entornos
+\begin_inset space ~
+\end_inset
+
+IPSE
+\emph on
+\lang english
+Integrated Project Support Environment
+\emph default
+\lang spanish
+, que cubren todo el ciclo de vida y tienen integración alta.
+\end_layout
+
+\begin_layout Standard
+Según los procesos que abortan, tenemos:
+\end_layout
+
+\begin_layout Description
+CASE
+\begin_inset space ~
+\end_inset
+
+frontales Análisis y diseño, como el software privativo Astah
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+El equivalente libre, mucho mejor, es PlantUML.
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Description
+CASE
+\begin_inset space ~
+\end_inset
+
+dorsales Implementación, pruebas y mantenimiento, como
+\lang english
+Maven
+\lang spanish
+ o
+\lang english
+Git
+\lang spanish
+.
+\end_layout
+
+\begin_layout Description
+ICASE
+\series bold
+\emph on
+\lang english
+Integrated CASE
+\series default
+\emph default
+\lang spanish
+, contemplan todo el ciclo de desarrollo, como el software privativo
+\lang english
+Enterprise Architect
+\lang spanish
+.
+\end_layout
+
+\end_body
+\end_document