diff options
| author | Juan Marín Noguera <juan.marinn@um.es> | 2021-04-14 18:14:59 +0200 |
|---|---|---|
| committer | Juan Marín Noguera <juan.marinn@um.es> | 2021-04-14 18:14:59 +0200 |
| commit | 6131541e2234e1136b276a27cb5430dcb02c2f89 (patch) | |
| tree | 58452553c4bd6ae786f2b997876e8cc6c80d0564 /gpds/n1.lyx | |
| parent | 9acc591166dfe4db91abb9113957cda9365b35a2 (diff) | |
GPDS tema 3 (y lo correspondiente de PDS tema 1)
Diffstat (limited to 'gpds/n1.lyx')
| -rw-r--r-- | gpds/n1.lyx | 414 |
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 |
