Web view... la visualización y la recuperación de la ... de especificaciones, control...

35
Trabajo investigativo No. 02 Análisis de sistemas Presentado por: Camilo Esteban Rodriguez Forero Andres Mauricio Clavijo Jhon Alexander Chacon Torres Brayan Andrés Valero Pinzon Presentado a: Juan Carlos Guevara Bolaños Universidad Distrital Francisco José de Caldas Sistematización de datos

Transcript of Web view... la visualización y la recuperación de la ... de especificaciones, control...

Page 1: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

Trabajo investigativo No. 02

Análisis de sistemas

Presentado por:

Camilo Esteban Rodriguez Forero

Andres Mauricio Clavijo

Jhon Alexander Chacon Torres

Brayan Andrés Valero Pinzon

Presentado a:

Juan Carlos Guevara Bolaños

Universidad Distrital Francisco José de Caldas

Sistematización de datos

Facultad Tecnológica

Bogotá D.C. Colombia, jueves 25 de febrero 2016

Page 2: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

Tabla de contenidoIntroducción..............................................................................................................................3

Conceptos................................................................................................................................3

Ingeniería de software..........................................................................................................3

Proyecto de software............................................................................................................4

Modelo..................................................................................................................................4

Historia de la ingeniería de software........................................................................................4

Roles de un equipo de desarrollo de software.........................................................................7

Fases o etapas de un proyecto de software..........................................................................11

Descripción de los componentes de un proyecto de software...............................................16

Estándares para evaluar la calidad de un producto de software...........................................19

Conclusiones..........................................................................................................................24

Bibliografía.............................................................................................................................25

Page 3: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

Introducción.

El presente trabajo consta de un organizado seguimiento de la ingeniería del

software, conceptos básicos, su procedencia, los roles en el equipo de trabajo y a su

misma vez cómo están relacionadas implícitamente con el trabajo colaborativo para

que de esta manera se logre ver como trabajan los ingenieros en ese aspecto; todo

esto llevado a cabo por unas fases de planeación establecidas para cumplir con el

objetivo gracias a la información histórica registrada nos permite mostrar la razón de

cada uno de los ítems registrados posteriormente como lo son los roles, fases de un

proyecto, etc. que solo fueron posibles ver gracias a las distintas fases de crisis por

la que pasó este campo a lo largo del tiempo permitiendo la identificación de

algunos aspectos en cuanto a los estándares de evaluación de los proyectos de

software y los componentes de los mismos.

Conceptos.

Ingeniería de software.

Trata los problemas a los cuales el ingeniero se enfrenta con teorías y herramientas

para su respectiva solución; posee una estructura de desarrollo que se desenvuelve

en las siguientes tareas: planificación, análisis, diseño, implementación y pruebas,

en esencia la ingeniería de software es una disciplina que se encarga del desarrollo

del software.

“La ingeniería de software es el estudio de los principios y metodologías para

desarrollo y mantenimiento de sistemas de software.”(Zelkovits,1978)

“La ingeniería de 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).

Proyecto de software.

Page 4: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

Se plantea una serie de dibujos, escritos y demás para tener claridad del proyecto

que se va a realizar en cuanto a costos y desarrollo; en estos proyectos se requiere

de planeación, de algo no rutinario y de cumplir el lapso estimado de tiempo para

realizar el mismo. Este proyecto de software maneja recursos limitados, requiere de

personas especializadas en ciertos campos según el proyecto y las actividades se

llevan a cabo en varias fases, en esencia es algo organizado.

Modelo.

Se define como la idea que se establece a través de una serie de ideas planteadas

para continuar con el desarrollo de un proyecto de software. Este modelo tiene un

esquema en el cual se divide y/o fracciona el proyecto, dando de esta forma una

jerarquización de tareas a realizar para cumplir con lo que se ha planteado en el

modelo, en caso de encontrar errores se agrega o modifica algún segmento al

modelo planteado anteriormente y luego se vuelve a seguir con este ciclo hasta

llegar a algo óptimo.

Historia de la ingeniería de software.

Su origen se debió a que el entorno de desarrollo de sistemas software carecía de:

Retrasos considerables en la planificación.

Poca productividad.

Elevadas cargas de mantenimiento.

Demandas cada vez más desfasadas frente a las ofertas.

Baja calidad y fiabilidad del producto.

Dependencia de los realizadores.

1955 a 1965: Los orígenes.

El término Ingeniería del software apareció por primera vez en la década de 1950 y

principios de los años 1960. Los programadores siempre habían sabido sobre

ingenieros civiles, eléctricos y de computadores y debatían qué podría significar la

ingeniería para el software.

Page 5: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

1965 a 1985: La Crisis del Software

La ingeniería de software fue estimulada por la llamada crisis del software de la

década de 1960, 1970 y 1980, que identifica muchos de los problemas de desarrollo

de software. Muchos proyectos de software sobrepasaron el presupuesto y el

tiempo estimados. Algunos proyectos causaron daños a la propiedad. Algunos

proyectos causaron pérdidas de vidas.

Desarrollo inacabable de grandes programas.

Ineficiencia, errores, coste impredecible.

Nada es posible..

1985 a 1989: No hay balas de plata.

Durante décadas, solucionar la crisis del software fue de suprema importancia para

investigadores y empresas productoras de herramientas de software.

El costo de propiedad y mantenimiento del software en la década de 1980 fue dos

veces más caro que el propio desarrollo del software.

Durante la década de 1990, el costo de propiedad y mantenimiento aumentó en un

30% con respecto a la década anterior.

En 1995, las estadísticas mostraron que la mitad de los proyectos de desarrollo

encuestados estaban operacionales, pero no eran considerado exitoso.

El proyecto de software medio sobrepasa su estimación en tiempo en el 50%. Las

tres cuartas partes de todos los grandes productos de software son entregados al

cliente con tales fallas que no son usados en absoluto, o no cumplen con los

requerimientos del cliente.

1990 a 1999: Prominencia de Internet.

El auge de la Internet condujo a un rápido crecimiento en la demanda de sistemas

internacionales de despliegue de información y e-mail en la World Wide Web.

El crecimiento del uso del navegador, corriendo en el lenguaje HTM, cambió la

manera en que estaba organizada la visualización y la recuperación de la

información. Las amplias conexiones de red condujeron al crecimiento y la

Page 6: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

prevención de virus informáticos internacionales en computadores con MS

Windows, y la gran proliferación de correo basura se convirtió en una cuestión de

diseño importante en sistemas de correo electrónico, inundando canales de

comunicación y requiriendo de precalificación semiautomatizada.

2000 al presente: Metodologías ligeras.

Con la creciente demanda de software en muchas organizaciones pequeñas, la

necesidad en soluciones de software de bajo costo llevó al crecimiento de

metodologías más simples y rápidas que desarrollan software funcional, de los

requisitos de implementación, más rápidos y más fáciles. El uso de prototipos

rápidos evolucionó a metodologías ligeras completas como la programación

extrema,(XP), que intentó simplificar muchas las áreas de la ingeniería de software,

incluyendo la recopilación de requerimientos y las pruebas de confiabilidad para el

creciente y gran número de pequeños sistemas de software.

El software en la actualidad.

Hoy en día el software tiene un doble papel. Es un producto, pero simultáneamente

es el vehículo para hacer entrega de un producto. Como producto permite el uso del

hardware, ya sea, por ejemplo, un ordenador personal o un teléfono móvil celular.

Como vehículo utilizado para hacer entrega del producto, actúa como base de

control, por ejemplo un sistema operativo, o un sistema gestor de redes. El software

hace entrega de lo que se considera como el producto más importante del siglo

veintiuno, la información.

Actualmente se considera la Ingeniería del Software como una nueva área de la

ingeniería, y la profesión de ingeniero informático es una de las más demandadas,

aunque en España los salarios suelen ser bajos para la cualificación de estos

profesionales. La palabra ingeniería tiene una connotación de prestigio que provoca

que muchas ramas del conocimiento tiendan a autodenominarse así.

Roles de un equipo de desarrollo de software.

Page 7: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

El desarrollo de software es una actividad que, dada su complejidad, debe

desarrollarse en grupo. Además, esta actividad requiere de distintas capacidades,

las que no se encuentran todas en una sola persona. Por ello, se hace necesario

formar el grupo de desarrollo con las personas que cubran todas las capacidades

requeridas.

Administrador de proyecto:

El administrador de proyecto es la persona que administra y controla los recursos

asignados a un proyecto, con el propósito de que se cumplan correctamente los

planes definidos. Los recursos asignados pueden ser recursos humanos,

económicos, tecnológicos, espacio físico, etc. En un proyecto, siempre debe existir

un administrador. No obstante, un administrador puede dirigir más de un proyecto.

Analistas:

La palabra “análisis” se refiere a una característica típicamente relacionada con la

inteligencia humana. Esta se refiere a la habilidad de poder estudiar un problema de

una complejidad determinada, descomponiendo el problema en subproblemas de

menor complejidad. De esa forma, la solución del problema completo se obtiene

como la suma de las soluciones de los subproblemas de menor complejidad.

Diseñadores:

Es el encargado de generar el diseño del sistema. Entre sus funciones está:

• Generar el diseño arquitectónico y diseño detallado del sistema, basándose en los

requisitos.

• Generar prototipos rápidos del sistema (con analistas y programadores) para

chequear los requisitos.

• Generar el documento de diseño arquitectónico de software (DDA), y mantenerlo

actualizado durante el proyecto.

• Velar porque el producto final se ajuste al diseño realizado (funciones de téster).

Page 8: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

Programadores:

Los programadores deben convertir la especificación del sistema en código fuente

ejecutable utilizando uno o más lenguajes de programación, así como herramientas

de software de apoyo a la programación.

El éxito del desarrollo de software depende grandemente de conocimiento. Este

conocimiento no sólo corresponde a habilidades de programación y de

administración de proyectos, sino que a una percepción y entendimiento de los

últimos desarrollos de la industria del software.

Téster:

El desarrollo de un sistema de software requiere la realización de una serie de

actividades de producción. En dichas actividades existe la posibilidad de que

aparezcan errores humanos. Dichos errores pueden empezar a aparecer desde el

primer momento del proceso. Por ejemplo, los requisitos del sistema pueden ser

especificados en forma errónea o imperfecta. Por ello, el desarrollo de software

considera una actividad que apoye el proceso de detección y eliminación de los

errores y defectos del sistema en construcción. El objetivo del rol de téster es

precisamente realizar dichas tareas.

Aseguradores de calidad:

En la actualidad, los factores dominantes en la administración de proyectos de

software son los tiempos y costos de desarrollo. Existen buenas razones para ello.

Los tiempos y costos de desarrollo son con frecuencia, muy grandes. Por ello, la

administración se ha concentrado en tratar de resolver dichos problemas. En la

medida que crece la presión por cumplir con las fechas estipuladas, y reducir los

costos, es la calidad del producto la que sufre. Cuando se acelera el desarrollo de

un sistema que está atrasado, generalmente se corta todo lo que no se considere

“esencial”, usualmente cortando las actividades de verificación y testeo, resultando

en un producto de calidad reducida.

Administrador de configuración:

Page 9: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

La administración de la configuración es una disciplina que tradicionalmente se

aplica al desarrollo de sistemas de hardware, al desarrollo de elementos de

hardware o sistemas de hardware/software. La administración de la configuración de

software corresponde a la administración de la configuración aplicada a un sistema,

o a partes de un sistema, predominantemente correspondiente a software.

La administración de la configuración es una disciplina que aplica dirección y

vigilancia técnica y administrativa a:

• Identificar y documentar las características funcionales y físicas de ítems de

configuración.

• Auditar los ítems de configuración para verificar cumplimiento de especificaciones,

control de interfaces y documentos, así como otros requisitos adicionales que pueda

definir el contrato.

• Controlar cambios a los ítems de configuración y su documentación relacionada.

• Registrar y reportar información necesaria para administrar ítems de configuración

en forma efectiva, incluyendo el estatus de cambios propuestos y el estatus de

implementación de cambios aprobados.

• Mantener el repositorio del proyecto actualizado con las últimas versiones de todos

los entregables del proyecto.

• Administrar el software utilizado para el control de versiones.

• Definir y controlar perfiles de acceso a los archivos del proyecto.

• Velar por la completitud y exactitud del repositorio del proyecto.

Los problemas de software más frustrantes son frecuentemente ocasionados por

una pobre administración de la configuración.

Ingeniero de validación y verificación:

Una de las metas necesarias de tener en cuenta en toda organización de desarrollo

de software que se considere exitosa es que el software que evoluciona, continúe

satisfaciendo las expectativas de los usuarios durante dicho proceso. Para lograr

esta meta, es necesario aplicar prácticas de ingeniería de software durante la

evolución del producto. La mayoría de estas prácticas tratan de crear y modificar

software de forma de maximizar la probabilidad de satisfacer las expectativas de sus

usuarios. Otras prácticas tratan de asegurar que el producto cumplirá con las

Page 10: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

expectativas de dichos usuarios. Estas últimas son ampliamente conocidas como la

validación y verificación de software (V&V).

Documentador:Durante el proceso de desarrollo de software, se genera una gran cantidad de

documentación. Dicha documentación debe ser almacenada en el repositorio del

proyecto. La documentación sirve, entre otras cosas, para conocer la historia del

proyecto. Hay que destacar que los documentos no se escriben al final del proyecto,

sino que se van generando junto con las diferentes fases del proyecto. A medida

que el proyecto va avanzando, los documentos deben ir siendo modificados para

mantener el estado de los documentos a la par con el estado de desarrollo del

proyecto. Por lo anterior, debe pensarse que los documentos van evolucionando,

para mostrar el estado más reciente de desarrollo del proyecto.

Ingeniero de manutención:

Hace ya casi 30 años, el proceso de manutención de software se caracterizaba con

el término “iceberg” [Canning], ya que los problemas que eran visibles eran una

pequeña parte de la enorme cantidad de problemas potenciales y costos que se

escondían debajo de la superficie.

Los objetivos a cumplir por un ingeniero de manutención son los siguientes:

• Modificar el software para adaptar nuevas funciones o modificar algunas funciones

existentes.

• Modernizar el software por medio de cambios al sistema.

• Asegurarse de que el equipo de desarrollo esté informado de los errores

encontrados en el sistema.

Cliente comprometido:

Un cliente es aquella persona responsable de llevar a cabo el buen desempeño del

proyecto, por parte de la empresa que contrata el desarrollo, también llamada

mandante. El cliente debe representar los derechos y asumir los deberes de dicha

empresa ante el equipo de desarrollo. Por lo tanto, el cliente debe estar presente en

Page 11: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

todas las fases del desarrollo del producto, y realizar todas las actividades que se

esperan de él, tales como la aceptación provisional y final del producto.

Entre sus tareas están:

• Liderar el proyecto de software cuando la organización así lo requiere.

• Debe conocer las distintas etapas y roles en la construcción de software.

• Definir los objetivos del proyecto negociando con sus clientes las características

que le afecten.

• Definir y priorizar requisitos.

• Revisar y aprobar documentos en forma responsable.

• Difundir el estado del proyecto al resto de su ámbito de trabajo

Fases o etapas de un proyecto de software.

Las fases o etapas dentro del desarrollo de software son muy importantes a la hora

de realizar cualquier proyecto, pues estas fases permiten que el equipo de trabajo o

las personas a cargo de un proyecto, puedan tomar puntos de referencia y durante

el desarrollo de cada etapa no cometan muchos errores y en dado caso de

cometerlo sólo habría que evaluar la fase de desarrollo no funcional.

Generalmente en muchos textos las etapas para el desarrollo de software son 5

pero dependiendo desde qué punto de vista se miren se pueden desglosar o dividir

las etapas,pero en sí las 5 etapas o fases estándares por decirlo así son las

siguientes.

Análisis de requisitos.

Diseño y arquitectura.

Programación o implementación, codificación.

Pruebas.

Documentación y Mantenimiento.

Page 12: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

Figura 1 Figura 2

Figura1 Obtenido de :

https://ciclodevidasoftware.wikispaces.com/Ciclo+Del+Software+Clasico+Prototipad

o

Figura 2 Obtenido de:

https://proyectosinformaticoscht2009.wordpress.com/antes-de-empezar/marco-

teorico/paradigmas-de-desarrollo-de-software/

Descripción de cada fase o etapas de un proyecto de software.

Análisis de requisitos.

Esta es la etapa que da inicio a cualquier proyecto, es tan fundamental como las

demás, cada etapa depende depende del desarrollo de las demás y esta es la más

importante, pues es donde el equipo de trabajo analiza lo que se quiere lograr,

Se trata fundamentalmente de estudiar las necesidades y preferencias del usuario,

es también muy importante dejar clara constancia de las decisiones tomadas en

esta etapa, para ser tenidos en cuenta posteriormente, por ello, la documentación

producida en esta fase debe ser concreta y estar siempre disponible durante el resto

del proceso.

Page 13: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

Se extraen los requisitos del producto de software. En esta etapa la habilidad y

experiencia en la ingeniería del software es crítica para reconocer requisitos

incompletos, ambiguos o contradictorios. Usualmente el cliente/usuario tiene una

visión incompleta/inexacta de lo que necesita y es necesario ayudarle para obtener

la visión completa de los requerimientos. El contenido de comunicación en esta

etapa es muy intenso ya que el objetivo es eliminar la ambigüedad en la medida de

lo posible.

Para la elaboración de cualquier proyecto esta fase es vital, ya que se reúnen,

aclaran, discuten ideas sobre cómo debe ser el proceso de elaboración y que debe

tener, de esta etapa dependen los objetivos que se quieran cumpir pues un falo en

el modelo de análisis puede significar que el proyecto quede mal.

Diseño y arquitectura.

Luego de pasar la etapa más fundamento de cualquier proyecto de software

procedemos a entrar en la etapa o fase 2 donde se especifican y aclaran los diseños

que este proyecto tendrá y cuál arquitectura tendrá, consiste en el diseño de los

componentes del sistema que dan respuesta a las funcionalidades descritas en la

segunda etapa también conocidas como las entidades de negocio. Generalmente se

realiza en base a diagramas que permitan describir las interacciones entre las

entidades y su secuenciado.

En esa etapa se reúne la información recogida durante el primer análisis para ser

procesada y luego estructurada para darle un diseño específico, pues esta etapa

diseña el modelo a los especificaciones para el software o componentes de un

sistema que se quieran.

En la etapa de diseño y arquitectura se decidirá la estructura general del programa

(subdivisión en partes y relaciones entre ellas). Para cada una de las partes se

seguirá recursivamente un proceso similar, hasta que tengamos totalmente definido

el programa y estemos listos para pasar a la fase de programación.

Programación o implementación, codificación.

Page 14: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

En esta etapa todos los procesos y análisis realizados en las dos primeras etapas

se ponen en marcha, esta es la etapa donde literalmente se le da vida a los

proyectos de software, ya que este involucra la generación de código que permite

resolver lo planteado luego de un análisis de requisitos y el diseño del software.

Se traduce el diseño a código. Es la parte más obvia del trabajo de ingeniería de

software y la primera en que se obtienen resultados tangibles. No necesariamente

es la etapa más larga ni la más compleja aunque una especificación o diseño

incompletos/ambiguos pueden exigir que, tareas propias de las etapas anteriores se

tengan que realizarse en esta.

Una de las principales decisiones a tomar en esta fase es la del lenguaje a emplear,

aunque a veces en el diseño ya está de alguna forma implícito. Desde hace tiempo

la tendencia es a utilizar lenguajes de más alto nivel, sobre todo a medida de que

se dispone de compiladores más eficientes. Esto ayuda a los programadores a

pensar más cerca de su propio nivel que del de la máquina, y la productividad suele

mejorarse. Como contrapartida este tipo de lenguajes son más difíciles de

aprender. Y además hay que tener en cuenta que los programadores suelen ser

conservadores y reacios a aprender nuevos lenguajes: prefieren usar los que ya

conocen. La existencia, en una organización, de una gran cantidad de programas

desarrollados en un determinado lenguaje, hace además muy dura la decisión de

cambiar a uno nuevo

La etapa de codificación es muy crucial se deben seguir rigurosos procesos de

lógica y algoritmos eficientes que den paso la optimización, rendimiento y eficacia

de las máquinas para que el software sea más factible, es un proceso arduo donde

los desarrolladores tienen que estar concentrados para no cometer errores lógicos

que puedan ocasionar fallas en el producto final.

Pruebas.

Podemos decir que este es el proceso de prueba de calidad, donde se inspeccionan

los posibles fallo y los fallos que ocurren durante el funcionamiento del producto

Page 15: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

final, esta etapa permite identificar aquellos puntos donde se cometen errores para

poder ser corregidos y volver a rediseñar o mejorar el proyecto.

Consiste en comprobar que el software responda/realice correctamente las tareas

indicadas en la especificación. Es una buena praxis realizar pruebas a distintos

niveles (por ejemplo primero a nivel unitario y después de forma integrada de cada

componente) y por equipos diferenciados del de desarrollo (pruebas cruzadas entre

los programadores o realizadas por un área de test independiente).

En esta fase hay que comprobar que las especificaciones se cumplen

perfectamente y en todos los casos. En la realidad es prácticamente imposible

probar un programa totalmente: por ello siempre suele quedar algún error

escondido. Este problema se agrava cuando sobre él se realizan repetidos cambios

y corrección, si no se gestionan de una manera adecuada se puede acabar con un

conjunto de parches que más que posibles soluciones pueden aportar más

problemas.

En la etapa de pruebas los desarrolladores o personas a cargo de probar el

proyecto deben intentar hacer que este no funcione o arroje errores, pues si no se

hiciera esta fase muchos proyectos realizados al momento de sacarlos al mercado o

utilizarlos con cierto fin pueden presentar problemas de ejecución, de datos, entre

otros.

Documentación y Mantenimiento.

En esta etapa final se hace toda la documentación sobre el proyecto de software, se

realiza el proceso de documentación para el usuario final y el documento de

explicación del software para el desarrollador y cliente, además de los posibles

mantenimientos preventivos que se le tengan que hacer al proyecto final, si es que

se tienen previstos si no no.

Realización del manual de usuario, y posiblemente un manual técnico con el

propósito de mantenimiento futuro y ampliaciones al sistema. Las tareas de esta

etapa se inician ya en el primera fase pero sólo finalizan una vez terminadas las

pruebas.

Page 16: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

Además, En esta etapa se realiza un mantenimiento correctivo (resolver errores) y

un mantenimiento evolutivo (mejorar la funcionalidades y/o dar respuesta a nuevos

requisitos).

La documentación es parte fundamental de cualquier proyecto de software, hasta

para los desarrolladores, pues estos deben tener su propia documentación del

código por si se necesitan hacer más correcciones, actualizaciones y

mantenimientos, en esta parte final se realiza un riguroso documento que conste las

funcionalidades que cumple el programa y un manual de usuario que especifica sus

funciones y cómo deben ser usadas, esto con el objetivo de sacar el mayor

provecho posible al software.

Descripción de los componentes de un proyecto de software.

Los componentes de un proyecto de software son aquellos que forman parte activa

del proceso de desarrollo y cuya participación es imprescindible para el proyecto, los

principales componentes son las actividades los recursos humanos y los productos

software obtenidos. La elección de estos tres componentes se origina por la

importancia que tiene cada uno de ellos en el éxito del proyecto, y porque

determinan lo que se conoce como las 3 P’s de un proyecto, Procesos, Personas y

Productos.

Anteriormente solo se consideraban 3 los componentes fundamentales de un

proyecto de software pero últimamente se habla de que ya no son 3 si no son 4, en

los cuales se encuentran: personal, producto, proceso y el proyecto formando o'que

se conoce como as P’4.

Personal.

El factor humano siempre será el más importante en el desarrollo de soluciones

software, muchos empresarios famosos, líderes de empresas tecnológicas,

Page 17: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

coinciden que el éxito que han alcanzado sus empresas no se debe a las

herramientas que utilizan, es la gente y el trabajo en equipo.

El Instituto de Ingeniería de Software, al ver la importancia que tiene el factor

humano en la construcción del software, ha desarrollado un modelo de madurez de

la capacidad de gestión del personal, esto con el fin de ayudar a las organizaciones

de software a incrementar la rapidez en el desarrollo de proyectos cada vez más

complejos.

Eso hace que el personal dentro del componente de un proyecto de software sea de

vital importancia, además entre mejor personal calificado se tenga para el desarrollo

de las etapas de un proyecto de software mejores resultados se obtendrán.

Producto.

software que se crean durante la vida del proyecto luego de las etapas o fases

necesarias para la elaboración del mismo, para el producto de un proyecto de

software hay que tener muchas consideraciones entre ellas, Se requieren

estimaciones cuantitativas y un plan organizado, pero no se dispone de información

sólida.

Muchas veces cuando un cliente pide que le construyan una solución, siempre

pregunta ¿cuánto me va a costar? Pues bien, todo producto requiere estimaciones

cuantitativas y una adecuada planificación. Una adecuada recolección de

información y un análisis detallado de los requerimientos proporciona la información

necesaria para dar una estimación del costo del producto. Antes de planear un

proyecto, se debe establecer los objetivos y el alcance que tendrá el proyecto,

además de sus restricciones técnicas y de gestión. Con una buena planificación se

puede estimar el tiempo que tomará desarrollar o construir el producto y

redimensionar el valor cuantitativo del producto.

El desarrollador del software debe reunirse con el cliente las veces que sean

necesarias para definir el dominio y los objetivos del producto. Esta actividad,

comienza con la aplicación del proceso de ingeniería de requisitos; captura, análisis

y, validación y verificación.

Page 18: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

Este componentes es fundamental pues si no se logra una planeación clara del

producto y se definen todas las consideraciones el producto no podrá ser iniciado o

en ocasiones se inicia pero no es culminada debido a los malos procesos.

Proceso.

Como los anteriores componentes ese es muy importante ya que en este

componente se debe decidir el modelo de proceso más adecuado para la

realización de proyecto, una vez escogido el proceso por el cual se realizará el

proyecto, se pasa a escoger el entorno en el que el personal trabajará para sacar

adelante el proyecto.

En este componente se realizan un conjunto de actividades necesarias para

transformar todos los requisitos del cliente y usuario en el producto final.

En ocasiones durante el proceso se deben desarrollar ciertos pasos como lo son:

Desarrollar una lista de conflictos que deben clasificarse.

Reunirse con los clientes para abordar los conflictos que deben

clasificarse.

Desarrollar en conjunto un enunciado del ámbito.

Revisar el enunciado del ámbito con todos los implicados.

Modificar el enunciado del ámbito según lo requiera.

Proyecto.

Este componente hace referencia a los elementos organizativos través del cual se

gestiona el desarrollo de software, cuando se gestiona un proyecto exitoso, es

necesario entender que este puede llegar a fracasar. Según John Reel, existen 10

razones por las cuales un proyecto puede fracasar:

El personal de software no entiende las necesidades del los clientes.

Page 19: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

El ámbito del producto está mal definido.

Los cambios se gestionan mal.

La tecnología elegida cambia.

Las necesidades comerciales cambian.

Los plazos de entrega no son realistas.

Los usuarios se resisten a la utilización del software.

Se pierde el patrocinio.

El equipo del proyecto carece de personal con las habilidades apropiadas.

Los gestores evitan las mejores prácticas y las lecciones aprendidas.

Para el éxito de un proyecto hay que tener siempre mucha disciplina, empeño y

confianza ya que sin esta cualidades el desarrollo de un proyecto de software se

puede ver afectado, y lo más importante a la hora de realizar un proyecto es ser

eficaces y darle solución a los inconvenientes que puedan surgir, el proyecto tiene

que contener todos los componentes mencionados anteriormente ya que es el

producto culminado, donde uno y todos tienen acción sobre la elaboración final del

producto.

Estándares para evaluar la calidad de un producto de software.

La calidad, para poder ser entendida y medida de una mejor manera, con eficacia,

debe ser expresada por medio de otros términos que tengan más sentido para el

usuario; En el caso del software, estos factores son el medio por el cual se traduce

el término “calidad” al lenguaje de las personas que manejan la tecnología.

Los factores de calidad que afectan a la calidad del software se dividen en dos

grandes grupos:

Los que miden directamente (defectos descubiertos en las pruebas).

Los que se miden directamente (facilidad de uso o de mantenimiento).

Page 20: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

En cada caso debe presentarse una medición. Se debe comparar el software con

algún conjunto de datos y obtener así algún indicio sobre la calidad.

McCall, Richards & Walters (1977), propusieron una clasificación de los factores que

afectan la calidad del software, entre estos factores se concentran tres aspectos

importantes de un software:

Características operativas.

Capacidad para experimentar cambios.

Capacidad para adaptarse a nuevos entornos.

Además, en la figura 7 podemos observar cómo estos atributos han cambiado

llegando a las normas ISO/IEC 9126.

Figura 3

Figura 3 obtenido de:

http://evaluaciondesoftware2013.blogspot.com.co/

Los que miden directamente (defectos descubiertos en las pruebas).

Corrección.

Page 21: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

El grado en que el programa cumple con su especificación y satisfacer los objetivos

que propuso el cliente.

Confiabilidad.

El grado en que se esperaría que un programa desempeña su función con la

precisión requerida.

Eficiencia.

La cantidad de código y de recursos de cómputo necesarios para que un programa

realice su función.

Integridad.

El grado de control sobre el acceso al software o los datos por parte de las personas

no autorizadas.

Facilidad de uso.

El esfuerzo necesario para aprender, operar y preparar los datos de entrada de un

programa interpreta la salida.

Facilidad de mantenimiento.

El esfuerzo necesario para localizar y corregir un error en un programa.

Flexibilidad.

El esfuerzo que demanda probar un programa con el fin de asegurar que realiza su

función.

Portabilidad.

Page 22: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

El esfuerzo necesario para transferir el programa de un entorno de hardware o

software a otro.

Facilidad de reutilización.

El grado en que un programa o partes de él pueden reutilizarse en otras

aplicaciones (en relación con el empaquetamiento y el alcance de las funciones que

realiza el programa).

Interoperabilidad.

El esfuerzo necesario para acoplar un sistema con otro.

Sin embargo, Vega et al. (2008), proponen un modelo con métricas distintas al

propuesto por McCall y que ha sido utilizado y comprobado en distintos proyectos

de desarrollo de software. Los factores que conforman al modelo y su descripción,

se presentan a continuación.

Corrección.

El grado en que un producto de software satisface sus especificaciones y consigue

los objetivos de la misión encomendada por el usuario.

Confiabilidad.

El grado en que se puede esperar que un producto de software lleve a cabo sus

funciones esperadas con la precisión requerida.

Eficiencia.

La cantidad de recursos computacionales y de código requeridos por un producto de

software para llevar a cabo las funciones encomendadas.

Integridad.

Page 23: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

El grado en que puede controlarse (facilitar y restringir) el uso y acceso al software y

a los datos, tanto al personal autorizado como al no autorizado.

Facilidad de uso.

El esfuerzo requerido para aprender, trabajar, preparar la entrada e interpretar la

salida de un producto de software.

Facilidad de mantenimiento.

El esfuerzo necesario para localizar y corregir los errores en un producto de

software.

Flexibilidad.

El esfuerzo requerido para modificar un producto de software una vez que se

encuentra ya liberado o en producción, esto es, una vez que el usuario esté

haciendo uso de él.

Facilidad de prueba.

El esfuerzo requerido para probar un producto de software, de tal forma que se

asegure que realiza las funciones especificadas por el usuario.

Portabilidad.

El esfuerzo requerido para transferir un producto de software de una plataforma

(entorno de hardware y software) a otra.

Reusabilidad.

El grado en que un producto de software (o alguna de sus partes) pueda volver a

ser utilizado en otras aplicaciones, aun cuando la funcionalidad de la misma cambie.

Page 24: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

Facilidad de interoperación.

El esfuerzo requerido para lograr que un producto de software trabaje con otro,

compartiendo recursos.

Conclusiones.

A través del tiempo se han visto diferentes problemáticas en el desarrollo de

software que de alguna forma llevó a un mejor desarrollo del sector permitiendo ver

factores importantes como técnicas, lenguajes,etc. resaltando la planificación en los

procesos de desarrollo de software como necesarios e importantes debido a que

permiten que los proyectos que se generen tengan menor grado de riesgo gracias al

análisis y la participación de cada uno de los grupos de trabajo de desarrollo,

teniendo en cuenta que cada uno de los roles que se plantean son muy importantes

a fin de garantizar su éxito.

Además, la calidad de un producto debe ser valorada bajo unos estándares

generales, los cuales además de mostrar la calidad del producto determinan si el

producto necesita mejoras o no, con el fin de realizar un excelente trabajo y que

tanto el cliente como el equipo de trabajo queden satisfechos con el producto

generado.

En conclusión, luego de grandes avances a lo largo de la evolución del software, es

pertinente tener en cuenta que cada uno de estos ha aportado un poco más al

desarrollo de los mismos; cada aspecto que se ve relacionado con el desarrollo de

software tiene toda una arquitectura para que este se desenvuelva de una mejor

manera, minimizando una porción de errores, dando orden y jerarquización a las

actividades de desarrollo del mismo y mejorando con cada planteamiento el

software, por ende la planificación junto con todos los métodos llevan a cabo el

desarrollo de un producto (software) de calidad.

Page 25: Web view... la visualización y la recuperación de la ... de especificaciones, control de interfaces y ... 3 P’s de un proyecto, Procesos, Personas y

Bibliografía.

http://yaqui.mxl.uabc.mx/~molguin/as/IngSoft%201-4.pdf Ingeniería de Sw.

Padilla, D. F. (2003). Roles en el desarrollo de software. In D. F. Padilla, Apuntes de

taller de ingeniería de software (pp. 1-51).

https://es.wikipedia.org/wiki/Historia_de_la_ingenier%C3%ADa_del_software

http://www.um.es/docencia/barzana/IAGP/IAGP2-Ingenieria-software-

introduccion.html

http://www.uv.mx/personal/jfernandez/files/2010/07/1_conceptos2012.pdf Proyecto

de Sw.

http://www.cdi.gob.mx/jovenes/data/gestion_de_proyectos.pdf Proyecto de Sw.

http://ftp.itam.mx/pub/alfredo/PAPERS/WeitzenfeldGuardatiComputacion2008.pdf

Modelo.

http://www.academica.mx/blogs/las-5-etapas-la-ingenier%C3%ADa-software

http://dit.upm.es/~fsaez/intl/libro_complejidad/15-el-desarrollo-del-software.pdf

http://es.slideshare.net/itlac/etapas-de-desarrollo-software

https://sistemasvd.wordpress.com/2008/07/05/fases-del-proceso-de-desarrollo-del-

software/

https://danielvn7.wordpress.com/2008/04/25/gestion-de-proyectos-de-software/

http://yaqui.mxl.uabc.mx/~molguin/as/IngSoft%201-4.pdf

libro: Técnicas cuantitativas para la gestión en la ingeniería del software, Isabel

Ramos Román,José Javier Dolado Cosín

http://www.eumed.net/tesis-doctorales/2014/jlcv/calidad-software.htm

http://evaluaciondesoftware2013.blogspot.com.co/

https://www.codejobs.biz/es/blog/2013/10/06/la-calidad-de-diseno-del-softwar