Anda di halaman 1dari 39

REPBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA DEFENSA


UNIVERSIDAD NACIONAL EXPERIMENTAL POLITCNICA DE LA
FUERZA ARMADA NACIONAL BOLIVARIANA
(UNEFA)
NUCLEO YARACUY-EXTENCION NIRGUA

Sistema de Tiempo
Real
Facilitador:

Emprendedoras:

Ing. Edgardo Molina

Erolida Hannibal
Carla Prez
Seccin U
IV Semestre de Ing. En Sistemas
Nirgua, Noviembre del 2016

INDICE

Introduccin

pg.

Sistema de Tiempo Real

Conceptos Bsicos

Sistemas Operativos de Tiempo Real

Base de Datos en Tiempo Real

10

Lenguaje de Programacin en Tiempo Real

11

Ada

11

Occam

12

La Calidad del Software

13

Mtrica de Calidad de software

14

Mtricas para determinar los factores de calidad

14

El proceso para certificar

15

Gestin segn ISO 9000:2000

16

Principios de la gestin de la calidad segn ISO 9000:2000

17

Gestin de la Calidad

18

El aseguramiento de la calidad

19

El aseguramiento de calidad de software

19

Las actividades para el aseguramiento de calidad de software

20

Algunos mtodos de aseguramiento

20

Control de calidad

20

Control de calidad de software

21

La Calidad de Producto de Software

21

Gestin de proyecto de software orientada a objetos

22

Marcos de proceso comn para OO

23

Programacin Orientada a Objeto

24

Conceptos Fundamentales

25

Clase

25

Herencia

25

Objeto

26

Atributos

26

Encapsulamiento

26

Polimorfismo

26

Herencia

27

Anlisis y Diseo OO

27

Prueba OO

28

Patrones de Diseo OO

29

Conclusiones

33

Bibliografa

34

INTRODUCCIN

En el siguiente trabajo se dar a conocer todo lo relacionado con la ingeniera


del software los sistemas de tiempo real el cual trata bsicamente del de la reunin de
varias tcnicas preexistentes de anlisis y diseo, con el propsito de organizar el
desarrollo de sistemas compuestos por una combinacin de hardware y software. El
objetivo fundamental es que dicho desarrollo resulte en sistemas robustos y
confiables, con un ptimo aprovechamiento de los recursos. Utiliza un enfoque
diferente, con los mismos objetivos. Teniendo claro estas definiciones se procede a
distinguir lo que es ingeniera del software, Del mismo modo este trabajo manifiesta
los procesos y faces de desarrollo del software, la complejidad de los sistemas de
software, los recursos del software en sistemas complejos, la utilidad de un sistema
del software. Asimismo Entonces los sistemas de tiempo real interactan con el
entorno que se le presente y pueden ejecutar acciones de respuesta para determinados
estmulos de dicho entorno.

SISTEMA DE TIEMPO REAL

Un sistema de tiempo real es un sistema informtico que interacciona con su


entorno fsico y responde a los estmulos del entorno dentro de un plazo de tiempo
determinado. No basta con que las acciones del sistema sean correctas, sino que,
adems, tienen que ejecutarse dentro de un intervalo de tiempo determinado.Existen
sistemas de tiempo real crtico (tiempo real duro), en los que los plazos de respuesta
deben respetarse siempre estrictamente y una sola respuesta tarda a un suceso
externo puede tener consecuencias fatales; y sistemas de tiempo real acrtico (tiempo
real suave), en los que se pueden tolerar retrasos ocasionales en la respuesta a un
suceso.

Un ejemplo que ilustra los puntos anteriores es el de un robot que necesita


tomar una pieza de una banda sinfn. Si el robot llega tarde, la pieza ya no estar
donde deba recogerla, por tanto, el trabajo se llev a cabo incorrectamente, aunque el
robot haya llegado al lugar adecuado. Si el robot llega antes de que la pieza llegue, la
pieza an no estar ah y el robot puede bloquear su paso.

El estudio de los sistemas de tiempo real es una rama relativamente nueva de


la ingeniera. Los primeros trabajos que mencionan estos trminos tal cual se los
utiliza en este captulo son de la dcada del 80 [Stankovic, 1985, 1987]. Se trata,
bsicamente, de la reunin de varias tcnicas preexistentes de anlisis y diseo, con el
propsito de organizar el desarrollo de sistemas compuestos por una combinacin de
hardware y software. El objetivo fundamental es que dicho desarrollo resulte en
sistemas robustos y confiables, con un ptimo aprovechamiento de los recursos.
Utiliza un enfoque diferente, con los mismos objetivos.
6

CONCEPTOS BSICOS

En primera instancia se procede a presentar un conjunto de definiciones


necesarias para entender el significado de la expresin sistemas de tiempo
real [Laplante, 1992].

Un sistema es una caja negra que tiene un grupo de una o ms entradas y un


grupo de una o ms salidas. Este sistema es determinstico si para cada estado y cada
conjunto de entradas pueden ser determinadas un nico conjunto de salidas y el
prximo estado del sistema.

El tiempo entre la presentacin de un conjunto de entradas a un sistema y la


aparicin de todas las salidas asociadas se llama tiempo de respuesta del sistema. Un
sistema en falla es un sistema que no puede satisfacer uno o ms de los requisitos
presentados en la especificacin del sistema.

Un sistema de tiempo real puede definirse, entonces, como un sistema que


debe satisfacer restricciones explcitas en el tiempo de respuesta o arriesgarse a
severas consecuencias, incluida la falla. Por lo tanto un sistema de tiempo real es un
sistema que responde a un estmulo externo dentro de un tiempo especificado. Su
eficiencia no solo depende de la exactitud de los resultados de cmputo, sino tambin
del momento en que los entrega.

La predictibilidad es su caracterstica principal. A diferencia de los sistemas


tradicionales, que tienden a distribuir en forma equitativa los recursos disponibles
entre las diferentes tareas a ejecutar, los sistemas de tiempo real deben asegurar la
distribucin de recursos de tal forma que se cumplan los requerimientos de tiempo.

Los sistemas de tiempo real pueden dividirse en dos tipos diferentes, en


funcin de su severidad en el tratamiento de los errores que puedan presentarse:

Sistemas de tiempo real blandos o Soft real-time systems: Pueden tolerar un


exceso en el tiempo de respuesta, con una penalizacin por el incumplimiento
del plazo.

Sistemas de tiempo real duros o Hard real-time systems: La respuesta fuera de


trmino no tiene valor alguno, y produce la falla del sistema.

La idea de sistema de tiempo real no debe asociarse nicamente con la velocidad


de respuesta del sistema. En cambio, tiempo real implica s necesariamente que los
tiempos de respuesta estn acotados. Debe conocerse exactamente el tiempo que le
tomar al sistema responder a un determinado evento. Este tiempo debe ser
invariable, fundamentalmente, y adems debe ser lo suficientemente rpido como
para no producir una falla, por supuesto.

Si bien los primeros trabajos en sistemas de tiempo real se enfocaron a


arquitecturas simples y dedicadas, los actuales sistemas de computadoras de
propsitos generales y sus respectivas aplicaciones se estn transformando en

sistemas complejos que generalmente requieren los atributos de los sistemas de


tiempo real: mltiples tareas coexisten en el sistema y cada una de ellas tiene
diferentes requerimientos de tiempo; se requiere de mecanismos eficientes de
comunicacin entre las tareas; acceso simultneo a dispositivos y redes;
configurabilidad, adaptabilidad, entre otros.

El objetivo es presentar los aspectos a tener en cuenta en el anlisis, tanto de


sistemas dedicados como de sistemas de computadoras, bajo requerimientos de
tiempo real. Presentemos algunas definiciones ms antes de asociar la anterior
definicin de sistema de tiempo real con la idea de sistemas de computadoras.
Llamaremos sistema de computadora a todo sistema que incluya un microprocesador,
tanto una computadora personal, como un sistema cerrado.

Un sistema operativo es una coleccin especializada de programas que provee los


mecanismos para interrelacionar las distintas componentes de un sistema de
computadora. Un sistema dedicado, es un software utilizado para controlar un
hardware determinado que es parte de un sistema mayor. Generalmente se trata de
sistemas cerrados en los cuales el usuario solo tiene acceso a un conjunto limitado de
funciones, o a ninguna.

Estos sistemas tienen un conjunto especfico de tareas asignadas que no puede


modificarse si no es por medio de una reprogramacin total. Un ejemplo clsico de un
sistema dedicado es el software de un micro controlador que es parte de una planta, y
que est a cargo, por ejemplo, de controlar la temperatura de la misma.

Un sistema operativo de propsitos generales difiere de un sistema dedicado en


que no tiene asignado un nico conjunto de tareas a realizar. Puede ser reprogramado
completamente por el usuario. Tal es el caso de una PC con sistema operativo UNIX,
con un programa ejecutndose. Este sistema operativo permite ejecutar tareas tan
dismiles como un procesador de texto o un control de temperatura.

Debe aclararse que en lo que sigue se hace referencia a sistemas de computadora


con un nico microprocesador, dejndose las estructuras multiprocesador para un
anlisis posterior.

SISTEMAS OPERATIVOS DE TIEMPO REAL

Los Sistemas Operativos de tiempo real son la plataforma para establecer


un sistema de tiempo real ya que en los SOTR no tiene importancia el usuario, sino
los procesos.

Algunos ejemplos de Sistemas Operativos de tiempo real son:

VxWorks,

Solaris, Lyns OS.

Spectra.
Por lo regular

Sistema Operativo

de tiempo real suele tener la

misma arquitectura que un Sistema Operativo convencional, pero su diferencia radica


en que proporciona mayor prioridad a los elementos de control y procesamiento que
son utilizados para ejecutar los procesos o tareas.
10

El SOTR debe ser multitarea y permisible.

Un SOTR debe poder asignar prioridades a las tareas

El SOTR debe proporcionar medios de comunicacin y sincronizacin entre


tareas.

Un SOTR debe poder evitar el problema de inversin de prioridades.

El comportamiento temporal del SOTR debe ser conocido.

BASE DE DATOS EN TIEMPO REAL

Una base de datos en tiempo real (BDTR) es aquella que es usada en sistemas
en tiempo real, por ejemplo aplicaciones de supervisin de autmatas, ms conocidos
como sistemas SCADA. Hay diferentes BD en tiempo real, una de las ms conocidas
es IndustrialSQLServer que es la BD de Wonderware, sistema SCADA de la
compaa homnima. Este IndustrialSQLServer no es ms que una versin
modificada (mejorada) de SQLServer de Microsoft. La mejora consiste en que la BD
puede seguir el ritmo del sistema SCADA, por ejemplo grabar miles de registros por
segundo.

Un ejemplo sencillo es: Normalmente en las aplicaciones SCADA hay


mdulos que muestran curvas de tendencias (Trends) dichas curvas son muestreos
peridicos del valor de una o varias variables (temperaturas, presiones, volmenes,

11

entre otros.), dichos valores deben ser grabados en la BD, el problema con una BD
"normal", es que no es capaz de asegurar la escritura de estos valores.

Generalmente los sistemas SCADA implementan sus propias BDTR, en el


caso de Wonderware, ste opt por trabajar de la mano de Microsoft, Otra empresa
llamada ArcInformatique produce un sistema SCADA llamado PCVue, dicho sistema
usa una BDTR propietaria, es decir que solo ellos conocen su estructura y como
trabajar con ella.

LENGUAJES DE PROGRAMACION EN TIEMPO REAL

Los programas creados para la programacin exclusiva en tiempo real, son


dos, Ada y Occam, los cuales presento un pequeo resumen a continuacin.
ADA
Es un lenguaje de programacin orientado a objetos y fuertemente tipado de
forma esttica que fue diseado por Jean Ichbiah de CII Honeywell Bull por encargo
del Departamento

de

Defensa

de

los

Estados

Unidos.

Es

un

lenguaje

multipropsito, orientado a objetos y concurrente, pudiendo llegar desde la facilidad


de Pascal hasta la flexibilidad de C++.

Fue diseado con la seguridad en mente y con una filosofa orientada a la


reduccin de errores comunes y difciles de descubrir. Para ello se basa en un tipado
muy fuerte y en chequeos en tiempo de ejecucin (desactvales en beneficio del
rendimiento). La sincronizacin de tareas se realiza mediante la primitiva rendezvous.

12

Ada se usa principalmente en entornos en los que se necesita una gran


seguridad y fiabilidad como la defensa, la aeronutica (Boeing o Airbus), la gestin
del trfico areo (como Indra en Espaa) y la industria aeroespacial entre otros.

Uno de sus compiladores muy usado es GNAT, originalmente desarrollado


por la Universidad de Nueva York bajo patrocinio del DoD. Est basado en la
tecnologa de GCC y es software libre. Pero existen otros compiladores comerciales.

CARACTERSTICAS

La sintaxis, inspirada en Pascal, es bastante legible incluso para personas que


no conozcan el lenguaje. Es un lenguaje que no escatima en la longitud de las
palabras clave, en la filosofa de que un programa se escribe una vez, se modifica
decenas de veces y se lee miles de veces (legibilidad es ms importante que rapidez
de escritura).

Es indiferente el uso de maysculas y minsculas en los identificadores y


palabras claves, es decir es un lenguaje case-insensitive.

En Ada, todo el programa es un nico procedimiento, que puede contener


subprogramas (procedimientos o funciones).

13

Cada sentencia se cierra con end qu cerramos. Es un modo de evitar errores y


facilitar la lectura. No es necesario hacerlo en el caso de subprogramas, aunque todos
los manuales lo aconsejan y casi todos los programadores de Ada lo hacen.

El operador de asignacin es :=, el de igualdad =. A los programadores de C y


similares les puede confundir este rasgo inspirado en Pascal.
Se distingue entre "procedimientos" y "funciones".

OCCAM
Es un lenguaje de programacin imperativo y estructurado (al igual
que Pascal). Poco conocido y con muy pero muy poca informacin en la red. Fue
desarrollado por David May en Inmos Limited, Bristol, Inglaterra, para desarrollar
software

para

su

lnea

de

procesadores Transputers,

existiendo

tambin

implementaciones para otras plataformas.

Es un lenguaje de procesamiento en paralelo; se basa en el lgebra de


procesos CSP (Communicating Sequential Processes) y comparte muchas de sus
caractersticas. Lleva el nombre de William of Ockham famoso por ser el creador de
la navaja de Occam.

Occam incorpora soporte para grano muy fino, facilidad para usar hilos y el
apoyo sin fisuras de los entornos multi-procesador. Puede ser utilizado en sistemas de
memoria compartida o distribuida, y sus fuertes fundamentos en CSP lo hace una
excelente opcin cuando se requieren pruebas formales de correccin.
14

Actualmente el Occam est tambin como aplicacin en el lenguaje Java.

LA CALIDAD DEL SOFTWARE

La obtencin de un

software con calidad implica la utilizacin de

metodologas o procedimientos estndares para el anlisis, diseo, programacin y


prueba del software que permitan uniformar la filosofa de trabajo, en aras de lograr
una mayor confiabilidad, mantenibilidad y facilidad de prueba, a la vez que eleven
la productividad, tanto para la labor de desarrollo como para el control de la calidad
del software.

Los requisitos del software son la base de las medidas de calidad. La falta de
concordancia con los requisitos es una falta de calidad. Los estndares
o metodologas definen un conjunto de criterios de desarrollo que guan la forma en
que se aplica la ingeniera del software. Si no se sigue ninguna metodologa siempre
habr falta de calidad.

Existen algunos requisitos implcitos o expectativas que a menudo no se


mencionan, o se mencionan de forma incompleta (por ejemplo el deseo de un
buen mantenimiento) que tambin pueden implicar una falta de calidad. La poltica
establecida debe estar sustentada sobre tres principios bsicos: tecnolgico,
administrativo y ergonmico. El principio tecnolgico define las tcnicas a utilizar en
el proceso de

desarrollo

del software.

El principio

administrativo contempla

las funciones de planificacin y control del desarrollo del software, as como la


organizacin del ambiente o centro de ingeniera de software.
15

El principio ergonmico define la interfaz entre el usuario y el ambiente


automatizado. La adopcin de una buena poltica contribuye en gran medida a lograr
la calidad del software, pero no la asegura. Para el aseguramiento de la calidad es
necesario su control o evaluacin. A partir del siguiente grfico se observa la
interrelacin existente entre la Gestin de la Calidad, el Aseguramiento de la Calidad
y el Control de la Calidad.

MTRICAS DE LA CALIDAD DE SOFTWARES

Es difcil, y en algunos casos, imposible, desarrollar medidas directas de los


factores de calidad del software. Cada factor de calidad Fc se puede obtener como
combinacin de una o varias mtricas:
Fc= c1 * m1 + c2 * m2 ++ cn * mn
Ci: factor de ponderacin de la mtrica i, que depender de cada aplicacin
especfica.
Mi: mtrica i.
(Habitualmente se puntan de 0 a 10 en las mtricas y en los factores de
calidad).

16

Mtricas para determinar los factores de calidad.

Facilidad de auditoria.

Exactitud.

Normalizacin de las comunicaciones.

Completitud.

Concisin.

Consistencia.

Estandarizacin de los datos.

Tolerancia de errores.

Eficiencia de la ejecucin.

Facilidad de expansin.

Generalidad.

Independencia del hardware.

Instrumentacin.

Modularidad.

Facilidad de operacin.

Seguridad.

Autodocumentacin.

Simplicidad.

Independencia del sistema software.

Facilidad de traza.

Formacin.

17

El proceso para certificarse es el siguiente

Presente una solicitud formal a la entidad de certificacin.

sta le realiza una oferta - presupuesto.

Aceptacin del presupuesto ofertado.

Estudio por parte de la certificadora de la documentacin de su sistema de


gestin de la calidad.

Visita previa de auditoria, para conocer la empresa y resolver dudas.

Envo del plan de auditoria a la organizacin, indicando fechas, equipo auditor


y planning previsto.

Aprobacin por parte de la organizacin del plan de auditoria.

Realizacin de la auditoria de certificacin.

Redaccin del informe de auditoria, donde se indican las desviaciones


detectadas.

La organizacin corrige las desviaciones detectadas y presenta la solucin de


las mismas a la certificadora.

Concesin del certificado por parte de la certificadora.

Una vez otorgada la certificacin, la certificadora realizar auditorias de


seguimiento para comprobar que el sistema de gestin de la calidad cumple los
requisitos indicados en la norma ISO 9001, a lo largo del perodo de vigencia del
certificado.

18

A los tres aos, la certificacin del sistema de gestin de la calidad expira


(caduca) y se realiza una auditoria de recertificacin (muy similar a la auditoria de
certificacin original).

CONCEPTOS RELATIVOS A LA GESTIN SEGN ISO 9000:2000

Los

trminos

que

se

incluyen

aqu

se

han

tomado

de ISO

9000:2000 Sistemas de Gestin de la Calidad. Fundamentos y vocabulario. Fecha:


diciembre 2.000."

Sistema de gestin: Sistema para establecer la poltica y los objetivos, y para


la consecucin de dichos objetivos.

Gestin de la calidad: Conjunto completo de procesos utilizados en un sistema


de gestin de la calidad.

Poltica

de

la

calidad: Intenciones

y direccin global

de

una organizacin relativas a la calidad tal como se expresan formalmente por la alta
direccin.

Planificacin de la calidad: Parte de la gestin de la calidad enfocada al


establecimiento e interpretacin de la poltica de la calidad y los requisitos de la
calidad y especfica cmo se va a alcanzar.
19

Mejora de la calidad: Parte de la gestin de la calidad orientada a mejorar


su eficacia y eficiencia.

Proceso: Sistema de actividades, que utilizan recursos para transformar


entradas en salidas.

Principios De La Gestin De La Calidad Segn ISO 9000: 2000

Los ocho principios de la gestin de la calidad identificados para lograr los


objetivos de la calidad, segn "ISO 9000:2000 Sistemas de Gestin de la Calidad.
Fundamentos y vocabulario." son:

Enfoque al cliente. Las organizaciones dependen de sus clientes y por la tanto


deberan comprender las necesidades actuales y futuras de los clientes, satisfacer los
requisitos de los clientes y esforzarse en exceder las expectativas de los clientes.

Liderazgo. Los lderes establecen la unidad de propsito y la orientacin de la


organizacin. Ellos deberan crear y mantener un ambiente interno, en el cual el
personal pueda llegar a involucrarse totalmente en el logro de los objetivos de la
organizacin.

20

Participacin del personal. El personal, a todos los niveles, es la esencia de


una organizacin y su total compromiso posibilita que sus habilidades sean usadas
para el beneficio de la organizacin.

Enfoque basado en procesos. Un resultado deseado se alcanza ms


eficientemente cuando las actividades y los recursos relacionados se gestionan como
un proceso.

Enfoque de sistema hacia la gestin. Identificar, entender y gestionar los


procesos interrelacionados como un sistema, contribuye a la eficacia y eficiencia de
una organizacin en el logro de sus objetivos.

Mejora continua. La mejora continua del desempeo global de la organizacin


debera ser un objetivo permanente de sta.

Enfoque basado en hechos para la toma de decisiones. Las decisiones eficaces


se basan en el anlisis de los datos y la informacin.

Relacin mutuamente beneficiosa con el proveedor. Una organizacin y


sus proveedores son interdependientes, y una relacin mutuamente beneficiosa
aumenta la capacidad de ambos para crear valor. Estos ocho principios de gestin de
la calidad constituyen la base de las normas de sistemas de gestin de la calidad de la
familia de Normas ISO 9000.

21

LA GESTIN DE LA CALIDAD

"Aspectos de la funcin de gestin que determinan y aplican la poltica de la


calidad, los objetivos y las responsabilidades y que lo realiza con medios tales como
la planificacin de la calidad, el control de la calidad, la garanta de calidad y la
mejora de la calidad".
Dentro de la gestin de la calidad se observa:

Gestin de la calidad de software (ISO 9000): Conjunto de actividades de la


funcin general de la direccin que determina la calidad, los objetivos y las
responsabilidades y se implanta por medios tales como la planificacin de la calidad,
el control de la calidad, el aseguramiento (garanta) de la calidad y la mejora de la
calidad, en el marco del sistema de calidad

Poltica de calidad (ISO 9000): Directrices y objetivos generales de una


organizacin, relativos a la calidad, tal como se expresan formalmente por la alta
direccin.

La gestin de la calidad se aplica normalmente a nivel de empresa. Tambin


puede haber una gestin de calidad dentro de la gestin de cada proyecto.

22

EL ASEGURAMIENTO DE LA CALIDAD

Ante todo se debe conocer:

Aseguramiento

de

la

calidad:

"Conjunto

de acciones planificadas

sistemticas necesarias para proporcionar la confianza adecuada de que


un producto o servicio satisfar los requerimientos dados sobre calidad".

Aseguramiento de la calidad de software: Conjunto de actividades


planificadas y sistemticas necesarias para aportar la confianza en que el producto
(software) satisfar los requisitos dados de calidad.

El aseguramiento de calidad del software se disea para cada aplicacin antes


de comenzar a desarrollarla. Hay quienes prefieren decir garanta de calidad en vez de
aseguramiento

La garanta, puede confundir con garanta de productos, mientras que el


aseguramiento pretende dar confianza en que el producto tiene calidad.

El aseguramiento de calidad del software est presente en:

Mtodos y herramientas de anlisis, diseo, programacin y prueba.


23

Inspecciones tcnicas formales en todos los pasos del proceso de desarrollo


del software.

Estrategias de prueba multiescala.

Control de la documentacin del software y de los cambios realizados.

Procedimientos para ajustarse a los estndares (y dejar claro cuando se est


fuera de ellos).

Mecanismos de medida (mtricas).

Registro de auditorias y realizacin de informes.

Las actividades para el aseguramiento de calidad del software se detallan en:

Mtricas de software para el control del proyecto.

Verificacin y validacin del software a lo largo del ciclo de vida (Incluye


las pruebas y los procesos de revisin e inspeccin).

La gestin de la configuracin del software.

Algunos mtodos del aseguramiento:

Revisiones tcnicas y de gestin (su objetivo es la evaluacin).

Inspeccin (su objetivo es la verificacin). Estamos construyendo el


producto correcto?

Pruebas (su objetivo es la validacin). Estamos construyendo el producto


correctamente?

Auditorias (su objetivo es la confirmacin del cumplimiento).

24

EL CONTROL DE LA CALIDAD

Se debe conocer:

Control de calidad: "Conjunto de tcnicas y actividades de carcter operativo,


utilizadas para verificar los requerimientos relativos a la calidad del producto o
servicio".

Control de la calidad del software: Tcnicas y actividades de carcter


operativo, utilizadas para verificar los requisitos relativos a la calidad, centrados en
mantener bajo control el proceso de desarrollo y eliminar las causas de los defectos
en las diferentes fases del ciclo de vida.

El control de la calidad del software est centrado en dos objetivos


fundamentales:

Mantener bajo control un proceso.

Eliminar las causas de los defectos en las diferentes fases del ciclo de vida.

En general, se puede decir que el control de la calidad del software son las
actividades para evaluar la calidad de los productos desarrollados.

25

LA CALIDAD DEL PRODUCTO SOFTWARE

El concepto de Calidad asociado al desarrollo software, est ligado al mismo


desde sus orgenes. Desafortunadamente, se construyen proyectos y productos que no
alcanzan los mnimos de calidad esperado, incluso los costes de no calidad, la deuda
tcnica, inducen a la no finalizacin con xito de los mismos. Planificamos el
desarrollo de productos en base a una metodologa o un marco de trabajo, siguiendo
un proceso definido y obviando actividades asociadas a la calidad. A menudo
confundimos la calidad del proceso con la calidad del producto, lo que conlleva falsas
expectativas en el desarrollo del software. Incluso en muchas organizaciones no
existe una mentalizacin real por la calidad del producto, sino que prima la puesta en
servicio sobre la calidad del mismo; y lo que es peor, no cuentan con un proceso de
V&V (verificacin y validacin) definido y obviamente no implantado. La calidad es
innegociable: es una parte inherente e inseparable del producto. Las organizaciones
deben tener un proceso definido e implantado de V&V; sin hitos, sin barreras, que sea
proactivo y, en la medida de lo posible, automatizado dentro de su cadena productiva.
La Calidad del Producto es una ventaja inherente, consubstancial, y connatural frente
a la Competencia: no la obviemos. A da de hoy los modelos de negocio de nuestras
organizaciones estn sustentados por productos software. Las empresas pretenden
diferenciarse de sus competidores basndose en la calidad de los productos que
ofrecen a sus clientes. Cuando nos referimos a Calidad Software, subyacentemente
nos referimos a cuatro tipos de calidad:

La del Proceso

La del Producto

La de las Personas/Equipos.

La del Servicio

26

GESTIN DE PROYECTOS DE SOFTWARE ORIENTADO A OBJETO

Las tcnicas modernas de gestin de proyectos de software se pueden dividir e


as siguientes actividades:

Establecimiento de un marco de proceso comn para el proyecto.

Uso del marco y de mtricas histricas.

Especificacin de productos de trabajo y avances.

Definicin de puntos de comprobacin.

Gestin de los cambios que ocurren invariablemente.

Seguimiento.

Para aplicar estas actividades hay que tomar en cuenta que todas hay que
enfocarlas usando un modelo propio.

MARCO DE PROCESO COMN PARA OO. (ORIENTADO A OBJETO).

Este tpico define un enfoque organizativo para el desarrollo y mantenimiento


del software. Identifica el paradigma de Ing. De software aplicado para construir y
mantener software. Tiene la cualidad de ser adaptable, de forma que cumpla con las
necesidades individuales del equipo de proyecto.

27

Para el desarrollo de proyectos de esta naturaleza no se pueden aplicar


modelos lineales (ciclo de vida), sino que es necesario aplicar un modelo que
contemple un desarrollo iterativo. Iterativo significa que el software evolucione a
travs de un nmero de ciclos. El software OO debe ser evolutivo por naturaleza.

Existen autores que sugieren un modelo recursivo/paralelo para el desarrollo


orientado a objeto.
Este modelo sugiere

Realizar los anlisis suficientes para aislar las clases de problemas y las
conexiones ms importantes.

Realizar un pequeo diseo para determinar si las clases y pueden ser


implementadas de forma prctica.

Extraer objetos reutilizables.

Conducir alguna prueba para descubrir errores.

Obtener retroalimentacin del cliente.

Modificar el modelo de anlisis basndose en lo que se ha aprendido.

Refinar el diseo.

Construir objetos especiales.

Ensamblar un nuevo prototipo.

Realizar pruebas para descubrir errores del prototipo

Obtener retroalimentacin del cliente.

El progreso en este modelo se va obteniendo iterativamente, por consiguiente por


cada iteracin se ajusta la agenda para acomodar los cambios asociados con la
iteracin precedente.

28

Mtricas y Estimacin en Proyectos OO


Como el objetivo principal de los proyectos OO es la reutilizacin, las
estimaciones hay que realizarlas no partiendo de lneas de cdigo ni un punto de
fusin como controlador principal de la estimacin. El punto de fusin puede ayudar
en alguna media al proceso, pero no es lo ms ptimo.

Un enfoque OO para estimacin y Planificacin. Para realizar las estimaciones


hay que tomar en consideracin un conjunto de medidas y tcnicas. S podra realizar
estimaciones respecto al esfuerzo y la duracin usadas en el desarrollo del software.

Pero lo que ms se adapta al enfoque Orientado a objeto requiere de tcnicas


como la siguiente:

Desarrollo de estimaciones usando descomposicin de esfuerzos.

Desarrollar guiones de escenario y determinar una cuenta.

Determinar la cantidad de clases clave usando AOO.

Clasificar el tipo de interfaz para la aplicacin y desarrollar un multiplicador


para las clases de soporte.

Multiplicar clases (clave + soportes)

29

PROGRAMACIN ORIENTADA A OBJETOS

La programacin orientada a objetos es un paradigma de programacin que


viene a innovar la forma de obtener resultados. Los objetos manipulan los datos de
entrada para la obtencin de datos de salida especficos, donde cada objeto ofrece una
funcionalidad especial. Muchos de los objetos pre-diseados de los lenguajes de
programacin actuales permiten la agrupacin en bibliotecas o libreras, sin embargo,
muchos de estos lenguajes permiten al usuario la creacin de sus propias bibliotecas.
Est

basada

en

varias

tcnicas,

incluyendo herencia, cohesin, abstraccin, polimorfismo, acoplamiento y encapsula


miento. Su uso se populariz a principios de la dcada de 1990. En la actualidad,
existe una gran variedad de lenguajes de programacin que soportan la orientacin a
objetos.
Conceptos Fundamentales
La POO es una forma de programar que trata de encontrar una solucin a
estos problemas. Introduce nuevos conceptos, que superan y amplan conceptos
antiguos ya conocidos. Entre ellos destacan los siguientes:

Clase: Definiciones de las propiedades y comportamiento de un tipo de objeto


concreto. La instanciacin es la lectura de estas definiciones y la creacin de un
objeto a partir de ella.

Herencia: Por ejemplo, herencia de la clase C a la clase D, es la facilidad


mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de
C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por
30

lo tanto, puede usar los mismos mtodos y variables pblicas declaradas en C. Los
componentes registrados como "privados" (private) tambin se heredan, pero como
no pertenecen a la clase, se mantienen escondidos al programador y slo pueden ser
accedidos a travs de otros mtodos pblicos. En el caso de los componentes
registrados como "protegidos" (protected) tambin se heredan, pero solo para esa
clase, no para futuras clases heredadas. Esto es as para mantener hegemnico el ideal
de POO.
Objeto: Instancia de una clase. Entidad provista de un conjunto de
propiedades o atributos (datos) y de comportamiento o funcionalidad (mtodos), los
mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos
reales del mundo que nos rodea, o con objetos internos del sistema (del programa).

Atributos: Caractersticas que tiene la clase:

Encapsulamiento: Significa reunir todos los elementos que pueden


considerarse pertenecientes a una misma entidad, al mismo nivel de abstraccin. Esto
permite aumentar la cohesin (diseo estructurado) de los componentes del sistema.
Algunos autores confunden este concepto con el principio de ocultacin,
principalmente porque se suelen emplear conjuntamente.

Polimorfismo: Comportamientos diferentes, asociados a objetos distintos,


pueden compartir el mismo nombre; al llamarlos por ese nombre se utilizar el
comportamiento correspondiente al objeto que se est usando. O, dicho de otro modo,
las referencias y las colecciones de objetos pueden contener objetos de diferentes
tipos, y la invocacin de un comportamiento en una referencia producir el

31

comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre
en "tiempo de ejecucin", esta ltima caracterstica se llama asignacin tarda o
asignacin dinmica. Algunos lenguajes proporcionan medios ms estticos (en
"tiempo de compilacin") de polimorfismo, tales como las plantillas y la sobrecarga
de operadores de C++.

Herencia: Las clases no se encuentran aisladas, sino que se relacionan entre


s, formando una jerarqua de clasificacin. Los objetos heredan las propiedades y el
comportamiento de todas las clases a las que pertenecen. La herencia organiza y
facilita el polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos
y creados como tipos especializados de objetos preexistentes. Estos pueden compartir
(y extender) su comportamiento sin tener que volver a implementarlo. Esto suele
hacerse habitualmente agrupando los objetos en clases y estas en rboles o enrejados
que reflejan un comportamiento comn. Cuando un objeto hereda de ms de una
clase se dice que hay herencia mltiple; siendo de alta complejidad tcnica por lo cual
suele recurrirse a la herencia virtual para evitar la duplicacin de datos.

ANLISIS Y DISEO ORIENTADO A OBJETOS

El anlisis y diseo orientado a objetos (ADOO) es un enfoque de la


ingeniera de software que modela un sistema como un grupo de objetos que
interactan entre s. Este enfoque representa un domino absoluto en trminos de
conceptos compuestos por verbos y sustantivos, clasificados de acuerdo a su
dependencia funcional.

32

En este mtodo de anlisis y diseo se crea un conjunto de modelos utilizando


una notacin acordada como, por ejemplo, el lenguaje unificado de modelado (UML).

ADOO aplica tcnicas de modelado de objetos para analizar los


requerimientos para un contexto (por ejemplo, un sistema de negocio, un conjunto de
mdulos de software) y para disear una solucin para mejorar los procesos
involucrados. No est restringido al diseo de programas de computadora, sino que
cubre sistemas enteros de distinto tipo. Las metodologas de anlisis y diseo ms
modernas son "casos de uso" guiados a travs de requerimientos, diseo,
implementacin, pruebas, y despliegue. El lenguaje unificado de modelado se ha
vuelto el lenguaje de modelado estndar usado en anlisis y diseo orientado a
objetos.
PRUEBAS ORIENTADAS A OBJETOS

La metodologa de Pruebas Orientada a Objetos para

el Ciclo de Vida

Completo (en ingls "Full Life-Cycle Object-Oriented Testing", FLOOT) es una


coleccin de tcnicas para verificar y validar software orientado a objetos. El ciclo de
vida FLOOT, indica una amplia variedad de tcnicas que estn disponibles en todos
los aspectos del desarrollo de software. La lista de tcnicas no pretende ser completa
por el contrario su objetivo es hacer explcito el hecho de que usted cuenta con un
amplio rango de opciones disponibles. Es importante entender que aunque el mtodo
FLOOT es presentado como una coleccin de fases secuenciales no necesariamente
tiene que ser as: las tcnicas de FLOOT pueden ser aplicadas tambin con procesos
agiles/evolutivos. La razn por la que presento FLOOT de una forma tradicional es
para volver explicito el hecho de que en realidad usted puede realizar pruebas en
todos los aspectos del desarrollo de software no solamente durante la codificacin.

33

PATRONES DE DISEO EN LA PROGRAMACIN ORIENTADA A


OBJETOS

La programacin orientada a objetos (POO) es un paradigma en la que los


sistemas se disean mediante clases y relaciones entre ellas. Se utilizan conceptos
como la herencia, polimorfismo, abstraccin, encapsulamiento y ocultacin.
Resumidamente estas propiedades son:

Clase: Abstraccin que recoge las propiedades y comportamiento de los


objetos en el sistema. Una clase puede instanciarse en objetos tantas veces como se
necesite.

Objeto: instancia de una clase que se relaciona con el resto de objetos a travs
de los mtodos definidos en sus clases.

Herencia: las clases no estn aisladas y se relacionan entre ellas, mediante


esta propiedad forman una jerarqua en la que las clases heredan las propiedades y
mtodos de las clases superiores.

Polimorfismo: es la propiedad de las instancias de las clases, los objetos, por


la que pueden responder de forma diferente a un mismo nombre de mtodo en
funcin de su tipo concreto.

34

Abstraccin: Permite modelar una entidad del mbito de trabajo con las
caractersticas relevantes para el sistema.

Encapsulamiento: los elementos relacionados se agrupan juntos en una


misma clase para aumentar la cohesin.

Ocultacin: las clases tienen una interfaz a travs de la cual el resto de clases
interactan con ella de forma que no necesiten conocer sus detalles y evita que clases
externas modifiquen el estado de manera inesperada.

Conocer estas propiedades es importante para programar en un lenguaje


orientado a objetos sin embargo no es suficiente para disear sistemas que sean
fciles de mantener y que permitan adaptarse a nuevos cambios sin redisear los
sistemas. Aqu es donde aparecen los patrones de diseo y unos principios a la hora
de disear los sistemas OO. Los patrones de diseo son formas identificadas que
resuelve de forma correcta diferentes problemas comunes a algunos escenarios. Los
principios son unas guas que dirigen el diseo que realizamos y que en gran medida
estn presentes en los patrones de diseo.

Muy resumidamente los patrones de diseo tienen como objetivo permitir


hacer frente a toda constante que posee cualquier aplicacin, el cambio, de tal forma
que permitan escalar a los sistemas incorporando nuevas funcionalidades y
prefiriendo aadir nuevo cdigo a modificar cdigo existente.

35

Algunos principios que deberan guiar nuestras decisiones son:

Encapsula lo que vara

Favorece la composicin sobre herencia

Programa sobre interfaces, no implementaciones

Abierto a extensin, cerrado a cambio

Depende sobre abstracciones, no sobre clases concretas

Conocimiento solo de clase amigas

No nos llames, nosotros te llamaremos

Una clase debera tener solo una razn para cambiarla

Inversin de dependencias

Algunos patrones identificados y que resuelven de forma correcta algunos problemas


son:

Strategy

Observer

Decorator

Factory

Simple Factory

Factory method

Abstract Factory

Singleton

Command

Null object

Adapter & Facade

Object adapter

Class adapter

Template Method

36

Iterator & Composite

State

Proxy Patttern

Compound Pattterns

Otros

Bridge

Builder

Chain of responsability

Flyweight

Interpreter

Mediator

Memento

Prototype

Visitor
Un muy buen libro que recoge todos estos principios y patrones es Head
First Design Patterns y en el que se describe de forma ms detallada y con
ejemplos la aplicacin de los principios y el uso de los patrones de una forma sencilla
y bien explicada. Aunque es un libro con los ejemplos en Java es una lectura muy
recomendada para cualquiera que quiera subir un nivel como desarrollador.

Despus de leer el libro es buena idea tener una hoja de referencia con todos
los patrones, en DZone hay una disponible que se puede descargar libremente design
patterns cheat sheet.

37

CONCLUSIN

Del trabajo realizado se lleg a la conclusin, de que Los Sistemas tiempo


Real estn presentes en todos los aspectos de nuestra vida diaria, Se podra tambin
concluir que los sistemas de tiempo real estn en constante desarrollo puesto que con
los avances tecnolgicos se construyen nuevas mquinas que operan en tiempo real y
que por consiguiente necesitan tener sistemas controlados por un computador que
tenga la capacidad de interactuar con el mundo fsico. Los sistemas de tiempo real
bsicamente estn integrados en un sistema de ingeniera ms avanzado el cual
realiza funciones de control, por lo que tambin se les llama sistemas empotrados
estos sistemas de tiempo real suelen tener un reloj y un timer para verificar los
tiempos reales de respuesta del sistema. Se dice que no son trminos iguales ya que
un reloj le sirve al sistema nicamente para llevar un conteo, en cambio un timer es
un dispositivo que cuando llega a un estado determinado tiene la capacidad de
notificar que est pasando, pero uno es el complemento del otro. En el mismo mbito
de ideas, los sistemas de tiempo real aplica diferentes normas y mtodos que permiten
obtener mejores resultados, en cuanto al uso del software, mediante la aplicacin
correcta de estos procedimientos se puede llegar a cumplir de manera satisfactoria
con los objetivos fundamentales.

38

BIBLIOGRAFA

http://www.monografias.com/trabajos37/sistemas-tiempo-real/sistemas-tiemporeal2.shtml#ixzz4R9O8wfgS
http://www.clubdelphi.com/foros/showthread.php?t=29724
http://octavio-razo.blogspot.com/2011/06/lenguajes-de-programacion-en-tiempo.html
http://www.monografias.com/trabajos59/calidad-software/calidadsoftware2.shtml#ixzz4R9WsOTDL
http://www.monografias.com/trabajos59/calidad-software/calidadsoftware2.shtml#ixzz4R9YBogKt
http://www.monografias.com/trabajos59/calidad-software/calidadsoftware2.shtml#ixzz4R9XkaaaL
http://www.monografias.com/trabajos59/calidad-software/calidadsoftware2.shtml#ixzz4R9Wl2d3v
http://www.monografias.com/trabajos59/calidad-software/calidadsoftware2.shtml#ixzz4R9XA2wOL
http://atsistemas.com/wpcontent/uploads/2013/12/20121201_articulo_calidad_produc
to_software_jesus_hernando_corrochano.pdf
http://www.ilustrados.com/tema/3794/Ingenieria-software-orientada-objeto.html#ges
https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos
https://es.wikipedia.org/wiki/Programacin_orientada_a_objetos

39