Diferencia entre revisiones de «Usuario:ManuelRomero/isConceptoBasicos»

De WikiEducator
Saltar a: navegación, buscar
Línea 1: Línea 1:
 
{{#widget:Slides}}  
 
{{#widget:Slides}}  
{{MiTitulo| Introducción a la ingeniería del sofwtware}}
+
{{MiTitulo| Introducción a la Ingeniería del Software}}
 
<nowiki>div class="slides layout-regular template-default"></nowiki>
 
<nowiki>div class="slides layout-regular template-default"></nowiki>
 
= CONCEPTOS GENERALES PARA EL DESARROLLO DEL SOFTWARE =
 
= CONCEPTOS GENERALES PARA EL DESARROLLO DEL SOFTWARE =
== Definiciones ==
+
=== Definiciones ===
=== Software (Pressman): ===
+
;Software (Pressman)
* '''Instrucciones''' que cuando se ejecutan proporcionan la función y el comportamiento deseado.
+
: '''Instrucciones''' que cuando se ejecutan proporcionan la función y el comportamiento deseado.
* '''Estructuras de datos''' que facilitan a los programas manipular adecuadamente la información
+
: '''Estructuras de datos''' que facilitan a los programas manipular adecuadamente la información
* '''Documentos''' que describen la operación y el uso de los programas
+
: '''Documentos''' que describen la operación y el uso de los programas
 +
*Una definición más enfocada a un software estructurado que orientado a objetos
 +
*Nos da una idea de la naturaleza lógica del software
 +
*Nos recalca la importancia de la '''documentación''' aparentemente no necesaria para que el software funcione
  
Una definición más enfocada a un software estructurado que orientado a objetos
+
{{Actividad| Por qué crees que es importante la documentación en el software}}
  
Nos da una idea de la naturaleza lógica del software
+
=== Tipos de software ===
 
+
No recalca la importancia de la '''documentación''' aparentemente no necesaria para que el software funcione
+
 
+
Actividad Por qué crees que es importante la documentación en el software
+
 
+
== Tipos de software ==
+
 
El software automatiza tareas de diferente naturaleza.  
 
El software automatiza tareas de diferente naturaleza.  
  

Revisión de 06:32 28 mar 2012

div class="slides layout-regular template-default">

CONCEPTOS GENERALES PARA EL DESARROLLO DEL SOFTWARE

Definiciones

Software (Pressman)
Instrucciones que cuando se ejecutan proporcionan la función y el comportamiento deseado.
Estructuras de datos que facilitan a los programas manipular adecuadamente la información
Documentos que describen la operación y el uso de los programas
  • Una definición más enfocada a un software estructurado que orientado a objetos
  • Nos da una idea de la naturaleza lógica del software
  • Nos recalca la importancia de la documentación aparentemente no necesaria para que el software funcione



Icon activity.jpg

Actividad

Por qué crees que es importante la documentación en el software




Tipos de software

El software automatiza tareas de diferente naturaleza.

Es muy intuitivo pensar que no requerirá las mismas necesidades un software que hace que salte un airbag de un coche donde es tiempo de respuesta debe de ser instantáneo (un segundo puede ser vital), que un software que se encarga de imprimir una nóminas donde ese requisito temporal carece de importancia (no importa que tarde 2 segundos en responder el sistema).

[[Archivo:|soft_sistemas.png]]Actividad Indica ejemplos de tipo de software


S. DE SISTEMAS

    • Sirven de herramienta para otros software
    • Ej.: S.O., Compiladores, Interpretes, CASE, Editores complejos …)
    • [[Archivo:|soft_tiempo_real]]Tienen una fuerte interacción con el hard del ordenador

S. DE TIEMPO REAL

    • Conjunto de programas que mide analiza y controla sucesos del mundo real a medida que ocurren.
    • Ej. Aplicaciones de control de maquinaria

[[Archivo:|sotf_cientifico.png]]S. DE INGENIERÍA Y CIENTÍFICO

    • Utilizan algoritmos de manejo de números.
    • Muy pesados en cuanto a cálculos
    • Aplicaciones en Astronomía Meteorología, Biología molecular.
    • Toma características de Tiempo Real.

[[Archivo:|soft_empotrado.png]]S. EMPOTRADO (FIRMWARE)

    • Reside en ROM,
    • Se utiliza para controlar productos de sistemas de los mercados
    • Sistemas que suelen correr en microcontroladores

[[Archivo:|soft_pc.png]]SOFTWARE DE PC’S

  • Como Procesadores de texto, hojas de cálculo, GBD
  • Software diseñado para masas y claramente de propósito general

[[Archivo:|soft_inteligencia_artificial.png]]SOFTWARE DE INTELIGENCIA ARTIFICIAL

  • Algoritmos no numéricos para resolver problemas complejos.
  • Aplican razonamiento para llegar a conclusiones a partir de alguna premisa.

[[Archivo:|soft_gestion.png]]

SOFTWARE DE GESTIÓN

  • 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,

CARACTERÍSTICAS 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:|soft_industria_o_arte.png]]

Curva de fallos software/ hardware

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_evloucion_tiempo_teoria.png]]


En cambio el hadware tras pasar un tiempo de pruebas entra en un estado funcional


[[Archivo:|hard_evolucion_tiempo.png]]

En la realidad el software durante su vida ei

n un 98% de los casos hay que modificarlo por una de las siguientes esas razones (el 2% que no se modifica es por que seguramente no se usa).

Mejoraras

Adaptarlo a nuevas necesidades

Solucionar fallos detectados a posterior

La experiencia demuestra que después de las modificaciones el software pierde calidad no funciona igual de bien que antes, y esta pérdida de va sumando a nuevas modificaciones según vemos en el diagrama

[[Archivo:|soft_evolucione_tiempo_real.png]]

LOS PROBLEMAS DEL SOFTWARE…

Son muchos los problemas que se le asocian al software en especial una parte fundamental es tener en cuenta que el software va a ser mantenido

–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

–Averías físicas

•Dificultad de puesta en marcha

•Desbordamiento de costes

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



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

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), …

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

MITOS DEL SOFTWARE : Cliente.

Una declaración inicial de objetivos es suficiente para empezar a escribir programas. Ya detallaremos más adelante.
Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fácilmente, porque el software es flexible.

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.

SOLUCIÓN A LA CRISIS DEL SOFTWARE: INGENIERÍA DEL SOFTWARE ...

Def. 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

INGENIERÍA DEL 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.
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.

OBJETIVOS DE LA INGENIERÍA DEL SOFTWARE

La I. del S. persigue la producción de sistemas de calidad, a bajo coste y a tiempo

DEFINICIÓN PRÁCTICA DE I.S.

MÉTODOS (Técnica)
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
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
HERRAMIENTAS
Constituyen un soporte más o menos automatizado para desarrollar las tareas de los métodos
CASE (Computer Aided Software Engineering)
1.- Conjunto de herramientas integradas ...
2.- de forma que la información creada por una herramienta puede ser usada por otra, ...
3.- 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

Por Qué 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

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