diff options
| author | Juan Marín Noguera <juan.marinn@um.es> | 2021-05-25 20:10:53 +0200 |
|---|---|---|
| committer | Juan Marín Noguera <juan.marinn@um.es> | 2021-05-25 20:10:53 +0200 |
| commit | 4143cfa8576ef6eb66bbea038f7e05703acbab2d (patch) | |
| tree | 9649c0c21ade36be0ca0af6c5bcbb62f12cbbd3e /pds | |
| parent | 4103366f978a6eec781a73f1f1c459469c6079e1 (diff) | |
Terminados apuntes de PDS
Diffstat (limited to 'pds')
| -rw-r--r-- | pds/n.lyx | 24 | ||||
| -rw-r--r-- | pds/n1.lyx | 159 | ||||
| -rw-r--r-- | pds/n3.lyx | 6 | ||||
| -rw-r--r-- | pds/n4.lyx | 172 | ||||
| -rw-r--r-- | pds/n5.lyx | 139 | ||||
| -rw-r--r-- | pds/n6.lyx | 88 | ||||
| -rw-r--r-- | pds/n8.lyx | 63 | ||||
| -rw-r--r-- | pds/n9.lyx | 750 |
8 files changed, 942 insertions, 459 deletions
@@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 |
