Calidad del Software

--Originally published at Luis Codes

¿Qué define que un software sea de “calidad”? Leí algo muy interesante en la página de xbosoft y es que dicen que es difícil percibir un software de calidad, PERO sí es fácil detectar su ausencia; unas palabras bastante profundas en mi opinión.

Así que vamos por pasos, primero veamos la definición. De acuerdo con el portal UNED, la calidad del software, trata los conceptos, los métodos, las técnicas, los procedimientos y los estándares necesarios para producir productos y procesos de software de alta calidad.

Lo primero que vemos es que, si bien es difícil decir que un software es calidad, sí debe de tener como mínimo algunas características porque de lo contrario no encontraríamos con diferentes problemas que el usuario final notaría. ¿ Y cuales son esas características? Bueno, en general son las siguientes:

  • Funcionalidad: que sirva con un propósito.
  • Ejecución: que sea práctico.
  • Confiabilidad: que haga lo que debe.
  • Disponibilidad: que funcione bajo cualquier circunstancia
  • Apoyo: a solución de errores o añadir futuras características.

Fuente: http://estandarescalidadsoftware.blogspot.com/2013/09/iso-9126_13.html

Afortunadamente no estamos solos, existen estándares para ayudarnos con esto ¿pero cómo?. Lo estándares definen un conjunto de criterios que guían la forma en que se aplican procedimientos y metodologías al software desarrollado, la certificación de calidad permite una valoración independiente de la organización, donde se demuestra la capacidad de desarrollar productos y servicios de calidad. Algunos de ellos son:

  • CMM para software: que tiene como propósito la mejora de procesos y que funciona en organizaciones de desarrollo de software.
  • ISO 9000: también para mejora de procesos y que si bien no esta enfocada directamente para el desarrollo de software, puede funcionar bien para organizaciones que producen productos, incluido el software.

En mi opinión es subjetivo decir que un software es de mejor calidad que otro, sin embargo Continue reading "Calidad del Software"

Estándares y modelos para el mejoramiento del proceso del software.

--Originally published at Luis Codes

Antes de empezar con los modelos, creo que es importante preguntarse: ¿por qué es importante usar un modelo para el desarrollo de software?

Bueno, de acuerdo con mi investigación esto es fundamental porque es lo que permite comprender cuales son los elementos específicos de una organización y ayuda en concentrarse en lo que se debe mejorar. Además, tiene ventajas como: producir productos y servicios de alta calidad y ayuda a que los desarrolladores puedan enfocarse en la mejora continua.

CMMI (Capability Maturity Model Integration)

Este es un modelo que contiene buenas practicas y que provee a los equipos de trabajo de aquellos elementos que son esenciales para que los procesos de negocio de las mismas sean efectivos. Aunque puede variar según el enfoque, en todos el propósito es hacer la evaluación de “madurez” de los procesos de una organización.

Veamos algunas ventajas de CMMI:

  • La gestión y la ingeniería de las actividades se encuentran entrelazadas de una manera explicita.
  • Ayuda a incorporar practicas como la medición, gestión de riesgo y de proveedores.
  • Cumplir de forma más completa las normas ISO.

TSP/PSP

PSP (Personal Software Process)

Se define como un proceso personal que se basa en la constante mejora, y por consecuencia un mejor trabajo. Este marco ayuda a los desarrolladores en:

  • Definir sus procesos
  • Planear y dar seguimiento a su propio trabajo
  • Administrar la calidad de su propio trabajo.

TSP  (Team Software Process)

Este modelo se centra en el trabajo en equipo, aunque tiene inspiración en PSP para realizar procesos y principios de ingeniería de software en un ambiente de trabajo en equipo.

TSP se enfoca en el trabajo en equipo porque:

Módulos

--Originally published at Site Title

Una de las características de python es la importación de paquetes/módulos. Antes de explicar cómo funciona, crea esta estructura.

Para esto se tiene que crear una estructura:

1 series/
2  __init__.py
3  fibonacci.py
Donde:

  • series: es un directorio (paquete)
  • __init__.py: es un script de python en blanco (necesario para identificar un directorio como paquete)
  • fibonacci.py: es un script de python (módulo) con funciones (o lo que quieras)

Usar import

Se puede usar import de esta forma para importar un paquete o módulo:

1
importpackage[.subpackage.[.module]]

Para importar el paquete series, ejecuta:

1
>>>>importseries

Con esto se ha importado el paquete series, pero es poco útil, ya que aún no se tiene acceso al contenido del módulo fibonacci.

Para tener acceso al contenido de fibonacci, importa de esta manera:

1
>>> importseries.fibonacci

De esta forma, es posible acceder a las funciones de fibonacci:

1
2
3
4
5
6
7
8
>>>>importseries.fibonacci
>>> series.fibonacci.fibo(10)

Esto es, en introducción, lo que es un módulo y como se usa.

 

Fuente: https://auraham.wordpress.com/2012/07/19/python-como-usar-import/


WSQ12

--Originally published at Site Title

Estimating e

 

What To Do

In this assignment you will estimate the mathematical constant e. You should create a function called calculuate_e which receives one parameter called precision that should specify the number of decimal points of accuracy.

You will want to use the infinite series to calculate the value, stopping when the accuracy is reached (previous and current calculation are the same at the specified accuracy).

 

Code/Código:

codepreci

 

Python:

precipy

 

 

Gracias a mi compañero Marco por ayudarme con este problema. Pueden encontar su blog en el siguiente enlace:

https://eosthel.wordpress.com/2017/05/02/python-conventions/

 


WSQ11

--Originally published at Site Title

GO BANANAS!

What To Do

Write a function called find_bananas which receives a single parameter called filename (a string) and returns a positive integer which is the number of times the word (string) “banana”  (or “BANANA” ) is found in the file. The banana can be any case (‘BaNana’ or ‘BANANA’ or ‘banana’, etc) and they can be “stuck together” like “banAnaBANANA” (that counts as two). Create your own test file (plain text) to check your work.

 

Code/Código:

11

Python:

bananapy

 

 


WSQ10

--Originally published at Site Title

Background

In this assignment you will write a function to calculate the square root of a number using the Babylonian method. You can search for that method, it will be easy to find.

What to Do

The function should receive a number and return floating point number. Obviously you should test your function, so create a main program that asks the user a value, calculates the square root and displays that.

 

Code/Código:

codebab

 

Python:

pybab


WSQ09

--Originally published at Site Title

So for this assignment I would like to see you create a function that receives as parameter the name of a file (this would be a string value like data.txt) and your function counts the number of lines and the number of characters in the file which it returns as a single value (but with two values). You will want to look at how to use and return a tuple from a function and how to open and read text files line by line.

 

Code/Código:

codetxt

Text/Texto:

pruebatxt

 

Python:

txtpy


WSQ05

--Originally published at Site Title

ON TO FUNCTIONS

What to Do:

You will go back and do WSQ01 – Fun with Numbers again.

But this time, write a function for each calculation. Each function should define two parameters (in this example of type int) and return the correct value as an integer as well.

You main program needs to ask the user for the input and then call each function to calculate the answer for each of the parts.

 

Qué hacer:

Volverá a hacer WSQ01 – Diversión con números de nuevo.

Pero esta vez, escriba una función para cada cálculo. Cada función debe definir dos parámetros (en este ejemplo de tipo int) y devolver el valor correcto como un entero también.

El programa principal debe preguntar al usuario por la entrada y luego llamar a cada función para calcular la respuesta para cada una de las partes.

 

Code/Código:

 

5code

 

 

Python:

 

5py

 

 


WSQ04

--Originally published at Site Title

SUM OF NUMBERS

What to Do:

Write a program that asks for a range of integers and then prints the sum of the numbers in that range (inclusive).

You can use a formula to calculate this of course but what we want you to do here is practice using a loop to do repetitive work.

For example, the sum from 6 to 10 would be 0 + 6 + 7 + 8 + 9 + 10.

Notice our sum starts with zero (why?) and then we add each number in the range provided by the user. Just for fun, what is the mathematical formula to do this calculation?

 

Qué hacer:

Escriba un programa que solicite un rango de números enteros y luego imprime la suma de los números en ese rango (inclusive).

Puedes usar una fórmula para calcular esto por supuesto pero lo que queremos que hagas aquí es practicar usando un bucle para hacer un trabajo repetitivo.

Por ejemplo, la suma de 6 a 10 sería 0 + 6 + 7 + 8 + 9 + 10.

Observe que nuestra suma comienza con cero (¿por qué?) Y luego agregamos cada número en el rango proporcionado por el usuario. Sólo por diversión, ¿cuál es la fórmula matemática para hacer este cálculo?

 

Code/Código:

 

sumacode

 

Python:

 

sumapy