Capas Del Software

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 8

DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA

CARRERA DE INGENIERÍA EN SOFTWARE

Capas de la Ingeniería de Software.

Objetivo:
 Comprender el desarrollo de software de calidad mediante el estudio de las capas de
la ingeniería de software.

Introducción:
Analizaremos de manera objetiva para que sirve dividir la ingeniería de Software en Capas,
tanto para los procesos utilizados como para los métodos y las herramientas que se usan en
estos procesos.

Desarrollo:
El enfoque de ingeniería del software cuenta con un compromiso organizacional con la
calidad porque no es posible incorporar la ingeniería del software en una organización que
no está centrada en conseguir calidad.

La ingeniería del software es una tecnología multicapa. Se puede ver como un conjunto de
componentes estratificados, que reposan sobre ese enfoque de calidad.

Estos componentes que forman parte de la ingenieria del software son:

Procesos: un marco de trabajo que ayuda al jefe de proyecto a controlar la gestión del
proyecto y las actividades de ingeniería.
Métodos: las actividades tecnicas requeridas para la creacion de productos de trabajo.
Herramientas: la ayuda automatizada para los procesos y métodos.

Procesos
El fundamento de la ingeniería del software es la capa de proceso. El proceso define un
marco de trabajo para un conjunto de áreas clave de proceso que se deben establecer para la
entrega efectiva de la tecnología de la ingeniería del software.
La capa de proceso define el proceso que se usará para construir el software y las
actividades y tareas que un jefe de proyecto tiene que gestionar. Por lo tanto, las áreas
claves del proceso forman la base del control de gestión de proyectos del software y
establecen el contexto en el que se aplican los métodos técnicos, se obtienen productos de
trabajo (modelos, documentos, datos, informes, formularios, etc.), se establecen hitos, se
asegura la calidad y el cambio se gestiona adecuadamente. El proceso de la ingeniería del
software es la unión que mantiene juntas las capas de tecnologías y que permite un
desarrollo racional y oportuno de la ingeniería del software.

Se pueden ver todas las actividades, incluyendo las actividades técnicas, como parte del
proceso. Además, cualquier recurso, incluyendo herramientas usadas para construir el
software también encajan en el proceso. La capa de proceso es, por lo tanto, el fundamento
de la ingeniería del software y da soporte a las capas de métodos y herramientas.

Un proceso:
‐Identifica todas las actividades y tareas de la ingeniería del software
‐Define el flujo de trabajo entre las actividades y tareas
‐Identifica los productos de trabajo que se producen
‐Especifica los puntos de control de calidad requeridos

La capa de proceso abarca las siguientes cuestiones:

‐El marco de trabajo de proceso común (CPF)


‐Actividades y tareas de la ingeniería de software
‐Puntos de control de calidad
‐Definiciones de productos de trabajo
‐Gestión de proyectos
‐Aseguramiento de la calidad del software
‐Gestión de la configuración del software
‐Monitorización de proyectos
‐Medidas y métricas

Métodos
La capa de métodos se centra en las actividades técnicas que se deben realizar para
conseguir las tareas de ingeniería. Proporciona el “cómo” y cubre las actividades de
ingeniería fundamentales.
Los métodos abarcan una gran gama de tareas que incluyen análisis de requisitos, diseño,
construcción de programas, pruebas y mantenimiento. Los métodos de la ingeniería del
software dependen de un conjunto de principios básicos que gobiernan cada una de las
áreas de la tecnología e incluyen actividades de modelado y otras técnicas descriptivas.

La construcción de software implica una amplia colección de actividades técnicas. La capa


de métodos contiene los métodos definidos para realizar esas actividades de forma
eficiente. Se centra en cómo se han de realizar las actividades técnicas.
Las actividades técnicas fundamentales para construir software son:
‐Análisis: el análisis es el fundamento de todos los trabajos de ingeniería que siguen.
Durante el análisis, se crea el modelo de lo que es requerido por el software.
‐Diseño: las actividades de diseño siguen el análisis y traducen el modelo del análisis en
cómo el producto proporciona estas funciones por medio del software.
‐Codificación: una vez que el diseño es completo, la codificación traduce el modelo de
diseño en una forma ejecutable.
‐Pruebas: el proceso de pruebas ayuda a destapar errores en el código y el diseño
subyacente.

También se realizan actividades de soporte: revisiones técnicas y soporte de métricas.

Consideramos las actividades de análisis y diseño. Hay una amplia variedad de métodos
disponibles. El equipo de proyecto debería seleccionar el método que es más apropiado
para el problema, el entorno de desarrollo y el conocimiento y experiencia de los miembros
del equipo.

Herramientas
La capa de herramientas proporciona soporte a las capas de proceso y métodos centrándose
en el significado de la automatización de algunas de las actividades manuales. Las
herramientas se pueden utilizar para automatizar las siguientes actividades:

‐Actividades de gestión de proyectos


‐Métodos técnicos usados en la ingeniería del software
‐Soporte de sistemas general
‐Marcos de trabajo para otras herramientas

La automatización ayuda a eliminar el tedio del trabajo, reduce las posibilidades de errores,
y hace más fácil usar buenas prácticas de ingeniería del software. Cuando se usan
herramientas, la documentación se convierte en una parte integral del trabajo hecho, en vez
de ser una actividad adicional. De ahí que la documentación no se tenga que realizar como
actividad adicional. Las herramientas se pueden utilizar para realizar actividades de gestión
de proyecto así como para actividades técnicas.

Existen una gran variedad de herramientas para múltiples actividades. Entre ellas se pueden
destacar las siguientes:

‐Herramientas de gestión de proyectos


‐Herramientas de control de cambios
‐Herramientas de análisis y diseño
‐Herramientas de generación de código
‐Herramientas de pruebas
‐Herramientas de reingeniería
‐Herramientas de documentación
‐Herramientas de prototipos
Conclusión:
 Las capas de la ingeniería del software, ayudan a desarrollar software de calidad; ya
que de esta forma beneficiará a las organizaciones dedicadas a esta. De igual forma
es importante llevar un seguimiento en el desarrollo de software, asì se podra tener
un respaldo a la hora de presentar nuestro software.

Bibliografías:
 Sosagas.blogspot.com. (2017). CAPAS DE LA INGENIERÍA DE SOFTWARE.
[online] Available at: http://sosagas.blogspot.com/2011/09/capas-de-la-ingenieria-
de-software.html [Accessed 17 May 2017].

 Ingeniería de Software: Métodos y Ciclos de Vida.


DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
CARRERA DE INGENIERÍA EN SOFTWARE

Avances Tecnológicos de la Ingeniería de Software.

Robots que transmiten a otros las habilidades que han aprendido de


humanos.
La mayoría de robots son programados usando uno de dos métodos: aprendizaje a partir de
la demostración, en la que observan una tarea mientras se está realizando y después la
reproducen, o a través de técnicas de planificación de movimientos, tales como optimización
o muestreo, que requieren que un programador especifique explícitamente los objetivos y
límites de una tarea.
Ambos métodos tienen inconvenientes. Los robots que aprenden a partir de la demostración
no pueden transferir fácilmente una habilidad que hayan aprendido a otra situación y seguir
siendo precisos. Por otro lado, los sistemas de planificación de movimientos que utilizan el
muestreo o la optimización pueden adaptarse a estos cambios pero ello lleva tiempo, dado
que normalmente tienen que ser recodificados a mano por programadores humanos expertos.
Unos investigadores del Laboratorio de Ciencias de la Computación e Inteligencia Artificial
(CSAIL), adscrito al Instituto Tecnológico de Massachusetts (MIT), en Cambridge, Estados
Unidos, han desarrollado un sistema cuyo objetivo es tender puentes entre las dos técnicas:
el C-LEARN, que permite a los no programadores enseñar a los robots una serie de tareas
simplemente proporcionándoles alguna información sobre cómo se manipulan normalmente
los objetos, y mostrando después al robot una única demostración de la tarea.
De forma importante, esto permite a los usuarios enseñar a los robots habilidades que puedan
ser transferidas automáticamente a otros que tengan formas diferentes de moverse, una
capacidad de propagar conocimientos entre los robots que resulta esencial para ahorrar
tiempo y dinero cuando el objetivo es adiestrar a muchos robots, con la máxima rapidez y sin
preparación previa por diseño de software, para que sean capaces de realizar una serie de
acciones.
Al fondo, Claudia Pérez-D'Arpino. En primer plano, la mano de uno de los robots con los
que ha trabajado, agarrando un objeto. (Foto: Jason Dorfman/MIT CSAIL)
Combinando el carácter intuitivo del aprendizaje mediante la demostración, con la precisión
de los algoritmos de planificación de movimientos, este enfoque puede ayudar a los robots a
realizar nuevos tipos de tareas que no han podido aprender a hacer antes, como por ejemplo
ensamblar objetos, usando ambos brazos, a través de varios pasos.
El equipo de las robotistas Claudia Pérez-D’Arpino y Julie Shah ensayó el sistema sobre el
Optimus, un nuevo robot de dos brazos diseñado para neutralizar bombas, al que
programaron para realizar tareas como abrir puertas, transportar objetos y extraerlos de
contenedores. En simulaciones, mostraron que las habilidades aprendidas por el Optimus
podían ser transferidas sin problemas a otro robot, bastante distinto, llamado Atlas, de aspecto
humanoide, con casi 200 kilogramos de peso y propiedad del CSAIL. Al Atlas, diseñado con
financiación militar, se le ha descrito coloquialmente como "el primer Terminator" por su
aspecto amenazante así como por su notable grado de sofisticación que, aunque muy por
debajo del de los Terminators de la saga de ciencia-ficción con ese nombre, alcanza un nivel
lo bastante alto como para justificar esa comparación con el hipotético modelo más primitivo
y antiguo de un Terminator.
Bibliografía

Noticias de la Ciencia y la Tecnología (Amazings® / NCYT®). (2017). Robots que


transmiten a otros las habilidades que han aprendido de humanos — Noticias de la
Ciencia y la Tecnología (Amazings® / NCYT®). [online] Available at:
http://noticiasdelaciencia.com/not/24266/robots-que-transmiten-a-otros-las-habilidades-
que-han-aprendido-de-humanos/ [Accessed 17 May 2017].
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
CARRERA DE INGENIERÍA EN SOFTWARE

Peores Errores de la Ingeniería de Software

Objetivo:
 Recalcar que un proceso de Software mal elaborado puede tener consecuencias graves
en el producto final, como veremos en los ejemplos.

Introducción:
Encontraremos algunos errores en el proceso de software de algunos proyectos que se
cobraron miles de millones de dólares e incluso pérdidas humanas en algún caso.
La falta de calidad del software siempre tiene consecuencias. Afecta directamente a la
reputación de empresas e instituciones, produce costes económicos elevados y, en el peor
de los casos, pone en peligro la vida de las personas. Durante los últimos años se han
producido errores de software que por su trascendencia o espectacularidad forman ya parte
de la historia del sector tecnológico. Estos son algunos de ellos:

Desarrollo:

La Conquista del Espacio: Fobos 1, Mariner 1 y Ariane 5


Fobos 1, Mariner 1 y Ariane 5 son grandes fracasos del Instituto de Investigaciones
Espaciales de la Unión Soviética, la NASA y la Agencia Espacial Europea,
respectivamente. Los tres casos presentan un nexo común, pequeños errores de
programación que no se tuvieron en cuenta. En el caso de la sonda rusa debido a las prisas
por ponerla en órbita. En el caso de la americana, por una verificación inapropiada y, en el
caso del cohete europeo, por reutilizar software del modelo anterior, el Ariane 4, sin tener
en cuenta las especificaciones del posterior. El resultado es que, 25 años después de su
lanzamiento, la Fobos 1 sigue orbitando alrededor del sol convertida en basura galáctica sin
haber enviado ni una sola señal a la tierra, la NASA tuvo que destruir el cohete que
transportaba la sonda Mariner 1 antes de que se estrellara sobre el océano Pacífico y el
Ariane 5, que se considera el error de programación más caro de la historia, explotó a los
40 segundos de su lanzamiento.
Therac-25, un caso dramático
Therac-25 era una máquina de radioterapia, producida por la empresa estatal canadiense de
energía nuclear, que fue la causante directa de la muerte de, al menos, tres pacientes entre
1985 y 1987 a los que se suministró sobredosis masivas de radicación. La comisión
investigadora concluyó que la razón de estos accidentes podía atribuirse a malas prácticas
en desarrollo, mal análisis en los requerimientos y un mal diseño del software. Se constató
que el código fuente no había sido revisado de forma independiente.
El error FDIV del Pentium, cuentas que no salen
En 1994 un profesor de la Universidad de Lynchburg descubrió un error en la unidad de
coma flotante del procesador Intel Pentium. Este error provocaba valores erróneos en
algunas operaciones de división. En un primer momento, Intel negó la existencia del
problema. Más tarde, su estrategia se centró en remarcar la insignificancia del defecto.
Finalmente, tuvo que proceder al cambio de todos los procesadores defectuosos, lo que
supuso un gran coste para sus arcas.
¿Dónde están mis datos?
A finales de 2009 T-Mobile y Microsoft perdieron durante unos días toda la información
personal de los usuarios de los smartphones Sidekick: contactos, notas, calendarios, fotos…
Estos datos residían en un servidor central y no en los terminales. Según parece, el fallo se
produjo durante una actualización de los equipos de almacenamiento. Fueron unos días de
locura. Al final, gran parte de la información pudo recuperarse, pero estas compañías
tuvieron que poner en marcha distintos planes de indemnizaciones para sus usuarios.
El día que desapareció Suecia
También en 2009 se produjo el más genuino y espectacular bug de la historia. En esta
ocasión, causado por un solo caracter en una línea de código (faltaba un punto), que hizo
desaparecer a Suecia del mapa de Internet. Durante unas horas, que se convirtieron en días
en algunos casos, los servidores DNS no fueron capaces de encontrar las direcciones con el
dominio local y, por tanto, nadie pudo acceder a ninguna página web alojada en el dominio
.se. En la investigación se señaló que una configuración incorrecta de un script de
mantenimiento hizo que se introdujera un error que afectó a todos los dominios .se.

Conclusión:
 A pesar de los fallos que se producen continuamente aún resulta complicado
demostrar que la calidad del software es un factor decisivo para el éxito, sin
embargo, que la falta de calidad del software es un factor decisivo para el fracaso.

Bibliografías:
 Mtp.es. (2017). Los Cinco Grandes Errores de la Historia del Software. [online]
Available at: http://www.mtp.es/noticias/47-los-cinco-grandes-errores-de-la-
historia-del-software [Accessed 17 May 2017].

También podría gustarte