Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingenieria de Software PDF
Ingenieria de Software PDF
También existen otros sistemas que son elaborados por el hombre, por
ejemplo, los automotrices, viales, telefónicos, entre otros; todos estos han
sido analizados, diseñados, desarrollados e implementados por sus
creadores.
1
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito
de la Universidad Virtual del Estado de Guanajuato.
Este ciclo se puede repetir varias veces, dependiendo de las necesidades, organización y estructura de la
empresa.
En caso de que no se tenga o se requiera de material adicional, éste se pedirá al área de compras, en donde
se encargarán de contactar a los proveedores y adquirir el material con las especificaciones necesarias que
haya solicitado el área de producción.
Requisición de Revisión y
Almacén Entrega de
material compra de
material
insumos
2
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito
de la Universidad Virtual del Estado de Guanajuato.
Como se observa en la figura 3, a veces un área requiere de información (entradas) de otros departamentos,
ésta se procesa y a su vez generará más información (salidas), que a su vez será utilizada por quien lo
necesite.
Este ciclo se puede repetir una gran cantidad de veces, considerando siempre las necesidades de
información y el funcionamiento de la organización; sin perder de vista los objetivos, misión, visión y metas
de la misma.
Para efectuar y cumplir con estos ciclos y relaciones de manera exitosa, la organización debe contar con
toda aquella tecnología que le permita realizar tanto actividades productivas como administrativas. Es aquí
en donde tienen lugar las Tecnologías de Información.
Se pueden considerar a las TI como un gran sistema. Tal como se muestra en la figura 4, cada tecnología
por separado se sigue desarrollando y perfeccionando. Sin embargo, se interrelacionan entre sí, debido a
que hardware de una computadora no funciona sin la infraestructura de sistemas informáticos, que incluyen
a los sistemas operativos.
Lo mismo sucede con las aplicaciones empresariales conocidas como sistemas de información (SI), las
cuales no pueden existir sin las infraestructuras tecnológicas y de sistemas informáticos, la administración
de la información y la comunicación de datos (si ésta última es necesaria).
Cohen & Asin (2005) consideran que las Tecnologías de Información “hacen referencia a todas aquellas
tecnologías que permiten y dan soporte a la construcción y operación de los sistemas de información, las
cuales pueden ser tecnología de hardware, software, tecnologías de almacenamiento y tecnologías de
comunicaciones” (p. 9).
Considerando lo anterior, podemos decir que las TI se conforman a su vez por otras tecnologías, tal como se
muestra en la siguiente figura.
3
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito
de la Universidad Virtual del Estado de Guanajuato.
Son las tecnologías que permiten
Son todas aquellas tecnologías el almacenamiento y
que permiten el procesamiento físico de la
almacenamiento y recuperación información, por ejemplo,
de la información, entre ellas se computadoras, servidores,
encuentran las bases de datos. dispositivos periféricos, teléfonos,
memorias, etcétera.
Infraestructura
tecnológica
(Hardware)
Administración
de información
(Bases de
datos) Infraestructura
de sistemas
informáticos
Tecnologías (Software)
de
Información
(TI)
Comunicación
de datos
(Redes e Aplicaciones Son aquellas tecnologías de
de Software software que permiten la
Internet) interacción de la
empresarial computadora con los
(Sistemas de usuarios, así como el
información) desarrollo de programas de
uso general, por ejemplo:
sistemas operativos,
mensajeros, calculadoras,
programas de dibujo,
procesadores de texto,
Son las tecnologías que etcétera.
permiten la transmisión de
información, entre ellas se
encuentran las redes, Son aquellas tecnologías de software que permiten la
protocolos de comunicación e interacción de la computadora con los usuarios de una
Internet. organización, en estas tecnologías se hace referencia a
todos los sistemas de información que se desarrollan y
utilizan en la organización con el fin de apoyar las
actividades de información, por ejemplo, los sistemas
transaccionales, sistemas de planeación de recursos,
sistemas para la administración con el cliente, sistemas de
información para ejecutivos, etcétera.
Es claro que existe una relación e interdependencia entre cada una de estas tecnologías, sin embargo, cabe
mencionar que las mismas pueden irse desarrollando de forma independiente, a pesar que tengan relación
con otra.
Entre las tecnologías que han tenido gran auge en los últimos años en el sector empresarial se encuentran
las aplicaciones de software empresarial, comúnmente conocidos como sistemas de información. Estos
sistemas permiten a la organización optimizar sus procesos, tanto operativos como administrativos.
4
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito
de la Universidad Virtual del Estado de Guanajuato.
Aunque se escucha sencillo, el desarrollo de un sistema implica mucho trabajo. No solamente se trata de
idearlo, sino también de conocerlo, de saber cuál será su funcionamiento, finalidad y objetivo; además de
comprender el entorno del mismo y su uso.
Todo lo anterior sin perder de vista la esencia y las necesidades de la organización, cumpliendo además con
la entrega de un sistema de calidad, en el tiempo previsto y a un costo preestablecido.
Lo mencionado hasta este punto es relevante, ya que si el sistema no cubre las necesidades reales de la
organización, al final no va a ser funcional para la misma, es decir, aunque el sistema funcione de manera
perfecta en términos tecnológicos, si éste no cubre las exigencias de la empresa, entonces no servirá.
Además, esto implica la inversión de más dinero, tiempo y esfuerzo.
Un ejemplo de una situación que se originó en su momento y que llevó a la creación de la ingeniería de
software es el siguiente: el cliente pedía un sistema para llevar el registro de ventas de productos y se le
entregaba un sistema que llevaba el registro de las compras, además excedía los costos que se habían
previsto y se le entregaba fuera del tiempo acordado. Aunque el sistema funcionaba no era lo que la
organización necesitaba.
La ingeniería de software se creó para cubrir estos aspectos, de acuerdo a Bruegge y Dutoit (2002) “el
énfasis de la ingeniería de software está en las dos palabras: ingeniería y software. Un ingeniero es capaz
de construir un producto de alta calidad usando componentes ya elaborados e integrándolos bajo
restricciones de tiempo y presupuesto” (p.1).
Además, Bruegge y Dutoit (2002) mencionan que “la ingeniería de software es una actividad de modelado”
(p. 5).
Por su parte, Sommerville (2005) dice que la ingeniería de software es “una disciplina de la ingeniería que
comprende todos los aspectos de la producción de software desde las etapas iniciales de la especificación
del sistema hasta el mantenimiento de éste después de que se utiliza” (p. 6).
Ambos autores coinciden en que la ingeniería de software es la disciplina que considera todos los elementos
para la producción de sistemas de calidad, desde la concepción o idea del sistema hasta su mantenimiento
y actualización continua.
5
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito
de la Universidad Virtual del Estado de Guanajuato.
Figura 5. Ingeniería de software (Bruegge,B. y Dutoit. A.H. 2002; Kendall & Kendall, 1997; Rumbaugh, Blaha, Premerlani, Eddy y Lorensen, 1997,
Sommerville, 2005).
6
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito
de la Universidad Virtual del Estado de Guanajuato.
La figura 5 nos muestra todo el proceso de la creación y diseño de un sistema de información, lo que abarca
y los diferentes métodos y modelos que existen dentro de él y que se relacionan entre sí. Es importante
aclarar que cada modelo conlleva un ciclo de vida específico.
Sin embargo, Kendall & Kendall (1997) proponen siete fases generales del ciclo de vida de un sistema de
información, mientras que Sommerville coincide en algunas fases y las enriquece, tal como se muestran en
la tabla 1.
7
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito
de la Universidad Virtual del Estado de Guanajuato.
Cada una de estas fases involucra varios procesos. Un punto prioritario es que se pueden relacionar una con
otra, aunque existen algunas que se pueden realizar de manera simultánea.
Las fases que mayor impacto tienen en el proyecto son las primeras 3 (comúnmente englobadas como el
análisis de la organización).
La fase de análisis tiene como objetivo brindar una solución lógica a la problemática. Para ello, es necesario
hacer uso de diagramas, técnicas y herramientas CASE, “herramientas para ingeniería de software asistido
por computadora” (Kendall & Kendall, 1997, p. 14) que permitan modelar la situación y la solución lógica del
problema.
Ya que una de las herramientas más utilizadas dentro de la determinación de requerimientos es el modelado,
en él se utilizan diagramas que permitirán comprender la situación y mostrársela a la organización, así como
la propuesta de solución. Es en esta parte en donde se realiza el diseño conceptual del sistema.
El resultado de esta fase se ve reflejado en un documento que es entregado y revisado en conjunto con la
empresa. Este aspecto es de gran relevancia, ya que en este punto aún es posible realizar las modificaciones,
adecuaciones y cambios que sean correctos ya que todo el desarrollo del sistema depende directamente del
resultado del análisis, pues en él se establece desde la pertinencia del proyecto, la descripción detallada del
funcionamiento del sistema, el software que se utilizará para su desarrollo, hasta el tiempo que se tardará su
realización, entre otros aspectos.
Si esta fase no se encuentra aprobada y detalladamente realizada, no se puede iniciar el diseño del sistema.
Esto debido a que, si se omite, para el diseño existirán una gran cantidad de inconvenientes que se verán
reflejados en el software, los cuales van desde costos y tiempos hasta la programación. Es decir, el producto
que se obtenga no cubrirá las necesidades de la organización en cuanto a sistemas de información.
Cabe mencionar que dentro de la fase de diseño se realiza una definición lógica de los objetos que
conformarán el sistema. Para ello se requiere de una gran capacidad de abstracción y de análisis, ya que
esta parte es fundamental para dicho sistema. Se puede decir que esta etapa es la intermediaria entre la
organización y el sistema de información. En esta fase se muestra el modelo del sistema antes de ser
desarrollado como tal. Es, por ejemplo, como poder observar la estructura de una casa antes de construirla.
Modelado
Uno de las fases que tiene gran relevancia en todo el proceso de desarrollo de software es el modelado. Esto
es porque a través ya que a través de la realización de modelos se abstrae, se entiende y se establece el
objetivo y la propuesta del sistema de información.
Además, debemos ser conscientes de que este proceso es utilizando principalmente en las fases de
terminación de los requerimientos de información, análisis de las necesidades del sistema y diseño
del sistema recomendado, pertenecientes al ciclo de desarrollo de sistemas.
A todo esto, ¿qué es un modelo? Cuando se te habla de esta palabra dentro del proceso de desarrollo de
sistemas de información, ¿qué te imaginas? De acuerdo al análisis de sistemas, un modelo es:
8
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito
de la Universidad Virtual del Estado de Guanajuato.
“Una abstracción de algo, cuyo objetivo es comprenderlo
antes de construirlo” (Rumbaugh, Blaha, Premerlani, Eddy
y Lorensen, 1997, p. 37).
Imagina que Pedro desea construir su casa en un terreno que previamente ha comprado. Para edificarla
contrata a un albañil y le dice dónde quiere que esté ubicado todo, y se lo muestra. El albañil contrata a un
grupo de compañeros que le van a ayudar con la casa y comienzan a trabajar.
Dentro de todo lo que hay que hacer, Pedro invierte en la compra de material para aplanar el terreno (dinero
que no tenía contemplado en su presupuesto) y para cimentar y colar, entre otras cosas.
Cuando la casa comienza a tomar forma, se da cuenta que no es lo que quiere, ya que se la imaginaba de
otra manera.
Lo que él debió hacer fue contratar a alguien especializado (persona, arquitecto, constructora) en realizar
proyectos de edificación de casas.
Existen varias fases que se deben seguir para realizar un proyecto como el de la construcción de una casa.
Éstas van desde la medición del terreno hasta la finalización de la obra.
Dentro de una esas fases se realiza el modelo de la casa. A dicho modelo en arquitectura se le llama plano,
en él se pueden observar la distribución y el diseño que tendrá el inmueble. Éste prototipo se realiza a través
de software especializado como el AutoCAD, en la figura 6 puedes observar el ejemplo de un plano.
9
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito
de la Universidad Virtual del Estado de Guanajuato.
Figura 6. House-plan (Danvers, 2010).
Tal como en el ejemplo de la casa, para el desarrollo de un sistema de información se requiere la realización
de diferentes modelos del mismo. Este proceso generalmente es llamado modelado y en él se elaboran
diagramas que permitirán definir el entorno de la organización, e incluso proporcionar una vista previa del
sistema.
Es necesario recalcar que el modelado es utilizado en varias fases del ciclo de desarrollo de sistemas.
10
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito
de la Universidad Virtual del Estado de Guanajuato.
Diseño del sistema recomendado
El diseño “es el proceso creativo de transformación del problema en una solución; la descripción de una
solución también se denomina diseño” (Lawrence, 2002, p. 225). Es importante considerar que en lo referente
al diseño de sistemas de información, la funcionalidad que tendrá el sistema propuesto se muestra y realiza
a través de esquemas, diagramas e incluso si es necesario, algoritmos.
La finalidad de esta etapa es mostrar tanto al usuario como al programador la estructura y operatividad que
tendrá el sistema que se propone.
Para completar esta fase es necesario no perder de vista la determinación de requerimientos y el análisis de
las necesidades del sistema.
Entre las actividades que se realizan en este proceso (diseño) se encuentran las siguientes: “Dividir
requerimientos, identificar subsistemas, asignar requerimientos a los subsistemas, especificar la
funcionalidad de los subsistemas y definir las interfaces del usuario” (Sommerville, 2005, p. 26).
Para poder realizar estas actividades es necesario considerar los elementos que son parte del diseño del
sistema, entre éstos, se encuentran los que se muestran en la figura 6:
Diseño del
sistema
En donde el diseño arquitectónico “es un proceso creativo en el que se intenta establecer una organización
del sistema que satisfaga los requerimientos funcionales y no funcionales del propio sistema” (Sommerville,
2005, p. 222). En este diseño se especifican y se realiza la integración e identificación de los subsistemas
que conforman el sistema de información, además de que se establecen las relaciones que existen entre los
mismos.
11
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito
de la Universidad Virtual del Estado de Guanajuato.
En el modelado de procesos, primeramente, es necesario identificar a los mismos. Para ello es relevante
considerar que según Lawrence (2002) “un proceso es una serie de pasos que involucran actividades,
restricciones y recursos que producen una determinada salida esperada” (p. 51).
De acuerdo a lo anterior se puede decir que este modelado consiste en representar de manera gráfica los
procesos que se tienen en la organización, con la finalidad de identificar a aquellos que se realizarán a través
del sistema de información.
Esto se puede observar claramente con un ejemplo: supongamos que una organización se dedica a la
fabricación y venta de productos de porcelana, y cuenta con distintos clientes, desde personas que compran
directamente en la fábrica, hasta empresas que compran productos al mayoreo. La empresa, lo primero que
hace al momento en que un cliente llega, es buscar su expediente, en caso de que no exista, lo registra. En
ese momento, se lleva a cabo todo un proceso en donde se desea obtener todos los datos del cliente, desde
el nombre del mismo y su dirección, hasta sus datos de facturación, números telefónicos, entre otras cosas.
El modelado de procesos, en este punto en específico, consiste en realizar una representación gráfica del
procedimiento que se realiza para registrar al cliente. Además, pueden existir otros procesos que se
relacionan con el mismo, como la actualización de registro de clientes anteriores.
La importancia del modelado radica en que en esta etapa se analiza, conoce y determina el proceso a seguir.
Asimismo, se establece dentro del sistema la forma en que se realizará dicho proceso y finalmente se
determina el sistema al que pertenecerá el mismo, así como la relación que existe entre éste y otros procesos
y subsistemas.
Retomando el ejemplo del registro de los clientes de la empresa de productos de porcelana, al hacer el
modelado de datos de este proceso (registro del cliente), se determinan los datos que son relevantes, los
que son menos importantes y los que definitivamente no son necesarios. Asimismo, se identifican las
relaciones de los datos y su tipo, por ejemplo, el número telefónico sería del tipo numérico, además se
determinan los datos que son obligatorios, los cuales serán las llaves principales para relacionar la tablas de
datos.
La labor del modelado de datos podría parecer una tarea fácil, sin embargo, esta actividad requiere de una
alta capacidad de abstracción y análisis, sobre todo considerando que, lo que realmente estamos modelando
en este punto es la base de datos que se utilizará en el sistema. Un error lógico puede implicar que éste no
funcione.
Otra situación que podría darse es que el acceso, consulta y carga de información durante la utilización del
sistema se haga muy lenta si las tablas no se modelaron de manera pertinente y existe redundancia en la
información.
12
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito
de la Universidad Virtual del Estado de Guanajuato.
Herramientas CASE
Entre las herramientas que actualmente se encuentran en el mercado existen las siguientes:
Bouml http://www.bouml.fr/
ArgoUML http://argouml.tigris.org/
Open SystemArchitect http://www.codebydesign.com/
RationalSysstemArchitect http://www-01.ibm.com/software/mx/rational/products/systemarchitect/
13
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito
de la Universidad Virtual del Estado de Guanajuato.
Referencias
Bruegge, B. y Dutoit, A. H. (2002). Ingeniería de software orientado a objetos.
México: Pearson Educación.
Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F. Lorensen, W. (1997). Modelado y
diseño orientado a objetos. México: Prentice Hall.
Bibliografía
Larman, C. (1999). UML Y PATRONES Introducción al análisis y diseño orientado a
objetos. México: Pearson Educación.
14
©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o
sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito
de la Universidad Virtual del Estado de Guanajuato.