Ingeniería de Software

Description

Este es un breve mapa concptual o mental hablando sobre la ingeniería de software
Jose Gregorio PalacioSanchez
Mind Map by Jose Gregorio PalacioSanchez, updated more than 1 year ago More Less
Michael F. Gonzalez
Created by Michael F. Gonzalez almost 9 years ago
Jose Gregorio PalacioSanchez
Copied by Jose Gregorio PalacioSanchez over 4 years ago
4
0

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. Años 50
      1. No se documentaba

        Annotations:

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

          Annotations:

          • Lenguajes de programación, como RAL, Autocode, IPL, FlowMatic,Fortran, Comtran, Lips, Algol 58, Fact, Cobol y RPG
          1. Fortran
            1. Flow-Matic
              1. Cobol
            2. Años 60
              1. Desarrollo tipo "Codifica y Corrige"
                1. Cultura Hacker

                  Annotations:

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

                    Annotations:

                    • El vaquero (cowboy) que hacia desarrollos heroicos de última hora.
                    1. 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. 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. 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. 
                        2. Años 70
                          1. Fases del Desarrollo

                            Annotations:

                            • Se identifican las diferentes fases del desarrollo: requerimientos, análisis, diseño, codificación y pruebas.
                            1. 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. principios de diseño

                                Annotations:

                                • -Abstracción y refinamiento. -Modularidad. -Variaciones protegidas. -Acoplamiento. -Cohesión. -Refactorización -Reutilización.
                                1. 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. 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
                                  2. Años 80
                                    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. 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. 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. 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. 
                                          2. Años 90
                                            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. 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. Software Libre
                                                  1. 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.
                                                  2. Actualidad
                                                    1. Software Redes Neurales
                                                      1. Inteligencia Artificial
                                                        1. Conectividad
                                                          1. Software en la Nube
                                                        2. Naturaleza del Software
                                                          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.
                                                            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.”
                                                              1. 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.
                                                                1. 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.
                                                                  1. 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.
                                                                    1. 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.
                                                                      1. 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.
                                                                        1. 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. 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".  
                                                                          1. Curva de fallos del hardware
                                                                            1. Curva de fallos del Software
                                                                              1. Curva real de fallos del Software
                                                                                1. El software no se estropea, se deteriora
                                                                              2. Mitos del Software
                                                                                1. Mitos del Cliente
                                                                                  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.
                                                                                    1. 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.
                                                                                    2. Mitos del Gestor
                                                                                      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?
                                                                                        1. Mejor Equipo mejor desarrollo

                                                                                          Annotations:

                                                                                          • Por tener un pc de grandes caparacidades, Realidad: ¿Se invierte en herramientas CASE? ¿Y en entornos de desarrollo?
                                                                                          1. 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.
                                                                                          2. Mitos del Desarrollador
                                                                                            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.
                                                                                              1. 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.
                                                                                                1. 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.
                                                                                              2. ¿Que es Software?
                                                                                                1. Silberschatz
                                                                                                  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
                                                                                                  2. Somerville
                                                                                                    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.
                                                                                                    2. Pressman
                                                                                                      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.
                                                                                                    3. Michael F. Gonzalez
                                                                                                      Show full summary Hide full summary

                                                                                                      Similar

                                                                                                      Introducción a la Ingeniería de Software
                                                                                                      David Pacheco Ji
                                                                                                      Mapa Conceptual de la arquitectura de base de datos
                                                                                                      Alan Alvarado
                                                                                                      Mapa Conceptual Hardware y Software
                                                                                                      Jeferson Alfonso Alvarado Suarez
                                                                                                      Abreviaciones comunes en programación web
                                                                                                      Diego Santos
                                                                                                      Los ordenadores
                                                                                                      Adela Rico Torres
                                                                                                      ÉTICA DEL INGENIERO DE SOFTWARE
                                                                                                      Richard Esparza
                                                                                                      Evaluación Sistemas informáticos
                                                                                                      domatoga
                                                                                                      Sistemas periféricos
                                                                                                      Jose Miguel Ballesteros Orozco
                                                                                                      Servidores por Software
                                                                                                      oscar.alberto_98
                                                                                                      INGENIERIA DE SOFTWARE
                                                                                                      Francisco Flores
                                                                                                      Planificación de Proyectos
                                                                                                      Gerald Leonel Alarcon