Professional Documents
Culture Documents
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.
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.
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
Notacin Camel
Visibilidad innecesaria
Notacin Hngara
Cdigo duplicado
Notacin Java
-Impedirse la herencia.
-Evitar propiedades pblicas.
-CodePro Analytix
Mantiene la confiabilidad en la informacin para la toma de decisiones dentro del proyecto o de la alta gerencia.
Propicia la adecuada administracin de la configuracin de los proyectos y el despliegue de las lecciones aprendidas.
Propicia una mayor participacin del equipo de trabajo en todas las fases del proyecto.
Beneficios de la Certificacin
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.
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
Mantenimiento del Estado de Configuracin
Control de Configuracin
Auditorias y Revisiones de Configuracin
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.
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.
K&R
if (some_error) {
do_correct();
something();
somethingelse();
}
Llaves alineadas a la sentencia contenedora.
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.
BSD KNF
while (x == y) {
something();
somethingelse();
}
La primer llave incluida en la sentencia contenedora y la
de cierre alineada a la sentencia contenedora.
GNU
} 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.
White Smith
function some()
{
if(algo)
{
something();
}
}
Llaves alineadas a las sentencias contenidas.
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;
Horstmann
while (x == y)
{ something();
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
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.