Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js
ANDRES CAMILO YANEZ ESCOBAR
Mind Map by , created more than 1 year ago

Mapa conceptual sobre la evolución e impacto de la Ingeniería de Software

114
0
0
ANDRES CAMILO YANEZ ESCOBAR
Created by ANDRES CAMILO YANEZ ESCOBAR over 4 years ago
Rate this resource by clicking on the stars below:
1 2 3 4 5 (0)
Ratings (0)
0
0
0
0
0

0 comments

There are no comments, be the first and leave one below:

Close
Ingeniería de SoftwareEvolución1940 y 1950 el desarrollo de software se realizaba sinplanificación. El software se creaba, se ejecutaba y antelos fallos se depuraba. La estructura del diseño eraimplícita, y no existía la documentación.1970 Surge la multi-programación y lossistemas multi-usuario.¡¡Prueba y Error!!Aparece el conceptoHombre-MáquinaNace la primera generación degestión de bases de datosCodifica y corrigeLos errores tenían que ser corregidosapenas se detectaban fallas, y losprogramas cambiaban al cambiar losrequisitosDado que existían muchas fallas, losdesarrollos sobrepasaban el tiempo y loscostos, haciendo que el software fuera pocoflexible, y esto ocasiona el fenómeno de laCRISIS DEL SOFTWAREPor esto, nace el término deIngeniería del Software, en unaconferencia financiada por laOTAN1980, es caracterizada por suproductividad y escabilidad de sistemasde desarrollo.La industria del software seconvierte en la cuna de laeconomía mundialLas técnicas de desarrollo del software (4Gls) incrementanla productividad a través de la programación por el usuario.Se introduce la tecnología de la programaciónorientada a objetos (POO) a través de multipleslenguajes de programación.Se crea el primer módulode madurez de capacidadde procesos (SW-CMM)1990, la orientación a objetos seextiende a las fases de análisis y diseño.Se implementa ellenguaje demodelado (UML)Se genera el 1er procesocomercial de desarrolloorientado a objetos (RUP)Se define el modelo en espiralpara el desarrollo basado enanálisis de riesgosSe define el desarrollo desoftware iterativo eincremental.El software era privado, por lo tanto surge lanecesidad de crear proyectos que impulsenla creación de software libre y código abierto.La usabilidad de sistemas seconvierte en el foco deatención e investigación.En la actualidad los temas atañen a laagilidad en el desarrollo y el valor para elcliente.Dispositivos como celulares,PDAs entre otros, seinvolucran en el ciclo de vida.Se incrementa la programaciónde software empaquetado.Se incrementa el desarrollodirigido por modelos y seintegra el desarrollo de softwarecon el de sistemas.La conectividad global por parte delinternet evoluciona la economía.La tecnología digital está transformando a lasorganizaciones de negocio. Afectan directamente la decisiónde los administrativos, la planificación, y a la producción.Actualmente se dispone de lenguajes deprogramación más sofisticados,procesos de desarrollo más maduros, ylas aplicaciones que actualmente sedesarrollan son mucho más complejas.Para esta época el coste delhardware era extremadamentesuperior al softwareSe consideraba que el ingeniero desoftware solía ser el mismo que el dehardware1960, la época de losfamosos códigosespaguetti"Ideas como "reutilización decódigo" y "arquitectura desoftware" se van planteandoSe impulsa la programaciónestructuradaSe cita por primera vez eltérmino fábrica de softwareManifiesto ágil, como intentode simplificar la complejidadde las metodologíasexistentesCrisis del SoftwareA medida que crecen las técnicas dedesarrollo de software, la exigencia de lacalidad del mismo también aumenta.Ocasionando así una espiral de costosdel software.Ocasionando así una escasez de ingenieros de software. En 1991 se estimóque hubo un déficit de un millón de profesionales de software que nocumplían con las exigencias.Solo el programador conocíay entendía su código.Si la especificación de requisitos esincorrecta, incompleta o es ambigua,por muy bien que se desarrolle elsoftware posteriormente, resultado finalserá pobre.La mala especificación de los requerimientos desoftware es de las principales causas de losproblemas de los sistemas basados en software.EnColombiaDebido al incremento de facultades, programasy denominaciones, es fácil no comprender elverdadero campo de ingeniero. Esto causó quese requira formar un nuevo tipo de ingeniero.Existía una ausencia casi total deinvestigación y de estimulo a la creatividad yla innovación.El individualismo y la falta de solidaridad no facilitanel trabajo en grupo ni las construcciones colectivas.Uno de los principales problemas queocasionaron esta crisis, es la utilización de lametodología derivada de programar-corregirCon la aparición de internet, se implementaron los requerimientos nofuncionales. Tales como la escabilidad, la seguridad, tolerancia a fallas, elmanejo transaccional entre otros. Todos estos hacen de la construcción desoftware un reto.Esto ocasiona que haya una gran cantidad de proyectos que fallen,sobrepasando los costos y los tiempos. Y así, clientes insatisfechos.Los mitosLos requerimientos son clarosdesde el principio.Los diseños se pueden elaborarde manera completa y validarseantes de la construcción.El proceso de construcciónes predeciblehay gente bien entrenada yespecializada para la realización delas distintas labores.“se deben tener todos los requerimientos delsistema claramente definidos antes de empezarel proyecto para que éste sea exitoso”.“diseñar completamente antes de empezar a programar para que sea másefectiva la labor de programa- ción y más independiente”.No puede de ser predecible. ¿Cómo preveer cuántas veces el cliente va acambiar de opinión? ¿Cómo prever en qué momento nos vamos a darcuenta que al diseño le faltaba considerar la escabilidad?Es difícil conseguir personas bien entrenadas y especializadas en las distintas tecnologías, metodologías y procesos.Tampoco están claro los roles, ¿Quién analiza es capaz de programar? ¿Quién dirige el proyecto sabe de dirección deproyectos o de las tecnologías que se usan? ¿Quién diseña prueba? ¿El que programa habla con el cliente?Ante esto, gracias al proceso unificado (UP) y en particular(RUP) el desarrollo por ciclos es una buena estrategia deconstrucción de software.El proceso de software por equipos (TSP)también basa su estrategia en ciclosincrementales.“se deben tener todos los requerimientos delsistema claramente definidos antes de empezarel proyecto para que éste sea exitoso”.Es normal que el cliente y los usuarios no sepan los detalles de lo que quieren. También esnormal que una vez la aplicación esté en uso, aparezcan nuevas posibilidades o secuestionen los requerimientosLo correcto es manejar pocos requerimientos a la vez paralograr una mayor focalización. Comenzar centrándose en lo quele da valor al cliente.Es imposible hacer un diseño completo y detallado para unconjunto de requerimientos incompletos y ambiguos.Diseñar es todo un proceso de tomar decisiones sobre cómoromper en partes (componentes, módulos, objetos, aspectos yservicios)cuando no hay claridad en los requerimientos y no se puede tener completos losdiseños, es una falacia pretender planificar en detalle el proyecto.El plan inicial debe contener la estrategia, pero por cada ciclo es necesario disponer de un plan con más detalle y luego por cada semana, el detalle necesariocomo para que se pueda hacer seguimiento, ver avance. Sobre los planes cortos no debería haber re-planeación. Se realiza en forma permanente, conduce aque se pierda la oportunidad de analizar el estimado contra lo real y, lo más importante, la oportunidad de aprender.Se ha vuelto muy complicado encontrar gente calificada que pueda construir aplicacionesutilizando las últimas tecnologías. Y por otro, los desarrolladores que manejan las últimastecnologías típicamente son los recién egresados que no tienen aún experiencia paraenfrentar problemas.Double click this nodeto edit the textClick and drag this buttonto create a new node