viernes, 30 de marzo de 2012

Requerimientos

Los requerimientos son las funcionalidades de todo sistema de software.
Los requerimientos para un sistema de software determinan lo que hará el sistema y definen las restricciones de su operación e implementación.
tenemos dos clases de requerimientos:
  • Requerimientos Funcionales: puede ser una descripción de lo que un sistema debe hacer. Este tipo de requisito especifica algo que el sistema entregado debe ser capaz de realizar.
  • Requerimientos no Funcionales de rendimiento, de calidad, etc; especifica algo sobre el propio sistema, y cómo debe realizar sus funciones. Algunos ejemplos de aspectos solicitables son la disponibilidad, el testeo, el mantenimiento, la facilidad de uso, etc.
  • viernes, 23 de marzo de 2012

    primeros pinitos con UML

    UML es el lenguaje de modelado unificado. es el lenguaje de modelado mas utilizado en la actualidad. Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema.

    En esta semana se trato un tema importante el cual consiste en las tecnicas de recoleccion de la informacion, importante en nuestra labor ya que nos permite saber de primera mano lo que nuestro cliente quiere con su sistema de software. las tecnicas son la entrevista, las encuestas y la revision de documentos.

    viernes, 16 de marzo de 2012

    Semana de Parciales

    Semana de inicio de parciales. el parcial de esta materia consistio en 19 preguntas de analisis y seleccion multiple.

    Se hizo una breve introduccion al siguente tema que vendria en el 2° corte el lenguaje UML(lenguaje unificado de modelado ) el cual es una herramienta de analisis para armar un sistema de software.


    viernes, 9 de marzo de 2012

    Semana de inicio de parciales. antes de entrar al parcial de Análisis y Diseño de Software, se realizaron actividades para debatir temas vistos y socializarlos, además para obtener una nota apreciativa. muy interesante fue la participación activa de los compañeros y la interacción en los debates y la técnica usada permitio exponer los temas de forma muy amena ya que entre todos se aportaba y complementaba la informacion expuesta, lo cual permitio una socializacion agradable y sin inconvenientes en un tema tan importante como lo fue el ciclo de vida del Software.

    Modelos del ciclo de Vida del Software

    Existen  varios  modelos  del  ciclo  de  vida  del  software,  sin embargo  los  mas  utilizados  son:  Cascada,  Prototipado, Incremental y en Espiral
    • Cascada  
    Este modelo  es  conocido  también  como  ciclo  de  vida  lineal  o básica. Este modelo admite la posibilidad de hacer iteraciones. Se define como una secuencia de fases en  la  que  al  final  de  cada  una  de  ellas  se  reúne  la documentación para garantizar que cumple las especificaciones y los requisitos antes de pasar a la fase siguiente. Sus principales características son:
     •  Cada  fase  empieza  cuando  se  ha  terminado  la  fase anterior
     •  Para  pasar  de  una  fase  a  otra  es  necesario  conseguir todos los objetivos de la etapa previa
     •  Al final de cada fase el personal técnico y los usuarios tienen  la  oportunidad  de  revisar  el  progreso  del proyecto.
    El modelo prototipado, modela el producto  final y permite
    efectuar  un  test  sobre  determinados  atributos  del  mismo  sin necesidad de que este disponible. Se trata, simplemente, de testear haciendo  uso  del  modelo.  Esta  técnica  puede  ser  utilizada  en cualquier etapa de desarrollo. A medida que el proceso progresa y el producto se completa, el prototipo ha de abarcar, cada vez más las características del producto final. En la Figura 6 se listan las
    fases del modelo Prototipado.
    Existen varios tipos como:
     •  Prototipado – Rápido
     •  Prototipado – Evolutivo
     •  Prototipado – Operacional
     •  Prototipado – Reutilizable  Los prototipos, tienen una doble función:
     •  El cliente ve el producto y refina sus requisitos
     •  El desarrollador comprende mejor lo que necesita hacer  Sus principales características son:
     •  Reduce  el  riesgo  de  construir  productos  que  no satisfagan las necesidades de los usuario
    o  Reduce  costos  y  aumenta  la probabilidad de éxito
    o  Exige disponer de las herramientas adecuadas
    o  No presenta calidad ni robustez
     •  Suele utilizarse principalmente en dos áreas:
    o  Prototipado de la interfaz de usuario
    o  Prototipado del rendimiento

    • Espiral
    El modelo en Espiral es un modelo de  proceso  de  software  evolutivo  que  combina  la  naturaleza iterativa  de  construcción  de  prototipos  con  los  aspectos controlados y sistemáticos del modelo lineal secuencial. 
    Las  actividades  de  este  modelo  se conforman  en  una  espiral,  en  la  que  cada  bucle  o  iteración representa  un  conjunto  de  actividades. Las  actividades no  están fijadas  a priori,  sino que  las  siguientes  se  eligen en  función del análisis de riesgo, comenzando por el bucle  interior. El software se desarrolla en una serie de versiones incrementales.
      •  Durante las primeras iteraciones, la versión incremental podría ser un modelo en papel o un prototipo.
    •  Durante  las  últimas  iteraciones,  se producen versiones
    cada vez más completas del sistema diseñado.

    • Ciclo de vida de RUP     
    Es  un  proceso  para  el  desarrollo  de  un  proyecto  de software que define quien, como, cuando y que debe hacerse en el proyecto,  con  3  características  esenciales  como:
    Casos  de  uso, centrado en la arquitectura y es iterativo e incremental.
    El RUP maneja 6 principios clave:
     •  Adaptación del proceso.
     •  Balancear prioridades.
     •  Colaboración entre equipos.
    El  proceso  del RUP  está  dividido  en  4  fases,  en  estas  fases  se realiza varias iteraciones de acuerdo al proyecto, se muestra gráficamente las 4 fases del RUP, cuyas iteraciones están representadas  con  líneas  verticales  y  marcadas  con  la  letra correspondiente a la inicial de la fase, la fase Inicial tiene una sola iteración.
     
    Fase de Inicio

    En  esta  fase  se  define  el modelo  del  negocio  y  el  alcance  del proyecto, se  identifican  los autores y casos de usos y se diseñan los casos de uso esenciales.
    Los objetivos son:
    •  Establecer el ámbito del proyecto y sus limites •  Encontrar  los  casos  de  uso  críticos  del  sistema,  los escenarios básicos.
    •  Mostrar una arquitectura para los escenarios principales.
    •  Estimar  el  coste  en  recursos  y  tiempo  en  todo  el proyecto.
    •  Estimar los riesgos, las fuentes de incertidumbre. 
     Los resultados de la fase son:
    •  Documento de visión
    •  Modelo inicial de casos de uso
    •  Glosario inicial
    •  Caso de negocio 
    •  Lista de riesgos y plan de contingencia
    •  Plan del proyecto
    •  Modelo de negocio
     
    3Fase de Elaboración

    En  esta  fase  se  analiza  el  dominio  del  problema,  establece  los cimientos  de  la  arquitectura,  desarrolla  el  plan  del  proyecto  y elimina  los  riesgos  mayores.  Se  construye  un  prototipo  de  la  arquitectura  que  evoluciona  en  iteraciones  sucesivas  hasta
    convertirse en el sistema final.
    Los objetivos de esta fase son: •  Definir, validar y cimentar la arquitectura. •  Completar la visión •  Crear un plan para la fase de construcción •  Demostrar  que  la  arquitectura  propuesta  soportara  la
    visión •   Los resultados son los siguientes: •  Un modelo de casos de uso al menos el 80% •  Requisitos  adicionales  que  capturan  los  requisitos  no funcionales. •  Descripción de la arquitectura software •  Prototipo ejecutable de la arquitectura. •  Lista de riesgos y caso de negocio revisados •  Plan de desarrollo para el proyecto •  Manual de usuario preliminar.  
     
    Fase de Construcción

    En esta fase la finalidad es alcanzar la capacidad operacional del producto  de  forma  incremental  a  través  de  las  sucesivas iteraciones, en esta  fase  todas  las componentes, características y requisitos deben ser implementados, integrados y cambiados en su totalidad.
    Los objetivos son:
    •  Minimizar  los  costes  de  desarrollo  mediante  la optimización de recursos.
    •  Conseguir calidad adecuada.
    •  Conseguir  versiones  funcionales  tan  rápido  como  sea práctico.  
    Los resultados de la fase de construcción deben ser:
    •  Modelos  completos(casos  de  uso,  análisis,  diseño, despliegue e implementación)
    •  Arquitectura integra.
    •  Riesgos presentados mitigados
    •  Plan del proyecto para la fase de transición.
    •  Manual inicial de usuario.
    •  Prototipo operacional.
    •  Caso del negocio actualizado.
     
    Fase de Transición

    En esta fase se pone el producto en manos de los usuarios finales,
    para  lo que se  requiere desarrollar nuevas versiones actualizadas del producto, completar la documentación, entrenar al usuario en el  manejo  del  producto  y  tareas  relacionadas  con  el  ajuste,
    configuración, instalación y facilidad de uso del producto. En esta
    fase también se realiza:
    •  La  prueba  de  la  versión  beta  para  validar  al  nuevo
    sistema frente a las expectativas del usuario. 
    •  Funcionamiento paralelo con  los  sistemas  legados que están siendo sustituidos por el nuevo proyecto.
    •  Conversión de las bases de datos operacionales. 
    •  Entrenamiento  de  los  usuarios  y  técnicos  de mantenimiento.
    •  Traspaso  del  producto  a  los  equipos  de  marketing, distribución y venta. 
     Los objetivos de esta fase son:
    •  Conseguir que el usuario se valga por si mismo.
    •  Un producto final que cumpla los requisitos esperados, que funcione y satisfaga suficientemente al usuario.
     Los resultados son:
    •  Prototipo operacional
    •  Documentos legales
    •  Caso del negocio completo
    •  Línea  base  del  producto  completa  y  corregida  que incluye todos los modelos del sistema 
    •  Descripción de la Arquitectura completa y corregida.
    •  Las iteraciones de esta fase  irán dirigidas normalmente a conseguir una nueva versión.  Los criterios de evaluación de esta fase son:  
    •  El usuario se encuentra satisfecho.
    •  Son  aceptables  los  gastos  actuales  versus  los  gastos planificados.

    jueves, 8 de marzo de 2012

    Ciclo de vida del Software

     Un  concepto  dado  por  IEEE  1074  es,  el  ciclo  de  vida  del software  es  una  aproximación  lógica  a  la  adquisición,  el suministro,  el desarrollo,  la  explotación y  el mantenimiento del software” Y otro concepto dado por ISO 12207  “Es un marco de referencia que  contiene  los  procesos,  las  actividades  y  las  tareas involucradas en el desarrollo,  la explotación y el mantenimiento de un producto de software, abarcando  la vida del sistema desde la definición de los requisitos hasta la finalización de su uso”

    Procesos de Ingenieria de Software

    El proceso de ingeniería de software [3], se define como "un conjunto de etapas parcialmente ordenadas con la intención de lograr un objetivo, en este caso, la obtención de un producto de
    software de calidad" [Jacobson 1998]. A este proceso también se le llama el ciclo de vida del software que comprende cuatro grandes fases: concepción, elaboración, construcción y
    transición.

    Concepción: Define el alcance del proyecto y desarrolla un caso de negocio.
    Elaboración: Define un plan del proyecto, especifica las características y fundamenta la arquitectura.
    Construcción: Crea el producto.
    Transición: Transfiere el producto a los usuarios.

    Otros Conceptos

    • Ingeniería de Software es el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software (Zelkovitz, 1978)
      
    • Ingeniería de software es la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a 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).

    • Ingeniería de Software trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales (Bauer, 1972).

    • Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software; es decir, la aplicación de la ingeniería al software (IEEE, 1993).

    Ingenieria de Software

    Se puede decir que Ingeniería de software, es  la disciplina o área  de  la  informática  que  ofrece  métodos  y  técnicas  para desarrollar y mantener software de calidad.