Está en la página 1de 12

Trabajo investigativo 01

Ingeniería de software y modelos de calidad del software

 
 
 
 
JUAN SEBASTIAN SUAREZ CONTRERAS 
20181578003 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS  
TECNOLOGÍA EN SISTEMATIZACIÓN DE DATOS 
FACULTAD TECNOLÓGICA 
BOGOTA D.C  
06/04/2021
CONTENIDO

Contents
1. Problemas que afectan el desarrollo de software...........................................................................................................................3
 Expectativas poco realistas.........................................................................................................................................................3
 Programar a cualquier precio:....................................................................................................................................................3
 Negociaciones de tira y afloja.....................................................................................................................................................4
 Desperdiciar el tiempo antes del kickoff del proyecto...............................................................................................................4
2. Reseña histórica de la ingeniería de software........................................................................................................................................4
3. Factores que afectan la ingeniería de software:.....................................................................................................................................5
 Calidad del software:..................................................................................................................................................................5
 Procesos, metodologías y productividad...................................................................................................................................5
 La ingeniería de software no alcanza a la totalidad de la industria...........................................................................................6
 Implementación de software y Middleware..............................................................................................................................6
4. Factores que afectan la calidad del software.........................................................................................................................................6
 Falta de dominio del negocio:....................................................................................................................................................6
 Desconocimiento de la tecnología.............................................................................................................................................6
 Calendarios pocos realistas........................................................................................................................................................7
 Utilizar malas o nulas prácticas de desarrollo de Software........................................................................................................7
5. Modelo de calidad de Software..............................................................................................................................................................7
 Modelo de McCall:......................................................................................................................................................................7
 Factores de calidad.....................................................................................................................................................................7
 Criterios de calidad.....................................................................................................................................................................7
 Métricas de calidad:...................................................................................................................................................................7
Perspectivas................................................................................................................................................................................................8
 Revisión del producto.................................................................................................................................................................8
 Transición del producto..............................................................................................................................................................8
 Operación del producto...................................................................................................................................................................8
 Fase 1........................................................................................................................................................................................10
 Fase 2........................................................................................................................................................................................10
 Fase 3........................................................................................................................................................................................10
6. Importancia de los modelos de calidad del software...........................................................................................................................11
7. Modelos de calidad del software:.........................................................................................................................................................11
A. Modelo McCall................................................................................................................................................................................11
B. Modelo BOEHM...............................................................................................................................................................................11
C. Modelo FURPS.................................................................................................................................................................................12
D. Modelo ISO......................................................................................................................................................................................12
Bibliografía:...............................................................................................................................................................................................13
Contenido gráfico tomado de:.............................................................................................................................................................13
1. Problemas que afectan el desarrollo de software

 Expectativas poco realistas: En el desarrollo de un producto se debe tener como base el


punto de vista del cliente, ya que este será un marco de referencia. pues es este quien
solicita el desarrollo del mismo y a su vez es quien sabe que cosas necesita el sistema para
su negocio. Sin embargo, el cliente no siempre tiene una claridad sobre lo que quiere con el
producto final, dando ideas poco claras y expectativas ambiguas de lo que se conseguirá
con el software. El equipo de desarrollo en estos casos es el encargado de asesorar al cliente
respecto a que tipo de sistema es el más conveniente en el caso en particular. Pero esto con
frecuencia no siempre termina bien, puesto que al tener una visión no tan clara por parte del
cliente hace que el software final no se adapte a las ideas presentadas por el equipo de
desarrollo y mucho menos a las expectativas que tenía el cliente. Por tanto, este es un punto
sumamente problemático, ya que desde la base el desarrollo de un producto, debe estar
claro cuál será su finalidad y cuales son sus posibles escenarios.

 Programar a cualquier precio: El coste del desarrollo de un producto no suele tener


claridad, si bien luego de un estudio detallado de las cosas que se deben realizar se puede
llegar a un acuerdo en el que ambas partes (cliente y equipo de desarrollo) estén de acuerdo
en la inversión que se hará, pues el desarrollo de software es un proceso largo y por mas
que este acotado el proyecto, pueden llegar a surgir contratiempos que retrasen el desarrollo
de este. Por lo que teniendo en cuenta factores como el tiempo, que son relativos y que en
cada caso se desarrollaran de una manera distinta, es complicado para el equipo de trabajo
presentar un coste de desarrollo fijo. Con frecuencia los equipos de desarrollo subestiman
su trabajo y ponen en marcha proyectos de desarrollo con un coste menor, con el fin de
tener la aprobación del cliente y comenzar tan pronto como sea posible con el desarrollo.
Esta es una terrible idea, pues al no tomarse el tiempo de valorar los diferentes escenarios
que tomara el desarrollo y subestimando el trabajo que se realizara, se llega a en los peores
casos tener retrasos en la entrega y además estar “obligados’ a entregar el producto por un
coste que ahora no resulta beneficioso para el equipo de trabajo, estado así trabajando en
perdida.

 Negociaciones de tira y afloja: En el desarrollo de un producto es menester tener una


ruta la cual sea precisa para seguir, en las negociaciones tira y afloja lo que llega a
suceder es que el cliente con un poco visión y expectativa del proyecto intenta añadir
nuevos ítems al producto final, esto resulta no solo tedioso si no complejo de integrar
ya que dependiendo del tipo de nuevos requisitos que sean solicitados el proyecto
podría cambiar drásticamente, no solo en el apartado de la implementación, si no en la
planificación del mismo, pues estos nuevos ítems consumirán tiempo de trabajo y por
supuesto concederán retrasos en la entrega del software. Esto sin contar de que con
frecuencia el cliente al tener muchas veces desconocimiento del tema intenta agregar
estos ítems restándoles importancia y por supuesto intentando pagar una cantidad
menor al nuevo planteamiento del proyecto.
 Desperdiciar el tiempo antes del kickoff del proyecto : En todo equipo de trabajo, el
kickoff suele ser un punto de inflexión importante en el proyecto, pues este da la apertura a
que todos los miembros del equipo inicien con sus tareas respectivas, normalmente el
tiempo que transcurre antes de este evento es el tiempo que debería ser destinado a la
planificación que llevara el proyecto. Sin embargo, suele ocurrir que en los equipos de
desarrollo que no cuentan con un buen líder toman este tiempo de preparación de manera
personal y lo desperdician en otras cosas, por tanto, en el momento que se da el kickoff del
proyecto estos integrantes deberán utilizar parte de su tiempo de desarrollo en intentar
acoplarse y entender el rumbo que tomara el proyecto. Por tanto, esto conllevara a que el
desarrollo tenga tanto una menor calidad, sino que además pueda verse retrasado en sus
tiempos de entrega.

2. Reseña histórica de la ingeniería de software

El desarrollo de software y la programación comienza en 1912 con Bertrand Russell y Alfred


North Whitehead y sus trabajos sobre la lógica formal y la teoría de tipos. Luego llegaron las
primeras calculadoras electromecánicas de IBM y otros. [1]
Después, Alan Turing estableció las bases de la programación en entre los años 1920 y 1940, a su
vez en esta época se presento un modelo de resolución de problemas que es a día de hoy bastante
efectivo, el cual consiste en la división de los problemas en problemas cada vez mas pequeños,
llegando a soluciones más sencillas y juntas, resolviendo el problema principal. Esto traducido a bit
claramente para poder resolverlo con las computadoras de la época ya que hacia 1940 ya estaba en
operaciones la z3 una computadora desarrollada por Konrad zuse a la que se le podía dar un uso
genérico, a diferencia de las calculadoras de la época.
Después, en 1954 la compañía IBM funda Fortran, el primer lenguaje de programación de alto nivel
y además de propósito general, aquí se da el inicio a la programación de todo tipo de cosas y en
1967 se crea simula un lenguaje de programación orientado a objetos. Este fue el primero en este
paradigma y desarrollo el concepto de clase algo tan importante que en nuestros días casi todos los
lenguajes modernos utilizan este principio.
Para el año 1974 se crear SQL un lenguaje pensado para el manejo de las bases de datos y la
manipulación de data. Extrayendo el concepto de un índice en un libro de cuentas y entonces en
1980 surge el Primer ordenador personal desarrollado por IBM, ahora todos podíamos tener una
computadora en nuestra habitación, teniendo muchísima acogida debido a la interacción de
ventanas flotantes, una propiedad muy novedosa para la época.
Tan pronto como todas las computadoras estuvieran conectadas a internet se creo en 1990, HTML.
Un lenguaje muy simple que permitía a todos crear paginas de internet bastante simples. Los
avances continuaron y hacia 2001 el desarrollo de software se hacia cada vez mas complejo y
necesitaba tener algunos estándares que permitieran realizarlo tanto con velocidad como
respondiendo al plan de negocios de los clientes de la época, es por ello que se creo Scrum o
Kanban frameworks creados para un mismo propósito, el de desarrollar un software, pero con
distintos caminos, uno enfocado en la velocidad y el otro a largo plazo. Desde entonces el desarrollo
de software cambio para siempre.
Los desarrollos y la tecnología siguieron avanzando y con ello la llegada de la inteligencia artificial,
hasta nuestros días, ahora los programas pueden enseñarse a ellos mismos, crear estrategias y llegar
a nuevas conclusiones. Todo esto ocurrió en 100 años, entonces, solo nos queda esperar que
ocurrirá en los próximos 100 años.

3. Factores que afectan la ingeniería de software:

 Calidad del software: La ingeniería de software necesita asegurar la calidad y


confiabilidad de su producto, brindando soporte y mantenimiento. Este objetivo resulta
difícil de cumplir ya que para crear un artefacto de software se debe partir pensando en
cumplir los objetivos del cliente y estos están sujetos a restricciones o cambios. El software
casi nunca es perfecto y todo proyecto tiene como objetivo cumplir con la mejor calidad
posible, es ahí donde surge un problema ya que con frecuencia existen mejores tecnologías
o nuevos elementos que llegan una vez se ha iniciado el desarrollo, estos pueden plantear
para el equipo un cambio de ideas que terminen en retrasos para el producto final, aunque
sea este método un sacrifico por la calidad del producto, se debe elegir en entre hacer lo
mejor o hacer lo más optimo

 Procesos, metodologías y productividad: Las tareas que deben ser desarrolladas en un


proyecto de software están sujetas a la metodología que se haya elegido para este, son
tareas la cuales están planificadas para se desarrolladas en un periodo de tiempo específico
y que están ligadas a fases de la metodología. Cuando se desarrolla un producto, de los
primeros pasos es elegir la metodología con la que se desarrollara este punto depende de la
idea de negocio que requiera el cliente ya sea un desarrollo ágil uno robusto, existen
distintas metodologías y cada una cuenta con ciertas ventajas y desventajas, es ahí donde
surge el problema de saber cuál elegir y cuál será la más óptima para resolver el producto
pues se deben tener en cuenta los factores de tiempos, productividad y procesos para elegir
la metodología más adecuada.

 La ingeniería de software no alcanza a la totalidad de la industria: Para la


industria existen múltiples tipos de sistemas, de información, industrial , comercial etc.…
sin embargo en algunos de estos sistemas hay problemas que se resuelven a medias,
partiendo del concepto de que se debe resolver el problema principal y eso es todo, con
esto se abre la puerta a que un sistema tenga fallos secundarios y este pueda perjudicar
otros ambientes, es el caso por ejemplo de un sistema industrial en el que se puede
solucionar un problema pero sin el enfoque que le da la ingeniería de software, en la que
los casos de uso son primordiales y se especifica que cosas se deben realizar, como y que
podrá suceder. Las situaciones están acotadas y esta filosofía lleva a la ingeniería de
software a un alto grado de estabilidad cosa que no ha llegado a compartir con la mayor
parte de la industria.

 Implementación de software y Middleware: Para construir un software hace falta la


implementación con los requerimientos especificados, este proceso es un poco tardío
porque parte de la idea, de que el sistema deba adaptase a el middleware existente. Este a
su vez puede cambiar y el sistema deberá para poder seguir utilizándolo cambiar parte de
su código, este proceso ralentiza la producción de un sistema es un impedimento para
cualquier tipo de desarrollo ya que genera una alta dependencia.

4. Factores que afectan la calidad del software

 Falta de dominio del negocio: Este problema surge cuando los desarrolladores del
proyecto aun no son expertos en los conceptos referentes al negocio para el cual se estará
desarrollando el software. Si se intenta desarrollar el proyecto de esta manera, con un
desconocimiento por el negocio del cliente esto se traducirá en un sin numero de
problemas que se verán introducido por las reglas y requerimientos funcionales mal
interpretados. Para intentar solucionar esto se debe trabajar con analistas expertos en el
negocio al inicio del proyecto, para que estos orienten a los desarrolladores y a su vez
documenten la metodología diagramas y notaciones estándares como UML

 Desconocimiento de la tecnología: Este problema va del lado de los desarrolladores,


pero no es culpa de ellos, lo que suele suceder es que las aplicaciones empresariales
constan de una capa de capas que terminan siendo un enredo de muchos lenguajes y
plataformas, esta complejidad influye en todos los niveles e interactuar con ella puede ser
muy compleja. Se puede hacer a través del middleware y sistemas de bajo nivel. El
problema radica en que son pocos los desarrolladores que conocen todos estos lenguajes
y tecnologías por lo que no tener uno de ellos en el equipo podría ser el inicio de varios
problemas

 Calendarios pocos realistas: Uno de los problemas que afectan la calidad de un


proyecto es la planificación de los tiempos, normalmente con la intención de terminar
cada vez más rápido se debe sacrificar calidad en todas las partes del desarrollo por lo que
trabajar a un ritmo vertiginoso solo hace que los desarrolladores tiendan a estar
constantemente mas estresados y por consiguiente a cometer mas errores. Para la
solución de esto lo que ese debería hacer es seguir una estricta planeación y controlar los
compromisos a través del seguimiento y la identificación de problemas

 Utilizar malas o nulas prácticas de desarrollo de Software : En todo desarrollo es


recomendable seguir las buenas practicas en todos los aspectos, desde la programación
hasta el diseño es imprescindible tener estándares que permitan unificar todos los puntos
que se realizan en un proyecto, al hacer caso omiso a seguir estas prácticas el proyecto
podrá derivar en retrasos y problemas de calidad para el software entregado
5. Modelo de calidad de Software

 Modelo de McCall: Sicilia Rodríguez explica que [2]: “El Modelo de calidad de McCall
fue creado en 1977 para las fuerzas aéreas norteamericana con la intención de acercar las
visiones de calidad de los desarrolladores y los usuarios. Es de especial importancia por ser
históricamente el primero y la base de esfuerzos posteriores, y se organiza en torno a tres
tipos de características de calidad”

 Factores de calidad: Sirven para entender cuales son los aspectos generales que al
usuario le son importantes conocer del producto final.

 Criterios de calidad: Menciona cuales son las pautas con las que se debe construir el
software desde el punto de vista del desarrollador

 Métricas de calidad: puntos referencia con los que se medirá la calidad del producto
final

Perspectivas

 Revisión del producto: se presentan al evaluador del producto todos los factores de
calidad que tiene el software en cuanto a la adaptación a cambios y modificación del
sistema de acuerdo al objetivo de la empresa.

 Transición del producto: se presentan factores de calidad que proporcionen la


adaptabilidad que tiene el sistema ante nuevos sistemas o la comunicación con otros.

 Operación del producto: Se listan los factores referentes a la calidad prestada al


cliente, en ellos vemos algunos como; la satisfacción del usuario, el tiempo de ejecución, la
complejidad del producto entre otras.
[3]
 Fase 1: Especificar los requisitos de calidad del producto software. En esta fase se
comparan los requisitos que necesita el cliente con el resultado final y se establece una
comunicación directa con dicho cliente.

 Fase 2: Establecer los factores de calidad según las perspectivas del modelo de McCall. En
esta fase se comparan los factores de calidad del producto final con los factores del
modelo de McCall.

 Fase 3: Evaluar los factores. En esta fase se comparan los factores de calidad cada uno
con los factores de calidad del modelo de McCall

Img 1
6. Importancia de los modelos de calidad del software
La importancia de la calidad en los procesos se esta convirtiendo en los últimos años en elemento
estratégico para las mas grande organizaciones, pues este asegura que su consumidor se vera
potencialmente interesado en probar mas productos de su marca, así como el desarrollo de un buen
nombre y marca personal, pues la calidad asegura que el producto llegue a más gente y que esta se
vea inclinada a seguir usándola.

7. Modelos de calidad del software:


A. Modelo McCall

 Nombre: McCall

 Descripción: Es el modelo de
calidad mas conocido el cual define
en factores cualitativos la calidad
del software, este modelo contiene
métricas de jerárquicas donde en
niveles superiores están elementos
abstractos y con forme deciente
están algunos que se miden con mas
facilidad.

B. Modelo BOEHM Img 2


 Nombre: BOEHM

 Descripción: [4] “define la calidad en términos de tributos cualitativos y métricas


para realizar las medidas y se centra en sus características operativas, su
capacidad para medir los cambios, su adaptabilidad a nuevos entornos y la
evaluación del desempeño del hardware entre otros. La calidad del hardware
es el grado con el que un sistema, componente o proceso cumple los
requerimientos especificados y las necesidades y expectativas del cliente o
usuario”

Img 3
C. Modelo FURPS
 Nombre: FURPS

 Descripción: El modelo establece que el software por si solo no es perfecto y que debido a
esto la calidad depende del cliente final y además de su correcto funcionamiento. En este
modelo primero es necesario asignar las prioridades y después definir que ítems de calidad
le serán medidos

Img 4

D. Modelo ISO
 Nombre: ISO

 Descripción: El modelo hizo estable en el estándar ISO 9126-1 que la calidad del software
dependerá de un modelo estructurado por características y subcaracterísticas tales como:
Funcionalidad, Fiabilidad, Usabilidad, Eficiencia, mantenibilidad entre otras, a su vez este
modelo tiene en cuenta el grado de satisfacción con respecto a los requisitos de los usuarios,
aportando a este un valor en el nivel de calidad. [5]

Img 5
Bibliografía:

[1] Microsiervos.com. 2021. La historia del desarrollo de software en dos minutos: un siglo de
lógica, lenguajes y código. [online] Available at:
<https://www.microsiervos.com/archivo/ordenadores/historia-desarrollo-software-logica-lenguajes-
codigo.html> [Accessed 6 April 2021].

[2] (Sánchez, S., Sicilia, M. and Rodríguez, D., 2012. p. 385) Ingeniería del software. México:
Alfaomega.

[3] (Sánchez, S., Sicilia, M. and Rodríguez, D., 2012. p. 387) Ingeniería del software. México:
Alfaomega

[4] M. CALIDAD, E. BOEHM, E. ISO and M. FURPS, "Modelos de Evaluación de Recursos


Educativos Digitales", Modeloseredigitales.blogspot.com, 2021. [Online]. Available:
https://modeloseredigitales.blogspot.com/2018/07/. [Accessed: 06- Apr- 2021].

[5] C. DISCERN, L. 25000, E. PA, S. CHAPP and n. Prometeus Delfos 1.0.0, "ISO
25010", Iso25000.com, 2021. [Online]. Available: https://iso25000.com/index.php/normas-iso-
25000/iso-25010. [Accessed: 06- Apr- 2021].

Contenido gráfico tomado de:


Img 1: rockflood.files.wordpress.com/2016/05/unida_3_modelos_de_calidad_de_software.pdf

Img2: static.wikia.nocookie.net/modelos-de-evaluacion-de-recursos-
grupo6/images/d/db/Mc.jpg/revision/latest/smart/width/200/height/200?
cb=20180720135207&path-prefix=es
Img3: modeloseredigitales.blogspot.com/2018/07/
Img4: modeloseredigitales.blogspot.com/2018/07/
Img5: modeloseredigitales.blogspot.com/2018/07/

También podría gustarte