martes, 22 de mayo de 2012

Ingeniería de software


Es el establecimiento y uso de métodos y principios de ingeniería sólidos para obtener un software confiable que pueda trabajar con máquinas reales.

Ciclo de software:
 
  1. Se desarrolla por un grupo de programadores
  2. Se usa durante un tiempo antes de que requiera algunas modificaciones.
  3. Estas son necesarias ya que se encuentran errores dentro del software.
  4. Estos dos pasos usar y modificar se utilizan hasta que se el software se vuelve un objeto.
  5. Se vuelve Obsoleto quiere decir que el software pierde su valides debido a su ineficiencia.
  6. Algunos ejemplos son el registro de estudiantes, sistemas de facturación y contabilidad.
El proceso de desarrollo en el ciclo de vida del software se conforma de 4 fases:
  1. 1.       Análisis: Muestra el objetivo del software, que es lo que debe hacer. Se definen los requisitos específicos  de modo que el usuario lo entienda y se divide esta fase en cuatro:

o   Definición del usuario: se diseña para un usuario genérico o especifico.

o   Definición de las necesidades: El usuario define con claridad sus expectativas del software.

o   Definición de requisitos: con base a las necesidades del usuario se definen con precisión los requisitos del software.

o   Definición de los métodos: Después de definir los requisitos se puede elegir los métodos apropiados para cumplir estos requisitos.

  1. 2.       Diseño: Lograra el sistema lo que se definió en la fase anterior. Se determina el sistema y/o el diseño tanto de las bases de datos y los archivos. Se divide en dos:

o   Modularidad: Todo el software se divide en pequeños módulos, cada uno de ellos se diseña, se prueba y se une con otros a través  de un programa principal.

o   Herramientas: Se utilizan varias siendo las más comunes diagramas de estructuras los cuales muestran como dividir un paquete en pasos lógicos cada uno en un módulo independiente y su interacción entre ellos.

  1. 3.       Implementación: Se crean los programas reales.

o   Herramientas: Para mostrar el flujo lógico de los programas antes de la escritura real del código.

o   Diagrama de flujo: Utiliza símbolos gráficos para representar el flujo lógico de datos.

o   Pseudocódigo: es parte del idioma y del programa que describe con detalles algorítmicos precisos que indica que hacer al programa.

o   Codificación: después de usar las herramientas anteriores o ambas el programador describe el código en un lenguaje específico para el proyecto.

  1. 4.       Pruebas: Una vez que se ha escrito el programa debe probar el software el cual le va a tomar mucho tiempo y puede tornarse tedioso ya que debe ver que interactúe cada uno de sus componentes entre sí y con otros programas.

o   Pruebas de caja negra: Es probar un programa sin saber que hay dentro y sin saber cómo funciona.

o   Pruebas de caja blanca: Asume que sabe todo sobre el programa desde su funcionamiento hasta su interacción con otros.

Modelos de desarrollo:

o   Modelo cascada: El proceso de desarrollo fluye en una sola dirección, esto quiere decir que una fase no puede iniciarse hasta que la anterior se concluya.

o   Modelo incremental: el proceso se desarrolla en una serie de pasos. Primero se completa una versión simplificada de todo el paquete que no incluye todos los detalles. De esta manera se va ir incrementando la serie de módulos terminados para desarrollar por completo el programa.

Modularidad: Significa la división de un proyecto en partes más pequeñas para entenderse y manejarse más fácilmente. 

o   Herramientas:

o   Diagrama de estructura: se utiliza para mostrar la relación entre los procedimientos y las funciones.

o    Diagrama de clase: Se utiliza en la programación orientada a objetos para mostrar la relación entre las clases.
  
o   Acoplamiento: Es una medida de que tan estrecho se ligan los módulos. Entre mayor ligados que estén más acoplados y menos independientes y viceversa. 

o   De datos: Para los datos mínimos de la función requerida.
o   De sello: si son objetos compuestos como arreglos o estructuras.
o   De control: el paso de banderas que pueden dirigir el flujo lógico de una función.
o   Global: Utiliza variables globales para comunicarse entre dos o más funciones.
o   Contenido: Cuando una función hace directamente  referencia a los datos o instrucciones de otra. 

o   Cohesión: Medida que tan estrechamente se desarrollan los procesos.

o  Funcional: Contiene solo un proceso, solo hace una función y en un solo lugar o ocasión.
o   Secuencial: Contiene dos o más tareas relacionadas.
o   De comunicación: combina procesos que trabajen en los mismos datos.
o   De procedimiento: Combina procesos no relacionados mediante un flujo de control.
o   Temporal: Acepta solo una variedad limitada de procesos.
o   Lógica: combina procesos que están relacionados solo por la entidad que los controla.
o   Casual: Combina procesos que no guardan ninguna relación entre sí.
Calidad: 

o   Software de calidad: aquel que satisface lo requisitos explícitos e implícitos del usuario, está bien documentado, cumple con las normas y se ejecuta de manera eficiente en el hardware para el cual se desarrolló.

o   Factores de calidad: 

o   Operabilidad: Operación básica de un sistema. El cual debe de ser :
o   Eficiente
o   Fiable
o   Fácil de usar
o   Pertinente
o   Seguro



o   Preciso.
o   Capacidad de almacenamiento:
o   Corrección
o   De pruebas
o   Flexible
o   Variable
o   Capacidad de Transferencia Interacción con otras plataformas.
o   Interoperabilidad
o   Portabilidad
o   Reutilización de código
Documentación: 

 o   Documentación del usuario: Es el manual para el uso del sistema dirigido al usuario.


      o   Documentación del sistema:  Es el paquete mismo debe de mantenerse y modificarse por personas distintas a los programadores que lo crearon.

Se deben de documentar cada una de las fases que se realizaron anteriormente para desarrollar el programa.

BIBLIOGRAFIA:

http://books.google.com.mx/books?id=xu4jcMBih8QC&pg=PT31&dq=concepto+de+programa+almacenado&hl=es&sa=X&ei=vPl0T6eRA6He0gH1_Mi_DQ&ved=0CDcQ6AEwAQ#v=onepage&q=concepto%20de%20programa%20almacenado&f=false

No hay comentarios:

Publicar un comentario