domingo, 29 de marzo de 2009

Tema 3 COMPONENTES CLAVE DE DESARROLLO DE SOFTWARE

COMPONENTES CLAVE DE DESARROLLO DE SOFTWARE


Las constante mejoras que han tenido en la relación costo eficacia, han causado una expansión en las aplicaciones, y esto a causado que la informática sea una solución factible y económica.

Por tanto esto ha producido una mayor demanda en el desarrollo de sistemas de informática, esto ha surgido y se ha comenzado sus análisis desde 1970, se han aplicando rigores de la ciencia y de la ingeniería para el proceso de producción de software.

A consecuencia de esto se produjeron nuevos avances en la tecnología de producción de software.

Existen diferentes aspectos por los cuales el desarrollo del software tiene deficiencias, es decir que la principal causa de la deficiencia de software es porque todavía no aprendemos a analizar y comprender lo que realmente es el desarrollo de software.

Este capítulo nos presenta un modelo de dinámica de sistemas del proceso de desarrollo de software que permite conocer con mayor detalle y hacer predicciones sobre el proceso del software.

Hay varios aspectos y puntos por los cuales el desarrollo de un sistema de software es deficiente, uno de ellos es el retraso del proyecto, este tiene muchas causas y eso se debe a que no hay un orden en la fecha de terminación, revisión de la fecha de contratación del personal, fecha señalada para la terminación del proyecto, etc.

Se debe de proveer el costo del proyecto y finalización de este, basándose en que un proyecto siempre debe de tener calidad y se debe d agregar un esfuerzo mayor en esta parte del proyecto para tener mejores resultados.

Uno de los aspectos importantes es el ciclo de vida del sistema, durante el cual se definen porcentajes para trabajar, tomando en cuenta los aspectos de proyecto así como los requerimientos que este debe de tener. Con la finalidad de tener establecido el tiempo para el desarrollo y las pruebas que se la van a efectuar al proyecto.

El desarrollo de proyectos y sus actividades de gestión, casi siempre se basan a una imagen mental.

El modelo de este capítulo se enfoca solamente a la parte de desarrollo del sistema y producciones, y se extiende hasta la última fase de desarrollo del software.

En este modelo no incluyen las fases posteriores del proyecto, como son las de mantenimiento futuro del mismo.

El análisis del proyecto lo determinan los requerimientos, y el proyecto se debe de basar en la organización del desarrollo.

Modelo de fronteras

Este modelo se basa en el acuerdo que existe entre el cliente y el desarrollador del sistema en cuanto a lo que el sistema debe de cumplir.

En segundo lugar se enfoca en la organización del desarrollo de software, es decir en los directores de proyecto y desarrollo de software profesionales, y de cómo sus políticas decisiones y acciones afectan el éxito o el fracaso del desarrollo.

El modelo costa de cuatro subsistemas principales

· La gestión de recursos humanos

· Planificación

· Control

· Producción de software

El Subsistema de Gestión de Recursos Humanos comprende la contratación, la formación, la asimilación, y la transferencia de los recursos humanos del proyecto.

Otros componentes claves de desarrollo de software son:

- Fuerza de trabajo disponible
- Estado de los programas informáticos necesarios
- Producción de software de desarrollo
- Calendario de tareas Completo
- Controlar el esfuerzo de planificación restante

El desarrollo de la actividad comprende tanto el diseño y la codificación del software. Como el software se desarrolla, también es revisado para detectar cualquier diseño o de errores de codificación. Errores detectados a través de la garantía de la calidad son modificados. No todos los errores se detectan, algunos se "escapan" hasta después de la detección de desarrollo, es decir, hasta la fase de prueba.
El software es básicamente un producto intangible durante la mayor parte del proceso de desarrollo, no hay visible hitos para medir el progreso y la calidad como un producto físico. Una vez que una evaluación del estado del proyecto se hace, se convierte en una importante aportación a la función de planificación.

Beneficios del Desarrollo de Software basado en Componentes

En esencia, un componente es una pieza de código preelaborado que encapsula alguna funcionalidad expuesta a través de interfaces estándar. Los componentes son los "ingredientes de las aplicaciones", que se juntan y combinan para llevar a cabo una tarea.

El paradigma de ensamblar componentes y escribir código para hacer que estos componentes funcionen se conoce como Desarrollo de Software Basado en Componentes. El uso de este paradigma posee algunas ventajas:

1. Reutilización del software. Nos lleva a alcanzar un mayor nivel de reutilización de software.

2. Simplifica las pruebas. Permite que las pruebas sean ejecutadas probando cada uno de los componentes antes de probar el conjunto completo de componentes ensamblados.

3. Simplifica el mantenimiento del sistema. Cuando existe un débil acoplamiento entre componentes, el desarrollador es libre de actualizar y/o agregar componentes según sea necesario, sin afectar otras partes del sistema.

4. Mayor calidad. Dado que un componente puede ser construido y luego mejorado continuamente por un experto u organización, la calidad de una aplicación basada en componentes mejorará con el paso del tiempo.

De la misma manera, el optar por comprar componentes de terceros en lugar de desarrollarlos, posee algunas ventajas:

1. Ciclos de desarrollo más cortos. La adición de una pieza dada de funcionalidad tomará días en lugar de meses ó años.

2. Mejor ROI. Usando correctamente esta estrategia, el retorno sobre la inversión puede ser más favorable que desarrollando los componentes uno mismo.

Funcionalidad mejorada. Para usar un componente que contenga una pieza de funcionalidad, solo se necesita entender su naturaleza, más no sus detalles internos. Así, una funcionalidad que sería impráctica de implementar en la empresa, se vuelve ahora completamente asequible.

Consultoria COSISCOM

11 comentarios:

  1. Este comentario ha sido eliminado por un administrador del blog.

    ResponderEliminar
  2. Hola!

    Me parece que este tema es uno de los mas importantes en cuanto a la realización de los proyectos del Software, ya que tenemos que tener una buena planeacion de los tiempos en los que se van a elaborar en dicho proyecto.

    Como experiencia les puedo comentar que necesita ser una persona capacitada y con mucha practica la que realice el tiempo de entrega del proyecto ya que necesita ver semanas inhábiles, programadores necesitados y un buen numero de variantes que una persona sin experiencia no podría determinar!

    Con esto garantizamos una mayor probabilidad que nuestro proyecto pueda estar en tiempo y en forma.

    ResponderEliminar
  3. Concuerdo con Abel, en que esta fase es fundamental para el desarrollo de software.
    Si bien habría que analizar más detenidamente en qué casos se debería aplicar cada metodología , lo cierto es que sin usar alguna de ellas, el fracaso de un desarrollo sería inevitable.

    Hay un punto que menciona que un punto que hace deficiente al software es el retraso del mismo; no concuerdo completamente con ese aspecto, ya que de hecho, la deficiencia como tal, es la que causa el retraso, y no visceversa. Por lo menos en su mayoría de veces, creo yo.
    Sobre el modelo de fronteras, se presentan los cuatro subsistemas que lo componen. No me queda claro si el orden ahí establecido es el que se debería seguir, pues si bien, la gestión de recursos humanos, sería conveniente llevarla a cabo tras una buena planificación del desarrollo del sistema.

    En fin, son los únicos detalles que quería aclarar tras la lectura de este buen resumen.

    Jair Sandoval.
    Bitnet Corp.

    ResponderEliminar
  4. Me gusta este resumen porque toca los temas de manera rápida y concisa, en la parte de Beneficios del Desarrollo de Software basado en Componentes, mencionan algo sobre reutilización del software y hay que tener en cuenta que la reutilización puede tener la ventaja de que se dispone inmediatamente de él, evita desarrollos costosos, también buena funcionalidad, sin embargo si no se lleva de una manera cuidadosa presenta desventajas como: retrasos por licenciamiento, pagos frecuentes de mantenimiento y hasta puede llegar a dependerse del proveedor.
    Así que en mi opinión hablar de compatibilidad es muy importante cuando se trabaja con software reutilizable.

    ResponderEliminar
  5. Jimenez Moreno Humberto COSISCOM

    una de las piezas mas importantes en el desarroyo de software a mi punto de vista es la elaboracion de un buen calendario de actividades, ya que si no se lleva acabo este el proyecto puede llegara fracasar, otro punto importante para que el proyecto sea exitoso es te enr una buena comunicacion con el cliente debido a que se tiene que tener claro los requerimientos. en el capitulo 2 lei que muchas veces, si el cliente esta cambiando los requerimientos o metiendose en la planeacion el proyecto no sale en forma ya que siempre hay que estar cambiando cosas. a mi punto de vista lo mejor es solo mantener informado al cliente de como va el proyecto y si ahy dudas tener una platica con el para aclarar las dudas.

    ResponderEliminar
  6. La parte del desarrollo de software basado en componentes se me hizo intereante , una de las mayores ventajas que le vi a este metodo es que al hacer el sistema de una forma modular es mas facil poder corregir un error. Pero es aqui donde a mi parecer radica un riesgo, ya que si no se lleva una correcta documentacion de todas sus partes (como sucede en muchos casos de desarrollo de software) cuando se le hace una mejora o una correccion al programa , a la larga terminas teniendo un software que pudiera hacer el trabajo pero como se ignora su funcionamiento ya no se puede actualizar y se debe empezar desde cero.

    Miguel Ramirez
    Consultoria : STD

    ResponderEliminar
  7. También se me hizo muy interesante la ventaja de que el software sea por módulos, ya que permite que el proyecto se desarrolle de una manera muy eficiente, más facil de seguir y fácil de presentar a los clientes y que sobre todo se siga el calendario de actividades, ya que por experiencia personal, las cosas salen mál, así que mejr seguirlo y mantener al cliente informado

    ResponderEliminar
  8. del anterior, lo siento soy Miguel Raul Bautista de WOS

    ResponderEliminar
  9. Para poder tener una buena realizacion y desarrollo de software, se necesita tener componentes clave en el desarrollo para tener un guía al momento de la planeación, integración, desarrollo y control del software, para el cual se necesita que el software se necesita la reutilización del software, que todos los componentes del software sean probados previamente, la buena planeación para simplificar las pruebas y el mantenimiento de todo el sistema y lograr asi una gran calidad en cuanto al software.
    Por lo que es importante como ya mencione tener una buena planeación para el desarrollo de un software, logrando el buen funcionamiento y la seguridad que se desea, por lo que nos ahorramos todo un procedimiento de mantenimiento, depuración y correción de software.

    Ramiro Ruiz Anastacio
    PONYSON

    ResponderEliminar
  10. CAPITULO 3 COMPONENTES CLAVE DE DESARROLLO DE SOFTWARE.
    El desarrollo de software no es tarea fácil, ya que sabemos los retrasos que se tienen en el desarrollo por diferentes causas y algunas de las desventajas son que hace falta un buen análisis antes de empezar el desarrollo de software, sin embargo creo que se ha avanzado mucho ya que también nos proporciona grandes beneficios y no solo como usuarios si no también como desarrolladores ya que uno de los mayores beneficios es la reutilización de código ya que esto nos permite tener un desarrollo en menor tiempo. En lo que no estoy de acuerdo es que no se incluya la fase del mantenimiento ya que esta me parece importante, sobre todo porque por lo general la persona que hace el mantenimiento no es la misma que desarrollo el sistema y esto conlleva problemas.
    GB
    Lorena Zintzun Cabrera.

    ResponderEliminar