Please enable JavaScript.
Coggle requires JavaScript to display documents.
Principios de la ingeniería en software - Coggle Diagram
Principios de la ingeniería en software
Rigor y formalidad
Rigor
Complemento necesario de la creatividad en las actividades ingenieriles
Al aplicarse produce productos más confiables.
Su aplicación no restringe la creatividad, sino la potencia.
Formalidad
Nivel más alto de rigurosidad.
Proceso de software guiado y evaluado por leyes matemáticas.
Su aplicación puede ser la base para la mecanización de procesos.
Beneficia cualidades del software
Confiabilidad
Verificabilidad
Mantenibilidad
Portabilidad
Reusabilidad
Comprensibilidad
Interoperabilidad
Separación de intereses
Permite enfrentarse a distintos aspectos individuales de un problema de forma de centrarse en cada uno por separado.
Formas de separación
Según el tiempo
Permite planificar distintas actividades eliminando el trabajo extra al cambiar de una a otra de forma no restrictiva.
Motivación que hay tras el ciclo de vida del software.
Un modelo racional de la secuencia de actividades.
Separar en términos de las cualidades
Separar en distintas versiones del software
Separar en términos de tamaño
Modularidad
Permite la aplicación del principio en separación de intereses en dos fases
Enfrentar cada módulo por separando ignorando detalles de otros módulos
Enfrentar características globales de todos los módulos y sus relaciones para integrarlos en un único sistema coherente
Objetivos
capacidad de descomponer un sistema complejo
capacidad de componer a partir de módulos existentes
compresión del sistema de piezas
La capacidad de comprender cada parte del sistema ayuda a la modificabilidad.
Los modulos divididos deben tener alta cohesion y bajo acoplamiento.
Abstracción
Proceso mediante el cual se identifican los aspectos relevantes de un problema ignorando detalles
No existe única abstracción, sino que puede haber múltiples de una misma realidad.
Se aplica tanto a productos de software como a procesos.
Anticipación al cambio
El software sufre cambios contantemente, por lo que deben anticiparse.
Es importante anticipar cómo y cuando pueden ocurrir los cambios.
Es relevante conocer los requerimientos de software.
Este principio puede ser utilizado para lograr la evolucionabilidad del software y también la reusabilidad de componentes.
Requiere de herramientas apropiadas para gestionar varias versiones y revisiones de software.
Se aplica también al proceso de desarrollo de software.
Generalidad
Para resolver un problema se debe buscar un problema más general que el original
Objetivos
Cubrir las necesidades de distintas personas
Desarrollo de herramientas generales o paquetes para el mercado.
Incrementabilidad
Caracteriza un proceso que se desarrolla en forma de pasos alcanzando el objetivo deseado mediante aproximaciones sucesivas al mismo.
Formas de aplicación
Identificar subconjuntos tempranos de una aplicación que sean útiles de forma de obtener retroalimentación temprana
Permite la evolución controlada del software
Motivación
Los requisitos no se captan tan solo al inicio sino que emergen a partir de la experimentación con la aplicación
Mientras antes se tenga feedback, más fácil será incorporar cambios en la aplicación.
Se debe tener especial cuidado en la gestión de procesos para las distintas versiones de software
Debe registrarse cada cambio en la documentación de forma ordenada.