.
1. ¿Cuál es la diferencia entre Ingeniería de Software e Ingeniería de SISTEMAS?
1. ¿Cuál es la diferencia entre Ingeniería de Software e Ingeniería de SISTEMAS?
Ingeniería de sistemas es un modo de enfoque
interdisciplinario que permite estudiar y comprender la realidad, con el
propósito de implementar u optimizar sistemas complejos. Puede verse como la
aplicación tecnológica de la teoría de sistemas a los esfuerzos de la
ingeniería, adoptando en todo este trabajo el paradigma sistémico. La
ingeniería de sistemas integra otras disciplinas y grupos de especialidad en un
esfuerzo de equipo, formando un proceso de desarrollo estructurado.
Una de las principales diferencias de la ingeniería de
sistemas respecto a otras disciplinas de ingeniería tradicionales, consiste en
que la ingeniería de sistemas no construye productos tangibles. Mientras que
los ingenieros civiles podrían diseñar edificios o puentes, los ingenieros
electrónicos podrían diseñar circuitos, los ingenieros de sistemas tratan con
sistemas abstractos con ayuda de las metodologías de la ciencia de sistemas, y
confían además en otras disciplinas para diseñar y entregar los productos
tangibles que son la realización de esos sistemas.
Otro
ámbito que caracteriza a la ingeniería de sistemas es la interrelación con
otras disciplinas en un trabajo transdisciplinario.
Ingeniería de software es la disciplina o área de la
informática que ofrece métodos y técnicas para desarrollar y mantener software
de calidad.
Esta ingeniería trata con áreas muy diversas de la
informática y de las Ciencias de la Computación, tales como construcción de
compiladores, Sistemas Operativos, o desarrollos Intranet/Internet, abordando
todas las fases del ciclo de vida del desarrollo de cualquier tipo de Sistema
de Información y aplicables a infinidad de áreas (negocios, investigación
científica, medicina, producción, logística, banca, control de tráfico,
meteorología, derecho, Internet Intranet, etc.).
Una definición precisa aún no ha sido contemplada en los
diccionarios, sin embargo se pueden citar las enunciadas por algunos de los más
prestigiosos autores:
·
Ingeniería de Software es el estudio de los
principios y metodologías para el desarrollo y mantenimiento de sistemas
software (Zelkovitz, 1978)
·
Ingeniería de software es la aplicación práctica
del conocimiento científico al diseño y construcción de programas de
computadora y a la documentación asociada requerida para desarrollar, operar y
mantenerlos. Se conoce también como Desarrollo de Software o Producción de
Software ( Bohem, 1976).
·
Ingeniería de Software trata del establecimiento
de los principios y métodos de la ingeniería a fin de obtener software de modo
rentable, que sea fiable y trabaje en máquinas reales (Bauer, 1972).
·
Es la aplicación de un enfoque sistemático,
disciplinado y cuantificable al desarrollo, operación y mantenimiento del
software; es decir, la aplicación de la ingeniería al software (IEEE, 1993).
2. ¿Cuál es la diferencia entre Ingeniería de Software e
Ingeniería de Sistemas?
Un
proceso de desarrollo de software es un conjunto de personas, estructuras de
organización, reglas, políticas, actividades y sus procedimientos, componentes de
software, metodologías, y herramientas utilizadas o creadas específicamente
para definir, desarrollar, ofrecer un servicio, innovar y extender un producto
de software.
3. ¿Qué es un modelo de proceso de software?
Un modelo
de Procesos del software Es Una Descripción simplificada de la ONU Proceso del
software Que Presenta Una visión de ESE Proceso. Estós Modelos pueden Incluir
Actividades Que Son parte de los Procesos y Productos de software y el papel de
las personalidades involucradas en la ingeniería del software.
1. El modelo lineal
(o modelo en cascada).
Es el más
antiguo de todos los modelos de Ingeniería del Software. El modelo lineal
presenta una estructura secuencial (de ahí el nombre de Modelo en cascada)
formada por seis fases o etapas:
1. Análisis
del Sistema
2. Análisis
de Requisitos de Software
3. Diseño
4. Codificación
5. Prueba
6. Mantenimiento
Las fases
incluyen dentro de sí determinadas tareas que clasifican de una forma clara el
trabajo a realizar.
El
desarrollo de las fases, como he mencionado antes, se produce de manera
secuencial. Una vez se produce el análisis tanto del Sistema como de los
requisitos del software demandado por el cliente, (fases en las que la
intervención del cliente es absolutamente necesaria), se procede a la fase de
diseño de la arquitectura global del software. Un diseño elaborado de forma
cuidadosa llevará a una rápida codificación. Tras haber traducido el programa a
un lenguaje comprensible para el ordenador, se comprueban los elementos de
forma individual y más tarde de manera homogénea (todos los sistemas a la vez).
Una vez entregado el software al cliente, la fase de Mantenimiento comprenderá
las actualizaciones y las correcciones de errores que sean necesarias en el programa.
El Modelo
en cascada no permite retroceder (más tarde analizaremos las ventajas e
inconvenientes de todos los modelos en común), por lo que se hace estrictamente
necesario que al final de cada fase el analista de sistemas o, en su caso, el
programador, verifique y valide todo el trabajo realizado, ya que un error no
detectado a tiempo podría perjudicar gravemente la fecha de entrega del
software a nuestro cliente.
2. El modelo
incremental.
El modelo
incremental es una evolución del modelo de cascada; viene a suplir el problema
de no poder retroceder en las fases de desarrollo del software. Es, por tanto,
un modelo no secuencial.
El
funcionamiento es sencillo. Comienza con el análisis de los requisitos, tras el
cual se prepara un primer diseño. La novedad de este modelo respecto del
anterior, es la introducción de iteraciones para “bifurcar” diseños. Es decir,
este modelo ofrece la posibilidad de comenzar un diseño, arquitectura,
estructura, etc del software, que de no convencer al cliente (o al propio
programador) es rechazado y se comienza con una segunda iteración (o un segundo
diseño), sin necesidad de realizar un nuevo análisis de requisitos. Pueden
realizarse tantas iteraciones (también llamadas incrementos) como sean
necesarias.
3. El modelo
de construcción de prototipos.
Este modelo no secuencial,
basado en la construcción de simulaciones o modelos ejecutables de aplicaciones
más extensos, persigue un objetivo principal: la participación directa del
cliente en la construcción del software requerido. Las fases son similares a
las del modelo en cascada: es necesario un análisis previo de los requisitos
tanto del sistema como del cliente, se concibe la arquitectura del sistema y se
realiza el diseño del software. Sin embargo, se incluye un elemento hasta ahora
no utilizado, que consiste en el diseño rápido de un prototipo que se mostrará
al cliente para que evalúe el trabajo realizado.
El prototipo es una
versión reducida del programa completo; es una “fachada virtual” que mostramos
al cliente (que carece de la posibilidad de ser utilizada de la forma en que lo
haríamos con el software final. Tras recoger los requisitos tanto del cliente
como del sistema, se comienza con el diseño rápido del prototipo; el diseño
completo obedece al previo diseño de pequeños prototipos específicos para
funciones individuales. Más tarde, estos diseños serán unidos en uno sólo.
Después, se procede a la
construcción del mismo. Éste prototipo es el que mostraremos al cliente para
que lo evalúe y considere cambios en él, aunque no se trate de una versión
definitiva.
4. El modelo
en espiral.
Este modelo, también no
secuencial, es algo más complejo que los anteriores, aunque incluye un elemento
muy útil e importante en el desarrollo del software: análisis de riesgos. El
modelo en espiral concreta cuatro fases:
1. Planificación
2. Análisis de Riesgos
3. Ingeniería (Construcción
del prototipo)
4. Evaluación por el cliente
Si ésta última fase es
afirmativa, el modelo continúa con la estructura del Ciclo de vida Clásico. Si
el cliente no está satisfecho con el resultado, se cubre otra banda de la
espiral y se vuelve a la primera fase (de planificación).
4. ¿Cuáles
son los costos de la Ingeniería de Software?
Usualmente
el profesional informático se vincula en los proyectos de software hasta la
estimación de horas-hombre requeridas. Otras decisiones como períodos de
actualización tecnológica, herramientas en las que invertir, proyectos a
abordar, productos a discontinuar, contratar personal o hacer outsourcing
usualmente son ajenas al personal informático.
5. ¿Qué son
los métodos de Ingeniería de software?
Encarga de elaborar estrategias,
técnicas y formas de trabajo de desarrollo de software que promuevan prácticas
adaptativas en vez de predictivas; centradas en las personas o los equipos,
orientadas hacia la funcionalidad y la entrega, de comunicación intensiva y que
requieren implicación directa del cliente. Encarga de elaborar estrategias,
técnicas y formas de trabajo de desarrollo de software que promuevan prácticas
adaptativas en vez de predictivas; centradas en las personas o los equipos,
orientadas hacia la funcionalidad y la entrega, de comunicación intensiva y que
requieren implicación directa del cliente .
Comentarios
Publicar un comentario