lunes, 18 de febrero de 2013




INSTITUTO TECNOLÓGICO DE HUEJUTLA


UNIDAD I       





                          FUNDAMENTOS DE INGENIERÍA DE SOFTWARE


1.1  INGENIERÍA DE SOFTWARE
La ingeniería de software es una disciplina formada por un conjunto de métodos, herramientas y técnicas que se utilizan en el desarrollo de los programas informáticos (software). Esta disciplina  trasciende la actividad de programación, que es la actividad principal a la hora de crear un software. El ingeniero de software se encarga de toda la gestión del proyecto  para que éste se pueda desarrollar en un plazo determinado y con el presupuesto previsto.
La ingeniería de software, por lo tanto, incluye el análisis previo de la situación, el diseño del proyecto, el desarrollo del software, las pruebas necesarias para confirmar su correcto funcionamiento y la implementación del sistema.
Una vez que se completa este ciclo, entra en juego el mantenimiento del software. Se trata de una fase de esta ingeniería donde se solucionan los errores descubiertos (muchas veces advertidos por los propios usuarios) y se incorporan actualizaciones para hacer frente a los nuevos requisitos. El proceso de mantenimiento incorpora además nuevos desarrollos, para permitir que el software pueda cumplir con una mayor cantidad de tareas.
Cabe destacar que el proceso de desarrollo de software implica lo que se conoce como ciclo de vida del software, que está formado por cuatro etapas: concepción, elaboración, construcción y transición. La concepción fija el alcance del proyecto y desarrolla el modelo de negocio; la elaboración define el plan del proyecto, detalla las características y fundamenta la arquitectura; la construcción es el desarrollo del producto; y la transición es la transferencia del producto terminado a los usuarios.



 1.2  EL PAPEL EVOLUTIVO DEL SOFTWARE
El software es tanto un producto 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 tan compleja como una  presentación multimedia.
En su papel de vehículo para la entrega de un producto, el software actúa como la base para el control de la computadora (sistemas operativos), la comunicación de información (redes) y la creación y el control de otros programas (utilerías de software y ambientes).  El software entrega el producto más importante de nuestro tiempo: información”. 


 1.3  LAS ETAPAS DEL PROCESO DE DESARROLLO DE SOFTWARE
Básicamente, resolver un problema requiere:- 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 es correcto (pruebas)Las etapas adicionales de planificación, instalación y 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) y se supone que, una vez construido el sistema de información, éste debería poder utilizarse (si no, no tendría sentido haber invertido en su desarrollo). Para cada una de las fases en que hemos descompuesto el ciclo de vida de un sistema de información se han propuesto multitud de prácticas útiles, entendiendo por prácticas aquellos conceptos, principios, métodos y herramientas que facilitan la consecución de los objetivos de cada etapa.
 La metodología CASE se basa en un análisis y desarrollo del tipo descendiente en el que el ciclo de vida se comprende en las siguientes etapas:

n  ESTRATEGIA
n  ANALISIS
n  DISEÑO
n  CONSTRUCCION
n  DOCUMENTACION
n  TRANSICION
n  PROCUCCIÓN




ESTRATEGIA:
Tiene por objetivo lograr un entendimiento claro de las necesidades de la organización y del ambiente en que opera el sistema o sistemas de implementación con el fin de tener una visión desde los puntos de vista de la dirección corporativa, se analizan las diferentes funciones que realiza la organización y sus necesidades de información a todos los niveles.  En esta etapa se realizan una serie de entrevistas con la dirección y los responsables de los departamentos, así a partir de esta información se realiza así un primer modelado de los requerimientos del sistema de información adecuado a las necesidades de la organización, además de los requerimientos antes obtenidos, se toman en cuenta las tecnologías en este momento disponibles y los sistemas de información ya existentes en operación.
Los resultados de esta etapa son, un conjunto de modelos de la empresa, un conjunto de recomendaciones, y un plan acordado de desarrollo de los sistemas de información, la elaboración de este último se hará de acuerdo a las necesidades actuales y futuras de la
organización, tomando en cuenta restricciones operativas, financieras y técnicas.

ANALISIS
La etapa de análisis toma y verifica los descubrimientos de la etapa de estrategia y expande estos en suficiente detalle para asegurar la precisión de los modelos de la empresa posibilitando un fundamento sólido para el diseño, dentro del alcance de la organización y tomando en cuenta sistemas existentes.
Durante esta etapa se realiza una serie de entrevistas a nivel operativo y técnico.  Con la participación los responsables la operación de las funciones que serán automatizadas se realizan un análisis detallado de sus requerimientos específicos en cuanto a objetivos,
sufusiones, información, datos, etc.


DISEÑO
Esta toma los requerimientos y el modelado de la etapa de análisis y determina la mejor manera de satisfacerlos, logrando niveles de servicios acordados, dados al ambiente técnico y las decisiones previas en los niveles requeridos de automatización. Es decir que del diseño conceptual se pasa al diseño final que será utilizado para la implementación, por ejemplo en esta etapa, el modelo entidad-relación será transformado en un diseño de base de datos, y en especificaciones de almacenamiento y el modelo funcional, en módulos y manuales de procedimientos. El diseño final del sistema integra tres diseños, el de la base de datos, el de la aplicación y el de la red además se elaboran; los planes de prueba y de transición y se realizan los diseños de los sistemas de auditoría y control, y el de respaldos y recuperación. Los resultados de esta etapa lo constituyen, la arquitectura del sistema, el diseño de la base de datos, la especificación de los programas, la especificación de los manuales de procedimientos.


CONSTRUCCION
En esta etapa de construcción se codificarán y probarán los nuevos programas, usando herramientas apropiadas. Esta etapa involucra planeación, diseño de la estructura del sistema, codificación de abajo hacia arriba (pruebas de unidades y enlaces), pruebas de arriba hacia abajo (prueba del sistema) y un enfoque disciplinado en la realización del trabajo y en el control de versiones del sistema y pruebas. Los resultados de esta etapa son los programas probados y la base de datos afinada.

DOCUMENTACION
Uno de los productos fundamentales para un uso y mantenimiento efectivo de los sistemas programados son los manuales. Esta metodología incluye una etapa dedicada a esta actividad tan importante y hace  hincapié para que en su elaboración se consideren el estilo de trabajo y las necesidades propias de los usuarios que utilizarán y mantendrán el sistema. Esta etapa se realiza al mismo tiempo que la de construcción.              Los manuales, resultados de esta etapa, se elaboran a partir de las especificaciones de diseño, de los programas realizados y del análisis del estilo de trabajo y nivel de competencia de los usuarios y operadores de los sistemas.
TRANSICION
La implantación de sistemas no necesariamente implica la sustitución total de los antiguos subsistemas y de sus bases de datos correspondientes. En ciertos casos, por razones operativas y/o económicas, los nuevos sistemas integran algunos de los antiguos., pero como quiera que sea la introducción ya sea de un sistema completamente nuevo o un sistema que integra ya existentes implica un nuevo tipo de uso y de operación que deberá ser asimilado y aprendido por los usuarios y operadores. Por esta razón, el desarrollo de un sistema no se termina con su programación., antes de su liberación para su uso, se debe prever un periodo de transición que deberá incluir la alimentación de la nuevas bases de datos, la capacitación de los usuarios y el desarrollo de pruebas.
En esta metodología la transición conforma una de sus etapas y en ella se realizan todas las tareas necesarias para la implementación y proporciona un periodo inicial de soporte al sistema. La transición debe llevarse a cabo con una interrupción mínima de la organización, y debe dejar a los usuarios confiados y listos para explotar el nuevo sistema. El resultado final de esta etapa es un reporte que muestra que las pruebas fueron satisfactorias.

PRODUCCION
En esta etapa se asegura que el sistema funcione correctamente en la mayoría de los casos, y con intervención mínima de los administradores del sistema. Para esto se realizan nuevas pruebas, se reevalúan los resultados y se hacen refinamientos del sistema, los cambios necesarios deberán ser introducidos sin afectar a los usuarios, y deberá conseguirse la máxima confianza de los usuarios. El resultado de esta etapa es un sistema listo para su operación.

 
1.4  CLASIFICACIÓN DE LA TECNOLOGIA DEL SOFTWARE
TECNOLOGÍAS DE DESARROLLO ESTRUCTURADO
Las tecnologías de desarrollo estructurado son las más convencionales de las empleadas hoy día. 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 [12].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
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.
Se puede definir a las Herramientas CASE como 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

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


CITA BICLIOGRÁFICA:
https://www.google.com.mx/search?q=temario+unidad+1+fundamentos+de+software&hl=es&tbo=d&ei=_oAiUcyjEoWG0QHa9IHwBg&start=20&sa=N&biw=1366&bih=704&cad=cbv&sei=-YwiUe3EIZLv0QHA7oHgCg 



ELABORÓ: ZEFERINO GUERRERO HERNANDEZ                          
REVISÓ: M.A  MARIA GUADALUPE  RIVERA GARCÍA
CARRERA: ING. EN SISTEMAS COMPUTACIONALES
SEMESTRE: 4TO. GRUPO: MOD_1

5 comentarios:

  1. Hola Chavos aqui les dejo Información de la Unidad Uno, Sobre Fundamentos de Ingeniería de Software.

    ¡¡Coménten!! :)

    ResponderEliminar
  2. buena informacion esta completa zefe saludos

    ResponderEliminar
  3. hey hey k bn muy bna informacion muy bn tu blog muy padre aunque odemos complementarle un poco. con unas definiciones
    a) Ingeniería
    • Es la profesión en la que el conocimiento de las ciencias naturales y matemáticas obtenidos con el estudio, la práctica y la experiencia se aplica con juicio para desarrollar formas de utilizar de modo económico, los materiales y fuerzas de la naturaleza para beneficio de la humanidad

    b) Software
    • Es el conjunto de todos los programas que existen dentro de una computadora. • Es el producto del desarrollo que realizan los ingenieros de software resultado de requerimientos de información.

    c) La Ingeniería de Software
    • Es una disciplina de la Ingeniería que comprende todos los aspectos de la producción del software desde las etapas iniciales de la especificación del sistema hasta el mantenimiento de éste después de que se libera.

    ResponderEliminar
  4. muy bien trabajo,, la presentacion es muy llamativa.. felicidades

    ResponderEliminar