diff options
| author | Juan Marín Noguera <juan.marinn@um.es> | 2021-04-13 14:02:51 +0200 |
|---|---|---|
| committer | Juan Marín Noguera <juan.marinn@um.es> | 2021-04-13 14:02:51 +0200 |
| commit | 7f2bf7332c52cd00b0ee998d57b003e5d3df4d76 (patch) | |
| tree | f12ef26de737885735f9a04e153dbc2f69e3666b /pds | |
| parent | 3fe38888583e5ea5eca06cfa707ad9ecc8ad5cd0 (diff) | |
PDS-UML
Diffstat (limited to 'pds')
| -rw-r--r-- | pds/n.lyx | 161 | ||||
| -rw-r--r-- | pds/n1.lyx | 752 |
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 |
