lunes, 31 de enero de 2011

Crisis del Software

El término más conocido es "crisis del software", referida no tan solo a la época en que se comenzaron a desarrollar sistemas de software de tamaño mediano y grande, en la década de 1960, sino también en la actualidad, en pleno siglo XXI. La crisis del software es la falta de capacidad de las organizaciones que producen software para dominar la complejidad inherente del software y desarrollar productos en tiempo y forma pactado. Algunas referencias útiles para comprender cuáles eran los conocimientos estables para el desarrollo de software en 1968 son:

  • En 1962 se publicó el primer algoritmo para búsquedas binarias
  • C.Böhm y G. Jacopini publicaron en 1966 el documento que creaba una fundación para la eliminación de "GoTo" y la creación de la programación estructurada.
  • En 1968 los programadores se debatían entre el uso de la sentencia GoTo, y la nueva idea de programación estructurada; ese era el caldo de cultivo en el que Edsger Dijkstra escribió su famosa carta "GoTo Statement Considered Harmful" en 1968.


Por último, las aplicaciones de hoy en día son programas muy complejos, inabordables por una sola persona. En sus comienzos se valoró como causa también la inmadurez de la ingeniería de software, aunque todavía hoy en día no es posible realizar estimaciones precisas del coste y tiempo que necesitará un proyecto de software.

Englobó a una serie de sucesos que se venían observando en los proyectos de desarrollo de software:

  • Los proyectos no terminaban en plazo.
  • Los proyectos no se ajustaban al presupuesto inicial.
  • Baja calidad del software generado.
  • Software que no cumplía las especificaciones.
  • Codigo inmantenible que dificultaba la gestión y evolución del proyecto.

En clase vimos un ejemplo de como hace tiempo en un aeropuerto hubo muchas fallas en un sistema para organizar el equipaje, esto se debio al mal desarrollo de este proyecto y a la pesima calidad que se le puso, aqui les dejo un video de como en una conferencia de microsoft surge el famoso error de "la pantalla azul de la muerte" , esto quiere decir que ni grandes empresas como Microsoft estan invulnerables a este tipo de fallas y queda mucho por arreglar.


Proyecto final

En el proyecto final, trataremos de crear una agenda personal, primeramente con los aspectos basicos que debe de tener, como dar de alta un contacto, con sus respectivos detalles (nombre, direccion, telefono, email, datos personales, etc) o darlo de baja. Tambien agregaremos las opciones de busqueda, editar, borrar, cambiar, etc. Con el paso del tiempo iremos agregando mas funciones, como que se conecte a una base de datos y se guarden y actualizen todo lo que el usuario quiera. El programa lo realizaremos con Java, y despues veremos si lo pasamos a Android.

Herramientas que usaremos:
  • jdk java development kit
  • Linux
  • emacs para escribir el codigo
  • Mysql para la base de datos
  • Android para dispositivos moviles

En el programa usaremos objetos como "agenda", "contactos", "busqueda", "menu", entre otros, cada uno con sus respectivos metodos y clases.


Integrantes: Alejandro Josafat Loera Ramirez
Gabriela Martinez Ponce

lunes, 24 de enero de 2011

Clase: Taller de programacion orientada a objetos

Practica 1
Herramientas

Las herramientas que utilizare para el avance del curso
sera Python, ya que se me hace un lenguaje sencillo pero potente. Ubuntu por defecto ya cuenta con varios lenguajes de programación, por lo que ya cuenta con en lenguaje Python.


Python es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en una sintaxis muy limpia y que favorezca un código legible.
Se trata de un lenguaje de programación multiparadigma ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación multifuncional. Es un interpretado, usa tipado dinámico, es fuertemente tipado y es multiplataforma.
Este es un programa sencillo que hice en python, que muestra las poblaciones de 4 ciudades en total
--------------------------------------------------------------------------------------------------------------------------------------
#le damos nombre a la clase u objeto, aqui solo pongo un objeto
class Ciudad:
#despues de esto con la instruccion def_init_ le damos valores a los atributos, en este caso ciudad y habitantes, y las instrucciones para los metodos
def __init__(self, ciudad, habitantes):

self.nombrec = ciudad
self.habitantes = habitantes
def getNombre(self):
return self.nombrec

def getNumeroHabitantes(self):
return self.habitantes
def main():
#aqui ponemos las ciudades y el numero de habitantes que aparezcan en la pantalla
ciudad1 = Ciudad("Madrid", 170.187)
ciudad2 = Ciudad("Cataluna", 143.933)
ciudad3 = Ciudad("Monterrey", 1.130960)
ciudad4 = Ciudad("Paris", 2.193031)
#mandamos a imprimir los numeros de habitantes con sus respectivas ciudades
print ciudad1.getNombre()
print ciudad1.getNumeroHabitantes()
print ciudad2.getNombre()
print ciudad2.getNumeroHabitantes()
print ciudad3.getNombre()
print ciudad3.getNumeroHabitantes()
print ciudad4.getNombre()
print ciudad4.getNumeroHabitantes()
main()
#fin del programa #alejandro josafat-1453478
--------------------------------------------------------------------------------------------------------------------------------------

Captura de pantalla



Fuentes:
me base en los métodos y atributos de la siguiente pagina
http://www.linuxhispano.net/2009/10/29/metodos-estaticos-en-python/

Dra. Sara no pude como poner el syntax highlight espero y poder preguntarle para corregirlo