1-Ingeniería de SW - Apuntes lectura1 PDF

Title 1-Ingeniería de SW - Apuntes lectura1
Author Facundo Caserez
Course Taller de ingenieria de software
Institution Universidad Siglo 21
Pages 8
File Size 479.8 KB
File Type PDF
Total Downloads 568
Total Views 678

Summary

Warning: TT: undefined function: 22 Warning: TT: undefined function: 22 Warning: TT: undefined function: 32 Warning: TT: undefined function: 22Taller deIngeniería deSoftwareIngeniería deSoftware####### Frases introductoriasExisten varias definiciones de Ingeniería de Software, para poder analizarlas...


Description

Ingeniería de Software

Taller de Ingeniería de Software

/ŶŐĞŶŝĞƌşĂĚĞ^ŽĨƚǁĂƌĞ ŽŶĐĞƉƚŽĚĞ/ŶŐĞŶŝĞƌşĂĚĞ ^ŽĨƚǁĂƌĞ  Frases introductorias “Ingeniería de Software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, funcionamiento y mantenimiento del software: es decir, la aplicación de ingeniería al software. (IEEEInstitute of Electrical and Electronics Engineers, 1993) Existen varias definiciones de Ingeniería de Software, para poder analizarlas es necesario conocerlas por lo que a continuación presento las más relevantes: •

“Ingeniería del Software es el estudio de los principios y metodologías para desarrollo y mantenimiento de sistemas de software”. [Zelkovitz, 1978], Ingeniería del Software: un enfoque práctico de Roger Pressman



“Ingeniería del Software es la aplicación práctica del conocimiento científico en el diseño y construcción de programas de computadora y 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].

1



“Ingeniería del 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 una disciplina 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 pone en operación”. [Sommerville, 2001]

Como podemos observar todas las definiciones tienen el mismo tipo de mensaje, la ingeniería de software implica orden, metodología, documentación en el proceso de desarrollo del software. Para lograrlo es importante conocer las bases científicas, de conocimiento y herramientas que nos permitan operar correctamente para obtener un producto de calidad. La elección de los modelos y normas a crear tiene mucha influencia sobre cómo se aborda el problema y cómo Ɛe da forma a lasolución. sto quiere decir que hay que elegir bien los modelos y normas es por ello que la Ingeniería de Software nos indica las buenasprácticas para que el desarrollode un producto de software no sea un arteĐŽŵŽ ƐƵĐĞĚŝſ ĚƵƌĂŶƚĞ ǀĂƌŝĂƐ ĚĠĐĂĚĂƐ ĞŶ ůĂƐ ƋƵĞ ĞƐƚŽ ĂƉĂƌĞũſ muchos inconvenientes y clientes disconformes Hay muchos tipos de sistemas de software, desde los simples sistemas embebidos hasta los más complejŽƐ que al ser abstractos e intangibles no están restringidos por las leyes físicas ni por procesos de fabricación que Ɛş son contempladŽs en las otras ingenierías. Si bien esto simplifica la ingeniería de software al no existir límites naturales, el riesgo es que rápidamente ƐĞ ǀƵĞůǀĂŶ muy complejos, difíciles de entender con una mantención muy costosa, falta de portabilidad y de reuso, dificultando la inteƌoperaƚŝǀŝĚĂĚ entre sistemas y proclive a ser ineficientes.

2

La /ngeniería de software es una ƐƵďdisciplina de ůĂ/ngeniería, considerada dentro de la Ingeniería en ^istemas, ƋƵĞ se interesa por todos los aspectos de la construcción de software, desde la especificación de requerimientos para el sistema hasta el mantenimiento del mismo una vez instalado para su operación o uso. Ian Sommerville en su libro Ingeniería de software presenta dos frases claves en su definición de /ngeniería de ^oftware: 1Ϳ Disciplina de software, relacionada con la actividad de los ingenieros que hacen que las cosas funcionen aplicando teorías, métodos y herramientas. Es común que en esta actividad se trabaje con restricciones organizacionales y/o financieras que obligan a buscar soluciones dentro de los parámetros establecidos. 2Ϳ Todos los aspectos de la producción de software, esto incluye procesos, etapas, tecnología a utilizar, administración del proyecto, teorías, métodos, o sea todo aquello que colabore y apoye la construcción del software. Dentro de los objetivos que busca la ingeniería de software podemos mencionar: -

Obtener un producto de calidad dentro de la fecha y presupuesto previsto.

Este objetivo lleva aparejado una seria de acciones muy importantes y objetivos específicos a lograr para llegar al éxito del proyecto.

ŝǀĞƌƐŝĚĂĚĚĞůĂ/ŶŐĞŶŝĞƌşĂĚĞƐŽĨƚǁĂƌĞ  El tema lo encontrará en el capítulo 1 de Ingeniería de Software de Ian Sommerville. En la actualidad la Ingeniería de ^oftware es un enfoque sistemático para la construcción del mismo que tiene en cuenta los costos, fechas de entrega, confiabilidad, la calidad del producto, las necesidades del cliente, los dispositivos en los que puede aplicarse, la tecnología en comunicaciones, proveedores de softwarĞ  que pueden interactuar, individuos que intervienen en el proceso de construcción, entre otros. Este enfoque sistémico requiere de una metodología, un orden y buenas prácticas teniendo en cuenta que no existen métodos y técnicas

3

universales que se apliquen a todo tipo de software, es que es necesario basarse en los principios de la ingeniería de software para lograr un producto de calidad, que satisfaga al cliente y que se entregue en término. Para elegir las técnicas y métodos más apropiados es importante tener en cuenta los distintos tipos de aplicación que están siendo desarrolladas en la actualidad, reconociendo que en esta disciplina el avance tecnológico puede presentar nuevos tipos o alternativas para las aplicaciones. No obstante es conveniente identificar estos tiposntre ellos podemos citar los que Ian Sommerville presenta en su libro Ingeniería de Software: - AplicacionesindependientesEormalmenteƐŽŶ monousuarios, instaladas en una computadora sin necesidad de conexión o interacciónconotroscomponentesde hardware y software. -

Aplicaciones interactivas basadas en transacciones Eormalmente son aplicaciones que se ejecutan en una computadora remota, server, a los que los usuarios acceden desde sus terminales, las cuales pueden ser servidores de otras aplicaciones o servicios.

- Sistemas de control eŵbebido ^on sistemas de control de software que regulan y gestionan dispositivos de hardware. En la actualidad son los que les resultarán más familiares, ya que nos referimos al software de celulares, de los automóviles, los electrodomésticos, entre otros. - Sistemas de procesamiento en lotes ^i bien no son los más comunes en este momento aƷn se utilizan son los que procesan grandes cantidades de datos en un momento determinado, o sea, no son en tiempo real, como puede ser los sistemas de pago de salario, facturaciones de servicios, entre otros. -

Sistema de entretenimiento ^on juegos que pueden ser de uso personal únicamente o de interactividad con otros jugadores.

- Sistemas de modelado y simulación ^istemas que modelan procesos o situaciones físicas donde interactúan muchos objetos. Por lo general son diseñados de forma conjunta ĞŶƚƌĞ ingenieros, científicos y profesionales o técnicos de otras disciplinas por ejemplo, la simulación de un torno requiere de ingenieros de distintas disciplinas, diseñadores industriales, diseñadores gráficos, programadores, especialistas, entre otros. -

Sistemas de adquisición de datos ^on sistemas que requieren de dispositivos que obtienen los datos y los envían para su procesamiento a otros sistemas. Algunos ejemplos son los que utilizan censores, ya sea de humedad, sonido, calor, también pueden considerarse los GPS, lectores de barra, entre otros. 4

-

Sistemas de sistemas ^on sistemas compuestos por un conjunto de sistemas de software pudiendo ser parte del sistema genérico o no. Ten en cuenta que un componente no es un sistema por lo que requiere de la funcionalidad de unir, relacionar estos sistemas en uno solo.

Los sistemas de software no pertenecen por lo general a una sola clasificación de las planteadas anteriormente, pueden estar en dos o más de ellas, por ejemplo un juego para celular, las aplicaciones para Smartphone, SmartTV, entre otras. Software en la web Con el avance de Internet, las empresas no solo presentaron sus productos con la intención de ampliar su cartera de clientes Ăů saliƌ de las fronteras locales hacia las nacionales o internacionales, sino que los avances han llevado en los últimos años al concepto de “Software como servicio”. ¿Qué es software como servicio? La tendencia llevó a que el software no corrŝĞƌĂ en una computadora local, ni en un servidor local, sino en la “nube” a las que necesariamente se accede por internet. Este avance cambia el concepto de compra de software por el de uso con un pago por el servicio, también puede ser gratuito con publicidades que se visualizan en el sitio. Esta situación condujo al desarrollo de nuevos productos con servicios innovadores ƋƵĞ ƐĞ integrĂŶ desde la web LJ ĚĂŶ la posibilidad ĚĞ que otros actores deů negocio pudieran acceder al sistema, como los proveedores LJ clientes de las empresas a través de lo que se conoce como ΗautogestiónΗ. Estos servicios también se incorporaron en las instituciones educativas para autogestión de alumnos y de docentes, en la administración pública para seguimiento de trámites, entre otros. Para acceder a estas aplicaciones los usuarios del sistema necesitan un navegador en su pc, notebook, tablet o teléfono celular y una conexión a Internet. Estas tecnologías, hardware de dispositivos, software de navegadores y comunicación a Internet, fueron evolucionando ŚĂƐƚĂ permitiƌ que los usuarios de lugares fuera de las grandes ciudades puedan disponer de estas tecnologías y acceder a los sistemas. Una nube de computación es un enorme número de sistemas de computación vinculados entre sí que comparten muchos usuarios. La novedad en la comercialización es que los clientes no compran el software sino que pagan el servicio ĚƵƌĂŶƚĞ ƐƵ ƵƐŽ, mientras que sus clientes acceden ƐŝĞŵƉƌĞ ƋƵĞ cuenten con la tecnología necesariĂ para acceder.

5

Este avance cambia el concepto de realizar una aplicación empresarial no se programa desde cero sino que requieren de componentes y programas reutilizables. ¿Se puede usar la misma ingeniería? El cambio en la organización del software condujo a modificaciones importantes: -

Reutilización del software^i bien el concepto y la utilización ya estaban presentes, para la web se torna indispensable el uso de componentes que se ensamblan y se reutilizan.

-

Especificación de requerimientoss dinámico por lo que debe hacerse progresivamente, no es posible tener el 100% de los requerimientos para comenzar a desarrollar la aplicación web.

- Interfaz de usuario Eo solo cambió sino que se encuentran restringidas por los navegadores. Las normas de usabilidad de la interfaz de sistemas locales o en red de escritorio cambian a las normas de usabilidad de la interfaz web. - Dispositivo de hardware >as aplicaciones web se pueden utilizar desde computadoras, teléfonos móviles (Smartphone), desde tablet, televisores (SmartTV), reloũes y no tenemos dimensión del futuro, por lo que requiere una mirada muy cuidadosa al respecto.

6

BibliografíaVGHUHIHUHQFLD Ian Sommerville, “Ingeniería de Software”, Pearson.

Novena edición, 2011, Editorial

Capítulos: 1, 2, 9

7...


Similar Free PDFs