Anda di halaman 1dari 27

Sistema de gestin de calidad ISO 9126

Es estndar internacional para evaluacin de calidad del software. El estndar se


divide en cuatro porciones, que tratan, respectivamente, los temas siguientes:
modelo de la calidad; mtrica externa; mtrica interna; y mtrica funcionando de la
calidad.
El modelo de la calidad establecido en la primera parte del estndar, ISO 9126-1,
clasifica calidad del software en un sistema estructurado de caractersticas y de
secundario-caractersticas como sigue:
Funcionalidad - Un sistema de las cualidades que refieren la existencia de un
sistema de funciones y de sus caractersticas especificadas. Las funciones son las
que satisfacen necesidades indicadas o implicadas.
o Conveniencia
o Exactitud
o Interoperabilidad
o Conformidad
o Seguridad
Confiabilidad - Un sistema de las cualidades que refieren la capacidad del
software para mantener su nivel del funcionamiento bajo condiciones indicadas
por un perodo del tiempo indicado.
o Madurez
o Recuperabilidad
o Tolerancia de avera
Utilidad - Un sistema de las cualidades que refieren el esfuerzo necesit para el
uso, y en el gravamen individual de tal uso, por un sistema indicado o implicado de
usuarios.
o Learnability
o Understandability
o Operability
Eficacia - Un sistema de las cualidades que refieren la relacin entre el nivel del
funcionamiento del software y la cantidad de recursos usados, bajo condiciones
indicadas.
o Comportamiento de Tiempo
o Comportamiento del recurso
Capacidad de mantenimiento - Un sistema de las cualidades que refieren el
esfuerzo necesit hacer modificaciones especificadas.
o Estabilidad
o Analyzability
o Changeability
o Testability
Portabilidad - Un sistema de las cualidades que refieren la capacidad del
software de ser transferido a partir de un ambiente a otro.
o Installability
o Reemplazabilidad
o Adaptabilidad
La conformidad secundario-caracterstica no se enumera arriba y no se aplica a
todas las caractersticas. Los ejemplos son conformidad a la legislacin referente a
utilidad o confiabilidad.
Cada calidad secundario-caracterstica (como adaptabilidad) se divide ms a
fondo en cualidades. Una cualidad es una entidad que se puede verificar o medir
en el producto de software. Las cualidades no se definen en el estndar, pues
varan entre diversos productos de software.
El producto de software se define en un ancho: abarca los executables, cdigo de
fuente, descripciones de la arquitectura, y as sucesivamente. Consecuentemente,
la nocin del usuario extiende a los operadores as como a los programadores,
que son usuarios de componentes como bibliotecas del software.

El estndar proporciona un marco para las organizaciones para definir un modelo
de la calidad para un producto de software. En hacer as pues, sin embargo, deja
hasta cada organizacin la tarea de especificar exacto su propio modelo. Esto se
puede hacer, por ejemplo, especificando los valores de blanco para la mtrica de
la calidad que evala el grado de presencia de las cualidades de la calidad.
Las mtricas internas son las que no confan en la ejecucin del software
(medidas estticas).
Las mtricas externas son aplicables al software corriente. Las mtricas
funcionando de la calidad estn solamente disponibles cuando el producto final se
utiliza en condiciones verdaderas. Idealmente, la calidad interna determina la
calidad externa y la calidad externa determina la calidad funcionando.
Este estndar proviene modelo establecido en 1977 de McCall y de sus colegas,
que propusieron un modelo para especificar calidad del software. El modelo de la
calidad de McCall se organiza alrededor de tres tipos de caractersticas de la
calidad:
Factores (especificar): Describen la vista externa del software, segn lo visto por
los usuarios.
Criterios (construir): Describen la vista interna del software, segn lo visto por el
revelador.
Mtrica (al control): Se definen y se utilizan para proporcionar una escala y un
mtodo para la medida.
La ISO 9126 distingue entre un defecto y una inconformidad, a defecto siendo El
incumplimiento de los requisitos previstos del uso, mientras que a inconformidad
es El incumplimiento de requisitos especificados. Una distincin similar se hace
entre la validacin y la verificacin, sabidas como V&V en el comercio de prueba.

Formas de normalizacin para el desarrollo de software
as herramientas de desarrollo de software (HDS) han desempeado un importante
papel en el desarrollo de aplicaciones. Como consecuencia del avance tecnolgico
stas han experimentado tambin continuos cambios. As como se cuenta en la
actualidad con documentacin sobre las numerosas HDS disponibles, y con
trabajos de investigacin que revelan avances en herramientas particulares.

El Proceso / Tcnicas. Permite un desarrollo racional de la IS y comprende
actividades tcnicas y de gestin propias asociadas al ciclo de vida del software.
Est determinado por un modelo, una representacin formal de un sistema. En la
IS, un modelo se comporta tambin como una estrategia de desarrollo.
El Mtodo. Un mtodo es una gua general para ayudar al desempeo de una
actividad . En la IS, los mtodos indican cmo construir el software. Los mtodos
tienen dimensiones de eficiencia y de efectividad, sentido del proceso y del
producto, cualidades que se atribuyen directamente a la calidad del software.
Las Herramientas. Todo mtodo tiene uno o varios instrumentos y tcnicas
asociados a l, con un grado de adecuacin que depende generalmente del
contexto de aplicacin.
Instrumento o herramienta, sera aquello que nos permite transportarnos por el
mtodo. As, las HDS proporcionan un enfoque automtico o semi automtico para
el proceso y para los mtodos.
Herramientas de Desarrollo de Software
Actualmente se considera a las HDS como herramientas basadas en
computadoras que asisten el proceso de ciclo de vida de software , consolidadas
en la literatura en la forma de Ingeniera de software asistida por computadora
(CASE, por sus siglas en ingls). Esto es, software que se utiliza para ayudar a
las actividades del proceso de software o software que es utilizado para disear y
para implementar otro software .
Permiten automatizar acciones bien definidas, reduciendo tambin la carga
cognitiva del ingeniero de software, quien requiere libertad para concentrarse en
los aspectos creativos del proceso. Este soporte se traduce en mejoras a la
calidad y la productividad en el diseo y desarrollo. Las HDS automatizan
metodologas de software y desarrollo de sistemas y se vinculan con los
diferentes conceptos involucrados en el desarrollo.
Las Herramientas como rea de Conocimiento de la IS
Las disciplinas conforman una visin de contexto de la IS. Hacia lo interno, existen
un conjunto de reas de conocimiento que facilitan la comprensin del alcance y
las limitaciones de diferentes temas en la IS. Estas reas son: Requerimientos,
Diseo, Construccin, Pruebas y Mantenimiento de software, Gestin de la
configuracin, Gestin de la ingeniera y del proceso de la ingeniera de software,
Herramientas y mtodos de software, y Calidad de software. De este modo, las
herramientas de software y los mtodos, integran un rea especfica de la IS, y
contribuyen a la produccin de software de alta calidad, con bajo costo y en el
menor tiempo posible.
Anlisis de requisitos del sistema de software
La ingeniera de requisitos del software es un proceso de descubrimiento,
refinamiento, modelado y especificacin. Se refinan en detalle los requisitos del
sistema y el papel asignado al software.
Tanto el desarrollador como el cliente tienen un papel activo en la ingeniera de
requisitos un conjunto de actividades que son denominadas anlisis El cliente
intenta replantear un sistema confuso, a nivel de descripcin de datos, funciones y
comportamiento, en detalles concretos. El desarrollador acta como interrogador,
como consultor, como persona que resuelve problemas y como negociador.
El anlisis y la especificacin de requisitos pueden parecer una tarea
relativamente sencilla, pero las apariencias engaan. El contenido de
comunicacin es muy denso. Abundan las ocasiones para malas interpretaciones
o falta de informacin. Es muy probable que haya ambigedad. El dilema al que se
enfrenta el ingeniero de software puede entenderse muy bien repitiendo la famosa
frase de un cliente annimo: S que cree que entendi lo que piensa que dije,
pero no estoy seguro de que se d cuenta de que lo que escuch no es lo que yo
quise decir.
El anlisis de requisitos es una tarea de ingeniera del software que cubre el
hueco entre la definicin del software a nivel sistema y el diseo de software. El
anlisis de requerimientos permite al ingeniero de sistemas especificar las
caractersticas operacionales del software (funcin, datos y rendimientos), indica la
interfaz del software con otros elementos del sistema y establece las restricciones
que debe cumplir el software.
Tareas de anlisis
El anlisis de requisitos del software se puede subdividir en cinco reas de
esfuerzo:
1. Reconocimiento del problema
2. Evaluacin y sntesis
3. Modelado
4. Especificacin
5. Revisin

Todos los mtodos de anlisis se relacionan por un conjunto de principios
operativos:
1. Debe representarse y entenderse el dominio de la informacin de un
problema.
2. Deben definirse las funciones que debe realizar el software.
3. Debe representarse el comportamiento del software (como consecuencia de
acontecimientos externos),
4. Deben dividirse los modelos que representan informacin, funcin y
comportamiento de manera que se descubran los detalles por capas (o
jerrquicamente).
5. El proceso de anlisis debera ir desde la informacin esencial hasta el
detalle de la implementacin.
Adems de los principios operativos mencionados anteriormente, se sugiere un
conjunto de principios directrices para la ingeniera de requerimientos:
1. Entender el problema antes de empezar a crear el modelo de anlisis.
2. Desarrollar prototipos que permitan al usuario entender como ser la
interaccin hombre-mquina.
3. Registrar el orden y la razn de cada requerimiento,
4. Usar mltiples planteamientos de requerimientos.
5. Priorizar los requerimientos.
6. Trabajar para eliminar la ambigedad.
Un ingeniero de software que se apegue a estos principios es muy probable que
desarrolle una especificacin de software que represente un excelente
fundamento para el diseo.
Funciones y habilidades del analista
La funcin principal de un analista del software (o ingeniero de requisitos es llevar
a cabo las actividades necesarias para cumplir con las cinco reas de esfuerzo
descritas en la seccin anterior. Para lo cual hace uso de las siguientes tcnicas :
1. Entrevistas
2. Talleres
3. Observacin
4. Encuestas
5. Revisin documental
6. Uso de especificaciones formales para requerimientos (formatos estndar de
documentos, UML, etc.)
El ingeniero de requisitos debe poseer habilidades particulares para facilitar la
comunicacin con el cliente y ganar su confianza. (Consultar el artculo: So You
Want to be a Requirements Analyst?, Software Development, Julio 2003)
Ingeniera de Requisitos
Conceptos [SOMMERVILLE, 2002]
Requisitos del Software
Es la descripcin de los servicios y restricciones de un sistema de software, es
decir, lo que el software debe hacer y bajo qu circunstancias debe hacerlo.
Ingeniera de Requisitos del Software
Es el proceso de descubrir, analizar, documentar y verificar los requisitos del
software.
Stakeholders
Este trmino se utiliza para referirse a cualquier persona que tiene influencia
directa o indirecta sobre los requisitos del sistema. Entre los stakeholders se
encuentran los usuarios finales que interactan con el sistema y todos aquellos en
la organizacin se que vern afectados por dicho sistema. Los stakeholders
tambin son los ingenieros que desarrollan o dan mantenimiento a otros sistemas
relacionados, los administradores del negocio, los expertos en el dominio del
sistema, los representantes de los trabajadores, etc.
El proceso de la ingeniera de requisitos
Las actividades del proceso son:
1. Comprensin del dominio
2. Recoleccin de requisitos
3. Clasificacin
4. Resolucin de conflictos
5. Priorizacin
6. Verificacin de requisitos
7. Anlisis
Actividades de la Ingeniera de Requisitos. [SOMMERVILLE, 2002]
La ingeniera de requisitos incluye dos actividades principales: la obtencin de
requisitos, que da como resultado una especificacin del sistema que el cliente
comprende, y el anlisis, que da como resultado un modelo de anlisis que los
desarrolladores pueden interpretar sin ambigedad. [BRUEGGE, 2002]
La obtencin de requisitos se enfoca en la descripcin del propsito del sistema y
es la que implica el reto mayor. El cliente, los desarrolladores y los usuarios
identifican un rea problema y definen un sistema que resuelve el problema. A tal
definicin se le llama especificacin de los requisitos del software (SRS) y sirve
como contrato entre el cliente y los desarrolladores. La SRS se estructura y
formaliza durante el anlisis para producir un modelo de anlisis. Tanto la SRS
como el modelo de anlisis representan la misma informacin. Difieren slo en el
lenguaje y notacin que usan. La SRS est escrita en lenguaje natural, mientras
que el modelo de anlisis se expresa, por lo general, en una notacin formal o
semiformal. La especificacin del sistema es la base de la comunicacin con los
stakeholders. El modelo de anlisis es la base de la comunicacin entre los
desarrolladores.
La obtencin de requisitos y el anlisis se enfocan slo en la visin del sistema
que tiene el usuario.
Tipos de requisitos
Requisitos funcionales: Describen las interacciones entre el sistema y su
ambiente, en forma independiente a su implementacin. El ambiente incluye al
usuario y cualquier otro sistema externo con el cual interacte el sistema.
Requisitos no funcionales: Describen atributos slo del sistema o del ambiente del
sistema que no estn relacionados directamente con los requisitos funcionales.
Los requisitos no funcionales incluyen restricciones cuantitativas, como el tiempo
de respuesta o precisin, tipo de plataforma (lenguajes de programacin y/o
sistemas operativos, etc.)

Caractersticas de una buena SRS
[IEEE Std 830-1998]
1. Correcta
2. No ambigua
3. Completa
4. Consistente
5. Calificada de acuerdo a la importancia y/o estabilidad
6. Verificable
7. Modificable
8. Rastreable
1. Correcta
Una SRS es correcta, s y solo s, cada requisito especificado es un requisito que
el software debe cumplir.
No ambigua
Una SRS no es ambigua s y solo s cada requisito especificado tiene slo una
interpretacin.
Completa
Una SRS es completa, s y solo s, incluye los siguientes elementos:
a) Todos los requisitos significativos, ya sea que se relacionen a funcionalidad,
desempeo, restricciones de diseo, atributos o interfaces externas. En particular
cualquier requisito externo impuesto por una especificacin del sistema debe ser
reconocido y tratado.
b) Definicin de las respuestas del software a todos los tipos posibles de clases
de datos de entrada en todos los tipos posibles de clases de situaciones. Notar
que es importante especificar las respuestas tanto para valores de entrada vlidos
como invlidos.
c) Etiquetas y referencias completas a todas las figuras, tablas y diagramas en la
SRS as como la definicin de todos los trminos y unidades de medida.
Consistente
Una SRS es consistente, s y solo s, no se contradice a s misma, es decir, si
ningn subconjunto de requisitos ah descritos se contradicen o entran en
conflicto.
Jerarquizada de acuerdo a la importancia y/o estabilidad
Una SRS est calificada de acuerdo a la importancia y/o estabilidad si cada
requisito tienen un identificador que indique la importancia o estabilidad del
requisito.
Verificable
Una SRS es verificable, s y solo s, cada requisito especificado es verificable. Un
requisito es verificable s y solo s existe un proceso finito de costo-efectivo con el
cual una persona o una mquina puede verificar que el producto de software
cumple el requisito. En general cualquier requisito ambiguo no es verificable.
Modificable
Una SRS es modificable, s y solo s, su estructura y estilo son tales que, cualquier
cambio a los requisitos pueden ser hechos fcil, completa y consistentemente sin
perder la estructura y el estilo. La modificabilidad generalmente requiere que una
SRS:
a) Tenga una organizacin coherente y fcil de usar con una tabla
de contenido, un ndice y referencias cruzadas explcitas.
b) No sea redundante (esto es, el mismo requisito no debe
aparecer en ms de una parte en la SRS).
c) Expresa cada requisito de manera separada, en vez de hacerlo
mezclado con otros requisitos.
Rastreable
Una SRS es rastreable si el origen de cada uno de sus requisitos es clara y si
facilita la referencia de cada requisito en el desarrollo futuro o mejora de la
documentacin.
Se recomiendan los siguientes dos tipos de rastreabilidad:
a) Rastreabilidad hacia atrs (esto es, a estados previos del
desarrollo). El requisito tiene referencias explcitas a sus fuentes en documentos
anteriores.
b) Rastreabilidad hacia enfrente (esto es, a todos los documentos
derivados del SRS). Depende de que cada requisito en la SRS tenga un nombre
nico o nmero de referencia. Es particularmente importante cuando el software
entra en operacin y mantenimiento. Cuando el cdigo y los documentos de
diseo son modificados, es escencial contar con la capacidad para conocer el
conjunto completo de requisitos que pueden ser afectados por esas
modificaciones.

Tipos de encuestas, entrevistas, como recavan necesidades para el
desarrollo de software y herramientas en general.
Encuestas:
En la actualidad, existen cuatro tipos de encuesta que se dividen segn el medio
que se utiliza para realizar la encuesta:
1. Encuestas basadas en entrevistas cara a cara o de profundidad [1]: Consisten
en entrevistas directas o personales con cada encuestado. Tienen la ventaja de
ser controladas y guiadas por el encuestador, adems, se suele obtener ms
informacin que con otros medios (el telfono y el correo). Sus principales
desventajas son el tiempo que se tarda para la recoleccin de datos, su costo que
es mas elevado que las encuestas telfnicas, por correo o internet (porque
incluye viticos, transporte, bonos y otros que se pagan a los encuestadores) y la
posible limitacin del sesgo del entrevistador (por ejemplo, su apariencia, estilo de
hacer preguntas y el lenguaje corporal que utiliza, todo lo cual, puede influir en las
respuestas del encuestado).
2. Encuestas telefnicas [1]: Este tipo de encuesta consiste en una entrevista va
telefnica con cada encuestado. Sus principales ventajas son: 1) se puede abarcar
un gran nmero de personas en menos tiempo que la entrevista personal, 2) sus
costos suelen ser bajos y 3) es de fcil administracin (hoy en da, existen
softwares especializados para la gestin de encuestas telefnicas). Sin embargo,
su principal desventaja es que el encuestador tiene un mnimo control sobre la
entrevista, la cual, debe ser corta (para no molestar al encuestado).
3. Encuestas postales: Consiste en el envo de un "cuestionario" a los potenciales
encuestados, pedirles que lo llenen y hacer que lo remitan [1] a la empresa o a
una casilla de correo. Para el envo del cuestionario existen dos medios: 1) El
correo tradicional y 2) el correo electrnico (que ha cobrado mayor vigencia en los
ltimos aos). Las principales ventajas de este tipo de encuesta estn
relacionadas con la sinceridad con que suelen responder los encuestados (al no
tener la presin directa que supone la presencia del encuestador), el bajo costo
(en relacin a la encuesta cara a cara y por telfono) y la amplia cobertura a la que
se puede llegar (siempre y cuando se disponga de una buena base de datos). Sus
desventajas son: La baja tasa de respuesta y la falta de listas con informacin
actualizada.

4. Encuestas por internet: Este tipo de encuesta consiste en "colocar" un
cuestionario en una pgina web o en enviarlo a los correos electrnicos de un
panel predefinido. Sus principales ventajas son: 1) la amplia cobertura a la que se
puede llegar (incluso a miles de encuestados en varios pases y al mismo tiempo),
2) el ahorro de tiempo (se puede obtener miles de encuestas respondidas en
cuestin de horas), los bajos costos (que son menores a las encuestas cara a
cara, por telfono y postales) y la utilizacin de medios audiovisuales durante la
encuesta. Sus desventajas son: No siempre se puede verificar la identidad del
encuestado y la interrogante que deja la muestra en cuanto a su representatividad
del universo.
Otros Tipos de Encuesta:
* Encuesta en el punto de venta: Es aquella que es realizada en los pasillos de un
establecimiento comercial y que consiste en interceptar a los compradores de ese
momento para solicitarles que rellenen el cuestioario.
* Encuesta mnibus: Consiste en un cuestionario cerrado multitemtico,
compuesto por varios mdulos que recogen informacin de una misma muestra
sobre diferentes temas, para distintos clientes, que se abonan al servicio y se
benefician de un ahorro de costes, dado qu stos son compartidos por todos los
suscriptores. El hecho de que se lleven a cabo con periodicidad semanal, mensual
o trimestral las hace muy indicadas para estudios de seguimiento.
* Encuesta por suscripcin: Es una encuesta de carcter nico que es vendida a
varios clientes interesados en ella y con necesidades parecidas. No debe ser
confundida con la encuesta mnibus
Entrevistas
Tipos de entrevista [editar]La entrevista tiene un nmero de variantes casi
indeterminadas, a continuacin se citan varios tipos de entrevista que aparecen en
los medios de comunicacin:
Laboral
Para informarse el entrevistador, valorar al candidato a un puesto de trabajo y
saber si puede ser apto o no para realizar su funcin.
Entrevista de personalidad
Se realizan con la finalidad de analizar psicolgicamente a un individuo y en
funcion de esta y otras tcnicas determinar el tratamiento adecuado.
Informativa o de actualidad
Es la vinculada con los hechos del da, es noticiosa, por tanto, se redacta como
una noticia. Jams se titula con frases textuales.
De divulgacin
Sobre temas especializados en avances o descubrimientos cientficos, mdicos,
tecnolgicos, etc o temas de actualidad o de inters permanente.
Testimoniales
Las que aportan datos, descripciones y opiniones sobre un acontecimiento o
suceso presenciado
Declaraciones
Datos, juicios u opiniones recogidos textualmente
Como recabar informacin
Muchas veces nos ha pasado que cuando estamos en la fase de inicio de un
software tenemos la necesidad de recolectar la informacin que el usuario nos
brinda, y qu mejor forma para hacerlo que con una entrevista con el mismo. A lo
largo de este curso aprenderemos la fase por la que pasa una entrevista, as como
prepararla y ejecutarla. Primero que todo imaginemos a Jorge que es un analista
encargado de realizar la parte de anlisis de un software en desarrollo.
Este analista debe saber que en el anlisis de sistemas hay que distinguir las
formas cualitativas y cuantitativas de informacin. La cualitativa est relacionada
con opiniones, polticas y descripciones narrativas de actividades o problemas y
las cuantitativas con nmeros, frecuencias o cantidades.
A menudo las entrevistas son la mejor fuente de informacin cualitativa, adems la
entrevista es la tcnica primaria para la informacin que recolecta durante las
fases de anlisis de los sistemas de un proyecto del desarrollo. Dentro de las
tcnicas utilizadas para recopilar informacin, las entrevistas ocupan un lugar
preponderante en consideracin con el tiempo que ocupan y el objetivo que
tienen. Por lo general, son la mayor fuente de informacin del analista.
Durante la entrevista el analista no se limita solo a informarse de los puntos que le
interesan, sino que adems aprovecha la oportunidad para explicar su trabajo a
los usuarios y crear un clima sociolgico favorable. Las entrevistas se pueden
realizar sobre la base de un cuestionario rgido o de una gua ms o menos
detallada que las orienta hacia puntos bien definidos.
El mtodo de entrevistas para obtener informacin tiene las siguientes ventajas. .
Permite a los analistas presentar sus necesidades de forma directa y verificar en
las respuestas recibidas, si las preguntas realizadas fueron interpretadas
correctamente. . Es una oportunidad que tiene el analista para conocer el grado de
aceptacin o resistencia que existe entre los usuarios hacia el sistema que se
desea disear. Despus de que nuestro analista tiene la nocin de que es una
entrevista entonces damos paso a realizarla, pero antes que nada Jorge debe
saber que la entrevista es un arte que todo analista debe dominar.
1. preparacion.
2. Ejecucin.
3. Problemas.
4. Conclusiones.

Tipos de procesadores y sus aplicaciones
Procesadores dedicados.
Para desarrollar una tarea muy especifica. Ejecutando un nico algoritmo de forma
ptima.
Procesadores de propsito general.
Est capacitado para ejecutar una serie de instrucciones sean E/S
(entrada/salida), lgicas, aritmticas, etc. Almacenando y listando una coleccin
de instrucciones en una memoria secundaria (programa) de tal forma que el
procesador de modo secuencial lleve a cabo cada una de ellas.
CISC.
Complex Instruction Set Computing. Posee un nmero grande y longitud variable
de instrucciones, alto porcentaje de ciclos por instruccin, operaciones de
microcdigo, baja optimizacin en el uso de registros.
RISC.
Reduced Instruction Set Computing. Posee un nmero bajo y longitud fija de
instrucciones, bajo porcentaje de ciclos por instruccin, no tiene operaciones de
microcdigo, muchos registros de propsito general, compilador optimizado. Su
arquitectura permite un cierto grado de paralelismo en su ejecucin.
Power PC.
Diseados para rendir al igual que los mejores CISC y RISC, pero mejorando sus
errores. Tiene un conjunto de instrucciones distinto a estos procesadores, pero
puede emular sus caractersticas para ejecutar los programas escritos para ellos.
Usados en computadores tipo Estaciones de Trabajo y en equipos de medio
rango.
SIMD.
Single instruction, multiple data. Tiene una organizacin nica de instruccin y
datos mltiples. Manipula instrucciones de vector mediante mltiples unidades
funcionales que responden a una instruccin comn.
Microprocesadores.
Son de uso general, requieren dispositivos externos de memoria y de
comunicacin con el exterior (E/S).
Microcontroladores.
Integran memorias y elementos de entrada/salida junto al microprocesador.
ASIC.
Application-Specific Integrates Circuits. Integra en un solo chip los elementos
analgicos y digitales necesarios para efectuar una determinada funcin.
DSP.
Digital Signal Processors. Procesadores de alta velocidad y poca memoria, muy
eficientes para efectuar algoritmos de procesado de la seal.
Procesadores Neuronales, transputers.
Estn equipados con elementos que facilitan su comunicacin de forma que puede
distribuirse fcilmente una funcin entre varios de ellos.
Procesador convencional.
Ejecuta las instrucciones en forma de serie es decir, una detrs de otra.
Procesador con paralelismo interno.
Externamente ejecuta las instrucciones como si fuera un procesador convencional
en serie, pero internamente puede efectuar operaciones en paralelo.
Procesador con paralelismo externo.
Se presenta en los sistemas que incluyen varios procesadores como los
servidores, los mainframes y los supercomputadores.
Multiprocesador.
Se acostumbra a usar la arquitectura de multiprocesador con memoria comn en
los servidores. Cada uno de estos procesadores incluyen una memoria cach de
grandes dimensiones para reducir el trafico con la memoria comn.

Conceptos fundamentales de diseo de software
A travs de la historia de la ingeniera del software ha evolucionado un conjunto de
conceptos fundamentales de diseo de software, aunque el grado de inters en
cada concepto ha variado con los aos, han pasado la prueba del tiempo
ofreciendo cada uno al ingeniero de software fundamentos sobre el cual pueden
aplicarse mtodos de diseo ms elaborados.
El diseo de Software juega un papel importante en el desarrollo de software lo
cual permite al ingeniero de software producir varios modelos del sistema o
producto de que se va a construir el mismo que forman una especie de plan de la
solucin de la aplicacin. Estos modelos puede evaluarse en relacin con su
calidad y mejorarse antes de generar cdigo, de realizar pruebas y de que los
usuarios finales se vean involucrados a gran escala. El diseo es el sitio en el que
se establece la calidad del software.
Diseo es definido como: "El proceso de definicin de la arquitectura,
componentes, interfaces y otras caractersticas de un sistema o componente que
resulta de este proceso" [IEEE610.12-90].
Palabras Claves
Definicin de Documentos de Software (IEEE)
SQAP: Software Quality Assurance Plan IEEE 730
SCMP: Software Configuration Management Plan IEEE 828
STD: Software Test Documentation IEEE 829
SRS: Software Requirements Specification IEEE 830
SVVP: Software Validation & Verification Plan IEEE 1012
SDD: Software Design Description IEEE 1016
SPMP: Software Project Management Plan IEEE 1058
Fundamentos del Diseo de Software
Conceptos generales de diseo.
El software no es el nico campo donde el diseo se encuentra inmiscuido. En
general podemos ver el diseo como una forma para resolucin de problemas. El
problema sin solucin definitiva es interesante en trminos de comprensin del
diseo. Un numero de otras nociones y conceptos son tambin de inters en la
comprensin del diseo en su sentido general, objetivos, limitaciones, alternativas,
representaciones y soluciones
Contexto del diseo de software.
El diseo del software se encuentra en el ncleo tcnico de la respectiva
ingeniera y se aplica de manera independiente al modelo de software que se
utilice. Una vez que se analizan y especifican los requisitos, el diseo del software
es la ltima accin de la ingeniera correspondiente dentro de la actividad del
modelado, la cual establece una plataforma para la construccin (generacin de
cdigo y prueba).
"El milagro ms comn de la ingeniera de software es la transicin del anlisis al
diseo y del diseo al cdigo" Richard Due
Proceso del Diseo de Software.
Diseo Arquitectnico.
El diseo arquitectnico puede representarse al usar uno o ms de muchos
modelos diferentes. Los modelos estructurales representan la arquitectura como
una coleccin organizada de componentes del programa. Los modelos del marco
de trabajo repetible incrementan el grado de abstraccin del diseo al intentar
identificar marcos de trabajo repetibles del diseo arquitectnico que se
encuentran en tipos de aplicaciones similares.
El diseo de la arquitectura de software se describe cmo se descompone y como
estn organizados los componentes en el software. [IEEEP1471-00]
Diseo Detallado.
El diseo detallado se describe el comportamiento especfico de estos
componentes.
Tcnicas Permitidas.
Abstraccin
Abstraccin es el proceso o el resultado de la generalizacin de la reduccin del
contenido de la informacin de un concepto o un fenmeno observable, por lo
general, con el fin de conservar nicamente la informacin que es relevante para
un propsito en particular. Cuando se considera una solucin modular a cualquier
problema se pueden exponer muchos grados de abstraccin.
En un alto grado de abstraccin una solucin se establece en trminos generales
con el lenguaje del entorno del problema.
En los grados de menor abstraccin se proporciona una descripcin ms detallada
de la solucin.
En la medida en que se cambian los diferentes grados de abstraccin se trabaja
para crear abstracciones procedimentales y de datos.
Abstraccin Procedimental: Se refiere a una secuencia de instrucciones que tiene
una funcin especfica y limitada.
Abstraccin de Datos: Es una coleccin nombrada de datos que describe un
objeto de datos.
Acoplamiento y Cohesin.
Dentro del modelo de diseo es necesario que las clases de diseo colaboren con
alguna otra.
Es una medida de la interconexin entre los mdulos de la estructura de un
programa. Depende de la complejidad de la interfaz entre los mdulos, el punto en
el que se entra o se hace referencia al mdulo y qu datos pasan a travs de la
interfaz. Intentamos conseguir el menor nivel posible de acoplamiento. Las
conexiones sencillas entre los mdulos hacen que el software sea ms fcil de
entender y menos dado al efecto ola.
Acoplamiento: La fuerza de las relaciones entre los mdulos.
Acoplamiento de datos: est subordinado al mdulo y se accede a l por medio de
una lista convencional de argumentos a travs de la cual se pasan los datos.
Acoplamiento de marca: cuando en vez de argumentos simples se pasa una
porcin de la estructura de datos se pasa por la interfaz del mdulo.
Acoplamiento de control: se pasa un indicador de control (una variable que
controla las decisiones en el mdulo subordinado).
Acoplamiento externo: cuando los mdulos estn atados a un entorno externo al
software. Por ejemplo, las I/O y los dispositivos.
Acoplamiento comn: varios mdulos hacen referencia a un rea global de datos.
Acoplamiento de contenido: un mdulo hace uso de datos o de informacin de
control mantenidos dentro de los lmites de otro mdulo. Cuando se realiza una
bifurcacin hacia la mitad de otro mdulo.
Una clase de diseo cohesiva tiene un conjunto de responsabilidades pequeo y
enfocado, y aplica atributos y mtodos de manera sencilla de implementar dichas
responsabilidades.
Cohesin: Como estn relacionados los elementos que conforman un modulo.
Es una extensin natural del concepto de ocultamiento de la informacin. Un
mdulo con cohesin realiza una sola tarea dentro de un procedimiento de
software, requiriendo poca interaccin con los procedimientos que se realizan en
otras partes del programa. Un mdulo con cohesin debera hacer una sola cosa.
Siempre debemos buscar la cohesin ms alta, aunque la parte media del
espectro es a menudo aceptable.
Coincidencialmente cohesivo: un mdulo que realiza un conjunto de tareas poco
relacionadas las unas con las otras.
Cohesin lgica: realiza tareas relacionadas lgicamente (produce todas las
salidas).
Cohesin temporal: contienen tareas relacionadas por el hecho de que todas
deben hacerse en el mismo intervalo de tiempo.
Cohesin procedimental: cuando los elementos de procesamiento estn
relacionados y deben ejecutarse en un orden especfico.
Cohesin de comunicacin: todos los elementos de procesamiento se concentran
en un rea de la estructura de datos.
La descomposicin y la modularizacin.
Los patrones de arquitectura y diseo de software materializan la modularidad; es
decir, el software se divide en componentes con nombres independientes y que es
posible abordar en forma individual. Estos componentes llamados mdulos se
integran para satisfacer los requisitos del problema.
Modularidad: Es el atributo particular del software que permite que un programa
sea manejable de manera intelectual.
Se divide el software en componentes identificables y tratables por separado,
denominados mdulos, que estn integrados para satisfacer los requisitos del
programa.
Hay un nmero m de mdulos que resultaran en un costo de desarrollo mnimo,
pero no tenemos la sofisticacin necesaria para predecir m con seguridad
Encapsulacin/Ocultar Informacin
Mediante la agrupacin y empaquetado de los elementos y los detalles internos de
una abstraccin, haciendo que estos detalles sean inaccesibles.
Separacin de la interfaz y la aplicacin
La separacin de la interfaz y la aplicacin implica la definicin de un elemento
especificando una interfaz pblica, conoce a los clientes, aparte de los detalles de
cmo se realiza el componente.
Suficiencia, integridad y primitivismo.
Los mtodos asociados con una clase de diseo deben enfocarse en el
cumplimiento de un servicio para la clase.
Temas Claves en el Diseo de Software
A la hora de disear software hay una serie de cuestiones fundamentales que se
deben tomar en cuenta. Algunos relacionados con la calidad as como los
concernientes a la direccin como por ejemplo el rendimiento. Adems de cmo
se descomponen, organizan los paquetes de los componentes de software.
Esto es tan fundamental que en todo el proceso de diseo que se debe abordar de
una manera u otra.
"[Aspectos] no suelen ser unidades de descomposicin funcional del software, sino
ms bien a las propiedades que afectan el desempeo o la semntica de los
componentes en el sistema en diferentes maneras " (Kic97).
Concurrencia:
La forma de descomponer el software en los procesos, tareas e hilos tratar
relacionarlos con la eficiencia, la atomicidad, la sincronizacin, y dems
cuestiones de programacin.
Control y manejo de Eventos
Cmo organizar los datos y el controlar el flujo, manejo de reactivo y temporal de
los acontecimientos a travs de diversos mecanismos, tales como la invocacin
implcita de llamadas y sus intentos.
Distribucin de Componentes
Cmo distribuir el software en el hardware, cmo los componentes se comunican,
cmo se puede usar una plataforma al utilizarse para hacer frente a software
heterogneos.
Error y Gestin de Excepciones Tolerancia a Fallos.
El anlisis y la gestin del riesgo son una serie de pasos que ayudan al equipo del
software a comprender y a gestionar la incertidumbre.
Un riesgo es un problema potencial que puede ocurrir o no. Pero sin tener en
cuenta el resultado, realmente es una
buena idea es identificarlo, evaluar su
probabilidad de aparicin, estimar
su impacto, y establecer un plan de contingencia por si ocurre el problema.
Una estrategia considerablemente ms inteligente para el control del riesgo es ser
proactivo. La estrategia proactiva empieza mucho antes de que comiencen los
trabajos tcnicos. Se identifican los riesgos potenciales, se evala su probabilidad
y su impacto y se establece una prioridad segn su importancia. Despus, el
equipo de Software establece un plan para controlar el riesgo. El primer objetivo
es evitar el riesgo, pero como no se pueden evitar todos los riesgos, el equipo
trabaja para desarrollar un plan de contingencia que le permita responder de una
manera eficaz y controlada.
Estructura y Arquitectura de Software
En el sentido estricto, una arquitectura de software es "Una descripcin de los
subsistemas y componentes de un sistema de software y las relaciones que
existen entre ellos" (Bus96: c6).
A mediados de 1990, la arquitectura empez a emerger como una disciplina ms
amplia que implica el estudio de las estructuras y las arquitecturas de software en
una forma ms genrica, dando ideas interesantes sobre diseo del software en
diferentes niveles de abstraccin.
Algunos de estos conceptos son muy tiles durante el diseo arquitectnico (estilo
de arquitectura), de software especfico, as como en su diseo de detalle (nivel
inferior, patrones de diseo). As tambin para el diseo de sistemas genricos lo
que lleva a la concepcin de las familias de los programas (conocidas como lneas
de productos). La mayora de estos conceptos pueden verse como intentos de
describir, por tanto la reutilizacin del diseo genrico del conocimiento.
El desarrollo de un sistema con gran cantidad de software requiere que este sea
visto desde diferentes perspectivas. Diferentes usuarios (usuario final, analistas,
desarrolladores, integradores, jefes de proyecto...) siguen diferentes actividades
en diferentes momentos del ciclo de vida del proyecto, lo que da lugar a las
diferentes vistas del proyecto, dependiendo de qu interese ms en cada instante
de tiempo.
La arquitectura es el conjunto de decisiones significativas sobre:
La organizacin del sistema
Seleccin de elementos estructurales y sus interfaces a travs de los cuales se
constituye el sistema.
El Comportamiento, como se especifica las colaboraciones entre esos
componentes.
Composicin de los elementos estructurales y de comportamiento en subsistemas
progresivamente ms grandes.
El estilo arquitectnico que gua esta organizacin: elementos estticos y
dinmicos y sus interfaces, sus colaboraciones y su composicin.
Estructuras Arquitectnicas y Puntos de Vista.
Durante las diferentes facetas o etapas del software deben ser descritos y
documentados.
"Una vista representa un aspecto parcial de la arquitectura de un software
mostrando las propiedades del sistema de software".
La arquitectura que no debe centrarse nicamente en la estructura y en el
comportamiento, sino que abarque temas como el uso, funcionalidad, rendimiento,
capacidad de adaptacin, reutilizacin, capacidad para ser comprendida,
restricciones, compromisos entre alternativas, as como aspectos estticos. Para
ello se sugiere una arquitectura que permita describir mejor los sistemas desde
diferentes vistas, donde cada una de ellas es una proyeccin de la organizacin y
la estructura centrada en un aspecto particular del sistema.
La vista de casos de uso comprende la descripcin del comportamiento del
sistema tal y como es percibido por los usuarios finales, analistas y encargados de
las pruebas y se utilizan los diagramas de casos de uso para capturar los aspectos
estticos mientras que los dinmicos son representados por diagramas de
interaccin, estados y actividades.
La vista de diseo comprende las clases, interfaces y colaboraciones que forman
el vocabulario del problema y de la solucin. Esta vista soporta principalmente los
requisitos funcionales del sistema, o sea, los servicios que el sistema debe
proporcionar. Los aspectos estticos se representan mediante diagramas de
clases y objetos y los aspectos dinmicos con diagramas de interaccin, estados y
actividades.
La vista de procesos comprende los hilos y procesos que forman mecanismos de
sincronizacin y concurrencia del sistema cubriendo el funcionamiento, capacidad
de crecimiento y el rendimiento del sistema. Con UML, los aspectos estticos y
dinmicos se representan igual que en la vista de diseo, pero con el nfasis que
aportan las clases activas, las cuales representan los procesos y los hilos.
La Vista de implementacin comprende los componentes y los archivos que un
sistema utiliza para ensamblar y hacer disponible el sistema fsico. Se ocupa
principalmente de la gestin de configuraciones de las distintas versiones del
sistema. Los aspectos estticos se capturan con los diagramas de componentes y
los aspectos dinmicos con los diagramas de interaccin, estados y actividades.
La vista de despliegue de un sistema contiene los nodos que forman la topologa
hardware sobre la que se ejecuta el sistema. Se preocupa principalmente de la
distribucin, entrega e instalacin de las partes que constituyen el sistema. Los
aspectos estticos de esta vista se representan mediante los diagramas de
despliegue y los aspectos dinmicos con diagramas de interaccin, estados y
actividades.
Patrones de Diseo (Patrones Micro arquitectnicos).
"Cada patrn describe un problema que ocurre una y otra vez en nuestro entorno,
as como la solucin a este problema, de tal ,modo que esta solucin se pueda
aplicar esta solucin un milln de veces, sin hacer lo mismo dos veces"
Christopher Alexander.
Los patrones de diseo hacen que sea ms fcil reutilizar buenos diseos y
arquitecturas. Al expresar como patrones de diseo tcnicas que ya han sido
probadas, las estamos haciendo ms accesibles para los desarrolladores de
nuevos sistemas. Los patrones de diseo nos ayudan a elegir las alternativas del
diseo que hacen que un sistema sea reutilizable, y evitar aquellas que dificultan
dicha reutilizacin.
Los patrones de creacin tienen que ver con el proceso de creacin, estructural o
de comportamiento.
Calidad en el anlisis, diseo y evaluacin del software
Calidad de atributos
Varios atributos son generalmente considerados importantes que permiten obtener
un diseo de software con alta calidad, existen algunas caractersticas que son (
mantenible, portabilidad, probable) y (correctos, robusto). Cabe destacar que
existen diferencias entre calidad de atributos que son (rendimiento, seguridad,
funcionalidad y usabilidad), y los que son (portabilidad, reutilizacin, integralidad y
pruebas), y las caractersticas relacionadas con la arquitectura (integridad
conceptual, correcto, completo).
Calidad en anlisis y evaluacin de tcnicas
Varias tcnicas y herramientas pueden ayudar a mejorar la calidad de diseo de
software:
Diseo de software.- Para este tipo se puede aplicar al diseo de software informal
y semi informal tomando un grupo base, tcnicas que permiten verificar la calidad
de diseo de los artefactos que pueden ser (vista de la arquitectura, diseo -
inspeccin, tcnicas y requerimientos).
Anlisis esttico.- Para este tipo se puede aplicar al diseo de software informal y
semi informal que permite evaluar algo simple utilizando anlisis automticos de
casos de pruebas.
Simulacin y prototipos.- Son tcnicas dinmicas que permiten evaluar un diseo
la caracterstica de simulacin, o la flexibilidad del prototipo.
Diseo de software
Muchas notaciones y lenguajes existen para representar el diseo de artefactos de
software. Algunos describen un diseo estructural organizado, otros representan el
inicio del software. Estas notaciones son generalmente usadas durante un diseo
natural y se pueden usar durante ambos casos. Una representan notaciones que
son usadas en el contexto de especficos mtodos en las estrategias de diseo y
mtodos de sub reas, pero estas categoras son categorizadas en notaciones
para describir la estructura esttica y la dinmicas vistas.
Software diseo estrategias y mtodos
Existen varias estrategias en el desarrollo del software que permiten mejorar el
diseo de procesos, a diferencia con las estrategias generales, mtodos que son
especficos en generar estrategias y proveen notacin para ser usados en
Mtodos y descripcin del proceso. Los mtodos utilizados son medias que
permiten transferir conocimiento y como un framework que permiten testear la
ingeniera del software.
Estrategias generales
Las estrategias generales son usadas en el diseno de procesos son dividios y
refinados permitiendo lograr una alta estracion de datos y informacin para esto
utilizando heursticas usando para esto patentes y patentes de lenguajes
Herramienta (gsBase(ie))
Es una herramienta de desarrollo y explotacin de propsito general que se puede
utilizar para crear soluciones para ingeniera, clculo, gestin, diseo grfico,
educacin, etc. Incluye novedosas ideas originales que le harn su trabajo mucho
ms fcil.
Permite construir soluciones integrales para empresas (ERP's, CRM's, B2B, B2C,
...) minimizando el tiempo invertido, recursos hardware y costes de desarrollo.
La comunicacin entre cliente y servidor se puede establecer por redes locales
internas, Internet o redes privadas. Los recursos mnimos de comunicaciones
necesarios hacen posible usar distintas tecnologas de comunicacin: ADSL,
GPRS, UMTS, RTB, Frame Relay, 3G, RDSI, etc.
Para disear, incluye un IDE (Integrated Development Environment) que permite
crear y modificar aplicaciones de una forma rpida y gil a la par que dar soporte a
instalaciones
El sistema de programacin gsBase incorpora una idea novedosa y original
(ventanas dinmicas) que permite, sin tener conocimientos de programacin
orientada a objetos, realizar o disear programas con dichas atribuciones de una
forma elegante y resolver problemas de gran complejidad de una forma muy fcil.
Todos los desarrollos realizados son reutilizables y el sistema permite que en el
desarrollo de aplicaciones, participen grupos de personas (trabajo en grupo
cooperativo). La claridad del lenguaje de programacin utilizado permite, sin
problemas, que un tcnico pueda interpretar rpidamente lo que otro ha
desarrollado (garantizado).
Para la definicin de ventanas dinmicas se usa el nuevo concepto de grupos o
agrupaciones de controles. Los campos de entrada, botones, textos,. de una
determinada ventana de gestin de archivo se definen por grupos, no de forma
individual como hacen la mayora de lenguajes de programacin, en los problemas
del mundo real los controles casi siempre van agrupados (por ejemplo para una
ficha de clientes: datos de identificacin, datos econmicos, condiciones de venta,
etc).
Gran parte del trabajo de diseo de aplicaciones consiste en la creacin de
ventanas para la gestin de archivos (creacin de registros, modificacin,
seleccin, borrado, consulta, etc.). gsBase estandariza y generaliza este tipo de
ventanas haciendo su diseo inmediato, el sistema incluye un potente control de
grid, controles de entrada, listas, rboles, chek-boxes, cuadros de radio, mensajes,
imgenes, botones, textos, sliders, etc.
La potente arquitectura cliente/servidor gsBase permite el trabajo concurrente de
miles de usuarios, hablamos de usuarios conectados de forma permanente al
servidor y realizando procesos simultneos (no se trata de conexiones
espordicas como ocurre en servidores web). gsBase es por tanto, la mejor
solucin para Medianas y Grandes Empresas, por su escalabilidad, potencia,
robustez, seguridad y necesidades mnimas de hardware y comunicaciones.
Los resultados e informes grficos en gsBase tienen una calidad y potencia
excepcional. Diagramas de barras, de tarta, de lneas o de reas son construidos
parametrizando una simple funcin en gsBase. La integracin de dichos
elementos en ventanas, informes o documentos es muy sencilla y funcional.
Caractersticas.
gsBase es un sistema de desarrollo de software para crear aplicaciones cliente-
servidor
Crear todo tipo de aplicaciones para empresas y administracin pblica
Disear sistemas centralizados para trabajo en local y/o remoto o por Internet
Las instalaciones de sus clientes finales podrn ser de 1 a miles de usuarios
concurrentes (Pymes o grandes empresas).
gsBase es la mejor herramienta para crear soluciones ASP (Alquiler de Software).
Ventajas.
Facilidad en diseo: cientos de ideas nuevas para el desarrollo.
Tiempo mnimo de aprendizaje para el desarrollo.
Amplios recursos para el aprendizaje en el diseo.
Posibilidad de partir de aplicaciones ya diseadas. Una vez adquirido el diseo, no
pagar royalties.
Evaluacin de las aplicaciones on-line trabajando con nuestros servidores de
demostracin el tiempo que necesite.
Posibilidad de direccin de proyectos por parte de nuestros ingenieros
Accesibilidad a sus datos y aplicaciones a nivel mundial para ejecucin o
mantenimiento
Sistema seguro y automatizado de distribucin de sus aplicaciones.
Mnimos recursos de hardware y comunicaciones.
Facilidad de instalacin y mantenimiento.
Sistema tolerante a fallos.
Trabajo en multi-idioma del sistema y sus aplicaciones.
Posibilidad de vender sus aplicaciones y mdulos de aplicaciones diseados.
Publicacin en gsBase Resource Center.
Gestin de licencias automtica, es posible deslicenciar en un ordenador y volver
a licenciar en otro.
Los tcnicos de desarrollo no son imprescindibles: lo que uno ha diseado, puede
mantenerlo otro sin problemas.

Anda mungkin juga menyukai