Definicin Ingeniera de software. Es una disciplina que comprende todos los aspectos de la produccin de software desde las etapas iniciales de la especificacin del sistema, hasta el mantenimiento de ste despus de que se utiliza.
Ingeniera de software.
Es el estudio de los principios y metodologas para desarrollo y mantenimiento de sistemas de software.
Ingeniera de software.
Es la aplicacin prctica del conocimiento cientfico en el diseo y construccin de programas de computadora y la documentacin asociada requerida para desarrollar. Operar (funcionar) y mantenerlos. Se conoce tambin como desarrollo de software o produccin de software.
Ingeniera de software.
Se trata del establecimiento de los principios y mtodos de la ingeniera a fin de obtener software de modo rentable que sea fiable y trabaje en mquinas reales.
Ingeniera de software.
La aplicacin de un enfoque sistemtico, disciplinado y cuantificable al desarrollo, operacin (funcionamiento) y mantenimiento del software; es decir, la aplicacin de ingeniera al software.
Motivacin y necesidades
El impacto del software en nuestra sociedad y en la cultura contina siendo profundo. Al mismo tiempo que crece su importancia. Actualmente, el software tiene un doble papel. Es un producto y, al mismo tiempo, el vehculo para entregarlo.
Motivacin y necesidades
Como producto, hace entrega de la potencia informtica que incorpora el hardware informtico o, ms ampliamente, una red de computadoras que es accesible por hardware local.
Motivacin y necesidades
Si reside dentro de un telfono celular u opera dentro de una computadora central, el software es un transformador de informacin,
Motivacin y necesidades
produciendo, gestionando, adquiriendo, modificando, mostrando o trasmitiendo informacin que puede ser tan simple como un solo bit, o tan complejo como un laboratorio en lnea.
Motivacin y necesidades
Como vehculo utilizado para hacer entrega del producto, el software acta como la base de control de la computadora (sistemas operativos), la comunicacin de informacin (redes) y la creacin y control de otros programas (herramientas de software y entornos).
MEDIDA DE LA CALIDAD
Aunque existen muchas medidas de la calidad del software, la correccin, facilidad de mantenimiento, integridad, y facilidad de uso proporcionan indicadores tiles para el equipo del proyecto
CORRECCION
Correccin. Un programa debe operar correctamente o proporcionar poco valor a sus usuarios. La correccin es el grado en el que el software lleva a cabo su funcin requerida.
FACILIDAD DE MANTENIMIENTO
Facilidad de mantenimiento. El mantenimiento del software cuenta con ms esfuerzo que cualquier otra actividad de ingeniera de software. La facilidad con la que se puede corregir un programa si se encuentra un error, se puede adaptar si su entorno cambia, o mejorar si el cliente desea un cambio de requisitos.
FACILIDAD DE MANTENIMIENTO
No hay forma de medir directamente la facilidad de mantenimiento; por consiguiente, se deben analizar medidas indirectas.
FACILIDAD DE MANTENIMIENTO
Una mtrica orientad al tiempo es el tiempo medio del cambio (TMC), es decir el tiempo que se tarda en analizar la peticin de cambio, en disear la modificacin adecuada, en implementar el cambio, en probarlo y distribuirlo a todos los usuarios
FACILIDAD DE MANTENIMIENTO
los programas mas fciles de mantener tendrn un TMC menor que los programas que no son fciles de mantener.
INTEGRIDAD
Integridad. En la poca actual en donde existe tanta intromisin al software, la integridad de ste ha llegado a tener mucha importancia.
INTEGRIDAD
Este atributo mide la capacidad de un sistema de un sistema para resistir ataques (tanto accidentales como intencionados) contra su seguridad.
INTEGRIDAD
El ataque se puede realizar en cualquiera de los componentes del software: programas, datos y documentos
FACILIDAD DE USO
Facilidad de uso. El calificativo amigable con el usuario se ha convertido en omnipresente en las discusiones sobre productos de software. Si un programa no es amigable con el usuario, frecuentemente est conducido al fracaso, incluso aunque las funciones que realice sean valiosas
FACILIDAD DE USO
La facilidad de uso es un intento de cuantificar lo amigable que puede ser con el usuario y se puede medir en funcin de cuatro caractersticas:
FACILIDAD DE USO
Habilidad intelectual y/o fsica requerida para aprender el sistema. El tiempo requerido para llegar a ser moderadamente eficiente en el uso del sistema.
FACILIDAD DE USO
Aumento neto en la productividad(sobre el enfoque del sistema que reemplaza) medida cuando alguien utiliza el sistema moderadamente y eficientemente Valoracin subjetiva (a veces obtenida mediante un cuestionario) de la disposicin de los usuarios hacia el sistema.
El PROCESO DE DESARROLLO
Modelos Son muchos los modelos de proceso que se han descrito sobre la ingeniera del software. Algunos son prescripciones para al manera en que debe avanzar el desarrollo del software, y otras son descripciones de la manera en que el desarrollo del software se hace en la realidad
El PROCESO DE DESARROLLO
En teora, las dos clases de modelo deberan ser iguales o similares, pero en la prctica no lo son.
El PROCESO DE DESARROLLO
La construccin de un modelo de proceso y la discusin de los subprocesos ayuda al equipo a comprender la brecha que existe entre lo que debe ser y lo que es.
El PROCESO DE DESARROLLO
Existen otras varias razones para el modelado de un proceso:
El PROCESO DE DESARROLLO
Cuando un grupo pone por escrito una descripcin de su proceso de desarrollo, da forma a una comprensin comn de las actividades, recursos y restricciones comprometidos en el desarrollo del software.
El PROCESO DE DESARROLLO
La creacin de un modelo de proceso ayuda al equipo de desarrollo a encontrar las inconsistencias, las redundancias y las omisiones en el proceso y en las partes que lo constituyen.
El PROCESO DE DESARROLLO
A medida que estos problemas se descubren y se corrigen, el proceso se vuelve mas efectivo y concentrado en la construccin del producto final.
El PROCESO DE DESARROLLO
El modelo debe reflejar las metas del desarrollo, como la construccin del software de alta calidad, la localizacin temprana de los defectos en el desarrollo y el cumplimiento de las restricciones del cronograma y el presupuesto.
El PROCESO DE DESARROLLO
A medida que se construye el modelo, el equipo de desarrollo evala las actividades candidatas por su grado de adecuacin para alcanzar estas metas.
El PROCESO DE DESARROLLO
Por ejemplo, el equipo puede llevar a cabo revisiones de requerimientos, de modo que los problemas relativos a los requerimientos puedan encontrarse y subsanarse antes de dar comienzo al diseo.
El PROCESO DE DESARROLLO
Todo proceso debe ser adaptado para la situacin especial en que ser utilizado. La construccin de un modelo de proceso ayuda al equipo de desarrollo a comprender dnde debe hacerse la adaptacin.
El PROCESO DE DESARROLLO
Todo modelo de proceso de desarrollo de software incluye los requerimientos del sistema como entrada y un producto entregado como salida. A lo largo de los aos se han propuesto muchos modelos de este tipo.
MODELOS
Cascada Uno de los primeros modelos que han sido propuestos es el modelo en cascada, como puede verse en la figura 1 donde las etapas se representan cayendo en cascada, desde una etapa hacia la siguiente.
Operacin y Mantenimiento
CASCADA
Como se desprende de esta figura, una etapa de desarrollo debe completarse antes de dar comienzo a la siguiente.
CASCADA
De esta forma, cuando todos los requerimientos del cliente han sido identificados, analizados para comprobar su integridad y consistencia, y documentados en un informe de requerimientos, recin entonces el equipo de desarrollo puede seguir con las actividades de desarrollo del sistema.
CASCADA
El modelo en cascada presenta una visin muy clara de cmo se suceden las etapas durante el desarrollo, y sugiere a los desarrolladores cul es la secuencia de eventos que podrn encontrar.
Un cliente tiene un problema que pretende sea resuelto con una solucin basada en computadora. Un desarrollador responde a la solicitud de ayuda del cliente.
REQUERIMIENTOS
Cuando una compaa desea se le desarrolle un proyecto de software, debe definir sus necesidades de forma tal que pueda establecerse a partir de ella, una solucin,
REQUERIMIENTOS
los requerimientos deben redactarse de tal forma que, el desarrollador pueda ofrecer la forma de cumplir las necesidades del cliente.
REQUERIMIENTOS
Una vez que el contrato se asigna, el desarrollador debe redactar una definicin del sistema parta el cliente de forma que ste comprenda y pueda validar lo que har el software.
REQUERIMIENTOS
. A ambos documentos se les llama: documento de requerimientos para el sistema.
REQUERIMIENTOS
Algunos de los problemas que surgen durante el proceso de obtencin de requerimientos son el resultado de no hacer una clara separacin entre los diferentes niveles de descripcin.
REQUERIMIENTOS
Esto se hace utilizando el trmino requerimientos del usuario, para designar los requerimientos abstractos de alto nivel, y requerimientos del sistema, para designar la descripcin detallada de lo que el sistema debe hacer.
REQUERIMIENTOS
De igual forma que en estos dos niveles de detalle, se puede producir una descripcin mas detallada (una especificacin del diseo del software) para establecer un puente entre la obtencin de los requerimientos y las actividades de diseo.
REQUERIMIENTOS
Los requerimientos del usuario, los del sistema y la especificacin del diseo del software se definen de la siguiente manera:
REQUERIMIENTOS
1. Los requerimientos del usuario son declaraciones, en lenguaje natural y en diagramas, de los servicios que se espera que el sistema provea y de las restricciones bajo las cuales debe operar. 2. Los requerimientos del sistema establecen con detalle los servicios y restricciones del sistema, este documento debe ser preciso.
REQUERIMIENTOS
3. Una especificacin del diseo del software es una descripcin abstracta del diseo del software que es una base para un diseo e implementacin detallados. Esta especificacin agrega detalle a la especificacin de requerimientos del sistema.
Especificacin de los requerimientos del sistema a) A los participantes de la conferencia se les permite seleccionar el archivo a abrir.
b) Los participantes de la conferencia saben mediante un widget quien mas se encuentra utilizando la aplicacin. c) Los participantes de la conferencia conocen la posicin dentro del texto en que se encuentran las dems personas que estn utilizando la aplicacin gracias a las barras de desplazamiento mltiples. d) Los participantes de la conferencia saben la posicin del puntero del ratn de los dems participantes de la conferencia.
REQUERIMIENTOS
Los diferentes niveles de especificacin del sistema son de utilidad debido a que comunican la informacin del sistema a los diferentas tipos de lectores.
REQUERIMIENTOS
La figura 3.1 ilustra la diferencia entre los requerimientos del usuario y del sistema. Muestra la manera en que un requerimiento del usuario se divide en varios requerimientos del sistema.
REQUERIMIENTOS
Los requerimientos del usuario se redactan para el cliente y los contratistas administradores quienes no tienen un conocimiento tcnico detallado del sistema.
REQUERIMIENTOS
La especificacin de requerimientos del sistema se orienta al personal tcnico y a los administradores del proyecto. Tambin lo utilizar tanto el equipo del cliente como el del contratista.
REQUERIMIENTOS
Los usuarios finales del sistema pueden leer ambos documentos.
REQUERIMIENTOS
La especificacin del diseo del software es un documento orientado a la implementacin. Debe redactarse para los ingenieros de software que desarrollarn el sistema.
Requerimientos funcionales
Son declaraciones de los servicios que proveer el sistema, de la manera en que ste reaccionar a entradas particulares y de cmo se comportar en situaciones particulares.
Requerimientos funcionales
En algunos casos, los requerimientos funcionales de los sistemas tambin declaran explcitamente lo que el sistema no debe hacer.
Requerimientos no funcionales
Son restricciones de los servicios o funciones ofrecidos por el sistema. Incluyen restricciones de tiempo, sobre el proceso de desarrollo estndares, etc.
REQUERIMIENTOS FUNCIONALES
Los requerimientos funcionales de un sistema describen la funcionalidad o los servicios que se espera que este proveer. Estos dependen del tipo de software y del sistema que se desarrolle y de los posibles usuarios del software.
REQUERIMIENTOS FUNCIONALES
Cuando se expresan como requerimientos del usuario, habitualmente se describen de forma general mientras que los requerimientos funcionales del sistema describen con detalle la funcin de ste, sus entradas y salidas, excepciones, etc.
REQUERIMIENTOS NO FUNCIONALES
stos como su nombre sugiere, son aquellos requerimientos que no se refieren directamente a las funciones especficas que entrega el sistema, sino a las propiedades emergentes de ste como la fiabilidad, la respuesta en el tiempo y la capacidad de almacenamiento
REQUERIMIENTOS NO FUNCIONALES
De esta forma alternativa, definen las restricciones del sistema como la capacidad de los dispositivos de entrada/salida y la representacin de datos que se utiliza en las interfaces del sistema.
La base de datos deber ayudar a la generacin y control de la configuracin de objetos; es decir, objetos que a su vez son agrupaciones de otros de la base de datos. Los recursos para este control permitirn el acceso a los objetos en una versin de grupo utilizando un nombre incompleto
REQUERIMIENTOS
Este requerimiento incluye tanto informacin conceptual como detallada. Expresa la existencia de recursos de control de la configuracin como una parte inherente del APSE.
REQUERIMIENTOS
Sin embargo, esta tambin incluye el detalle de que los recursos de control de la configuracin que permiten el acceso a los objetos en una versin de grupo sin especificar y su nombre completo
REQUERIMIENTOS
. Este detalle podra ubicarse mejor en la especificacin de requerimientos del sistema.
REQUERIMIENTOS
En el documento de requerimientos es una buena prctica separar los requerimientos del usuario de los detallados del sistema. Por otra parte, los lectores no tcnicos de los requerimientos del usuario se confundirn con los detalles que slo son relevantes a los lectores tcnicos.
REQUERIMIENTOS
La siguiente figura ilustra esta confusin.
Recursos de la cuadrcula para ayudar a la ubicacin de entidades en un diagrama, el usuario activar una cuadrcula en centmetros o en pulgadas, mediante una opcin en el panel de control. De forma inicial, dicha cuadrcula estar desactivada. Esta cuadrcula se podr activar o desactivar en cualquier momento durante una sesin de edicin y puesta en pulgadas y centmetros. La opcin de cuadrcula se proveer en la vista de reduccin de ajuste, pero el nmero de lneas de la cuadrcula a mostrar se reducir para evitar saturar el diagrama ms pequeo con lneas de cuadrcula
4 MODELADO DE ANLISIS
Principios del anlisis.
Existen diferentes mtodos de anlisis sin embargo, todos se relacionan por un conjunto de principios operativos:
PRINCIPIOS OPERATIVOS
Debe representarse y entender el dominio de informacin un problema. Deben definirse las funciones que debe realizar el software. Debe representarse el comportamiento del software (como consecuencia de acontecimientos externos).
PRINCIPIOS OPERATIVOS
Deben dividirse los modelos que representan informacin, funcin y comportamiento de manera que se descubran los detalles por capas (o jerrquicamente). El proceso de anlisis debera ir desde la informacin esencial hasta el detalle de la implementacin.
PRINCIPIOS OPERATIVOS
Aplicando estos principios, el analista se aproxima al problema sistemticamente. Se examina el dominio de informacin de manera que pueda entenderse completamente la funcin. Se emplean modelos para poder comunicar de forma compacta las caractersticas de la funcin y su comportamiento
PRINCIPIOS OPERATIVOS
Se aplica la particin para reducir la complejidad. Son necesarias las visiones esenciales y de implementacin del software para acomodar las restricciones lgicas impuestas por los requisitos del procesamiento y las restricciones fsicas impuestas por otros elementos del sistema.
PRINCIPIOS OPERATIVOS
Adems de los principios operativos de anlisis anteriores, se sugiere un conjunto de principios directrices para la ingeniera de requisitos
PRINCIPIOS DIRECTRICES
Entender el problema antes de empezar a crear el modelo de anlisis. Hay tendencia a precipitarse en busca de una solucin, incluso ates de entender el problema. Esto lleva a menudo a un elegante software para el problema equivocado.
PRINCIPIOS DIRECTRICES
Desarrollar prototipos que permitan al usuario entender cmo ser la interaccin hombre-mquina. Como el concepto de calidad del software se basa a menudo en la opinin sobre la ambigedad de la interfaz, el desarrollo de prototipos (y la iteracin que se produce es altamente recomendable.
PRINCIPIOS DIRECTRICES
Registrar el origen y la razn de cada requisito. Este es el primer paso para establecer un seguimiento hasta el cliente.
PRINCIPIOS DIRECTRICES
Usar mltiples planteamientos de requisitos. La construccin de modelos de datos, funcionales y de comportamiento, le proporcionan al ingeniero de software tres puntos de vista diferentes.
PRINCIPIOS DIRECTRICES
Esto reduce la probabilidad de que se olvide algo y aumenta la probabilidad de reconocer la falta de consistencia.
PRINCIPIOS DIRECTRICES
Dar prioridad a los requisitos. Las fechas ajustadas de entrega pueden impedir la implementacin de todos los requisitos del software.
PRINCIPIOS DIRECTRICES
Trabajar para eliminar la ambigedad. Como la mayora de los requisitos estn descritos en un lenguaje natural, abunda la oportunidad de ambigedades. El empleo de revisiones tcnicas formales es una manera de descubrir y eliminar la ambigedad.
MODELADO
Los modelos se crean para entender mejor la entidad que se va a construir. Cuando la entidad es algo fsico (un auto, una casa, una mquina), podemos construir un modelo idntico en forma, pero ms pequeo
MODELADO
Sin embargo, cuando la entidad que se va a construir es software, nuestro modelo debe tomar una forma diferente. Debe ser capaz de modelar la informacin que transforma el software,
MODELADO
las funciones y (subfunciones) que permiten que ocurran las transformaciones y el comportamiento del sistema cuando ocurren estas transformaciones.
MODELADO
El segundo y tercer principios operativos del anlisis requieren la construccin de modelos de funcin y comportamiento.
Modelos funcionales
El software transforma la informacin y, para hacerlo, debe realizar al menos tres funciones genricas: entrada, procesamiento y salida.
Modelos funcionales
Cuando se crean modelos funcionales de una aplicacin, el ingeniero de software se concentra en funciones especficas del problema.
Modelos funcionales
El modelo funcional empieza con un sencillo modelo a nivel de contexto (por ejemplo, el nombre del software que se va a construir).
Modelos funcionales
Despus de una serie de iteraciones, se consiguen ms y ms detalles funcionales, hasta que se consigue representar una minuciosa definicin de toda la funcionalidad del sistema.
Modelos de comportamiento
La mayora del software responde a los acontecimientos del mundo exterior. Esta caracterstica estmulo-respuesta forma la base del modelo del comportamiento.
Modelos de comportamiento
Un programa de computadora siempre se encuentra en un estado, un modo de comportamiento observable exteriormente (por ejemplo, esperando, calculando, imprimiendo, haciendo cola) que cambia slo cuando ocurre algn suceso.
Modelos de comportamiento
Por ejemplo, el software permanecer en el estado de espera hasta que (1) un reloj interno le indique que ha pasado cierto intervalo de tiempo,
Modelos de comportamiento
(2) un suceso externo (por ejemplo un movimiento del ratn) provoca una interrupcin, o (3) un sistema externo seala al software que acte de alguna manera.
Modelos de comportamiento
Un modelo de comportamiento crea una representacin de los estados de software y los sucesos que causan que cambie de estado.
Modelos de comportamiento
Los modelos creados durante el anlisis de requisitos desempean papeles muy importantes:
Modelos de comportamiento
o El modelo ayuda al analista a entender la informacin, la funcin y el comportamiento del sistema, haciendo por tanto ms fcil y sistemtica la tarea de anlisis de requisitos.
Modelos de comportamiento
o EL modelo se convierte en el punto de mira para la revisin y por tanto la clave para determinar si se ha completado, su consistencia y la precisin de la especificacin.
Modelos de comportamiento
o El modelo se convierte en el fundamento para el diseo, proporcionando al diseador una representacin esencial del software que pueda trasladarse al contexto de la implementacin.
Si
Si
No
Si
Si
No
Si/No
Si/No
No
No
Si
Si
Si Si
No No
Si Si
MODELADO DE ANLISIS
En un nivel tcnico, la ingeniera de software empieza con una serie de tareas de modelado que llevan a una especificacin completa de los requisitos y a una representacin del diseo general del software a construir.
MODELADO DE ANLISIS
El modelo de anlisis, realmente un conjunto de modelos, es la primera representacin tcnica de un sistema. Se han propuesto muchos mtodos para el modelado del anlisis
MODELADO DE ANLISIS
. Sin embargo dos tendencias dominan el panorama del modelado del anlisis. El primero, anlisis estructurado, es un mtodo de modelado clsico. El otro enfoque, anlisis orientado a objetos.