Please enable JavaScript.
Coggle requires JavaScript to display documents.
Principios de la Ingeniería de software - Coggle Diagram
Principios de la Ingeniería de software
Rigor y formalidad
Se necesita
Creatividad.
Rigurosidad.
Ser metódico.
Formalidad.
Beneficios en la creación de software
Interoperabilidad.
Portabilidad.
Reusabilidad.
Mantenibilidad.
Comprensibilidad.
Confiabilidad.
Verificabilidad.
Un ingeniero debe saber cuando ser formal cuando es requerido, la cual sirve para la mecanización del proceso.
Separación de intereses
Permite concentrarse en distintos aspectos individuales de un problema .
Se pueden planificar dependiendo de:
El tiempo.
Las cualidades.
Las visiones de software.
El tamaño .
Se puede ver como la separación de las responsabilidades al enfrentarse a un trabajo, separando a los trabajadores dependiendo de sus habilidades.
Modularidad
Permite el principio de la separación de intereses en 2 fases.
Tiene 3 objetivos principales:
capacidad de descomponer un sistema complejo.
Capacidad de componerlo a partir de módulos existentes.
Comprensión del sistema en piezas.
Se basa en el "divide y vencerás".
Se debe tener alto conocimiento del sistema, los elementos deben estar fuertemente relacionados y agrupados por una razón lógica.
Abstracción
Proceso mediante el cual se identifican los procesos relevantes de un problema ignorando los detalles.
Se aplica a los productos de software tanto como a los procesos.
Anticipación al cambio
Los software pueden generar cambios por diferentes razones, por ejemplo solucionar errores o nuevos requerimientos y mantenerse estables.
Se debe tener cuidado con estos cambios, ya que pueden presentar errores.
Se requiere tener herramientas para controlar distintas versiones de un software, debe ser posible recuperar esa información en caso de emergencia.
Esto también aplica a la gestión del un proyecto, por ejemplo:.
Anticipar los efectos en la reducción del personal.
Estimar los costos.
decidir cuanto vale la pena invertir tiempo.
Generalidad
Establece que al tener un problema, se debe buscar un problema más grande que el original, ya que puede suceder que este problema más grande no sea tan complejo y la solución tenga potencial de reuso.
Por otro lado se puede tener una solución especializada, la cual en algunos casos puede ser una mejor opción.
Es fundamental en el caso de que se tenga como objetivo el desarrollo de herramientas generales, como por ejemplo un automóvil.
Incrementalidad
Es un proceso que se desarrolla por partes hasta llegar al objetivo deseado.
Se puede aplicar mediante segmentos pequeños de una aplicación que sirvan como feedback al mostrársela al cliente, permitiendo la buena evolución de esta misma.
Está ligado con la anticipación al cambio, debido a los constantes cambios que sufre el software.
Al igual que la anticipación al cambio, se debe tener cuidado con la documentación, ya que esta puede ser útil en un futuro.