resumen ingenieria software

10
INGENIERIA DE SOFTWARE ¿Qué es la Ingeniera de software? Es una disciplina de la ingeniería que comprende todos los aspectos de la producción de software desde las etapas iniciales de la especificación del sistema hasta el mantenimiento de este después que se utiliza. Objetivo de la Ingeniería de Software Construir Software de calidad a un bajo costo y en el menor tiempo posible Funcionalidad: Un conjunto de atributos que se relacionan con la existencia de un conjunto de funciones y sus propiedades específicas. Las funciones son aquellas que satisfacen lo indicado o implica necesidades. Fiabilidad: Conjunto de atributos relacionados con la relación entre el nivel de desempeño del software y la cantidad de recursos necesitados bajo condiciones establecidas. Eficiencia: Conjunto de atributos relacionados con la relación entre el nivel de desempeño del software y la cantidad de recursos necesitados bajo condiciones establecidas. Mantenibilidad: Conjunto de atributos relacionados con la facilidad de extender, modificar o corregir errores en un sistema software. Portabilidad: Conjunto de atributos relacionados con la capacidad de un sistema software para ser transferido desde una plataforma a otra. Funcionalidad: Un conjunto de atributos que se relacionan con la existencia de un conjunto de funciones y sus propiedades específicas. Las funciones son aquellas que satisfacen lo indicado o implica necesidades. Fiabilidad: Un conjunto de atributos relacionados con la capacidad del software de mantener su nivel de prestación bajo condiciones establecidas durante un período de tiempo establecido. Eficiencia: Conjunto de atributos relacionados con la relación entre el nivel de desempeño del software y la cantidad de recursos necesitados bajo condiciones establecidas. Usabilidad: Un conjuntos de atributos relacionados con el esfuerzo necesitado para el uso, y en la valoración individual de tal uso, por un establecido o implicado conjunto de usuarios. Características de un SW de calidad • Corrección • Fiabilidad • Eficiencia • Integridad • Facilidad de uso • Facilidad de mantenimiento • Flexibilidad • Facilidad de prueba • Portabilidad • Facilidad de rehusó • Interoperabilidad Verificación y Validación de Software (V&V) Conjunto de procesos de comprobación y análisis que aseguran que el software que se desarrolla está acorde a su especificación y cumple las necesidades de los clientes Verificación: ¿Estamos construyendo el sw correctamente? Validación de Software: ¿Estamos construyendo el sw correcto? UML (Lenguaje de modelado unificado). Tipos: - Diagramas de clases: Un Diagrama de clases muestra los atributos y las operaciones (métodos) de las clases, así como las restricciones que se aplican a la forma en que los objetos están conectados. - Diagramas de casos de uso: Los diagramas de casos de uso representan formas de interacción entre el sistema objeto del modelo y elementos externos (usuarios y otros sistemas). Una de las mayores ventajas del uso de estos diagramas es que permiten capturar y manejar los requerimientos del sistema.

Upload: anarocha

Post on 13-Sep-2015

2 views

Category:

Documents


0 download

DESCRIPTION

Resumen Ingenieria Software

TRANSCRIPT

  • INGENIERIA DE SOFTWARE Qu es la Ingeniera de software? Es una disciplina de la ingeniera que comprende todos los aspectos de la produccin de software desde las etapas iniciales de la especificacin del sistema hasta el mantenimiento de este despus que se utiliza. Objetivo de la Ingeniera de Software

    Construir Software de calidad a un bajo costo y en el menor tiempo posible

    Funcionalidad: Un conjunto de atributos que se relacionan con la existencia de un conjunto de funciones y sus propiedades especficas.

    Las funciones son aquellas que satisfacen lo indicado o implica necesidades.

    Fiabilidad: Conjunto de atributos relacionados con la relacin entre el nivel de desempeo del software y la cantidad de recursos

    necesitados bajo condiciones establecidas.

    Eficiencia: Conjunto de atributos relacionados con la relacin entre el nivel de desempeo del software y la cantidad de recursos

    necesitados bajo condiciones establecidas.

    Mantenibilidad: Conjunto de atributos relacionados con la facilidad de extender, modificar o corregir errores en un sistema software.

    Portabilidad: Conjunto de atributos relacionados con la capacidad de un sistema software para ser transferido desde una plataforma a

    otra.

    Funcionalidad: Un conjunto de atributos que se relacionan con la existencia de un conjunto de funciones y sus propiedades especficas.

    Las funciones son aquellas que satisfacen lo indicado o implica necesidades.

    Fiabilidad: Un conjunto de atributos relacionados con la capacidad del software de mantener su nivel de prestacin bajo condiciones

    establecidas durante un perodo de tiempo establecido.

    Eficiencia: Conjunto de atributos relacionados con la relacin entre el nivel de desempeo del software y la cantidad de recursos

    necesitados bajo condiciones establecidas.

    Usabilidad: Un conjuntos de atributos relacionados con el esfuerzo necesitado para el uso, y en la valoracin individual de tal uso, por

    un establecido o implicado conjunto de usuarios.

    Caractersticas de un SW de calidad Correccin Fiabilidad Eficiencia Integridad Facilidad de uso Facilidad de mantenimiento Flexibilidad Facilidad de prueba Portabilidad Facilidad de rehus Interoperabilidad Verificacin y Validacin de Software (V&V) Conjunto de procesos de comprobacin y anlisis que aseguran que el software que se desarrolla est acorde a su especificacin y cumple las necesidades de los clientes Verificacin: Estamos construyendo el sw correctamente? Validacin de Software: Estamos construyendo el sw correcto? UML (Lenguaje de modelado unificado). Tipos:

    - Diagramas de clases: Un Diagrama de clases muestra los atributos y las operaciones (mtodos) de las clases, as como las restricciones que se aplican a la forma en que los objetos estn conectados.

    - Diagramas de casos de uso: Los diagramas de casos de uso representan formas de interaccin entre el sistema objeto del

    modelo y elementos externos (usuarios y otros sistemas). Una de las mayores ventajas del uso de estos diagramas es que permiten capturar y manejar los requerimientos del sistema.

  • - Diagramas de Interaccin: Los Diagramas de Interaccin son modelos que describen como colaboran grupos de objetos en algn comportamiento.

    Diagramas de secuencia: Muestran el orden temporal en que se envan los mensajes entre los objetos, con base en dos dimensiones.

    Diagramas de colaboracin: Muestran la interaccin de un conjunto de objetos, sus conexiones estticas y el paso de mensajes.

    Otros Diagramas

    - Diagramas de Paquetes: Un Diagrama de Paquetes es un caso particular de un diagrama de clases, el cual consiste solamente de: Paquetes, Dependencias y Generalizaciones.

    - Diagramas de Estado: Describen el comportamiento de un sistema, mostrando la secuencia de estados por los que atraviesa

    un objeto durante su tiempo de vida en respuesta a estmulos recibidos, as como sus respuestas y acciones. Estn formados por: Estados, Transiciones de estado y Etiquetas de transicin (Partes: Evento, Guardia y Accin).

    - Diagramas de actividades: Estos diagramas son tiles en conexin con flujo de trabajo y para describir comportamiento que puede tener procesamiento en paralelo. Elementos: Actividades, Disparadores, Transiciones, Decisiones y guardias, Barras de sincronizacin. Desde el punto de vista conceptual, una actividad es una tarea que debe ejecutarse. Desde el punto de vista de la especificacin, una actividad es un mtodo en una clase.

    - Diagramas de componentes Un Diagrama de Componentes muestra las dependencias entre componentes de software, incluyendo: cdigo fuente, cdigo binario y componentes ejecutables. Un mdulo de software puede representarse como un tipo de componente. Las dependencias se representan como flechas punteadas de un componente cliente a un componente proveedor.

  • - Diagramas de Implantacin. Un Diagrama de Implantacin muestra la relacin fsica entre los componentes de software y hardware en el sistema liberado.

    El Objetivo de cualquier actividad de Ingeniera es construir un producto. Una diferencia fundamental de un sistema de software con respecto a otros productos es su maleabilidad. Calidad de Software Puede ser considerada desde dos perspectivas diferentes; la ptica del desarrollador se denomina Interna y los del cliente Externa. Mtricas de calidad de un Producto de Software.

    Correccin: Capacidad de los productos de software para realizar con exactitud las tareas expresadas en su especificacin.

    - Robustez: Capacidad de los productos software de reaccionar apropiadamente ante condiciones excepcionales. - Eficiencia: Capacidad del software para hacer buen uso de los recursos que manipula. - Portabilidad: Es la facilidad con que un sistema software puede ser migrado entre diferentes plataformas HW y SW. - Facilidad de Uso: Es la facilidad con la que un usuario puede interactuar con un sistema software. - Verificabilidad: Es la facilidad de verificacin de correccin de un SW. Que tan sencillo es la realizacin de pruebas que

    garanticen la funcionalidad del sistema. - Compatibilidad: Es la facilidad de combinar diferentes elementos software con el fin de ejecutar una labor en conjunto. - Extensibilidad: Es la facilidad de adaptar los productos software a los cambios de su especificacin. - Reutilizacin: Capacidad de los productos de SW para funcionar como bloques bsicos de la construccin de la construccin de

    diferentes aplicaciones. Prototipo: Versin inicial de un sistema de software que se utiliza para demostrar los conceptos, probar las opciones de diseo y entender mejor el problema y su solucin. Mtricas de Calidad del Proceso de Desarrollo de software. Productividad. Cumplir con los tiempos. Transparencia. Principios de Ingeniera de Software. Rigor y formalismo. Separacin de problemas. Modularidad. Abstraccin. Anticipacin de cambios. Generalidad. Proceso Incremental. Proceso Evolutivo

    Anlisis de Requerimientos Estrategias y patrones de modelado. Un patrn en el Modelo Orientado a Objetos es una plantilla de objetos con responsabilidades e interacciones estereotpicas que puede utilizarse una y otra vez por analoga. Actividades del Modelado Orientado a Objetos. En el desarrollo de un modelo orientado a objetos se tiene cuatro grandes actividades: Identificacin del objetivo y caractersticas del sistema. Seleccin de objetos. Establecimiento de responsabilidades. Representacin de las propiedades dinmicas por medio de escenarios

  • Identificacin del objetivo y caractersticas del sistema. Esta actividad se divide en varias sub actividades: Identificacin del objetivo del sistema. Identificar los principales problemas. Incluir cuatro tipos de caractersticas. Resultados calculados. Caractersticas actuales y futuras. Las diez principales caractersticas. Seleccin de Objetos. Un sistema est compuesto por 4 grandes componentes: Objetos del Dominio del problema. Interaccin Humana. Manejo de Datos. Interaccin con otros sistemas. Establecimiento de Responsabilidades. Para cada objeto establecer: Que conozco (atributos); es decir, que conoce el objeto. A quien conozco (asociacin con otros objetos). Que hago (servicios que proporciono) Patrones de Modelado. Un patrn en el Modelo Orientado a Objetos es una coleccin de Objetos con responsabilidades e interacciones estereotpicas. Patrones bsicos. Patrones de transacciones. Patrones agregados. Patrones de planeacin. Patrones de interaccin. GRASP (General Responsibility Asignment Software Patterns) Patrones generales de software para asignar responsabilidades. Experto. Creador. Alta Cohesin. Bajo Acoplamiento. Controlador Diseo El diseo es una actividad creativa que involucra imaginacin, capacidad de sntesis dada por la experiencia y conocimiento. El Objetivo del diseo es construir un sistema que: Satisfaga una especificacin funcional dada. Se adapte a las limitaciones del medio. Satisfaga requerimientos implcitos y explcitos de rendimiento y uso de recursos. Satisfaga criterios de diseos explcitos e implcitos. Satisfaga restricciones al mismo proceso de diseo (tales como duracin, costo, etc.) Pueda ser ampliado, modificado, corregido y aprendido por un equipo de personas que no participo en el desarrollo original. Un Patrn de Diseo Orientado a Objetos es un conjunto de clases y objetos cooperativos que describen la esencia de un problema que ocurre una y otra vez en nuestro ambiente y que puede emularse en diferentes aplicaciones. Revisin y Auditoria del cdigo: Proceso de revisar el cdigo de una aplicacin para encontrar errores al tiempo de diseo. Fallas en IDE que no se comprueban: Cdigo muerto. Convenciones en el formato original. Visibilidad innecesaria Cdigo duplicado Notaciones Notacin C Notacin Camel Notacin Hngara Notacin Java Reglas de Auditoria: Formato -Posicin de las llaves -Eliminacin de las llaves -Uso del tabulador -Longitud de las lneas de cdigo -Cada lnea solo debe tener una sentencia -Convencin de mtodos de acceso -Uso del ingls para el cdigo -Convencin de nombre a identificadores -Uso de variables significativas Reglas de Auditoria: Implementacin -Tamao de los mdulos. -Tamao de las funciones y mtodos. -Uso del this. -Las clases solo deben tener una funcionalidad. -Siempre debe haber una interfaz. -Cdigo comentado. -El cdigo debe estar cubierto al 100% por pruebas. -Posicin de la declaracin de las variables. -Variables locales sin comentario. Reglas de Auditoria: Comentarios -Todos los elementos identificados del programa deben tener un cometario que los describa. -Los parmetros, los valores devueltos y las salidas de error de todos los mtodos y funciones deben tener un comentario.

  • Reglas de Auditoria: Cdigo muerto. -Eliminar captura de excepciones innecesarias -Eliminar mtodos innecesarios -Eliminar condiciones constantes -Eliminar llamadas innecesarias a mtodos Reglas de Auditoria: Modificadores -Siempre un mismo orden de modificadores -Impedirse la herencia. -Fomentar uso de constantes, no deben aparecer nmeros mgicos. -Evitar propiedades pblicas. Herramientas para Auditoria: -Junit Test Generation -CodePro Analytix

    Mtricas del Software (Trminos)

    MEDIDA: Valor asignado a un atributo de una entidad mediante una medicin.

    MEDICIN: Es el acto de determinar una medida.

    METRICA: Medida cuantitativa del grado en que un sistema, componente o proceso posee un atributo dado. Incluye el mtodo de

    medicin.

    INDICADOR: Es una mtrica o combinacin de mtricas que proporcionan una visin profunda del proceso de software.

    ERROR: Fallo en un producto que se descubre antes de entregar el SW al usuario final.

    DEFECTO: Un fallo que se produce una vez que se ha entregado el producto al usuario final.

    Mtricas Orientadas al tamao: Medidas directas del resultado y del proceso

    Mtricas Orientadas a la funcin: Medidas indirectas del software y del proceso

    Medidas LDC:

    n 1: nmero de operadores diferentes que aparecen en el programa.

    n 2 : nmero de operandos diferentes que aparecen en el programa.

    N 1 : nmero total de veces que aparece el operador.

    N 2 : nmero total de veces que aparece el operando.

    Qu es el control de versiones?

    Capacidad de recordar todos los cambios que se hacen tanto en la estructura de directorios como en el contenido de los ficheros.

    Qu es Subversin?

    Herramienta de cdigo abierto, multiplataforma (Win32, Linux, Mac, etc), para el control de versiones de ficheros electrnicos, como son

    el software o la documentacin.

    Qu es TortoiseSVN?

    TortoiseSVN es un cliente gratuito de cdigo abierto para el sistema de control de versiones Subversion.

    Oficina de administracin de Proyectos (PMO)

    Es un departamento o grupo que define y mantiene estndares de procesos, generalmente relacionados a la gestin de proyectos,

    dentro de una organizacin

    Etapas de un proyecto

    Inicio -> Planeacin -> Ejecucin -> Ejecucin -> Monitoreo y Control -> Cierre

    Beneficios de la PMO

    Estandarizacin la metodologa, los procedimientos, herramientas y plantillas para la administracin de proyectos.

    Mejora en la alineacin de los proyectos con las metas estratgicas de la SEG.

    Prioriza las estrategias, programas y proyectos.

    Mejora la estimacin y el cumplimiento de los tiempos en el proyecto.

    Mejora el presupuesto y el cumplimiento de la ejecucin de los costos asignados al proyecto.

    Mejora los niveles de calidad en el proyecto y en el producto

    Visualiza la visibilidad de los proyectos.

    Mantiene la confiabilidad en la informacin para la toma de decisiones dentro del proyecto o de la alta gerencia.

    Optimiza los niveles de comunicacin entre los involucrados de los proyectos.

    Racionaliza el uso de recursos compartidos.

    Propicia la adecuada administracin de la configuracin de los proyectos y el despliegue de las lecciones aprendidas.

    Minimiza los riesgos y su impacto.

    Reduce los cambios de alcance.

    Propicia una mayor participacin del equipo de trabajo en todas las fases del proyecto.

    Beneficios de la Certificacin

    Se busca mejorar el desempeo en la manera en que se administran proyectos.

    Acredita conocimiento, experiencia, competencias y habilidades slidas en la Direccin de proyectos que posee el profesional.

    Le permite asumir mayores retos y responsabilidades acreditando sus capacidades para gestionar proyectos de envergadura.

    Conocimiento preciso de las mejores prcticas en administracin de proyectos propuestas por PMI.

    Experiencia en la aplicacin de la metodologa en administracin de proyectos.

    Habilidades gerenciales para la administracin de proyect.

  • Administracin de las Configuraciones

    Software Configuration Managment (SCM).- Disciplina que se encarga de manejar la devolucin de los productos de SW a lo largo de

    su vida, desde etapas de desarrollo, hasta que el producto sale del ambiente de su vida.

    El diccionario de trminos de IEEE define SCM como el proceso de identificar y definir los tems de configuracin en un sistema,

    controlando la entrega y el cambio de estos elementos a travs del ciclo de vida del sistema, almacenando el estado de los tems de

    configuracin y de las solicitudes de cambio, y verificando la completitud con respecto a los requerimientos especificados.

    El CMM es un modelo de calidad de software, el cual se refiere a la dimensin administrativa de SCM.

    La norma ISO 10007 define el objetivo principal de SCM como: Documentar y proveer visibilidad de los productos de software y del

    estado de progreso en la satisfaccin de los requerimientos funcionales y fsicos.

    Herramietas de soporte a SCM: PVCS, CVS; RCS, Clear Case, ADELE

    Administracin de la Configuracin del Software Disciplina que controla los cambios en la evolucin de los sistemas de software.

    Su propsito es establecer y mantener la integridad de productos de trabajo utilizando identificacin de configuracin, control de

    configuracin, administracin del estado de configuracin y auditorias de configuracin.

    Versin: Identifica el estado de un artculo de configuracin o de una configuracin en un momento bien definido.

    Configuracin: Para un agregado AC dado, a un conjunto de versiones consistente de sus artculos de configuracin.

    Peticiones de Cambio: Reporte formal hecho por un usuario o un desarrollador que solicita una modificacin a un artculo de

    configuracin.

    Promocin: Versin que se ha puesto a disposicin de los dems desarrolladores.

    Lanzamiento: Versin que se ha puesto a disposicin de los clientes o usuarios.

    Promocin: Versin que se ha puesto a disposicin de los dems desarrolladores.

    Lanzamiento: Versin que se ha puesto a disposicin de los clientes o usuarios.

    Versiones del SW

    - Alpha/Alfa: Es la primera versin del programa, la cual es enviada a los verificadores para probarla.

    - Beta: Una versin beta o lanzamiento beta representa la primera versin completa del programa informtico o de otro

    producto, que es posible que sea inestable pero til para que las demostraciones internas y las inspecciones previas

    seleccionen a clientes.

    - Versin candidata a definitiva (RC): Una ms conocida por su nombre en ingls release candidate, comprende un producto

    final, preparado para publicarse como versin definitiva a menos que aparezcan errores que lo impidan.

    - Versin de disponibilidad gl (RTM): La versin de disponibilidad general (tambin llamada "dorada") de un producto es su

    versin final. Normalmente es casi idntica a la versin candidata final, con slo correcciones de ltima hora.

    - Estable/Inestable: En la programacin de cdigo abierto los nmeros de las versiones, o los trminos estable e inestable,

    normalmente distinguen las fases del desarrollo.

    Deployment: Tambin se le conoce como despliegue, y es cuando ya se entrega el software para ser puesto a produccin. Esto incluye la

    entrega e instalacin del software, capacitacin de los usuarios, instalacin del hardware necesario y todas las acciones requeridas para

    que el software pueda ser usado.

    Funciones Principales de SCM

    Identificacin de Configuracin Control de Configuracin

    Mantenimiento del Estado de Configuracin Auditorias y Revisiones de Configuracin

    Funciones relacionadas con el SCM

    Build Management: Actividades asociadas al proceso de construir el producto final.

    Release Management: Actividades asociadas al proceso de crear el medio de distribucin del producto final.

  • Beneficios de SCM

    -Asegura que se construya el sistema correcto.

    -Mejora la productividad de desarrollo de software

    -Reduce los defectos

    -Agiliza la identificacin de problemas y correccin de errores

    -Mantiene historial de problemas y cmo fueron resueltos

    Variantes: Versiones funcionalmente equivalentes, pero diseadas para ambientes diferentes

    Branch: Es una revisin que surge a partir de una versin de la lnea evolutiva principal (trunk) y evoluciona independientemente

    Codeline: Lnea evolutiva de un Agregado de SCM, Contiene cada versin de cada elemento de configuracin contenido en su ruta

    evolutiva

    Merge: Incorporar cambios realizados en una versin de un branch en una versin del trunk

    Labels (Tags): Una versin label es una etiqueta utilizada para identificar una versin de un elemento de configuracin

    Archivo de Trabajo (workfile): Archivo utilizado para crear una nueva versin de un elemento de configuracin, estos pueden ser copias

    tanto de versiones iniciales como de versiones previamente sacadas del repositorio

    Workspace: rea en donde se crean y se mantienen los archivos de trabajo (workfiles), pueden ser pblicos o privados

    Check-in: Registra en el repositorio de CM una nueva versin de un elemento de configuracin utilizando un workfile, regularmente

    conteniendo cambios sobre una versin anterior

    Check-out/Get

    Check-out : Extrae del repositorio de CM una versin especfica de un elemento de configuracin para introducir algn cambio

    Get : Extrae una versin de un elemento de configuracin para fines de consulta o referencia

    Baseline: Una especificacin o producto que ha sido revisado formalmente y arribado a un acuerdo, el cual de ah en adelante sirve de

    base para desarrollo posterior y el cual puede ser cambiado slo a travs de procedimientos formales de control de cambios

    Promocin (promotion): Mecanismo utilizado para indicar el nivel de madurez o progreso de una versin de elemento de configuracin

    o Agregado de SCM

    Integracin/Build

    Integracin: Combinar elementos de configuracin desarrollados por distintos usuarios para crear el producto final .

    Build (Construccin): Actividades asociadas al procesamiento de elementos de configuracin fuentes para construir el producto final

    Release (Liberacin): Es una versin que se ha puesto disponible a los usuarios finales

    Solicitud de Cambio (SCR): Un SCR (System Change Request) es un formulario fsico o electrnico conteniendo una solicitud de cambio

    al sistema originada por un usuario o por un integrante del equipo. Usualmente es el mecanismo utilizado para coordinar la asignacin

    de trabajo

    Change Control Board (CCB): Analiza y determina si un cambio se va a llevar a cabo.

    PRUEBAS DE SOFTWARE

    Construccin de software.- Creacin detallada de software operativo mediante Codificacin, Verificacin, Pruebas Unitarias y de

    Integracin y Depuracin.

    Artefacto de software.- Engloba ficheros de cdigo, casos o archivos de prueba, contenidos.

  • Lenguajes de construccin: Especifican una solucin a un problema ejecutable por la computadora - Configuracin.- Ejemplo: Software nuevo para Linux o Windows. - Toolkits.- Ejemplo: Scripts o API (cdigo reutilizable) - Programacin.- Tipos: Lingstica, Formal, Visual.

    Principios de construccin de software:

    - Minimizar complejidad (Cdigo sencillo y de calidad) - Anticipar cambios (Actualizar software) - Pensar en verificacin posterior. (Aplicar pruebas y pensar en los fallos) - Aplicar estndares

    o Directos: Usar lenguaje conocido y estndar como c++, java, etc. Reglas de codificacin. Notacin en diagramas como UML.

    o De proyecto: Externos.- ISO, ANSI, OMG, IEEE Internos.- Propios de cada organizacin.

    Perspectiva de proceso Planificacin.- Orden de construccin y asignacin de tareas.

    Manejo de Excepciones.- Modificaciones y detalles. Codificacin.- Cdigo simple, variables significativas, manejo de excepciones, validaciones. Pruebas.- Unitarias y de Integracin. Aseguramiento de Calidad

    Escribir pruebas primero Ejecucin lnea a lnea Usar aserciones. Depuracin Revisin

    Reutilizacin.- Uso de bibliotecas. Integracin.- Rutinas, clases y otros componentes que estn incluidos en forma separada.

    Revisin.- Tcnica esttica basada en la construccin de software (Arquitectura, Base de diseo, Anlisis de Requerimientos). Prueba.- Tcnica dinmica basada principalmente en la codificacin y en la ejecucin del programa. Revisiones de software Informales.- Inspeccin mnima y superficial, se detectan menos errores. Semi-formales.- Procedimientos mnimos (walkthroughs) Formales.- Inspeccin completa y detallada. Tipos de Pruebas:

    Un mdulo: Unitarias -> Verifican el funcionamiento aislado de piezas de software. Varios mdulos: De integracin -> Interaccin entre componentes. Pueden ser: Incremental ascendente.- Comienza por pruebas unitarias, siguiendo las ramas de dependencia en profundidad. Incremental descendente.- Comienza por un conjunto de mdulos en fases.

    Sistema completo: De sistema. Aqu se detectan requisitos no funcionales y fallos funcionales. Funcionamiento ante hardware: De aceptacin. Orden: UNITARIAS -> INTEGRACION -> SISTEMA -> ACEPTACION Pruebas de caja negra.- [Funcionales] Basadas en la entrada/salida que genera el cdigo Pruebas de caja blanca.- [Estructurales] Basadas en cmo fue codificado el software Pruebas Ad hoc.- Se generan por la habilidad intuitiva en programas del ingeniero de pruebas. Pruebas Exploratorias.- Se generan sobre la marcha, es decir, se aprenden. Criterios de cobertura 1-wise.- Cuando cada valor de la prueba es utilizado al menos una vez como parmetro en un caso. 2-wise.- Cuando un par de valores es utilizado en un caso de prueba como parmetro

  • DOCUMENTACION EN LINEA Documentacin en Lnea.- Instrucciones escritas electrnicamente que permiten obtener las prestaciones de las aplicaciones de software. Objetivos: Minimizar costos de soporte. Fomentar autoaprendizaje de usuarios Minimiza errores de interaccin de usuarios con aplicaciones. Documentacin en HTML.- Su aparicin oficial fue el 7 de febrero de 1996 en Seattle. Acceso universal, distribucin de documento. WorldWideWeb.- Primer navegador web, 1991. CONVENIOS PARA PONER LLAVES EN UN PROGRAMA

    Allman (ANSI C)

    while (x == y)

    {

    something();

    somethingelse();

    } Llaves alineadas a la sentencia contenedora.

    K&R

    if (some_error) {

    do_correct();

    } else

    continue_as_usual(); Las llaves se colocan alineadas a la sentencia contenedora, sin embargo, en estructuras de control la sentencia se alinea a la llave de cierre.

    Banner

    function1 () {

    do stuff

    do more stuff } La ultima llave es alineada a las sentencias contenidas. Y la primer llave incluida en la sentencia contenedora.

    White Smith function some() { if(algo) { something(); } } Llaves alineadas a las sentencias contenidas.

    BSD KNF

    while (x == y) {

    something();

    somethingelse();

    } La primer llave incluida en la sentencia contenedora y la de cierre alineada a la sentencia contenedora.

    Pico Function indent(){ Instruccion;} La primer llave incluida en la lnea de la sentencia contenedora. La llave de cierre en la misma lnea que la ultima instruccin;

    GNU

    concat (char *s1, char *s2)

    {

    while (x == y)

    {

    something ();

    somethingelse ();

    }

    finalthing (); } Las llaves contenedoras alineadas a la sentencia contenedora. Las llaves encontradas adentro de las contenedoras debern tener espacio de tal manera que queden a la mitad entre la sentencia contenedora y las sentencias contenidas

    Horstmann

    while (x == y)

    { something();

    somethingelse(); } Llaves alineadas a la sentencia contenedora. La primer instruccin contenida deber ir en la misma lnea que la primer llave.

  • REFACTORIZACION Refactorizacin.- Es una tcnica de la ingeniera del software para efectuar cambios en la estructura interna de un cdigo sin cambiar su comportamiento externo. Refactorizacin Pull-Up: Mover un mtodo o variables de una subclase a una superclase. Refactorizacin Push-down: Mover un mtodo o variables de superclase a una subclase. ARQUITECTURA DE PROYECTOS DE SOFTWARE Arquitectura n-Tier : es la distribucin fsica de las capas. Lugar en donde est el cdigo y se ejecutan los procesos. Arquitectura n-Layers : es la distribucin lgica de las capas. Es la forma en que est estructurado el cdigo.