SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
Ingeniería de Software
Cristian Alvaro Agreda Rodriguez
¿Qué es la Ingeniería de Software?
Nato1968 (organización de tratado del
atlántico norte)
para que algo sea calificado en ingeniería de
software tiene que tener enfoque sistemático,
disciplinado y cuantificable del desarrollo
operación y mantenimiento de software. Al
decir disciplinado quiere decir que el equipo
de desarrollo se mantiene dentro de ciertas
reglas de desarrollo y cuantificable significa
que cada progreso cada tarea se puede medir
, se puede cuantificar algo parecido a un
número no tan preciso, pero se intenta
determinar el avance o el retroceso o falta de
avance en el proyecto.
¿Qué es la Ingeniería de Software?
Parnas1978(Investigador norteamericano)
La construcción de múltiples versiones de un
software llevada a cabo por múltiples personas.
Quiere decir que un programa que hacemos
nosotros solos una vez no sería el objeto del estudio
se requeriría un equipo de gente que no solo
desarrollan una sola versión sino varias versiones, al
hablar de varias versiones no hablamos del
desarrollo si no también del mantenimiento lo.
Si es desarrollados por varias personas el desarrollo
es de cierta envergadura.
¿Qué es la Ingeniería de Software?
Ghezzi 1991
Construcción de software de
una envergadura o
complejidad de tales que
debe ser construido por
equipos de ingenieros.
¿Qué es la Ingeniería de Software?
Jackson 1998
La ingeniería Tradicional es altamente especializada
y se basa en colecciones de deseos estándar o
normalizados ¿Hay especialidades en la informática
o cualquiera hace cualquier cosa? ¿Se basa la
producción de software en diseños estándar?
¿Puede?
Dice que una persona puede desarrollar cualquier
tipo de programa en cualquier contexto y cualquier
circunstancia formarse en una área del desarrollo de
ingeniería de software
¿Qué es lo que hace un Ing. de
software?
No construye el hardware, sino el
comportamiento y las propiedades que lo
harán útil para algo específico.
Desarrollar programas que hace una máquina
de propósito general en una máquina en
propósitos específicos.
¿Qué es lo que hace un Ing. de
software?
el ing de software documenta descripciones
de ese software. Escribir lo que está haciendo
en diferentes documentos sobre el programa
que se está desarrollando, el código fuente es
una de la descripción que debería describir
pero no la única. Debe escribir diferentes
descripciones que nos dan diferentes visiones
sobre el programa que se está desarrollando.
También debe verificar las descripciones,
verificar que esa descripción cumple ciertas
propiedades.
Definición de documentación de
software
Los manuales técnicos, de usuario y otras
instrucciones que facilitan el uso y
operación de un producto o servicios de
software constituyen la documentación de
software, la cual podría incluir (donde fuera
necesario) el código fuente, los códigos de
error y sus significados.
¿Cuáles son las descripciones
fundamentales?
Requerimientos. - una descripción en el
lenguaje natural español, inglés, de lo que
el software debería hacer de las
restricciones bajo las cuales debería
ejecutarse.
Especificaciones. – Es básicamente una
descripción formal de lo que el programa
debería hacer está escrita en una notación
matemática en alguna forma lógica que no
es exactamente un código fuente que
tampoco es el lenguaje de los humanos.
¿Cuáles son las descripciones
fundamentales?
Diseño.- Es dividir el programa en
partes de manera tal que se puede
desarrollar cada parte de manera
independiente de las de más y
después poder integrar las partes
para que funcionen como un todo.
¿Cuáles son las descripciones
fundamentales?
la idea es no escribir un programa
monolítico donde escribimos el programa
en una sola función en una sola clase, si
no que se lo divide en partes para poder
desarrollar cada parte independiente a las
demás, para poner un desarrollador a
cada parte, así acortar los plazos de
desarrollo, también el diseño es
importante para poder dominar la
complejidad de todo un programa. Para
que sea fácil de desarrollar fácil de
entender.
¿Que debe saber un ingeniero de
software?
Dominar a fondo las técnicas
de descripción, dominar los
lenguajes formales, pero
debería dominar otros
lenguajes formales que no
son ejecutables pero que nos
ayudan a describir programas
más refinadas.
¿Que debe saber un ingeniero de
software?
Moverse en distintos modelos de
abstracción, debe ser capaz de ver un
software como un conjunto de
requerimientos también debe ser capaz
de ver un software como una
especificación en matemáticas o en
lógica y debe ser capaz de describir
programas en lenguajes formales y
capaz de verificar propiedades de esos
modelos.
¿Que debe saber un ingeniero de
software?
Documentar y validar los
requerimientos del usuario.
Escribir un modelo abstracto semi
formal del diseño es decir
descomponer el programa en
diferentes partes que va a
desarrollar independientes de las
demás que algún momento las va
a integrar a un programa completo
¿Que debe saber un ingeniero de
software?
Debe ser capaz de escribir una
especificación funcional abstracta y formal
del programa es decir una fórmula de
matemática que representa al programa,
aunque esta fórmula de matemáticas no sea
ejecutable y finalmente debe ser capaz de
ver que el programa satisface el diseño y la
especificación funcional.
¿Dónde están las dificultades al
desarrollar software?
La parte difícil de desarrollar de software es
especificarlo, diseñarlo y verificarlo y no la
programación y así la programación
también se les hace difícil por que no han
hecho una especificación y un diseño como
deberían hacerlo, lo difícil para desarrollar
software es saber que hay que programar y
como dividirlo en pequeñas partes para
dominar su complejidad y no en la tarea de
programar esas pequeñas partes una vez
saber lo que hay que programar y lo hacen
bien y rápidamente.
¿Por que es esencialmente diferentes
a las otras ingenierías?
La ingeniería de software es esencialmente a
las otras por que la base teórica de la
ingeniería de software es la lógica formal, la
programación es una forma de lógica por lo
tanto lo que subyace a la ingeniería de
software basada en la lógica o en la
matemática y no una ciencia basada en la
física por que las otras ingenierías están de
una u otra forma basadas en las físicas eso
hace que haya una diferencia importante la
lógica y la matérica son o que se llama ciencia
formales la física, la geología la química son
ciencias fácticas.
¿Por que es esencialmente diferentes
a las otras ingenierías?
Unas de las cuestiones que hace
que emerge de estas diferencias
entre el problema y la solución, en
mayor parte de las ingenierías lo
difícil,dado un problema encontrar la
solución más adecuada en la
ingeniería de software, en cambio lo
difícil es determinar el problema no
tanto determinar la solución.
¿Qué son los métodos formales?
Son lenguajes, técnicas,
herramientas basadas en la
matemática y/o lógica para
describir y verificar sistemas
¿Qué comprenden los métodos
formales ?
Lenguajes de especificaciones formal
Verificación de modelos
Prueba de teoremas de forma automática y de
forma asistida
Testing basados en modelos no el tradicional sino
partiendo de un modelo formal del programa
Cálculo de refinamiento consiste en dada una
fórmula no ejecutable que representa un programa
tratar de refinarla para ir convirtiéndola de madera
controlada en un programa que sea ejecutable
¿Qué son los lenguajes de
especificación formal?
Tiene una sintaxis formal y estandarizada
Una semántica formal descrita en términos
operativos denotaciones o lógicos
Un aparato deductivo que permite demostrar
teoremas a partir de fórmulas en ese lenguaje
Los lenguajes de especificación formal se usan casi
siempre para escribir la especificación funcional de
un programa

Más contenido relacionado

La actualidad más candente

Introducción a la ingeniería del software - cuestionario
Introducción a la ingeniería del software -  cuestionarioIntroducción a la ingeniería del software -  cuestionario
Introducción a la ingeniería del software - cuestionarioSamuelSanchez136
 
1. algoritmo
1. algoritmo1. algoritmo
1. algoritmoLuis R
 
visual fox pro desde cero com 9.0
visual fox pro desde cero com 9.0visual fox pro desde cero com 9.0
visual fox pro desde cero com 9.0Gregory de la Rosa
 
Pteg g-#-iii-jose saul hernandez-expo-lenguajes de programacion cap 6
Pteg g-#-iii-jose saul hernandez-expo-lenguajes de programacion cap 6Pteg g-#-iii-jose saul hernandez-expo-lenguajes de programacion cap 6
Pteg g-#-iii-jose saul hernandez-expo-lenguajes de programacion cap 6Jose Saul Hernandez
 
Pteg g-grupo 6-lista33-visita3-expo cap 6 tema lenguajes de programacion
Pteg g-grupo 6-lista33-visita3-expo cap 6 tema lenguajes de programacionPteg g-grupo 6-lista33-visita3-expo cap 6 tema lenguajes de programacion
Pteg g-grupo 6-lista33-visita3-expo cap 6 tema lenguajes de programacionOdair Josue Ordoñez Alcerro
 
Libro 3: tareas y saber del programaador
Libro 3: tareas y saber del programaadorLibro 3: tareas y saber del programaador
Libro 3: tareas y saber del programaadorsocrates12854
 
Aplicaciones de estándares de calidad en la construcción de algoritmo
Aplicaciones de estándares de calidad en la construcción de algoritmoAplicaciones de estándares de calidad en la construcción de algoritmo
Aplicaciones de estándares de calidad en la construcción de algoritmoFelix Rodríguez
 
Programac io n pdf
Programac io n pdfProgramac io n pdf
Programac io n pdfjose peralta
 
Conceptos básicos programaciön
Conceptos básicos programaciönConceptos básicos programaciön
Conceptos básicos programaciönadriannaranjo85
 
Estandares y diseño de algoritmo
Estandares y diseño de algoritmoEstandares y diseño de algoritmo
Estandares y diseño de algoritmoCJTS1989
 
Clase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacionClase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacionjoel210696
 
01. lenguajes de programación autor virtuniversidad
01. lenguajes de programación autor virtuniversidad01. lenguajes de programación autor virtuniversidad
01. lenguajes de programación autor virtuniversidadLuisBeltrnAlvinoAlva
 
Presentacion De Programacion
Presentacion De ProgramacionPresentacion De Programacion
Presentacion De ProgramacionDario Fernando
 
Programación Orientada a Aspectos (POA)
Programación Orientada a Aspectos (POA)Programación Orientada a Aspectos (POA)
Programación Orientada a Aspectos (POA)Walter Javier Franck
 
5 aissexposicion1grupo4
5 aissexposicion1grupo45 aissexposicion1grupo4
5 aissexposicion1grupo4Any Álvarez
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programaciónOver Rattlehead
 
presentacion I BTP
presentacion I BTPpresentacion I BTP
presentacion I BTPcesia_97
 

La actualidad más candente (20)

Introducción a la ingeniería del software - cuestionario
Introducción a la ingeniería del software -  cuestionarioIntroducción a la ingeniería del software -  cuestionario
Introducción a la ingeniería del software - cuestionario
 
1. algoritmo
1. algoritmo1. algoritmo
1. algoritmo
 
visual fox pro desde cero com 9.0
visual fox pro desde cero com 9.0visual fox pro desde cero com 9.0
visual fox pro desde cero com 9.0
 
Pteg g-#-iii-jose saul hernandez-expo-lenguajes de programacion cap 6
Pteg g-#-iii-jose saul hernandez-expo-lenguajes de programacion cap 6Pteg g-#-iii-jose saul hernandez-expo-lenguajes de programacion cap 6
Pteg g-#-iii-jose saul hernandez-expo-lenguajes de programacion cap 6
 
Pteg g-grupo 6-lista33-visita3-expo cap 6 tema lenguajes de programacion
Pteg g-grupo 6-lista33-visita3-expo cap 6 tema lenguajes de programacionPteg g-grupo 6-lista33-visita3-expo cap 6 tema lenguajes de programacion
Pteg g-grupo 6-lista33-visita3-expo cap 6 tema lenguajes de programacion
 
Programacion
ProgramacionProgramacion
Programacion
 
Programación
ProgramaciónProgramación
Programación
 
Libro 3: tareas y saber del programaador
Libro 3: tareas y saber del programaadorLibro 3: tareas y saber del programaador
Libro 3: tareas y saber del programaador
 
Aplicaciones de estándares de calidad en la construcción de algoritmo
Aplicaciones de estándares de calidad en la construcción de algoritmoAplicaciones de estándares de calidad en la construcción de algoritmo
Aplicaciones de estándares de calidad en la construcción de algoritmo
 
Programac io n pdf
Programac io n pdfProgramac io n pdf
Programac io n pdf
 
Conceptos básicos programaciön
Conceptos básicos programaciönConceptos básicos programaciön
Conceptos básicos programaciön
 
Estandares y diseño de algoritmo
Estandares y diseño de algoritmoEstandares y diseño de algoritmo
Estandares y diseño de algoritmo
 
Clase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacionClase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacion
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
01. lenguajes de programación autor virtuniversidad
01. lenguajes de programación autor virtuniversidad01. lenguajes de programación autor virtuniversidad
01. lenguajes de programación autor virtuniversidad
 
Presentacion De Programacion
Presentacion De ProgramacionPresentacion De Programacion
Presentacion De Programacion
 
Programación Orientada a Aspectos (POA)
Programación Orientada a Aspectos (POA)Programación Orientada a Aspectos (POA)
Programación Orientada a Aspectos (POA)
 
5 aissexposicion1grupo4
5 aissexposicion1grupo45 aissexposicion1grupo4
5 aissexposicion1grupo4
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
presentacion I BTP
presentacion I BTPpresentacion I BTP
presentacion I BTP
 

Similar a Introduccion de ing de software (20)

Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.software
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
PARADIGMAS
PARADIGMASPARADIGMAS
PARADIGMAS
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Prograbasica 01
Prograbasica 01Prograbasica 01
Prograbasica 01
 
Lógica de programación
Lógica de programaciónLógica de programación
Lógica de programación
 
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE.
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE. SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE.
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE.
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Paula guia
Paula guiaPaula guia
Paula guia
 
Presentación de software
Presentación de softwarePresentación de software
Presentación de software
 
Presentación de software
Presentación de softwarePresentación de software
Presentación de software
 
Presentación de software
Presentación de softwarePresentación de software
Presentación de software
 
Presentación de software
Presentación de softwarePresentación de software
Presentación de software
 
Guia 1 (itca san Miguel) Carlos Najarro
Guia 1 (itca san Miguel) Carlos NajarroGuia 1 (itca san Miguel) Carlos Najarro
Guia 1 (itca san Miguel) Carlos Najarro
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Manual de introduccion de ingeniería-del-software, metodologias
Manual de introduccion de ingeniería-del-software, metodologiasManual de introduccion de ingeniería-del-software, metodologias
Manual de introduccion de ingeniería-del-software, metodologias
 
Guia numero 1
Guia numero 1Guia numero 1
Guia numero 1
 
Diapoesatx
DiapoesatxDiapoesatx
Diapoesatx
 
Diapox
DiapoxDiapox
Diapox
 
Diapox
DiapoxDiapox
Diapox
 

Último

Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 

Último (7)

Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 

Introduccion de ing de software

  • 1. Ingeniería de Software Cristian Alvaro Agreda Rodriguez
  • 2. ¿Qué es la Ingeniería de Software? Nato1968 (organización de tratado del atlántico norte) para que algo sea calificado en ingeniería de software tiene que tener enfoque sistemático, disciplinado y cuantificable del desarrollo operación y mantenimiento de software. Al decir disciplinado quiere decir que el equipo de desarrollo se mantiene dentro de ciertas reglas de desarrollo y cuantificable significa que cada progreso cada tarea se puede medir , se puede cuantificar algo parecido a un número no tan preciso, pero se intenta determinar el avance o el retroceso o falta de avance en el proyecto.
  • 3. ¿Qué es la Ingeniería de Software? Parnas1978(Investigador norteamericano) La construcción de múltiples versiones de un software llevada a cabo por múltiples personas. Quiere decir que un programa que hacemos nosotros solos una vez no sería el objeto del estudio se requeriría un equipo de gente que no solo desarrollan una sola versión sino varias versiones, al hablar de varias versiones no hablamos del desarrollo si no también del mantenimiento lo. Si es desarrollados por varias personas el desarrollo es de cierta envergadura.
  • 4. ¿Qué es la Ingeniería de Software? Ghezzi 1991 Construcción de software de una envergadura o complejidad de tales que debe ser construido por equipos de ingenieros.
  • 5. ¿Qué es la Ingeniería de Software? Jackson 1998 La ingeniería Tradicional es altamente especializada y se basa en colecciones de deseos estándar o normalizados ¿Hay especialidades en la informática o cualquiera hace cualquier cosa? ¿Se basa la producción de software en diseños estándar? ¿Puede? Dice que una persona puede desarrollar cualquier tipo de programa en cualquier contexto y cualquier circunstancia formarse en una área del desarrollo de ingeniería de software
  • 6. ¿Qué es lo que hace un Ing. de software? No construye el hardware, sino el comportamiento y las propiedades que lo harán útil para algo específico. Desarrollar programas que hace una máquina de propósito general en una máquina en propósitos específicos.
  • 7. ¿Qué es lo que hace un Ing. de software? el ing de software documenta descripciones de ese software. Escribir lo que está haciendo en diferentes documentos sobre el programa que se está desarrollando, el código fuente es una de la descripción que debería describir pero no la única. Debe escribir diferentes descripciones que nos dan diferentes visiones sobre el programa que se está desarrollando. También debe verificar las descripciones, verificar que esa descripción cumple ciertas propiedades.
  • 8. Definición de documentación de software Los manuales técnicos, de usuario y otras instrucciones que facilitan el uso y operación de un producto o servicios de software constituyen la documentación de software, la cual podría incluir (donde fuera necesario) el código fuente, los códigos de error y sus significados.
  • 9. ¿Cuáles son las descripciones fundamentales? Requerimientos. - una descripción en el lenguaje natural español, inglés, de lo que el software debería hacer de las restricciones bajo las cuales debería ejecutarse. Especificaciones. – Es básicamente una descripción formal de lo que el programa debería hacer está escrita en una notación matemática en alguna forma lógica que no es exactamente un código fuente que tampoco es el lenguaje de los humanos.
  • 10. ¿Cuáles son las descripciones fundamentales? Diseño.- Es dividir el programa en partes de manera tal que se puede desarrollar cada parte de manera independiente de las de más y después poder integrar las partes para que funcionen como un todo.
  • 11. ¿Cuáles son las descripciones fundamentales? la idea es no escribir un programa monolítico donde escribimos el programa en una sola función en una sola clase, si no que se lo divide en partes para poder desarrollar cada parte independiente a las demás, para poner un desarrollador a cada parte, así acortar los plazos de desarrollo, también el diseño es importante para poder dominar la complejidad de todo un programa. Para que sea fácil de desarrollar fácil de entender.
  • 12. ¿Que debe saber un ingeniero de software? Dominar a fondo las técnicas de descripción, dominar los lenguajes formales, pero debería dominar otros lenguajes formales que no son ejecutables pero que nos ayudan a describir programas más refinadas.
  • 13. ¿Que debe saber un ingeniero de software? Moverse en distintos modelos de abstracción, debe ser capaz de ver un software como un conjunto de requerimientos también debe ser capaz de ver un software como una especificación en matemáticas o en lógica y debe ser capaz de describir programas en lenguajes formales y capaz de verificar propiedades de esos modelos.
  • 14. ¿Que debe saber un ingeniero de software? Documentar y validar los requerimientos del usuario. Escribir un modelo abstracto semi formal del diseño es decir descomponer el programa en diferentes partes que va a desarrollar independientes de las demás que algún momento las va a integrar a un programa completo
  • 15. ¿Que debe saber un ingeniero de software? Debe ser capaz de escribir una especificación funcional abstracta y formal del programa es decir una fórmula de matemática que representa al programa, aunque esta fórmula de matemáticas no sea ejecutable y finalmente debe ser capaz de ver que el programa satisface el diseño y la especificación funcional.
  • 16. ¿Dónde están las dificultades al desarrollar software? La parte difícil de desarrollar de software es especificarlo, diseñarlo y verificarlo y no la programación y así la programación también se les hace difícil por que no han hecho una especificación y un diseño como deberían hacerlo, lo difícil para desarrollar software es saber que hay que programar y como dividirlo en pequeñas partes para dominar su complejidad y no en la tarea de programar esas pequeñas partes una vez saber lo que hay que programar y lo hacen bien y rápidamente.
  • 17. ¿Por que es esencialmente diferentes a las otras ingenierías? La ingeniería de software es esencialmente a las otras por que la base teórica de la ingeniería de software es la lógica formal, la programación es una forma de lógica por lo tanto lo que subyace a la ingeniería de software basada en la lógica o en la matemática y no una ciencia basada en la física por que las otras ingenierías están de una u otra forma basadas en las físicas eso hace que haya una diferencia importante la lógica y la matérica son o que se llama ciencia formales la física, la geología la química son ciencias fácticas.
  • 18. ¿Por que es esencialmente diferentes a las otras ingenierías? Unas de las cuestiones que hace que emerge de estas diferencias entre el problema y la solución, en mayor parte de las ingenierías lo difícil,dado un problema encontrar la solución más adecuada en la ingeniería de software, en cambio lo difícil es determinar el problema no tanto determinar la solución.
  • 19. ¿Qué son los métodos formales? Son lenguajes, técnicas, herramientas basadas en la matemática y/o lógica para describir y verificar sistemas
  • 20. ¿Qué comprenden los métodos formales ? Lenguajes de especificaciones formal Verificación de modelos Prueba de teoremas de forma automática y de forma asistida Testing basados en modelos no el tradicional sino partiendo de un modelo formal del programa Cálculo de refinamiento consiste en dada una fórmula no ejecutable que representa un programa tratar de refinarla para ir convirtiéndola de madera controlada en un programa que sea ejecutable
  • 21. ¿Qué son los lenguajes de especificación formal? Tiene una sintaxis formal y estandarizada Una semántica formal descrita en términos operativos denotaciones o lógicos Un aparato deductivo que permite demostrar teoremas a partir de fórmulas en ese lenguaje Los lenguajes de especificación formal se usan casi siempre para escribir la especificación funcional de un programa