Sei sulla pagina 1di 10

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.
Cul es el objetivo de la Ingeniera de Software?
Construir software de calidad a un bajo costo y en el menor tiempo posible.
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?

Caractersticas.
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.
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.
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.

UML (Lenguaje de modelado unificado)


Tipos de diagramas
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.
Existen 2 tipos:
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
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.
Etiquetas de transicin, las cuales tienen tres partes:
Evento.
Guardia.
Accin.
Diagramas de actividades:
Estos diagramas son tiles en conexin con flujo de trabajo y para describir
comportamiento que puede tener procesamiento en paralelo.
Los elementos que conforman un diagrama de actividad son:
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.
Mtricas de calidad de un Producto de Software.
Algunas medidas de calidad de un producto de software son:
Correctez.
Confiabilidad.
Robustez.
Rendimiento.
Amigable con el usuario.
Verificabilidad.
Mantenibilidad.
Reusabilidad.
Portabilidad.
Mtricas de Calidad del Proceso de Desarrollo de software.
Algunas medidas de la calidad del proceso de desarrollo son:
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
Es el proceso de revisar el cdigo de una aplicacin para encontrar errores al tiempo de
diseo,
Fallas en IDE que no se comprueba:
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.
-Las clases solo deben tener una funcionalidad.
-El cdigo debe estar cubierto al 100% por pruebas.
-Siempre debe haber una interfaz.
-Uso del this.
-Posicin de la declaracin de las variables.
-Cdigo comentado.
-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.
Uso del Log.
Herramientas para Auditoria:

-Junit Test Generation


-CodePro Analytix
Calidad de Software
Puede ser considerada desde dos perspectivas diferentes; la ptica del desarrollador se
denominan Internos y los del cliente Externos.
Factores:
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 diferentes aplicaciones.
Prototipo:
Version 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

Potrebbero piacerti anche