Estudiante: Patricia Dhamar Martínez Chicaty. Grupo: 5”O” “El ingeniero de software aficionado siempre está a Ia búsqueda de algo mágico, algún método o herramienta sensacional que prometa convertir el desarrollo de software en algo trivial. Está en el ingeniero de software profesional saber que no existe tal panacea.” (Grady Boch).
La industria de la ingeniería de software avanza a pasos agigantados, un claro ejemplo de eso
es la computación en la nube y otros tipos de almacenamiento, que si bien antes teníamos que instalar un programa en nuestra computadora para poder acceder a todas las funcionabilidades que tenía ahora se lo puede hacer mediante un navegador donde el programa se encuentra alojado en un servidor a varios kilómetros de distancia, dejando así disponible el hardware que se utilizaría para correr esta aplicación (memoria, disco, procesador). A continuación se detallaran los conceptos básicos para poder entender la importancia del impacto de esta rama que se pudo hacer un lugar entre las distintas ciencias. El propósito de la ciencia es entender y explicar los sistemas complejos, como por ejemplo la economía, el sistema solar o el flujo térmico. Por costumbre se dividen estos sistemas en dos, los cuales son las ciencias naturales y las ciencias sociales, pero hay otro tipo de ciencias denominadas ciencias artificiales acuñado por el teórico de ciencias sociales Herbert Simon en 1970 para describir las ciencias que tratan sobre sistemas artificiales como por ejemplo, el transbordador espacial, el sistema de reservación de boletos o cualquier maquina creada por el hombre. Las ciencias computacionales abarcan las bases teóricas de la computación y la información así como aplicaciones. “El cuerpo de conocimiento de las ciencias de la computación es frecuentemente descrito como el estudio sistemático de los procesos algorítmicos que describen y transforman información: su teoría, análisis, diseño, eficiencia, implementación, algoritmos sistematizados y aplicación” (Anthony Ralston, 2000). En términos más específicos, se trata de algoritmos que subyacen en la adquisición, representación, procesamiento, almacenamiento, comunicación y acceso a la información y están en forma se bits. Los sistemas complejos están constituidos por varias partes entrelazadas que una red de información adicional invisible para el usuario como resultado de la interacción de los distintos elementos que la componen. La ingeniería de software es una de las ramas de las ciencias computacionales que consiste en la creación y estudio de los sistemas de software por medio de técnicas y métodos de ingeniería. Implementarla de una manera correcta nos permite cumplir con los objetivos fundamentales de la ingeniería de software como son mejorar el diseño de software o aplicación para poder crear un entorno amigable con el usuario así como también poder organizar pruebas para identificar posibles mejoras, aumentar la calidad y eficiencia del sistema. El software es el soporte lógico de un sistema informático que consiste en un grupo de elementos necesarios para la realización de tareas específicas. La relación entre el software y el hardware hace posible el funcionamiento del ordenador o dispositivo especifico. El software, en su mayoría, está en lenguajes de programación de alto nivel, ya que son más fáciles y eficientes para que los programadores los usen, porque son más cercanos al lenguaje natural respecto del lenguaje de máquina ya que los lenguajes de alto nivel utilizan los compiladores o interpretes para traducir a lenguaje maquina aunque también cabe la posibilidad de estar escrito en lenguaje ensamblador, que es un lenguaje de bajo nivel y traduce a lenguaje maquina por medio de un ensamblador que es necesario para mejorar la productividad de los desarrolladores y la calidad final del proyecto. Un lenguaje de programación es un lenguaje formal (o artificial) que le permite al programador la capacidad de escribir una serie de instrucciones o secuencias de órdenes en forma de algoritmos con el fin de controlar el comportamiento físico o lógico de una computadora. El algoritmo es un conjunto de reglas no ambiguas ordenadas y finitas que permite, típicamente, solucionar un problema, realizar un cómputo, Lenguaje de programación. procesar datos y llevar a cabo otras tareas o actividades, se expresa por medio de diagramas de flujo, seudocódigos, estructuras secuenciales, etc.
“La 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).
Entre los métodos básicos de la ciencia se encuentra el modelado. El modelado es una
interpretación abstracta de un sistema que permite resolver las dudas acerca de este. La ingeniería de software, con el fin de ordenar el caos que era anteriormente el desarrollo de software, dispone de varios modelos, paradigmas y filosofías de desarrollo, estos los conocemos principalmente como modelos. Entre los distintos modelos se pueden encontrar el modelo cascada, modelo de prototipo, modelo en espiral, modelo iterativo, modelo concurrente, entre otros. Los ingenieros de software manejan las dificultades por medio del modelado considerando solo lo que se cree relevante para el desarrollo e implementación de su trabajo dejando de lado todo lo demás. Estos modelos se utilizan para poder llegar a la posible solución más aceptable y está basada en la experimentación sujeta a recursos finitos, dada la falta de estos los ingenieros de software se ven obligados a basarse en métodos empíricos para evaluar sus sistemas. En el modelado del campo de la aplicación y solución de problemas el ingeniero de software se ve en la necesidad de recopilar información para organizarla y finalmente formalizar sus conocimientos ya que necesitan comprender el funcionamiento del sistema para poder construir un sistema de dominio del problema. Los métodos orientados a objetos relacionan las actividades de modelado de los dominios de problema con la solución en uno solo: 1. Se modela el dominio del problema como un conjunto de objetos y relaciones. 2. Con el mismo se representan conceptos manipulados en el entorno. 3. Se modelan como objetos el dominio de solución. La idea central de los métodos orientados a objetos es extender el modelo del dominio de problema al modelo de solución de problema. La solución de problemas es buscada por los ingenieros generalmente por medio del ensayo y error, de la forma más vaga, el método de la ingeniería cosiste en 5 fases: formular el problema, analizar el problema, elegir la solución más conveniente y finalmente especificarlo. Pero para la ingeniería de software no ha sido fácil su desarrollo hasta nuestros días ya que en una conferencia en el año de 1968 Friedrich L. Bauer habló por primera vez del conjunto de dificultades o errores ocurridos en la planificación, estimación de los costos, productividad y calidad de un software más conocido como la crisis de software. Existen múltiples causas que originan la crisis del software. Una de ellas es que el desarrollo de un software es un proceso relativamente “nuevo”, del cual no se tiene personal lo suficientemente capacitado, debido a una pobre implementación de los procesos más organizados. Para evitar errores de cualquier tipo lo mejor que se puede hacer es realizar revisiones formales ya que cuantos más errores se puedan encontrar antes de escribir el código menos impacto tendrán en el mismo. El desarrollo de software de gran porte requiere una adecuada gestión del proyecto. Hay presupuestos, establecimiento de tiempos de entrega, un equipo de profesionales que liderar, recursos (espacio de oficina, insumos, equipamiento) por adquirir. Para su administración se debe tener una clara visión y capacitación en gestión de proyectos. Esto se evalúa de forma empírica, con conocimientos insuficientes y escasos recursos. Los recursos pueden ser humanos y de entorno; los recursos humanos son todas aquellas personas que intervienen en el desarrollo del proyecto de software, los recursos de entorno consiste en el hardware proporcionado al medio físico para desarrollar las aplicaciones. Por otra parte, la adquisición de conocimientos tiende a ser un proceso no lineal, es decir, la adquisición de un conocimiento extra puede invalidar por completo el flujo de información obtenido hasta el momento para el entendimiento del sistema. El desarrollo de un sistema de software suele ser muy complejo, por esta razón se solicita la intervención de gran variedad de personas pertenecientes a los recursos humanos denominados participantes. Al conjunto de funciones y responsabilidades que hay dentro del proyecto o sistema se le conoce como roles o papeles. Los roles están asociados a las tareas que son asignadas a los participantes, en consecuencia, una persona puede desempeñar uno o múltiples roles, así también un mismo rol puede ser representado por un equipo Una vez que cada participante ejecuta los papeles o roles correspondientes se da lugar a los productos de trabajo, estos son artefactos (documentos o fragmentos) producidos durante el desarrollo del software para el cliente (entregas) o para el consumo interno del proyecto (producto de trabajo interno). La entrega es una actividad, las actividades son un conjunto de tareas a realizar con un propósito en específico, en este caso, el propósito de la entrega es instalar el sistema en una ubicación operacional. Las actividades pueden estas compuestas de otras actividades a las que se les llama fases. Las tareas por su parte representan una unidad del trabajo, estas consumen recursos y dan como resultado productos de trabajo. Un principio fundamental para guiar el proyecto es el objetivo este puede variar dependiendo de los requerimientos y restricciones, los objetivos definen los atributos importantes del sistema. Definir mal los objetivos del proyecto puede dificultar su desarrollo. Los requerimientos son las características con las debe de contar el sistema y se clasifican en requerimientos funcionales y no funcionales; los funcionales se les entiende como un área que debe soportar el sistema, mientras que los no funcionales son las restricciones de operación del sistema. Como cualquier proyecto, la ingeniería de software necesita de una metodología para poder progresar de manera óptima y alcanzar los objetivos. La metodología consiste en una colección de métodos para la solución de algún problema entre los cuales podemos encontrar la técnica de modelado de objetos (OMT), Catalysis y la metodología de Booch que son métodos ocupado para el desarrollo de software orientados a objetos. Estas metodologías se descomponen en el proceso de actividades a realizar que modelan el dominio de solución. La metodología de la ingeniería de software requiere llevar a cabo numerosas etapas. A estas etapas se les conoce como ciclo de vida que es el conjunto de estados del progreso del proyecto de creación de aplicaciones, para poder identificar cuánto se ha avanzado y cuánto queda hasta el final. Las etapas son las siguientes: 1. Obtención de requisitos. 2. Análisis de requisitos. 3. Limitaciones. 4. Especificaciones. 5. Arquitectura. 6. Programación. 7. Desarrollo. 8. Pruebas. 9. Implementación. 10. Documentación. 11. Mantenimiento. Las herramientas CASE (Ingeniería de Software Asistida por Computadora) son herramientas computacionales (software) que están destinadas a asistir en los procesos de ciclo de vida de un software, facilitan la producción del software, varias se basan principalmente en la idea de un modelo gráfico. El método es la técnica repetible para la solución del problema plateado, por ejemplo, un algoritmo de ordenamiento es el método utilizado para ordenar las una lista especifica. Implementa enfoques estructurados para el desarrollo de software que incluye: descripciones del modelo, descripciones de modelos gráficos que deben ser producidos reglas, restricciones aplicadas a los modelos de sistemas, recomendaciones para realizar un diseño efectivo, administración del proceso que consisten en actividades deben realizarse y en qué orden. El modelado del sistema se representa por medio de una notación, estas notaciones son un conjunto de reglas grafías y textuales, por ejemplo UML (lenguaje de modelado unificado) que es una notación basada en la teoría de conjuntos. En conclusión, el éxito de los proyectos en la industria del software depende de distintos factores a los que se enfrentan en el proceso, o la cultura del país donde está asentada la empresa. En primera instancia, donde sólo se toman en cuenta los aspectos técnicos, un segundo donde aparecen factores como tiempo, costo y alcance, obligando a la gerencia de proyectos a mantener un equilibrio; un tercer punto agrega el factor de calidad y comienza la industria y la academia a producir diferentes estándares y metodologías. Por último, aparece la satisfacción del cliente. En una economía global fundada en la información y el conocimiento, el software constituye una herramienta crucial para el aumento de la productividad, ya que incorpora tecnologías y soluciones a los diferentes problemas que se presentan día con día. En la última década, el sector de desarrollo de productos y servicios de software se ha convertido en un impulsor dominante de la cada vez más creciente economía de la información (Tatikonda, 2002). El software de computadora es el producto que diseñan y construyen los ingenieros de software. Esto abarca programas que se ejecutan dentro de una computadora de cualquier tamaño y arquitectura, después de estar construido casi cualquier persona en el mundo industrializado, ya sea directa o indirectamente. El software se ha convertido en algo muy necesario en nuestra sociedad actual, es la máquina que conduce a la toma de decisiones comerciales, sirve para la investigación científica moderna, es un factor clave que diferencia productos y servicios modernos. Esto se da porque el software está inmerso en sistemas de todo tipo alrededor de nosotros. .
Excel para principiantes: Aprenda a utilizar Excel 2016, incluyendo una introducción a fórmulas, funciones, gráficos, cuadros, macros, modelado, informes, estadísticas, Excel Power Query y más
La psicología del trading de una forma sencilla: Cómo aplicar las estrategias psicológicas y las actitudes de los comerciantes ganadores para operar con éxito en línea.