INSTITUTO TECNOLÓGICO DE HUEJUTLA
UNIDAD I
FUNDAMENTOS DE INGENIERÍA DE SOFTWARE
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
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.
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
REVISÓ: M.A MARIA GUADALUPE RIVERA GARCÍA
CARRERA: ING. EN SISTEMAS
COMPUTACIONALES
SEMESTRE: 4TO. GRUPO: MOD_1

Hola Chavos aqui les dejo Información de la Unidad Uno, Sobre Fundamentos de Ingeniería de Software.
ResponderEliminar¡¡Coménten!! :)
buena informacion esta completa zefe saludos
ResponderEliminarhey hey k bn muy bna informacion muy bn tu blog muy padre aunque odemos complementarle un poco. con unas definiciones
ResponderEliminara) 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.
muy buena informacion, bien echo
ResponderEliminarmuy bien trabajo,, la presentacion es muy llamativa.. felicidades
ResponderEliminar