aboutsummaryrefslogtreecommitdiff
path: root/pds
diff options
context:
space:
mode:
authorJuan Marín Noguera <juan.marinn@um.es>2021-04-13 14:02:51 +0200
committerJuan Marín Noguera <juan.marinn@um.es>2021-04-13 14:02:51 +0200
commit7f2bf7332c52cd00b0ee998d57b003e5d3df4d76 (patch)
treef12ef26de737885735f9a04e153dbc2f69e3666b /pds
parent3fe38888583e5ea5eca06cfa707ad9ecc8ad5cd0 (diff)
PDS-UML
Diffstat (limited to 'pds')
-rw-r--r--pds/n.lyx161
-rw-r--r--pds/n1.lyx752
2 files changed, 913 insertions, 0 deletions
diff --git a/pds/n.lyx b/pds/n.lyx
new file mode 100644
index 0000000..9516576
--- /dev/null
+++ b/pds/n.lyx
@@ -0,0 +1,161 @@
+#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}
+\usepackage{enumitem}
+\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 10
+\spacing single
+\use_hyperref false
+\papersize a5paper
+\use_geometry true
+\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
+\leftmargin 0.2cm
+\topmargin 0.7cm
+\rightmargin 0.2cm
+\bottommargin 0.7cm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style swiss
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle empty
+\listings_params "basicstyle={\ttfamily}"
+\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 Title
+Procesos de Desarrollo de Software
+\end_layout
+
+\begin_layout Date
+\begin_inset Note Note
+status open
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+def
+\backslash
+cryear{2021}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "../license.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Bibliografía:
+\end_layout
+
+\begin_layout Itemize
+Universidad de Murcia.
+ Apuntes de Procesos de Desarrollo de Software.
+\end_layout
+
+\begin_layout Chapter
+Introducción
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n1.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/pds/n1.lyx b/pds/n1.lyx
new file mode 100644
index 0000000..2cfeca8
--- /dev/null
+++ b/pds/n1.lyx
@@ -0,0 +1,752 @@
+#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
+\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
+El
+\series bold
+software
+\series default
+ esta formado por instrucciones para la máquina, estructuras de datos, bases
+ de datos, documentos, entrenamiento, soporte al consumidor e instalación.
+ Al ser un elemento lógico, no físico, es más difícil de medir, validar
+ y verificar que el hardware, y aunque no se estropea, su calidad suele
+ ir deteriorándose por los cambios.
+\end_layout
+
+\begin_layout Section
+Calidad del software
+\end_layout
+
+\begin_layout Standard
+Sommerville define los siguientes factores de calidad del software:
+\end_layout
+
+\begin_layout Itemize
+Facilidad de mantenimiento: Legibilidad.
+\end_layout
+
+\begin_layout Itemize
+Confiabilidad: Fiabilidad (que ofrezca los mismos resultados en las mismas
+ condiciones), seguridad y protección.
+ Se distingue entre seguridad informática (
+\emph on
+\lang english
+security
+\emph default
+\lang spanish
+); seguridad humana o protección (
+\emph on
+\lang english
+safety
+\emph default
+\lang spanish
+) y privacidad.
+\end_layout
+
+\begin_layout Itemize
+Eficiencia.
+\end_layout
+
+\begin_layout Itemize
+Facilidad de uso.
+\end_layout
+
+\begin_layout Standard
+También queremos que el software sea correcto (se ajuste a las especificaciones
+ dadas por el usuario), no erróneo, robusto (tolerante a fallos), portable,
+ adaptable o extensible y reutilizable.
+\end_layout
+
+\begin_layout Standard
+Con el avance del hardware, cada vez se pueden hacer aplicaciones más complejas
+ y con frecuencia el software es la parte más compleja de un sistema, dando
+ lugar a problemas para estimar el tiempo, coste y esfuerzo para el desarrollo
+ y para asegurar la calidad.
+ Hay tanto
+\series bold
+complejidad esencial
+\series default
+, la complejidad de tratar con muchos conceptos a la vez, y
+\series bold
+complejidad accidental
+\series default
+, derivada de aspectos como la notación o la organización del proyecto software.
+\end_layout
+
+\begin_layout Standard
+Como el software no es físico, es más difícil de probar, y como es maleable,
+ es más fácil dejar fallos y resolverlos después que hacer un análisis exhaustiv
+o de corrección.
+ Además hay problemas de comunicación con los clientes y, tradicionalmente,
+ se dedica poco tiempo al análisis y el diseño.
+ Los métodos tradicionales de gestión de proyectos no funcionan demasiado
+ bien en el software.
+ No hay demasiados datos previos de guía ni estándares ampliamente usados,
+ y la base formal no se suele usar.
+ Todo esto hace que el tiempo y el coste del desarrollo sean elevados, el
+ software entregado contenga errores y constatar el progreso en el desarrollo
+ sea difícil.
+\end_layout
+
+\begin_layout Standard
+No hay una única solución para todo, pero pueden ayudar la adquisición de
+ componentes en vez de su construcción desde cero, el refinamiento de requisitos
+, el prototipado rápido y el desarrollo incremental, así como tener buenos
+ diseñadores.
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+ingeniería del software
+\series default
+ es una parte de la ingeniería de sistemas, que Boehm define como la aplicación
+ práctica y sistemática de conocimiento científico a la producción de programas
+ correctos a tiempo y dentro de las estimación de presupuestos, así como
+ de su documentación para desarrollarlos, usarlos y mantenerlos.
+ Es una parte de la ingeniería de sistemas que se fundamente en campos como
+ las ciencias de la computación, la programación, la ingeniería, la administraci
+ón, las matemáticas o la economía.
+\end_layout
+
+\begin_layout Section
+Historia
+\end_layout
+
+\begin_layout Standard
+En la década de los 50, se escribían aplicaciones sencillas en lenguajes
+ de bajo nivel como añadido al hardware, desarrolladas a medida.
+ En los 60 se concibió el software como producto y se crearon las primeras
+ aplicaciones complejas, que todavía eran mayoritariamente monolíticas,
+ con poco uso de componentes.
+\end_layout
+
+\begin_layout Standard
+En 1968–69 tienen lugar las
+\emph on
+\lang english
+Software Engineering Conferences
+\emph default
+\lang spanish
+ de la OTAN, donde se acuña en 1968 el término
+\series bold
+crisis del software
+\series default
+ para referirse a la dificultad de manejar la creciente complejidad, y se
+ decide que la producción de programas debe abordarse como una ingeniería
+ más.
+\end_layout
+
+\begin_layout Standard
+En los 70 surgen la programación estructurada, el modelado de datos y el
+ relacional y los primeros métodos estructurados.
+ En los 80 coge fuerza la programación orientada a objetos y aparecen los
+ primeros métodos orientados a objetos.
+ Surge tecnología CASE pero fracasa.
+\end_layout
+
+\begin_layout Standard
+En los 90 se populariza Internet.
+ La programación orientada a objetos se generaliza, surge la programación
+ virtual y se crea UML, que acaba con la guerra de los métodos y permite
+ tecnología CASE de segunda generación.
+ En la década de los 2000 surgen los métodos ágiles y se asume la importancia
+ de la seguridad, y en la de los 2010 surgen la computación móvil y en la
+ nube y se popularizan las redes sociales, los grandes datos, el aprendizaje
+ computacional y el desarrollo de software global.
+\end_layout
+
+\begin_layout Section
+Actualidad
+\end_layout
+
+\begin_layout Standard
+Los informes
+\lang english
+Chaos
+\lang spanish
+ son informes de pago, liberados cuando tienen cierta antigüedad, sobre
+ el desarrollo de la ingeniería de software.
+ Según el de 2012, el
+\begin_inset Formula $\unit[18]{\%}$
+\end_inset
+
+ de los proyectos son cancelados antes de terminar de desarrollarse o no
+ son usados, y el
+\begin_inset Formula $\unit[43]{\%}$
+\end_inset
+
+ son
+\begin_inset Quotes cld
+\end_inset
+
+comprometidos
+\begin_inset Quotes crd
+\end_inset
+
+, sobrepasando el coste o el plazo o no satisfaciendo las necesidades de
+ los clientes.
+ Las cancelaciones y compromisos aumentan con el tamaño del proyecto.
+\end_layout
+
+\begin_layout Standard
+Actualmente existe un consenso en la importancia de la ingeniería del software
+ y se niega la vigencia de la crisis de software, pero la disciplina no
+ es tan madura como otras ingenierías.
+ Los principales problemas son:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Heterogeneidad:
+\series default
+ El software debe trabajar con componentes muy heterogéneos, incluyendo
+
+\series bold
+sistemas heredados
+\series default
+ antiguos que no se adhieren a las prácticas actuales.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Entrega:
+\series default
+ Se prefiere usar actualizaciones incrementales a una sola entrega puntual,
+ y el modelo de desarrollo debe ser acorde.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Confianza:
+\series default
+ Muchos sistemas dependen del software, y se debe poder confiar en su seguridad,
+ privacidad, protección, disponibilidad, etc.
+\end_layout
+
+\begin_layout Standard
+Algunas aproximaciones son los métodos ágiles como XP o Scrum y métodos
+
+\emph on
+\lang english
+lean
+\emph default
+\lang spanish
+ como Kanban, el
+\series bold
+SWEBOK
+\series default
+ (
+\emph on
+\lang english
+guide to the SoftWare Engineering Body Of Knowledge
+\emph default
+\lang spanish
+), títulos universitarios de grado y máster en ingeniería de software, comités
+ para acreditar estos títulos, CMMi y las
+\series bold
+DevOps
+\series default
+ (automatización en el desarrollo y el despliegue del software).
+\end_layout
+
+\begin_layout Section
+UML
+\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
+Un
+\series bold
+modelo
+\series default
+ es una representación de un aspecto de la realidad obtenida mediante abstracció
+n.
+\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
+El modelo permite una mayor expresividad y capacidad de comunicación que
+ un lenguaje de programación típico, y sirve como documentación.
+ Puede conectarse a lenguajes de programación mediante ingeniería directa
+ e inversa y desarrollo dirigido por modelos.
+\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:
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+OMT
+\series default
+, especialmente útil para datos.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+\emph on
+Booch Method
+\series default
+\emph default
+, especialmente útil para sistemas concurrentes y de tiempo real, muy relacionad
+o con el lenguaje Ada.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+OOSE
+\series default
+ de Jacobson, guiado por los casos de uso.
+\end_layout
+
+\begin_layout Standard
+Esto producía mucha confusión y una
+\series bold
+guerra de los métodos
+\series default
+.
+\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
+En 1994, [...] Booch, [...] Rumbaugh [...][y] Jacobson crean el
+\series bold
+UML
+\series default
+ [...], un lenguaje para visualizar, especificar construir y documentar modelos
+ de un sistema de software desde una perspectiva orientada a objetos que
+ busca eliminar confusión y reunir los puntos fuertes de cada método, y
+ este es estandarizado por el
+\series bold
+OMG
+\series default
+ [(
+\emph on
+\lang english
+Object Management Group
+\emph default
+\lang spanish
+)] [...].
+ [...]
+\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
+UML también añadió mejoras, dio estabilidad al mercado y permitió mejores
+ herramientas CASE.
+ Permite modelar sistemas desde los requisitos hasta los ejecutables, es
+ escalable a sistemas grandes y los pueden usar tanto personas como máquinas,
+ debido a un equilibrio entre expresividad y simplicidad.
+\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 Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+sremember{TDS}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Itemize
+Los
+\series bold
+modelos estructurales
+\series default
+ [...] son representados por
+\series bold
+diagramas de clases
+\series default
+ [...] y [...]
+\series bold
+de objetos
+\series default
+ [...].
+\end_layout
+
+\begin_layout Itemize
+Los
+\series bold
+modelos de comportamiento
+\series default
+ [...] son representados por:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+[...]
+\series bold
+Diagramas de secuencia
+\series default
+ [...] y [...]
+\series bold
+de
+\series default
+ [...]
+\series bold
+comunicación
+\series default
+ [...].
+\end_layout
+
+\begin_layout Itemize
+[...]
+\series bold
+De estado
+\series default
+ y [...]
+\series bold
+de actividades
+\series default
+.
+ [De casos de uso.]
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+eremember
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Itemize
+Los modelos de implementación son representados por diagramas de componentes
+ y diagramas de despliegue.
+\end_layout
+
+\begin_layout Standard
+UML es una notación, no un método de desarrollo.
+\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
+.
+\end_layout
+
+\begin_layout Standard
+Independientemente del área o la complejidad del proyecto, el desarrollo
+ de un sistema estará al menos en uno de los siguientes procedimientos genéricos
+:
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Definición:
+\series default
+ Se analiza cuál es la funcionalidad del
+\begin_inset Note Note
+status open
+
+\begin_layout Plain Layout
+Diapo 51
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+,
+\series bold
+desarrollo
+\series default
+ (diseño, implementación y prueba) o
+\series bold
+mantenimiento
+\series default
+.
+\end_layout
+
+\end_body
+\end_document