Please enable JavaScript.
Coggle requires JavaScript to display documents.
Principios de la ingeniería de software GYNgOfm - Coggle Diagram
Principios de la ingeniería de software
Rigor Y Formalidad
El rigor es un factor necesario para la creatividad en la ingeniería
El rigor puede potenciar la creatividad aumentando la confianza del ingeniero
La documentación rigurosa del
proceso del software ayuda a que éste sea reutilizado en proyectos similares
Se pueden alcanzar varios niveles de rigurosidad, el más alto es la formalidad
-
un ingeniero debe saber como y cuando ser formal, sabiendo el nivel de rigor y formalidad
La aplicación del principio de rigor y formalidad tiene influencia beneficiosa en la obtención de cualidades del
software como la confiabilidad, verificabilidad, etc.
Abstracción
La abstracción es un proceso por el cual se identifican los aspectos que son mas relevantes de algún problema, ignorando los detalles de menor importancia.
Es un caso particular de la separación de intereses, en el cual se abstraen los aspectos más importantes en los detalles que menos relevancia tienen.
El principio de abstracción es un principio importante que se aplica tanto a los productos de software como a
los procesos
Separación de Intereses
La separación de intereses permite enfrentarse a las distintas partes de un problema de forma que pueda
concentrarse en cada uno por separado
En el desarrollo de algún producto de software se deben tomar varias consideraciones tales como la eficiencia de tiempo y espacio, interfaces del usuario, etc. Muchas de estas decisiones no estarán relacionadas pero otras estarán fuertemente relacionadas, esto dificultaría mucho el tener en cuenta todas los aspectos. por lo que la única forma de enfrentar este problema es separar los distintos intereses.
Formas en las que se pueden separar los distintos intereses
La primer forma en la que se pueden separar los distintos intereses es según el tiempo
Esto permite planificar las actividades y eliminar el trabajo extra
Una forma de separación de intereses es en términos de las cualidades que deberían tratarse por separado
Se refiere a que deberían los tratar distintos temas del producto del software por separado y luego de resolverlo por separado intentar reestructurarlo para garantizar su cohesión
Un tipo importante de separación de intereses permite que distintos enfoques del software sean distinguidos
en forma separada
Otra forma más es enfrentar partes del sistema en forma separada, esto en termino de tamaños.
-
Modularidad
El principal beneficio de la modularidad es que permite la aplicación de la separación de interés en 2 etapas(fases)
En la primera fase enfrentan los detalles de cada modulo por separado ignorando los detalles de los otros módulos, nombrare esta fase como (1)
En la segunda fase enfrentan las características globales de todos los módulos y las relaciones que tengan para luego cohesionarlos en un único sistema de manera que este mismo sea coherente, nombrare esta fase como (2)
Si ejecutamos estas fases en este orden, (1) y luego (2), se dice que el sistema es diseñado de abajo hacia arriba(bottom up), si es en el orden inverso entonces se dice que el sistema es diseñado de arriba hacia abajo(top down).
El principio de este tiene de por si 3 objetivos principales
-
-
-
-
Incrementalidad
La incrementalidad caracteriza un proceso que se desarrolla en forma de pasos, de forma incrementada, alcanzando el objetivo con aproximaciones sucesivas al mismo, en donde cada aproximación se obtiene atreves un incremento de la aproximación anterior.
Una forma de aplicar este principio es identificar subconjuntos tempranos de una aplicación que sean útiles, esto atreves de la retroalimentación temprana de el cliente.
La motivación de este principio es que en muchas ocasiones no se encontraran todos los requerimientos al empezar algún desarrollo de aplicación o algún tipo de software, por lo cual lo mas pronto que se pueda de contar con la retroalimentación del cliente mejor ya que será mas fácil incorporar las modificaciones al producto
Este principio está ligado al principio de anticipación al cambio y es otro principio del cual se basa en la evolicionalidad
Cada incremento significativo debe ser registrado, la
documentación debe poder ser fácilmente recuperada, los cambios deben aplicarse en forma ordenada, etc.
Si es que este proceso no se realiza con cautela, este podría rápidamente perder sus potenciales ventajas de evolucionabilidad y transformarse en un software indisciplinado.
La incrementabilidad también se aplica a muchas cualidades de algún software.
como por ejemplo, empezar por el núcleo de alguna aplicación que sea útil y luego ir agregando funcionalidades de forma incremental.
-