Diferencia entre revisiones de «Usuario:ManuelRomero/isConceptoBasicos»
De WikiEducator
(20 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
+ | {{TEP}} | ||
+ | {{:Usuario:ManuelRomero/CursoJavaUml/IS/nav}} | ||
{{#widget:Slides}} | {{#widget:Slides}} | ||
{{MiTitulo| Introducción a la Ingeniería del Software}} | {{MiTitulo| Introducción a la Ingeniería del Software}} | ||
Línea 14: | Línea 16: | ||
{{Actividad| Por qué crees que es importante la documentación en el software}} | {{Actividad| Por qué crees que es importante la documentación en el software}} | ||
</div> | </div> | ||
− | |||
<div class="slide"> | <div class="slide"> | ||
Línea 31: | Línea 32: | ||
:Conjunto de programas que mide analiza y controla sucesos del mundo real a medida que ocurren. | :Conjunto de programas que mide analiza y controla sucesos del mundo real a medida que ocurren. | ||
:Ej. Aplicaciones de control de maquinaria | :Ej. Aplicaciones de control de maquinaria | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
;SOFTWARE DE INGENIERÍA Y CIENTÍFICO | ;SOFTWARE DE INGENIERÍA Y CIENTÍFICO | ||
− | [[Archivo: | + | [[Archivo:soft_cientifico.png]] |
: Utilizan algoritmos de manejo de números. | : Utilizan algoritmos de manejo de números. | ||
: Muy pesados en cuanto a cálculos | : Muy pesados en cuanto a cálculos | ||
Línea 49: | Línea 53: | ||
:Como Procesadores de texto, hojas de cálculo, GBD | :Como Procesadores de texto, hojas de cálculo, GBD | ||
:Software diseñado para ''masas ''y claramente de propósito general | :Software diseñado para ''masas ''y claramente de propósito general | ||
+ | </div> | ||
− | + | <div class="slide"> | |
− | + | ;SOFTWARE DE INTELIGENCIA ARTIFICIAL | |
− | + | [[Archivo:soft_inteligencia_artificial.png]] | |
+ | :Algoritmos no numéricos para resolver problemas complejos. | ||
+ | :Aplican razonamiento para llegar a conclusiones a partir de alguna premisa. | ||
− | + | ;SOFTWARE DE GESTIÓN | |
+ | [[Archivo:soft_gestion.png]] | ||
+ | : Realiza tareas de procesamientos de datos y operaciones de cálculo interactivo. | ||
+ | : Trabajan con gran cantidad de información y permite automatizar gran parte de procesos en las empresas. | ||
+ | : Los sistemas de información de gestión, suelen acceder a grandes bases de datos que contienen información comercial | ||
+ | : Estas aplicaciones reestructuran los datos existentes: | ||
+ | : Para facilitar las operaciones comerciales | ||
+ | : Para gestionar la toma de decisiones | ||
+ | : Además de las tareas convencionales de procesamiento de datos (Aplicaciones por lotes), las aplicaciones de gestión, también realizan cálculo interactivo, | ||
+ | </div> | ||
− | + | <div class="slide"> | |
− | SOFTWARE | + | = CARACTERÍSTICAS DEL SOFTWARE = |
+ | ===PECULIARIDADES DEL SOFTWARE=== | ||
+ | *Son muchas las características que podríamos enumerar del software. | ||
+ | *Todas ellas tienen que ver con su naturaleza '''lógica '''y no '''física.''' | ||
+ | *No es lo mismo hacer un coche (ensamblar componentes físicos), que hacer un programa (conjuníto de sofware que va a automatizar una determinada tarea) | ||
− | * | + | *Podríamos enumerar las siguientes características: |
− | * | + | ** |
− | * | + | ** Se desarrolla, no se fabrica |
− | * | + | ** No se estropea, pero se deteriora (su naturaleza no física) |
− | * | + | ** Se construye a medida, en vez de ensamblar componentes existentes. (Idea que se intenta cambiar sobre todo con la programación orientada a objetos) |
− | * | + | ** Es una industria no es un arte |
− | * | + | [[Archivo:sort_industria_o_arte.png]] |
+ | </div> | ||
− | = | + | <div class="slide"> |
− | + | ||
− | + | === CURVA DE FALLOS HARDWARE/SOFTWARE=== | |
+ | *Dada su naturaleza '''lógica''' en teoría no se estropea | ||
+ | *cuesta ponerlo en marcha (al principio al construirlo se identifican y corrigen fallos) | ||
+ | [[Archivo:Soft_evolucion_tiempo_teoria.png]] | ||
− | + | *En cambio el hardware tras pasar un tiempo de pruebas entra en un estado funcional | |
+ | [[Archivo:hard_evolucion_tiempo.png]] | ||
+ | </div> | ||
− | + | <div class="slide"> | |
− | + | ===CURVA DE FALLOS HARDWARE/SOFTWARE=== | |
− | + | *En la realidad el software durante su vida en un 98% de los casos hay que modificarlo (el 2% que no se modifica es por que seguramente no se usa). | |
− | + | *Existen 3 razones por las cual se puede modificar | |
− | + | ** Mejoraras | |
− | + | ** Adaptarlo a nuevas necesidades | |
− | + | ** Solucionar fallos detectados a posterior | |
− | [[Archivo: | + | *La experiencia demuestra que después de las modificaciones el software pierde calidad |
+ | *No funciona igual de bien que antes | ||
+ | *Esta pérdida de va sumando a nuevas modificaciones según vemos en el diagrama | ||
+ | [[Archivo:Soft_evolucion_tiempo_real.png ]] | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | = LOS PROBLEMAS DEL SOFTWARE = | ||
+ | ===ALGUNAS CIRCUNSTANCIAS ASOCIADAS AL SOFTWARE=== | ||
+ | *Son muchos los problemas que se le asocian al software | ||
+ | *Mas que problemas son limitaciones ligadas a su naturaleza lógica | ||
+ | *Limitaciones humanas no del software | ||
+ | #El software, no es capaz de crecer al ritmo del hardware | ||
+ | #Plazos de entrega inaceptables | ||
+ | ##Todo el mundo quiere sus aplicaciones para ayer | ||
+ | ##La gente tiene miedo a que cuando se terminen queden obsoletas | ||
+ | ##Retrasos no previstos | ||
+ | #Difícil mantenimiento | ||
+ | ##Mal diseño | ||
+ | ##Mala utilización de recursos | ||
+ | ##Software no acorde con los requisitos previamente establecidos | ||
+ | ##Errores en los programas | ||
+ | #Otros | ||
+ | ##Poca sensibilidad a los errores externos | ||
+ | #Errores humanos | ||
+ | #Dificultad de puesta en marcha | ||
+ | #Desbordamiento de costes | ||
+ | </div> | ||
− | En | + | <div class="slide"> |
+ | === LOS PROBLEMAS DEL SOFTWARE === | ||
+ | *En Resumen podríamos afirmar que el software: | ||
+ | **'''Planificación y estimación de costes imprecisos''' | ||
+ | **'''Productividad no sintonizada con exigencias''' | ||
+ | **'''Calidad muchas veces inaceptables''' | ||
+ | ''''Todo esto desencadena'''' | ||
+ | '''Crisis del software. Es un concepto en el cual aún podemos decir que estamos inmersos''' | ||
+ | ''''La solución a la crisis'''' | ||
+ | '''Aplicar Ingeniería en el Software''' | ||
+ | </div> | ||
+ | === COMPLEJIDAD DEL SOFTWARE === | ||
+ | * La ''complejidad del software'' es una propiedad '''esencial''', no una propiedad accidental | ||
+ | ; Motivos por los que el soft es complejo | ||
+ | :Es complejo definir el dominio del problema | ||
+ | :Cliente, Desarrollador | ||
+ | :Gestionar el proceso de desarrollo | ||
+ | :Acabar en el plazo | ||
+ | :No sobrepasar costos | ||
+ | :Asumir riesgos | ||
+ | :El desarrollo del Soft, ha de ser flexible | ||
+ | :Abstracción (imaginación), ... | ||
+ | [[Archivo:soft_complejidad.png]] | ||
+ | </div> | ||
− | + | <div class="slide"> | |
+ | === CRISIS DEL SOFTWARE === | ||
+ | * Más que crisis, enfermedad degenerativa | ||
+ | # Causas que lo ocasionan | ||
+ | ## Software es elemento lógico, no físico ( su naturaleza no comprendida) | ||
+ | ## Responsable de desarrollo soft sin conocimientos soft | ||
+ | ## Anarquía del programador artesano | ||
+ | ## Resistencia al cambio | ||
+ | # Soluciones | ||
+ | ## Enfocar el software como una ingeniería | ||
+ | ## Mejorar continuamente técnicas y herramientas | ||
+ | </div> | ||
− | + | <div class="slide"> | |
− | + | = MITOS DEL SOFTWARE= | |
+ | *Mas que mitos son situaciones que se pueden producir | ||
+ | *Identificamos tres roles | ||
+ | #El rol cliente es quien solicita el software | ||
+ | #El rol desarrollador quien va desarrollarloç | ||
+ | #El rol gerente quien coordina al equipo de desarrollador | ||
+ | </div> | ||
− | + | <div class="slide"> | |
+ | ===MITOS DEL SOFTWARE: Cliente === | ||
+ | * Una declaración inicial de objetivos es suficiente | ||
+ | **De esta forma ya podemos empezar a escribir programas. | ||
+ | **Mas adelante ya detallaremos con más profundidad . | ||
+ | * Los requisitos del proyecto cambian continuamente | ||
+ | **Esto no supone ningún problema, los cambios pueden acomodarse fácilmente | ||
+ | **Esto es así porque el software es flexible. | ||
+ | </div> | ||
− | + | <div class="slide"> | |
+ | === MITOS DEL SOFTWARE: Desarrollador === | ||
+ | * Una vez que escribimos el programa y hacemos que funcione, se acabó el trabajo | ||
+ | * No podemeos comprobar la calidad hasta que el programa se ejecuta | ||
+ | * Lo que se entrega al terminar el proyecto es el programa funcionando. | ||
+ | </div> | ||
− | + | <div class="slide"> | |
+ | === MITOS DEL SOFTWARE: Gerente === | ||
+ | * YA tengo los equipos más moderno y las últimas versiones de sistemas de desarrollo | ||
+ | * Si vamos retrasados incorporo más personas al proyecto y así termino antes | ||
+ | </div> | ||
− | + | <div class="slide"> | |
+ | =LA INGENIERÍA DEL SOFTWARE= | ||
+ | === SOLUCIÓN A LA CRISIS DEL SOFTWARE: INGENIERÍA DEL SOFTWARE. DEFINICIONES === | ||
+ | *Lo que se ha demostrado que hay que hacer es desarrollar software con una organización | ||
+ | *No se puede empezar sin más a escribir código | ||
+ | *Hay que aplicar la ingeniería al desarrollo de software | ||
+ | {{Definicion|''Ingeniería de software''(deFrits Bauer (1969)):'''Establecimiento y uso de principios de ingeniería robustos, orientados a obtener software económico que sea fiable y funcione de manera eficiente sobre máquinas reales'''}} | ||
− | + | {{Definicion|''Ingeniería de software'' '''El IEEE lo define''': ''Ingeniería es la aplicación de un método sistemático, estructurado y cuantificable a estructuras, máquinas, productos, sistemas o procesos.''}} | |
− | + | {{Definicion|'''Ingeniería del software es la aplicación de un método sistemático, estructurado y cuantificable al desarrollo, operación y mantenimiento de software.'''}} | |
− | + | </div> | |
− | + | <div class="slide"> | |
− | + | === OBJETIVOS DE LA INGENIERÍA DEL SOFTWARE === | |
+ | * ''La Ingeniería del software'' persigue la producción de sistemas de '''calidad''', a '''bajo coste''' y a '''tiempo''' | ||
+ | [[Archivo:objetivos_is.png]] | ||
+ | </div> | ||
− | + | <div class="slide"> | |
− | + | === INGENIERÍA DEL SOFTWARE Y METODOLOGÍAS === | |
+ | <br/> | ||
+ | {{Definicion| A nivel práctico podemos decier que ingeniería del software es '''Conjunto de tareas y actividades detalladas que hay que seguir para desarrollar un software'''. ''Un conjunto de métodos organizados y estructurados constituyen la idea de '''metodología''' ''}} | ||
+ | *Una metodología incluye tareas como | ||
+ | # Planificación y estimación | ||
+ | # Análisis de requisitos | ||
+ | # Diseño de estructuras de datos, arquitectura de programas y procedimientos algorítmico | ||
+ | # Codificación | ||
+ | # Pruebas | ||
+ | # Mantenimiento | ||
+ | </div> | ||
− | + | <div class="slide"> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | = | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ===HERRAMIENTAS=== | |
− | + | * Constituyen un soporte más o menos automatizado para desarrollar las tareas de los métodos | |
− | + | * CASE (Computer Aided Software Engineering) | |
− | + | #Conjunto de herramientas integradas .. | |
− | + | #de forma que la información creada por una herramienta puede ser usada por otra, ... | |
− | + | # estableciéndose un sistema para el soporte del desarrollo del software. | |
− | + | * El CASE lo que hace | |
− | + | # Integrar información | |
− | + | # Facilitar técnicas para el desarrollo del proyecto | |
− | + | *Ejemplos | |
− | + | ''Rational Rose'' ''Argo UML'' | |
− | + | </div> | |
− | + | <div class="slide"> | |
− | + | ===METODOLOGÍA === | |
− | + | *Es importante seguir algún criterio para realizar un software | |
− | + | *Tengo que hacer un desarrollo ¿Por donde emiezo? | |
− | + | *La solución es usar una metodología | |
− | + | *Me indicará | |
− | + | # Etapas de un proyecto | |
− | + | # Tareas por etapa | |
− | == | + | # Salidas de cada tarea |
− | + | # Restricciones que se aplican | |
− | + | # Herramientas a utilizar | |
− | + | # En definitiva me indica cómo | |
− | + | '''Se gestiona, controla y realiza un proyecto''' | |
− | + | una metodología es la ayuda que tengo para conseguir un objetivo | |
− | + | [[Archivo:Simil_metodología.png]] | |
− | + | </div> | |
− | + | <div class="slide"> | |
− | + | === CICLO DE VIDA. DEFINICIÓN COLOQUIAL === | |
− | + | * Sucesión de pasos a través de los cuales el producto software va progresando. | |
− | + | * Estos abarcan desde el planteamiento del problema a resolver mediante el producto software, | |
− | + | * hasta la retirada de dicho producto una vez que ha finalizado su vida operativa | |
− | + | [[Archivo:soft_ciclo_vida.png]] | |
− | + | </div> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | == | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | == CICLO DE VIDA. DEFINICIÓN COLOQUIAL == | + | |
− | + | ||
− | + | ||
− | + |
Última revisión de 04:18 3 feb 2015
Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |