Document Details

LeadingField

Uploaded by LeadingField

Universidad Nacional de José Clemente Paz

Anas G

Tags

ingeniería de software desarrollo de software programación tecnología de la información

Summary

Este documento presenta una introducción a la Ingeniería de Software, cubriendo conceptos como rigor, formalidad, separación de intereses, modularidad y anticipación del cambio. Se destaca la importancia de la creatividad y el rigor en el desarrollo de software, así como la utilidad de la generalidad en la resolución de problemas.

Full Transcript

Ingeniería de Software RIGOR Y FORMALIDAD En cualquier proceso creativo existe la tendencia a seguir la inspiración del momento de forma no estructurada, sin ser precisos. El desarrollo de software es de por sí una actividad creativa Por otro lado, el rigor es un complemento nec...

Ingeniería de Software RIGOR Y FORMALIDAD En cualquier proceso creativo existe la tendencia a seguir la inspiración del momento de forma no estructurada, sin ser precisos. El desarrollo de software es de por sí una actividad creativa Por otro lado, el rigor es un complemento necesario de la creatividad en todas las actividades de la ingeniería Únicamente a través de un enfoque riguroso El rigor no tiene por qué restringir la creatividad, podrán producirse productos más confiables, por el contrario, puede potenciar la creatividad controlando sus costos e incrementando el grado aumentando la confianza de confianza en los mismos La formalidad es un requerimiento más fuerte que el rigor La ventaja de la formalidad sobre el rigor es que la formalidad puede ser la base para la mecanización del proceso. No hay necesidad de ser formal durante todo el desarrollo pero el IS debe saber cuándo, cómo y dónde utilizar la formalidad. SEPARACIÓN DE INTERESES Este principio permite enfrentarse a los distintos aspectos individuales de un problema de forma de concentrarse en cada uno por separado En el desarrollo de un producto de software deben tomarse muchas decisiones como las funciones que serán ofrecidas, la confiabilidad esperada, eficiencia de tiempo y espacio, relaciones con el ambiente como recursos de software o hardware especial, interfaces de usuario, entre otras Otras decisiones tienen que ver con el proceso de desarrollo como el ambiente de desarrollo, la organización y estructura del equipo, la agenda, los procedimientos de control, las estrategias de diseño, los mecanismos de recuperación frente a errores, entre otras. Y otras más que tienen que ver con temas económicos y financieros. Muchas de estas decisiones Modularidad Un sistema complejo debe ser dividido en partes. Permite aplicar el principio anterior en dos fases: detalles de cada parte sin tomar en cuenta las restantes relaciones entre partes sin tomar en cuenta los detalles No sólo aplica a los aspectos estructurales, sino a todo el proceso de desarrollo. Abstracción Los modelos que construimos para entender los fenómenos son abstracciones de la realidad. El uso de modelos formales abstractos permite aproximarse mediante refinamientos a la solución final pudiendo demostrar que cada descripción verifica la anterior Anticipación del cambio ❑ El software sufre cambios permanentemente ❑ Se requiere un esfuerzo especial en las fases iniciales para anticipar cómo y dónde será probable que se den los cambios. ❑ Los cambios probables deben ser aislados en porciones específicas del software. Generalidad Toda vez que se le pida que resuelva un problema, trate de focalizar su atención en el descubrimiento de un problema más general que puede estar oculto detrás del problema en cuestión. Puede suceder que el problema generalizado no sea más complejo. Siendo más general, la solución será más reusable

Use Quizgecko on...
Browser
Browser