Ingeniería de Software

Michael F. Gonzalez
Mind Map by Michael F. Gonzalez , updated 8 months ago
579
13
0

Description

Este es un breve mapa concptual o mental hablando sobre la ingeniería de software

Resource summary

Ingeniería de Software

Annotations:

  • http://www.um.es/docencia/barzana/IAGP/IAGP2-Ingenieria-software-introduccion.html
  • http://www.naturastock.com/rsdotnet/iic3140/materia/historiaingsoft1a.jpg
  • http://fundacioniai.org/Libro3.pdf Libro Blanco de La Ingeniera de Software en America Latina
  • Introducion a la Ingenieria del software https://books.google.com.co/books?id=rXU-WS4UatYC&pg=PA86&lpg=PA86&dq=historia+de+la+ingenieria+de+software&source=bl&ots=vvuIz8Zn2_&sig=j34i23B4NgvsRzLgQORNaUXb6H8&hl=es-419&sa=X&ved=0ahUKEwj_3oGa_vPKAhXFHx4KHfk8C-E4ChDoAQhOMAk#v=onepage&q&f=false
  • https://diegoingenieriadesoftware.wordpress.com/historia-del-software/
  • http://sg.com.mx/content/view/356
  • https://prezi.com/gquilackw9dl/linea-del-tiempo-evolucion-del-software/
  • https://prezi.com/g5pezvis8u8x/la-clasificacion-del-software-segun-su-utilidad/
  • http://elsoftwaremay1.blogspot.com.co/2008/10/clasificacion-del-software.html
  • http://tecnologiaedu.us.es/cuestionario/bibliovir/paz10.pdf
  • http://elsoftwaregomezp.blogspot.com.co/2008/10/clasificacion-del-software.html
  • http://www.um.es/docencia/barzana/IAGP/IAGP2-Ingenieria-software-introduccion.html
1 Evolución

Annotations:

  • Aca veremos, como el software atraves de los años a ayudado a la evolución
  • Bibliografia: 1:http://www.um.es/docencia/barzana/IAGP/IAGP2-Ingenieria-software-introduccion.html 2:http://fundacioniai.org/Libro3.pdf 3:https://books.google.com.co/books?id=rXU-WS4UatYC&lpg=PA86&dq=historia%20de%20la%20ingenieria%20de%20software&pg=PA86#v=onepage&q&f=false 4:https://diegoingenieriadesoftware.wordpress.com/historia-del-software/ 5:http://sg.com.mx/content/view/741 6:http://www.eumed.net/tesis-doctorales/2014/jlcv/software.htm 7:https://prezi.com/gquilackw9dl/linea-del-tiempo-evolucion-del-software/ 8:http://www.sites.upiicsa.ipn.mx/polilibros/portal/polilibros/p_terminados/PolilibroFC/Unidad_III/Unidad%20III_8.htm 9:http://ocw.usal.es/ensenanzas-tecnicas/ingenieria-del-software/contenidos/Tema5-Principiosdeldisenodelsoftware-1pp.pdf 10:http://isg2.pbworks.com/w/page/7624279/Principios%20de%20Dise%C3%B1o 11:http://sis324loo.blogspot.com.co/2008/09/historia-de-los-lenguajes-de_29.html 12:http://alvearjofre.galeon.com/ 13:http://www.eumed.net/libros-gratis/2011b/939/SEIS%20SIGMA%20COMO%20HERRAMIENTA%20DE%20GESTION.htm
1.1 Años 50
1.1.1 No se documentaba

Annotations:

  • Los programadores pasaban inmediatamente a escribir código, sin analizar ni diseñar el sistema en construcción.
1.1.2 Primeros Compiladores

Annotations:

  • Lenguajes de programación, como RAL, Autocode, IPL, FlowMatic,Fortran, Comtran, Lips, Algol 58, Fact, Cobol y RPG
1.1.2.1 Fortran
1.1.2.2 Flow-Matic
1.1.2.3 Cobol
1.2 Años 60
1.2.1 Desarrollo tipo "Codifica y Corrige"
1.2.2 Cultura Hacker

Annotations:

  • Se inició la cultura del hacker en el buen sentido de la palabra, es decir experto en programación
1.2.3 Desarrollo Cowboy

Annotations:

  • El vaquero (cowboy) que hacia desarrollos heroicos de última hora.
1.2.4 Aparece el lenguaje Basic

Annotations:

  • Beginner's All-purpose Symbolic Instruction Code. Diseñado en 1964 porJohn George Kemeny y Thomas Eugene Kurtz en el Dartmouth College en Nuevo Hampshire, Estados Unidos
1.2.5 Termino Ingeniería de Software

Annotations:

  • En el Comite de Ciencia de la OTAN celebrada en Garmisch (Alemania) celebrada en octubre de 1968 Fritz Bauer utiliza por primera vez el termino ingenieria de software
1.2.6 Crisis del Software

Annotations:

  • La crisis del software abarca  los problemas asociados con cómo desarrollar el software, cómo mantener un volumen creciente de software existente y cómo podemos esperar satisfacer la demanda creciente de software. 
1.3 Años 70
1.3.1 Fases del Desarrollo

Annotations:

  • Se identifican las diferentes fases del desarrollo: requerimientos, análisis, diseño, codificación y pruebas.
1.3.2 Programacion Estructurada

Annotations:

  • La programación estructurada propone segregar los procesos en estructuras lo más simple posibles, las cuales se conocen como secuencia, selección e interacción
1.3.3 principios de diseño

Annotations:

  • -Abstracción y refinamiento. -Modularidad. -Variaciones protegidas. -Acoplamiento. -Cohesión. -Refactorización -Reutilización.
1.3.4 Modelo de Cascada

Annotations:

  • Considera las actividades fundamentales del proceso especificación, desarrollo, validación y evolución. Los representa como fases separadas del proceso, tales como la especificación de requerimientos, el diseño del software, la implementación, las pruebas, etcétera. 
1.3.5 surgieron empresas dedicadas al desarrollo de software

Annotations:

  • El software se empieza a ver como un producto comercial, que se puede vender a usuarios con necesidades específicas
1.4 Años 80
1.4.1 La ingeniería de software como profesion

Annotations:

  • A principios de los años 80 la ingeniería del software ya había surgido como una genuina profesión, para estar al lado de las ciencias de la computación y la ingeniería tradicional.
1.4.2 Herramientas CASE

Annotations:

  • las herramientas CASE son herramientas que generan código pero esto no ayudo a mejorar la calidad a gran nivel porque se necesita también conocimiento por parte del desarrollador pero en si fue un gran avance porque los desarrolladores tienen una herramienta como cada profesión tiene su herramienta de ayuda
1.4.3 Metodos Formales

Annotations:

  • Los métodos formales son los que ayudaron a tener una buena calidad de código, estos métodos se utilizan hasta hoy en día porque son de buena calidad, estos métodos son la programación estructurada y la programación orientada a objetos. 
1.4.4 Auge de la programacion Orientada a Obejtos

Annotations:

  • Bjarne Stroustrup de AT&T Labs., amplió el lenguaje C para crear C++ que soporta la programación Orientada a Objetos. En esta misma década se desarrollaron otros lenguajes Orientados a Objetos como Objective C, Common Lisp Object System (CIOS), object Pascal, Ada y otros. Posteriores mejoras en herramientas y lanzamientos comerciales de C++ por distintos fabricantes, justificaron la mayor atención hacia la programación Orientada a Objetos en la comunidad de desarrollo de software. 
1.5 Años 90
1.5.1 Lenguaje de Modelado Unificado

Annotations:

  • Es un lenguaje de modelado visual que se usa para especificar, visualizar, construir y documentar artefactos de un sistema de software. El lenguaje UML comenzó a gestarse en octubre de 1994, cuando Rumbaugh se unió a la compañía Rational fundada por Booch.
1.5.2 Concurrencia

Annotations:

  • Es el nombre dado a notaciones de programación y técnicas para expresar paralelismo potencial y resolver los problemas resultantes de sincronización y de comunicación
1.5.3 Software Libre
1.5.4 Seis Sigma

Annotations:

  • un método de gestión de calidad combinado con herramientas estadísticas cuyo propósito es mejorar el nivel de desempeño de un proceso mediante decisiones acertadas, logrando de esta manera que la organización comprenda las necesidades de sus clientes.
1.6 Actualidad
1.6.1 Software Redes Neurales
1.6.2 Inteligencia Artificial
1.6.3 Conectividad
1.6.4 Software en la Nube
2 Naturaleza del Software
2.1 Cambiante

Annotations:

  • El software inevitablemente evoluciona. El cambio (referido como mantenimiento de software) conduce este proceso y ocurre cuando se corrigen errores, se hacen adaptaciones para nuevos ambientes, cuando el usuario solicita cambios funcionales, y cuando se realiza una reingeniería de la aplicación para modernizarla.
2.1.1 Ley del cambio continuo

Annotations:

  • (1974). Un software “que se utiliza debe adaptarse continuamente, en caso contrario, el programa se hace progresivamente menos satisfactorio. Estas adaptaciones son el resultado del cambio en la operación del entorno en el cual la aplicación cumple una función.”
2.1.2 Ley de la complejidad creciente

Annotations:

  • (1974). “A medida que evoluciona un programa, su complejidad se incremente, a menos que se trabaje para mantenerla o reducirla. […] Esto a su vez implica un aumento progresivo del esfuerzo de mantenimiento, a menos que se realice algún tipo de mantenimiento perfectivo a este respecto.
2.1.3 Ley de la auto regulación

Annotations:

  • (1974). El proceso de evolución del [software] se autorregula mediante indicadores de valores esperados que son en el fondo medidas de atributos de producto y procesos cercano a lo que considera un funcionamiento normal. Aquí se da el caso de que la evolución del software es llevada a cabo por un equipo que opera el desarrollo desde una organización más grande.
2.1.4 Ley de la conservación de la estabilidad organizacional

Annotations:

  • (1980). “La velocidad de actividad global efectiva media en un sistema en evolución es invariante a lo largo del ciclo de vida del producto. Se considera que el esfuerzo gastado en la evolución del sistema se determina por decisiones de dirección. Esto es por supuesto así en un cierto grado, pero su influencia está limitada por factores externos respecto al empleo, la disponibilidad de personal competente, etc. NO obstante, también influyen los atributos del sistema, por ejemplo, la complejidad.
2.1.5 Ley de la conservación de la familiaridad

Annotations:

  • (1980). “Durante la vida activa de un [software en evolución], el contenido de las versiones sucesivas es estadísticamente invariante. Uno de los factores que determina el progreso de un desarrollo de software es la familiaridad de todos los implicados. Cuantos más cambios y adiciones se hacen a una versión, es más difícil que todos los implicados la conozcan.
2.1.6 Ley del decrecimiento de la calidad

Annotations:

  • (1996). “Los [software] serán percibidos como de calidad decreciente a menos que se mantengan de manera rigurosa y se adapten al entorno operativo cambiante.Esta percepción de la calidad decreciente tiene que ver con los cambios en los criterios de aceptabilidad de los usuarios.” En este caso la evolución se da por la percepción de las personas de exigir más y más a productos que perciben fácilmente modificables. O, los sistemas podrían perder su calidad, a menos que se adapten y mantengan de acuerdo a los cambios en su ambiente operacional.
2.1.7 Ley del sistema de retroalimentación

Annotations:

  • (1996). Los procesos evolutivos constituyen sistemas de retroalimentación multiniveles, multilazos, y multiagentes y deben ser tratados como tales para adquirir una mejoría significativa.
2.2 Errores

Annotations:

  • Algunas causas a los problemas del software son: Responsables no cualificados, Falta de comunicación entre las partes, Desconocimiento de las nuevas tendencias, Resitencia al cambio, Una amplia mitologia y falta de "cultura informatica".  
2.2.1 Curva de fallos del hardware
2.2.2 Curva de fallos del Software
2.2.3 Curva real de fallos del Software
2.2.4 El software no se estropea, se deteriora
3 Mitos del Software
3.1 Mitos del Cliente
3.1.1 Un software se puede modificar facilmente

Annotations:

  • – Mito: Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fácilmente porque el software es flexible -Realidad: Es cierto que los requisitos cambian, pero el impacto del cambio varía en función del momento en que se introduzcan los cambios.
3.1.2 Declaración general

Annotations:

  • – Mito: Una declaración general de objetivos es suficiente para comenzar a escribir los programas, y podemos dar los detalles más adelante. -Realidad: Una mala definición inicial conlleva trabajo inútil.
3.2 Mitos del Gestor
3.2.1 Tenemos un manual de desarrollo

Annotations:

  • ¿Qué más necesitamos? Realidad. ¿Se entiende? ¿Se utiliza? ¿El personal tiene práctica en su aplicación?
3.2.2 Mejor Equipo mejor desarrollo

Annotations:

  • Por tener un pc de grandes caparacidades, Realidad: ¿Se invierte en herramientas CASE? ¿Y en entornos de desarrollo?
3.2.3 Si se falla añadir mas programadores

Annotations:

  • Si fallamos en la planificación, podemos añadir más programadores y adelantar el tiempo perdido (concepto de horda mongoliana). Realidad: En el proceso de software añadir gente puede retrasar más el proyecto. La gente debe añadirse de forma planificada y ordenada. Además si sacamos a gente de otros proyectos, en último término retrasaremos otros proyectos.
3.3 Mitos del Desarrollador
3.3.1 Solo puedo medir su calidad al ejecutarse

Annotations:

  • – Mito: Hasta que no tenga el programa ejecutándose, no tengo forma de medir su calidad. -Realidad: Revisiones Técnicas Formales durante el desarrollo de software.
3.3.2 Lo ultimo que se entrega es el programa

Annotations:

  • -Mito: Lo último que se entrega al terminar el proyecto es el programa funcionando. -Realidad: Software = programas + datos + documentos.
3.3.3 Programa funcionando trabajo terminado

Annotations:

  • – Mito: Una vez que escribamos el programa y hagamos que funciones, nuestro trabajo ha terminado. Realidad: Entre el cincuenta y el setenta por ciento de todo el esfuerzo dedicado a un programa se realiza después de que se entregue al cliente por primera vez.
4 ¿Que es Software?
4.1 Silberschatz
4.1.1 Es la parte logica de la computadora, que permite el manejo de los recursos y la realizacion de tareas especificas, tambien denominados programas. Este se clasifica en: 1. Software de sistemas 2. Software de aplicacion 3. Tipo de trabajo realizado
4.2 Somerville
4.2.1 Es una disciplina 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.
4.3 Pressman
4.3.1 Es el establecimiento y uso de principios robustos de la ingeniería a fin de obtener económicamente software que sea fiable y que funcione eficientemente sobre máquinas reales.
5 Michael F. Gonzalez
Show full summary Hide full summary

Suggestions

ÉTICA DEL INGENIERO DE SOFTWARE
Richard Esparza
Servidores por Software
oscar.alberto_98
Evaluación Sistemas informáticos
domatoga
Sistemas del Cuerpo Humano
Diego Santos
La ingenieria de requerimientos
Sergio Abdiel He
Software educativo
LuisChavez
Aula Virtual
Sonnyer Martínez
TEORÍA GENERAL DE SISTEMAS
jorgesanchez1019
El Cuerpo Humano: Aparatos y Sistemas
Diego Santos
Mantenimiento preventivo y predictivo de computadores
David Rojas