aboutsummaryrefslogtreecommitdiff
path: root/gpds/n1.lyx
diff options
context:
space:
mode:
authorJuan Marín Noguera <juan.marinn@um.es>2021-04-14 18:14:59 +0200
committerJuan Marín Noguera <juan.marinn@um.es>2021-04-14 18:14:59 +0200
commit6131541e2234e1136b276a27cb5430dcb02c2f89 (patch)
tree58452553c4bd6ae786f2b997876e8cc6c80d0564 /gpds/n1.lyx
parent9acc591166dfe4db91abb9113957cda9365b35a2 (diff)
GPDS tema 3 (y lo correspondiente de PDS tema 1)
Diffstat (limited to 'gpds/n1.lyx')
-rw-r--r--gpds/n1.lyx414
1 files changed, 398 insertions, 16 deletions
diff --git a/gpds/n1.lyx b/gpds/n1.lyx
index 5fd21ef..03f04c8 100644
--- a/gpds/n1.lyx
+++ b/gpds/n1.lyx
@@ -81,10 +81,271 @@ algorithm2e
\begin_body
\begin_layout Standard
-La ingeniería de software busca satisfacer el deseo de las organizaciones
- de construir productos y servicios de software de alta calidad cada vez
- más complejos y dedicando menos tiempo y dinero, mediante la construcción,
- adquisición e integración de componentes.
+La
+\series bold
+ingeniería
+\series default
+ es la aplicación del conocimiento y el método científicos al diseño y la
+ creación de productos complejos.
+ La
+\series bold
+ingeniería de software
+\series default
+ busca satisfacer el deseo de las organizaciones de construir productos
+ y servicios de software de alta calidad cada vez más complejos y dedicando
+ menos tiempo y dinero, mediante la construcción, adquisición e integración
+ de componentes.
+ Es
+\series bold
+sistemática
+\series default
+, con planes y procedimientos metódicos;
+\series bold
+disciplinada
+\series default
+, sujeta a control respecto a ciertos estándares, y
+\series bold
+cuantificable
+\series default
+, pues tanto su realización como sus resultados son medibles.
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+artefacto
+\series default
+ es algo tangible creado con un propósito práctico.
+ Un
+\series bold
+proceso software
+\series default
+ es un conjunto coherente de políticas, estructuras organizativas, tecnologías,
+ procedimientos y artefactos para concebir, desarrollar, implantar y mantener
+ un producto software.
+ Una
+\series bold
+actividad
+\series default
+ es un proceso en el espacio-tiempo en el que un agente actúa con ciertos
+ objetivos.
+ Las 4 actividades básicas en ingeniería de software son especificación,
+ desarrollo, validación y evolución.
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+ciclo de vida
+\series default
+ de un producto o proyecto software es su evolución desde su concepción
+ hasta que deja de usarse, y puede describirse según las actividades que
+ se realizan en él.
+ Estas son actividades técnicas, colaborativas y de gestión que forman parte
+ de las 4 actividades básicas, que suelen entrelazarse debido a que el software
+ se modifica continuamente a lo largo de su ciclo de vida en respuesta a
+ los requisitos cambiantes y las necesidades del cliente.
+ El
+\series bold
+modelo de ciclo de vida del software
+\series default
+ es la especificación de las fases o el curso general de este ciclo de vida.
+\end_layout
+
+\begin_layout Standard
+Un
+\series bold
+método
+\series default
+ es la especificación de una secuencia de acciones orientadas a un cierto
+ propósito, y determina el orden y la forma de llevar a cabo unas actividades.
+ Una
+\series bold
+metodología
+\series default
+ es un conjunto coherente de métodos relacionados por principios comunes.
+\end_layout
+
+\begin_layout Section
+Dimensiones
+\end_layout
+
+\begin_layout Standard
+El SEI clasifica el conocimiento en ingeniería de software en 4 dimensiones
+ mediante 2 visiones:
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Visión proceso
+\series default
+, propuesta para estructurar su corpus de conocimiento en base a dos dimensiones
+:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+
+\series bold
+Actividad
+\series default
+, que clasifica las actividades realizadas en ingeniería de software:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+
+\series bold
+Desarrollo:
+\series default
+ Actividades que producen artefactos, como análisis de requisitos, especificació
+n, diseño, implementación y pruebas.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Control:
+\series default
+ Actividades que moderan el desarrollo, como evolución del software (control
+ de versiones, cambios, gestión de configuraciones, etc.) y calidad del software
+ (aseguramiento, control y prueba, etc.).
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Gestión:
+\series default
+ Actividades que implican a ejecutivos, administrativos y supervisores,
+ incluyendo las actividades técnicas de soporte a su trabajo, como planificación
+ de proyectos, estimación de costes, asignación de recursos, constitución
+ de equipos o asuntos legales y de contratación.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Operaciones:
+\series default
+ Actividades relacionadas con el uso del software en la organización, como
+ la formación, la planificación de la puesta en marcha, la puesta en marcha,
+ la transición al nuevo sistema, la operación del software y la gestión
+ de su retirada.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+
+\series bold
+Aspecto
+\series default
+, con los aspectos similares de cada actividad:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+
+\series bold
+Abstracciones:
+\series default
+ Principios fundamentales como ocultación de información o principios de
+ diseño, y modelos formales como de proceso de desarrollo (en cascada, prototipa
+do, etc.), de computación secuencial y concurrente (máquinas de estado finito,
+ redes de Petri, etc.) o de estimación de costes (COCOMO, etc.)
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Representación:
+\series default
+ Notaciones como tablas de decisión, DFD o PERT, y lenguajes como Ada.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Métodos:
+\series default
+ Métodos formales como pruebas de corrección para la verificación o especificaci
+ones ejecutables; intuitivos como AE, AOO o DOO, y prácticas comunes como
+ la programación estructurada para la implementación).
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Herramientas:
+\series default
+ Integradas o de software individual, como correo electrónico, procesador
+ de textos, CASE o compiladores.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Evaluación:
+\series default
+ Métricas, análisis y evaluación de los productos y el proceso software
+ y del impacto en las organizaciones, para mejorar futuros desarrollos.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Comunicación:
+\series default
+ Oral y escrita en forma de documentación o formación.
+\end_layout
+
+\end_deeper
+\end_deeper
+\begin_layout Enumerate
+
+\series bold
+Visión producto
+\series default
+, que amplía la presentación unidimensional basada en el ciclo de vida típico
+ de análisis de requisitos, especificación, diseño, implementación, prueba
+ y mantenimiento con dos dimensiones:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+
+\series bold
+Clase de sistema software
+\series default
+, con características específicas de un software concreto, por ejemplo el
+ software concurrente, para el que existen distintos lenguajes y notaciones
+ de diseño y especificación.
+ Los grupos resultantes de la clasificación no tienen por qué ser disjuntos.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Según el dominio distinguimos sistemas de comunicación, de aviación, sistemas
+ operativos, bases de datos, etc.
+ Según el tipo de relación con el entorno distinguimos sistemas por lotes,
+ reactivos, interactivos, de tiempo real, embebidos, etc.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+
+\series bold
+Requisitos del sistema
+\series default
+, con las propiedades que debería tener el sistema a construir.
+ Se suele restringir a aspectos funcionales, pero la consecución de los
+ no funcionales depende de muchas de las actividades realizadas en el proceso.
+\end_layout
+
+\end_deeper
+\begin_layout Section
+Procesos software
\end_layout
\begin_layout Standard
@@ -136,6 +397,127 @@ La tecnología puede ser muy útil con los procesos apropiados, pero no siempre
\end_layout
\begin_layout Section
+Estrategias de desarrollo de software
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+ciclo de desarrollo
+\series default
+ de un producto software es la parte de su ciclo de vida desde el análisis
+ hasta la entrega.
+ Algunas estrategias son:
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Modelo en cascada
+\series default
+, en que se hacen las fases en orden secuencial.
+ Útil cuando los requisitos son fijos y el trabajo avanza de forma lineal,
+ al contrario que en la actualidad.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Iterativo
+\series default
+ e
+\series bold
+incremental
+\series default
+, con iteraciones en las que se hacen todas las fases para lo siguiente
+ a implementar.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+MDD
+\series default
+ (
+\series bold
+\emph on
+\lang english
+Model-Driven Development
+\series default
+\emph default
+\lang spanish
+): La principal salida del proceso son los modelos, no los programas.
+ Un
+\series bold
+PSM
+\series default
+ (
+\series bold
+\emph on
+\lang english
+Platform-Specific Model
+\series default
+\emph default
+\lang spanish
+) describe una solución desde la perspectiva de una plataforma concreta.
+ También hay
+\series bold
+CIMs
+\series default
+ (
+\emph on
+\lang english
+Computing-Independent Models
+\emph default
+\lang spanish
+) y
+\series bold
+PIMs
+\series default
+ (
+\emph on
+\lang english
+Platform-Independent Models
+\emph default
+\lang spanish
+).
+\end_layout
+
+\begin_layout Standard
+La estrategia más adaptativa, y la menos prescriptiva, es hacer lo que sea.
+ De las usadas, de la más adaptativa a la más prescriptiva, están Kanban
+ (
+\emph on
+\lang english
+lean
+\emph default
+\lang spanish
+, 3 reglas), Scrum (ágil, 9 reglas), XP (ágil, 13 reglas) y RUP (más de
+ 120 reglas).
+\end_layout
+
+\begin_layout Standard
+Los métodos ágiles, iterativos y
+\emph on
+lean
+\emph default
+ tienen más posibilidades de éxito y menos de fallo que los ad-hoc, al contrario
+ de lo que ocurre a los tradicionales en cascada.
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+DevOps
+\series default
+ se apoya en los principios
+\emph on
+lean
+\emph default
+ y ágil para proporcionar ingeniería de software continua.
+\end_layout
+
+\begin_layout Section
Modelos de mejora
\end_layout
@@ -403,12 +785,12 @@ Una organización de software puede adoptar modelos de mejora de procesos
industria.
\end_layout
-\begin_layout Section
-ISO/IEC 33000
-\end_layout
-
\begin_layout Standard
-Es una familia de normas de evaluación de procesos en ingeniería en general,
+
+\series bold
+ISO/IEC 33000
+\series default
+ es una familia de normas de evaluación de procesos en ingeniería en general,
que suplanta al estándar
\series bold
ISO/IEC TR 15504
@@ -525,14 +907,14 @@ Proceso de Gestión de Riesgos, Proceso de Verificación del Software, Proceso
re.
\end_layout
-\begin_layout Section
-ITmark
-\end_layout
-
\begin_layout Standard
-Certificación orientada a PYMES del grupo TECNALIA del ESI, con presencia
- en más de 16 países en Europa y América latina, que combina modelos y estándare
-s de calidad y mejora de procesos como CMMi, ISO 20000,
+
+\series bold
+ITMark
+\series default
+ es una certificación orientada a PYMES del grupo TECNALIA del ESI, con
+ presencia en más de 16 países en Europa y América latina, que combina modelos
+ y estándares de calidad y mejora de procesos como CMMi, ISO 20000,
\series bold
ISO 27000
\series default