lunes, 18 de febrero de 2013

unidad1 fundamentos de ingenieria de software


1.1 CONCEPTOS BÁSICOS


La ingeniería de software es una disciplina y profesión enfocada a la aplicación de conocimiento científico y técnico, que utiliza recursos físicos para diseñar e implementar diversos artefactos (estructuras, máquinas, dispositivos, sistemas y procesos) para realizar un objetivo deseado y alcanzar criterios especificados.

Se conoce como software  al equipamiento lógico o soporte lógico de una computadora digital; comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentes físicos, que son llamados hardware.

La Ingeniería de software es la rama de la ingeniería que crea y mantiene las aplicaciones de software Ingeniería de Software aplicando tecnologías y prácticas de las ciencias computacionales, manejo de proyectos, ingeniería, el ámbito de la aplicación, y otros campos.

Desde los años 40’s las aplicaciones y usos de las computadoras han crecido de forma constante Hoy en día el software juega un papel central en casi todos los aspectos de Importancia del Software la vida cotidiana: gobierno, finanzas, educación, transporte, medicina, etc...

La Ingeniería del Software es la aplicación práctica del conocimiento científico en el diseño y construcción de programas de computadora y la documentación asociada requerida para desarrollar y operar (funcionar) y mantenerlos.
Así como también desarrollo de software o producción de software.


         1.2                 EL PAPEL EVOLUTIVO DEL SOFTWARE 

El software tiene un papel dual, es  producto  y canal de distribución como el vehículo para su entrega. Es el transformador de la información. El papel del software de computadora ha experimentado un cambio significativo en un periodo un poco mayor a 50 años. 

Las mejorías sustanciales en el desempeño del hardware, los cambios profundos en las arquitecturas de cómputo, los enormes incrementos en las capacidades de memoria y almacenamiento, y la amplia variedad de opciones de salida y de entrada han propiciado el surgimiento de sistemas más elaborados y complejos basados en computadoras.

 Nadie sabe en realidad el futuro de los sistemas que día a día se construyen, más sin embargo sin importar el lugar en el que resida  el software, ya sea en un celular o dentro de una computadora  central , el software realiza la producción, el manejo  la adquisición, la modificación, el despliegue  o la transmisión de la  información  que puede ser tan simple  como un solo bit  o tal compleja como una presentación multimedia . en su papel de vehículo   para entregar el producto, el software actúa como base para el control de  la computadora (sistema operativo ), la comunicación de información  (redes) y la creación y el control  de otros programas  (utilerías de software y ambientales ).

El software entrega el producto más importante de nuestros tiempos la información. Transforma los datos personales, por ejemplo las transacciones financieras  de un individuo, de modo que los datos sean  más útiles  en un contexto local. 


1.3    etapas del desarrollo del  software.

Las etapas del proceso de desarrollo de software
Cualquier sistema de información va pasando por una serie de fases a lo largo de su vida.
Su ciclo de vida comprende una serie de etapas entre las que se encuentran las siguientes:
  •       Planificación.
  •   Análisis Diseño.
  •     Implementación.
  •     Pruebas.
  •     Instalación o despliegue.
  •      Uso y mantenimiento.
Estas etapas son un reflejo del proceso que se sigue a la hora de resolver cualquier tipo de problema.
Como primer paso para resolver un problema  se tiene que :

  •  Comprender el problema (análisis)- Plantear una posible solución
  •  considerando soluciones alternativas (diseño)- Llevar a cabo la solución
  •  planteada (implementación)- Comprobar que el resultado obtenido escorrecto (pruebas)
  •  Las etapas adicionales de planificación, instalación
  • mantenimiento que aparecen en el ciclo de vida de un sistema de información son necesarias en el mundo real porque el desarrollo de un sistema de información conlleva unos costes asociados (lo que se hace necesaria la planificación). 


       1.4    clasificación  de la tecnología  en el  desarrollo  de software (tecnología, estructura y orientada a objetos).

Tecnologías de desarrollo estructurado

Han surgido de la evolución de las ideas de programación estructurada (hace más de veinticinco años) hacia las fases iniciales del ciclo de vida.
En su formulación actual, las notaciones empleadas en las prime-ras fases del ciclo de vida (especificación de requisitos de usuario y sistema)suelen estar constituidas por lenguajes gráficos que permiten: identificar el sistema y el entorno; representar el flujo de información entre los elementos y  describir los datos y las actividades del sistema.

 La idea base de esta tecnología es que es posible estructurar el modelo de un sistema de software en base a funciones que procesan información que reciben de otras funciones (o del exterior) y dirigen la información procesada a otros módulos funcionales (o al exterior). El enfoque seguido, por tanto, es el de pensar en las funciones del sistema necesarias (extraídas de los requisitos del sistema) y luego en los datos que requieren.

Tecnologías orientadas a objetos

Las tecnologías de desarrollo estructurado han demostrado sus limitaciones a la hora de organizar y facilitar la evolución de sistemas de software complejos. La descomposición en funciones hace difícil al diseñador mantener la relación con los objetos del mundo real sobre los que se modifican generalmente los requisitos del usuario.

Los métodos de descomposición orientada a objetos constituyen la tendencia más influyente observada en la ingeniería de sistemas de software en los últimos años. Con ellos nos referimos a un conjunto de métodos (aún en fase de desarrollo o evolución) que permiten al analista y diseñador concebir su sistema identificando clases de objetos, operaciones permitidas y relaciones entre ellos como base para la estructura del sistema a diseñar.


          1 .5     Definición e historia  de las herramientas  CASE.

Qué son las Herramientas CASE

Las Herramientas CASE  son un conjunto de programas y ayudas que dan asistencia a los analistas, ingenieros de software y desarrolladores, durante todos los pasos del Ciclo de Vida de desarrollo de un Software. Como es sabido, los estados en el Ciclo de Vida de desarrollo de un Software son: Investigación Preliminar, Análisis, Diseño, Implementación e Instalación.

CASE se define también como:
Conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo de vida del desarrollo de sistemas de información, completamente o en alguna de sus fases.
La sigla genérica para una serie de programas y una filosofía de desarrollo de software que ayuda a automatizar el ciclo de vida de desarrollo de los sistemas.
Una innovación en la organización, un concepto avanzado en la evolución de tecnología con un potencial efecto profundo en la organización. Se puede ver al CASE como la unión de las herramientas automáticas de software y las metodologías de desarrollo de software formales.

Historia de las Herramientas CASE

Las Herramientas CASE tienen su inicio con el simple procesador de palabras que fue usado para crear y manipular documentación. Los setentas vieron la introducción de técnicas gráficas y diagramas de flujo de estructuras de datos. Sobre este punto, el diseño y especificaciones en forma pictórica han sido extremadamente complejos y consumían mucho tiempo para realizar cambios.

La introducción de las herramientas CASE para ayudar en este proceso ha permitido que los diagramas puedan ser fácilmente creados y modificados, mejorando la calidad de los diseños de software. Los diccionarios de datos, un documento muy usado que mantiene los detalles de cada tipo de dato y los procesos dentro de un sistema, son el resultado directo de la llegada del diseño de flujo de datos y análisis estructural, hecho posible a través de las mejoras en las Herramientas CASE.

Pronto se reemplazaron los paquete gráficos por paquetes especializados que habilitan la edición, actualización e impresión en múltiples versiones de diseño. Eventualmente, las herramientas gráficas integradas con diccionarios de base de datos para producir poderosos diseños y  desarrollar herramientas, podrían sostener ciclos completos de diseño de documentos.
Como un paso final, la verificación de errores y generadores de casos de pruebas fueron incluidos para validar el diseño del software. Todos estos procesos pueden saberse integrados en una simple herramienta CASE que soporta todo el ciclo de desarrollo.




       1.6      Clasificación  de las herramientas CASE.

Las herramientas CASE (Computer Aided Software Engineering) son diversas aplicaciones informáticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el costo de las mismas en términos de tiempo y de dinero. 

Estas herramientas pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un diseño del proyecto, cálculo de costos, implementación de parte del código automáticamente con el diseño dado, compilación automática, documentación o detección de errores entre otras. Ya en los años 70 un proyecto llamado ISDOS diseñó un lenguaje y por lo tanto un producto que analizaba la relación existente entre los requisitos de un problema y las necesidades que éstos generaban, el lenguaje en cuestión se denominaba PSL (Problem Statement Language) y la aplicación que ayudaba a buscar las necesidades de los diseñadores PSA (Problem Statement Analyzer).

Aunque ésos son los inicios de las herramientas informáticas que ayudan a crear nuevos proyectos informáticos, la primera herramienta CASE fue Excelerator que salió a la luz en el año 1984 y trabajaba bajo una plataforma PC.

Las herramientas CASE alcanzaron su techo a principios de los años 90. En la época en la que IBM había conseguido una alianza con la empresa de software AD/Cycle para trabajar con sus mainframes, estos dos gigantes trabajaban con herramientas CASE que abarcaban todo el ciclo de vida del software. Pero poco a poco los mainframes han ido siendo menos utilizados y actualmente el mercado de las Big CASE ha muerto completamente abriendo el mercado de diversas herramientas más específicas para cada fase del ciclo de vida del software.

. Podrían clasificarse atendiendo a:
• Las plataformas que soportan.
• Las fases del ciclo de vida del desarrollo de sistemas que cubren.
• La arquitectura de las aplicaciones que producen.
• Su funcionalidad.

Las herramientas CASE, en función de las fases del ciclo de vida abarcadas, se pueden agrupar de la forma siguiente:

1. Herramientas integradas, I-CASE (Integrated CASE, CASE integrado): abarcan todas las fases del ciclo de vida del desarrollo de sistemas. Son llamadas también CASE workbench.

2. Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) o front-end, orientadas a la automatización y soporte de las actividades desarrolladas durante las primeras fases del desarrollo: análisis y diseño.

3. Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior) o back-end, dirigidas a las últimas fases del desarrollo: construcción e implantación.

4. Juegos de herramientas o Tools-Case, son el tipo más simple de herramientas CASE. Automatizan una fase dentro del ciclo de vida. Dentro de este grupo se encontrarían las herramientas de reingeniería, orientadas a la fase de mantenimiento.

 
Bibliografía

Herramientas para el desarrollo de Sistemas de Información.
http://www.inei.gob.pe/cpi/bancopub/libfree.

Libro
SOFTWARE ENGINEERING. A Practitioner’s Approach. European Adaptation
McGRAW-HILLDNTERAMERICANA DE ESPANA, S. A. U.
Copyright O MMI, by The McGraw-Hill Companies
ISBN: 84-481-3214-9
Editora: Concepción Femández Madrid
Diseño de cubierta: Design Master Dima
Impreso en: Imprenta FARESO. S. A.


Nombre: Francisca Coronel  Hernández.                Catedrático: Ma. María Guadalupe  Rivera  García
Grado y Grupo: IV Semestre  módulo 1.
 Ingeniería en Sistemas Computacionales.
                                                                                 Instituto Tecnológico de Huejutla                                        



4 comentarios:

  1. Esta es la informacion de la unidad uno fundamentos de ingenieria de software, espero que sea del agrado....

    ResponderEliminar
  2. muy buen trabajo. es perfecto que publiques la bibliografia..saludos

    ResponderEliminar
  3. exelente trabajo compañera, muy buena informacion felicidades

    ResponderEliminar