El día de hoy comenzamos por dar respuesta a todas las preguntas que quedaron como tarea.
De las cosas que se plantearon, algo muy interesante fué el siguiente diagrama:

En donde se plantea que toda materia para poder llegar a ser formal debe de tener tres características principales:
- Ser Colegiado
- Ser Cognositivo
- y Ser Moral
Entre los distintos temas que se abordaron fueron:
- Técnicas formales en la Ingeniería de Software
- Vinculación en la Ingeniería del Software con la Ética
- Software Pirata
- El PROSOFT
- El Software libre como estratégia para fortalecer la Ingeniería del Software
Como actividad, la clase pasada quedó la lectura del Código de Etica Profesional de la Ingeniería del Software
Qué es Ingeniería de Software
Es una disciplina de la ingeniería que comprende todos los aspectos de la producción de software, desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento de éste después de que se utiliza. (Sommerville, 2002)
¿Cual es la Diferencia entre ISw y Ciencias de la Computación?
A pesar de su nombre, las ciencias de la computación raramente involucran el estudio mismo de las máquinas conocidas como computadoras. De hecho, el renombrado científico Edsger Dijkstra es muy citado por la frase “Las ciencias de la computación están tan poco relacionadas con las computadoras como la astronomía con los telescopios.”
¿Qué es un proceso de Software?
Es el conjunto de actividades y resultados asociados que producen un producto de software.
- Especificación del software (Funcionalidad + Restricciones)
- Desarrollo del Software (Producción)
- Validación del Software (Es lo que el cliente pidió?)
- Evolución del Software (Cambios)
Errores, defectos y fallas
Los errores siempre son humanos y pueden ser introducidas en los Sistemas. Los errores generan defectos en los sistemas. Los defectos son problemas que puede ser observada por el desarrollador. Los defectos generan fallas. Una falla es un problema que puede ser observada por el usuario.
Principios
Los principios forman la base de los métodos, técnicas, metodologías y herramientas. Son siete principios importantes que pueden ser usados en todas las fases del desarrollo de software.
- Rigor y formalidad El rigor es un complemento necesario para la creatividad que aumenta la confianza en el desarrollo. La formalidad es el grado más alto de rigor
- Separación de Intereses Para dominar la complejidad, separe en temas y concéntrese en uno a la vez. Apoya los esfuerzos paralelos y la asignación de responsabilidades.
- Modularidad Un sistema complejo se puede dividir en piezas más simples llamadas módulos. Un sistema que esta compuesto por módulos es llamado modular. Una aplicación soporta separación de intereses. Cuando al tratar un modulo, podemos ignorar detalles de otros módulos.
- Abstracción Identifica los aspectos importantes de un fenómeno ignorando sus detalles. Caso especial de separación de intereses. Este principio se aplica dependiendo del propósito que se requiera.
- Flexibilidad (Anticipación al cambio) La capacidad de apoyar la evolución del Sw, requiere anticipar cambios futuros. Es la base para la evolución del Sw. La metodología debe adecuarse rápidamente a un nuevo requerimiento.
- Generalidad Mientras resolvemos un problema, trata de descubrir si éste es una instancia de un problema más general; cuya solución puede rehusarse en otros casos. Algunas veces, puede ser más sencillo resolver el problema general que un caso especifico.
- Incrementabilidad Define la producción de software como un proceso evolutivo. Es importante la documentación en cada paso
Vinculos de interés
Design Patterns. Libro escrito por Erich Gamma, Richard Helm, Ralph Johnson, y John Vlissides en donde definen los patrones como resolución de problemas de Ingeniería de Software. También conocido como Gof (Gang of Four)






