lunes, 26 de septiembre de 2011

CAPAS DE LA INGENIERÍA DE SOFTWARE

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.

La capa de proceso:

Permite al jefe de proyecto planificar una ejecución exitosa del proyecto. La capa de proceso proporciona una hoja de ruta del trabajo de ingeniería del software. Ayuda al jefe de proyecto en la creación de un plan de trabajo viable que aísle tareas de trabajo, responsabilidades, los productos de trabajo producidos, y los mecanismos usados para asegurar calidad en dichos productos de trabajos. Permite la ejecución de proyectos software dentro de un marco de tiempo razonable.

Proporciona a las personas involucradas el contexto de su trabajo. La capa de proceso guía a las personas involucradas proporcionando el marco de trabajo en el que entienden el contexto de las tareas a realizar.
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.

Importancia de un proceso

Un proceso es útil porque proporciona claridad en cómo ha de realizarse el trabajo. Cualquier conjunto de actividades humanas complejas se puede convertir en caótico si no hay guías para que las personas puedan realizar las actividades. Un proceso definido responde a las siguientes cuestiones:
‐¿Quién se comunica con quién?
‐¿Cómo se coordinan las actividades interdependientes?
‐¿Quién es responsable de qué trabajo?
‐¿Quién produce qué productos de trabajo, y cómo se evalúan?


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

Algunas personas ven el desarrollo de software con una perspectiva que requiere habilidades artísticas y de artesanía y que es inherentemente caótico. Se resisten a la idea de usar un proceso definido porque lo ven como incómodo y burocrático y por lo tanto dificulta la creatividad.

Aunque no hay duda de que el desarrollo de software requiere creatividad, la mayoría del software de calidad en la industria se desarrolla por el esfuerzo coordinado de más de una persona. Para cualquier esfuerzo de equipo, el control coordinado es mejor alternativa que la anarquía. La hoja de ruta proporcionada por un proceso es útil para las personas que construyen productos software o que gestionan proyectos.

Todos los enfoques de la construcción de software tienen un proceso, pero en muchos casos, son ad hoc, invisibles y caóticos. Una buena ingeniería de software hace que el proceso de software sea más visible, predecible y más útil para aquellos que construyen software.

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 proceso identifica las tareas de ingeniería que se deben realizar para construir software de alta calidad.

La siguiente capa, 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. Los personas involucradas usan los métodos para realizar las actividades de ingeniería fundamentales necesarias para construir el software.

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.
Para varias actividades de proceso, la capa de métodos contiene el correspondiente conjunto de métodos técnicos para usar. Esto abarca un conjunto de reglas, los modos de representación gráficos o basados en texto, y las guías relacionadas para la evaluación de la calidad de la información representada.
Para definir la capa de métodos, es necesario seleccionar un método adecuado de un amplio rango de métodos disponibles.

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

Estas herramientas soportan las capas de proceso y de métodos en varias actividades.

Referencia:
Ingeniería de Software: Métodos y Ciclos de Vida.
Ministerio de Industria, Turismo y Comercio.

29 comentarios:

Anónimo dijo...

Manuel: no pues esta chido la verdad asi ya nos damos un enfoque y un segumiento en las capas para el desarrollo de software

Anónimo dijo...

Tambien es importante saber las herremientas para gestionar los proyectos.
ManuelGR

Rosa Maria dijo...

ROSA: Bueno me parecio muy importante este blog pues me ayudo a comprender un poco mas como es que funciona el desarrollo del software, y las capas que este tiene tambien pues esta muy bien la explicacion de cada una

Rosa Maria dijo...

como ya dije las capas de la ingenieria de software que menciona en el blog son cuatro las cuales son el enfoque de calidad, procesos, metodos y herramientas y las cuales cada una de ellas tiene o recaen en una parte en especifico del desarrollo del software y la cual debe seguirse para obtener u buen producto final; este tambien se ve de forma piramidal y por lo cual es mas sencillo llevar a cabo el desarrollo de software

Jesús Fernando Gómez Aguilar dijo...

Jesus Fernando G.A.: Las capas de la ingenieria de software ayudan a las organizaciones a tener una organizacion con calidad. Y sus componentes o capas son muy importantes ya que ayudan a la creacion de software.

Jesús Fernando Gómez Aguilar dijo...

Es muy importante que las capas lleven un orden para que tengan exito en la creacion del software, ya que no puden saltarse algunas capas ya que esto originaria algun error.

Anónimo dijo...

La calidad es una parte fundamental de la ingeniería del software ya que esta está comprometida a ejercerla en la organización mediante diversas capas (métodos, herramientas, procesos). Al tener esto la organización se incrementa la calidad y a su vez la eficiencia y eficacia.

Anónimo dijo...

se deben de tener en cuenta estas capas para una mejor calidad en la organizacion a mi punto de vista es un muy buen aporte para la materia ya que nos muestra la extructura del como estan extructurarda y asi poderla aplicar.

tahis dijo...

Las capas de la ingeniería del software son muy importantes ya que con ellas se puede llegar a tener una muy buena calidad. Las capas que deben seguirse son procesos métodos y herramientas.

tahis dijo...

Todas las capas de la ingeniería del software son muy importantes ya que el proceso define lo que se usará para construir el software y las actividades y tareas que un jefe de proyecto tiene que gestionar. Los métodos se centra en las tareas que se deben de realizar para realizar el software de como es que se que realizara y las herramientas es la capa que proporciona soporte a las capas anteriores centrándoce en la automatización de algunas actividades manuales

Adrian Silviano dijo...

YA QUE EL SIGUIENTE BLOG CONTIENE UNA INFORMACION MUY ENTENDIBLE,
Y EXPLICITA DELO QUE SON LAS CAPAS DE TECNOLOGIAS DE SOTFWARE YA
QUE HACI QUEDA MAS ENTENDIBLE.

Adrian Silviano dijo...

YA QUE EL SIGUIENTE BLOG CONTIENE UNA INFORMACION MUY ENTENDIBLE,
Y EXPLICITA DELO QUE SON LAS CAPAS DE TECNOLOGIAS DE SOTFWARE YA
QUE HACI QUEDA MAS ENTENDIBLE.

Adrian Silviano dijo...

COMO VIMOS EN EL BLOG EN EN LA INGENIERIA DE SOFTWARE PODEMOS ENCONTRAR 4 CAPAS QUE SE REFIEREN
A LA CALIDAD, QUE HAY PROCESOS METODOS Y HERRAMIENTAS,LAS CUALES NOS AYUDAN A OBTENER UN MEJOR
PRODUCTO DE SOFTWARE

Anónimo dijo...

bueno pues yo considero que es muy importante ya que asi podemos tener una mejor calidad en la realizacion del software, con AYUDA de la implementacion de las capaz que vimos anteriormente que son la capa de metodos, de procesos, y herramientas los cuales todos estos en conjunto ayudan a calidad,eficienccia y realizacion mas facil del mismo software.

Anónimo dijo...

Yaz: tambien creo que es necesario saber bien como aplicar todos estos conocimientos para lograr los resultados esperados, y asi cumplir nuestro objetivo

Anónimo dijo...

Pablo: El hablar de las capas de software estamos de las formas en como podemos desarrollar un software de calidad.
Este tema de las capas de software me pareció muy interesante, ya que nos facilita la forma de como podemos comprender de una manera mas saludable el concepto de software

Anónimo dijo...

Pablo: El tema de software me pareció muy interesante ya que podemos descifrar la calidad con la que se desarrolla, ademas de que también nos muestra las herramientas con las cuales y proceso, con los cuales llegamos a un mejor entendimiento.

Anónimo dijo...

alondra: pues es interesante para el enfoque sobre el desarrollo del software.

Anónimo dijo...

jesus lopez: pues con estos conocimientos adquiridos sobre las capas del software aprendimos mas sobre la importancia de ellas......

Anónimo dijo...

jesus lopez: y pues con el seguimiento de estas importantes capas o procesos se puede definir mejores cosas sobre la ingenieria de software

Anónimo dijo...

liz: las capas de la ingenieria de software me parecio muy interesantes para realizar un buen software ya que las capas tienen unos procesos y herramientas para llevarlas acabo a seguir.

Anónimo dijo...

liz:existen unos metodos para realizar las actividades tecnicas para realizar las tareas de la ingenieria eso nos ayuda a tener organizacion y calidad en en el software..

Anónimo dijo...

Joel: 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.

Anónimo dijo...

Joel: sus capas dentro de la ingenierìa del software son proceso, mètodo y herramientas de esta forma cada uno de los desarrolladores del software tendràn bien definidas sus actividades y roles en la fabricaciòn de su software.

Anónimo dijo...

elbert: es importante este tema ia que te ayuda a desarollar softwarees de calidad ya que utiliza metodos herramientas y procesas los cuales te ayudan a desarrollar con mejor forma.

Anónimo dijo...

elbert: este metodo ayuda a que el jefe utilice una mejor forma para desarolar el sofware ya que ayuda a que cada parte que realiza su trabajo les ayuda a que este lo desarrollen de mejor forma.

Anónimo dijo...

Francisco: el tener el conocimiento de que es la ingenieria de software y despues profundisar dentro de lo que es su composicion (capasÇ) es bastante interesante debido a lo que simbloiza el software paun ISC.

Anónimo dijo...

Franciso: Hablando de manera general es de manera optima saber que este blog nos menciono y describo las diversas capas de la ingenieria de software ya que es de manera imporatnte generara un buen software xq la calida es muy importante ÇBuen blog

Unknown dijo...

yo tengo una duda, el entorno de calidad si es una capa de la ingeneria de software?