Ir al contenido principal

PRIMER CUESTIONARIO DE INGENIERÍA DE SOFTWARE

. 
           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

Entradas populares de este blog

TIPOS DE DIAGRAMA UML

1. Diagrama de Clases Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de contenimiento. Elementos • Clase: Atributos, métodos y visibilidad (public+, private-, protected#) • Relaciones: Herencia, composición, agregación, asociación y Uso Herencia Agregación Asociación Dependencia/Instanciación/USO 2. Diagrama de objeto Se puede considerar un caso especial de un diagrama de clase. Los diagramas de objetos usan un sub conjunto de elementos de un diagrama de clase para enfatizar la relación entre las instancias de las clases en algún punto en el tiempo. Estos son útiles para entender los diagramas de clases. Estos no muestran nada diferente en su arquitectura a los diagramas de secuencia, pero reflejan multiplicidad y roles. Clase Objeto – Pertenece a Estado en tiempo de ejecución -Atributos -Operaciones Clases Objetos 3   Diagramas de Componentes Ilustran las piezas d...

CASO DE USO 1 Y 2

HERRAMIENTAS PARA MODELAR DIAGRAMAS UML

Herramientas CASE gráficas Listas de herramientas: Lista de herramientas comerciales en la página de la OMG : Lista de herramientas especialmente de las que tienen algun tipo de colaboración con la OMG. Objects by design list of tools : Una de las mejores listas, en su momento… ahora ha quedado ya desactualizada Comparación de herramientas UML en Wikipedia Mario Jeckle’s list of tools : Lista de más de 100 herramientas. Lástima que la comparación esté también desactualizada. UML Forum – tools : Comparación bastante simple de algunas de las herramientas más conocidas Lista de herramientas UML en freebase  comparando el soporte para OCL, para generación de código, ingeniería inversa, modelado colaborativo,… El usuario puede personalizar la comparación seleccionando y filtrando las categorías que le interesan Herramientas UML textuales También podemos encontrar diversas herramientas que permiten la especificación textual de modelos UML (y que automáticamente dibujan e...