19
1 Controles de Desarrollo de Controles de Desarrollo de Sistemas Sistemas ISO/IEC 11404:1996 ISO/IEC 11404:1996 Información tecnológica Información tecnológica-Lenguajes de Lenguajes de programación, sus ambientes y sus programación, sus ambientes y sus sistemas de interfaces de software sistemas de interfaces de software-tipos tipos de datos de lenguaje independiente de datos de lenguaje independiente Febrero 2003 ALCANCE ALCANCE Especificar la nomenclatura y semántica para una Especificar la nomenclatura y semántica para una colección de tipo de datos que ocurre comúnmente colección de tipo de datos que ocurre comúnmente en Lenguajes de programación e interfaces de en Lenguajes de programación e interfaces de Software designados tipo de datos de Lenguaje Software designados tipo de datos de Lenguaje independiente (LI). independiente (LI).

ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

1

Controles de Desarrollo de Controles de Desarrollo de SistemasSistemas

ISO/IEC 11404:1996ISO/IEC 11404:1996

Información tecnológicaInformación tecnológica--Lenguajes de Lenguajes de programación, sus ambientes y sus programación, sus ambientes y sus

sistemas de interfaces de softwaresistemas de interfaces de software--tipos tipos de datos de lenguaje independientede datos de lenguaje independiente

Febrero 2003

ALCANCEALCANCE

Especificar la nomenclatura y semántica para unaEspecificar la nomenclatura y semántica para unacolección de tipo de datos que ocurre comúnmentecolección de tipo de datos que ocurre comúnmenteen Lenguajes de programación e interfaces deen Lenguajes de programación e interfaces deSoftware designados tipo de datos de LenguajeSoftware designados tipo de datos de Lenguajeindependiente (LI).independiente (LI).

Page 2: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

2

CONFORMADOCONFORMADO

nn CONFORMADO DIRECTO CONFORMADO DIRECTO

nn CONFORMADO INDIRECTOCONFORMADO INDIRECTO

nn CONFORMADO DE UN MAPEO ESTANDARCONFORMADO DE UN MAPEO ESTANDAR

REFERENCIAS NORMATIVASREFERENCIAS NORMATIVAS

nn ISO/IEC 8601:1988,ISO/IEC 8601:1988, Datos de los elementos y Datos de los elementos y formatos de intercambioformatos de intercambio——La información intercambiada La información intercambiada ––Representacion de fecha y horaRepresentacion de fecha y hora

nn ISO/IEC 8824:1990,ISO/IEC 8824:1990, Información tecnológica Información tecnológica ––Sistemas abiertos interconectadosSistemas abiertos interconectados-- Especificados de una Especificados de una notación de sintaxis abstracta (ASN.1)notación de sintaxis abstracta (ASN.1)

nn ISO/IEC 10646ISO/IEC 10646--1:1993 1:1993 Información tecnológica Información tecnológica ----MúltipleMúltiple--octeto universal Carácter Codificado (UCS)octeto universal Carácter Codificado (UCS)----P P arte 1: Arquitectura y plano Multilingual Básico.arte 1: Arquitectura y plano Multilingual Básico.

Page 3: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

3

CONVENCIONES USADASCONVENCIONES USADAS

nn SINTAXIS FORMALSINTAXIS FORMAL

Termina una producciónTermina una producción. (PUNTO). (PUNTO)

Separa un símbolo no terminal de la definiciónSepara un símbolo no terminal de la definición= (SIGNO DE IGUAL)= (SIGNO DE IGUAL)

Delimita una sucesión alternativaDelimita una sucesión alternatival (LINEA VERTICAL)l (LINEA VERTICAL)

Delimita una sucesión optativa (cero o una ocurrencia)Delimita una sucesión optativa (cero o una ocurrencia)[ ] (CORCHETES)[ ] (CORCHETES)

Delimita una sucesión repetida (cero o mas ocurrencias)Delimita una sucesión repetida (cero o mas ocurrencias){ } (LLAVES){ } (LLAVES)

Símbolo terminal delimitadoSímbolo terminal delimitado‘ (APOSTROFE)‘ (APOSTROFE)

Símbolo terminal delimitadoSímbolo terminal delimitado“ (COMILLAS)“ (COMILLAS)

nn CONVENCIONES DE TEXTOCONVENCIONES DE TEXTO

Dentro del TextoDentro del Texto

vv Una rUna referencia a un símbolo terminal de objeto eferencia a un símbolo terminal de objeto sintáctico consiste en comillas,sintáctico consiste en comillas, i.i.ee.. "type" "type"

vv Una referencia a un símbolo noUna referencia a un símbolo no--terminal de objeto terminal de objeto sintáctico consiste en letra itálica, i.e.sintáctico consiste en letra itálica, i.e. typetype--declaration declaration

vv Palabras no inicializadazas cuales son idénticas o casi Palabras no inicializadazas cuales son idénticas o casi idénticas en el deletreando a un símbolo idénticas en el deletreando a un símbolo -- nono--terminal terminal referente al objeto conceptual representado por el referente al objeto conceptual representado por el objeto sintáctico. En particular, objeto sintáctico. En particular, xxxxxx--typetype referente a referente a la representación sintáctica de un "la representación sintáctica de un "xxx datatype xxx datatype " en " en todas las ocurrenciastodas las ocurrencias..

Page 4: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

4

CONCEPTOS FUNDAMENTALESCONCEPTOS FUNDAMENTALES

nn Tipo de Datos: Tipo de Datos: es, una diferencia de valores , es, una diferencia de valores , caracterizado por propiedades caracterizado por propiedades y operaciones y operaciones de esos de esos valores.valores.

nn Valor Espacio :Valor Espacio :coleccicoleccióón de valores para un tipo de n de valores para un tipo de datos dado.datos dado.

nn Propiedades de Tipo de Datos: Propiedades de Tipo de Datos: manipulacimanipulacióón de n de informaciinformacióón por sistemas de la computadoran por sistemas de la computadorann Igualdad Igualdad nn OrdenOrdennn LimiteLimitenn CardinalidadCardinalidadnn Exacto y aproximadoExacto y aproximadonn NuméricoNumérico

nn Tipo de Datos primitivos y no primitivosTipo de Datos primitivos y no primitivosTipo de Datos Primitivos: se definen sin referencia aTipo de Datos Primitivos: se definen sin referencia aotros tipos de datosotros tipos de datosTipo de Datos no Primitivos: se especifican y sonTipo de Datos no Primitivos: se especifican y sondefinidos en términos , de otros tipos de datos. definidos en términos , de otros tipos de datos.

nn Generador de Tipo de DatosGenerador de Tipo de DatosOperación conceptual en uno o mas tipo de datos que Operación conceptual en uno o mas tipo de datos que rinde a un tipo de datorinde a un tipo de dato

nn Caracterizar OperacionesCaracterizar OperacionesSon los valores del tipo de dato que se distinguen de Son los valores del tipo de dato que se distinguen de otros tipos de datos que tienen valor espacio y pueden otros tipos de datos que tienen valor espacio y pueden ser idénticos excepto por la substitución de símbolos. ser idénticos excepto por la substitución de símbolos.

Page 5: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

5

nn Tipo de datos agregadosTipo de datos agregadosnn HomogeneidadHomogeneidadnn TamañoTamañonn UnicidadUnicidadnn Orden Orden nn Método de accesoMétodo de accesonn Estructura recursivaEstructura recursiva

ELEMENTOS DE TIPO DE DATOS Y ELEMENTOS DE TIPO DE DATOS Y ESPECIFICACION DE LENGUAJEESPECIFICACION DE LENGUAJE

nn Conjunto carácter IDNConjunto carácter IDNEl lenguaje es un subconjunto de definiciEl lenguaje es un subconjunto de definicióón n de de interfaceinterface..

nn Espacios en blancoEspacios en blancoSecunecia de uno omas caracteres de espacio.Secunecia de uno omas caracteres de espacio.

Objetos LéxicosObjetos Léxicosnn identificadoresidentificadoresnn DigitoDigito--cadenacadenann CarácterCarácter--literal y cadenaliteral y cadena--literalliteralnn Palabras clavesPalabras claves

Page 6: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

6

nn AnotacionesAnotacionesUna anotacion es un objeto sintatico Una anotacion es un objeto sintatico

nn ValoresValoresLa identificaciLa identificacióón de miembros de una familia , den de miembros de una familia , desubtipos , y resultados generadores del tipo de dato subtipos , y resultados generadores del tipo de dato

nn Valores independientesValores independientesnn Valores dependientesValores dependientes

Tipos de DatosTipos de Datos

DDatosatos primitivos, que tienen nociones abstractas bien definidas primitivos, que tienen nociones abstractas bien definidas universales, cada uno independiente de cualquier otro tipo de dauniversales, cada uno independiente de cualquier otro tipo de dato. to.

BOOLEANBOOLEANBoleano es el tipo de dato matemBoleano es el tipo de dato matemáático asociado a ltico asociado a lóógica dosgica dos--valores valores

(verdadero (verdadero –– falso)falso)Syntax:Syntax:booleanboolean--type = "boolean" .type = "boolean" .

STATESTATEState abarca un nState abarca un núúmero finito de valores distinguidos pero mero finito de valores distinguidos pero

desordenados desordenados Syntax:Syntax:statestate--type = "state" "(" statetype = "state" "(" state--valuevalue--list ")"list ")"

Page 7: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

7

ENUMERATEDENUMERATEDEnumerated abarca un nEnumerated abarca un núúmero finito de los valores distinguidos que mero finito de los valores distinguidos que

tienen una orden intrtienen una orden intríínseco nseco Syntax:Syntax:enumeratedenumerated--type = "enumerated" "(" enumeratedtype = "enumerated" "(" enumerated--valuevalue--list ")"list ")"

CHARACTERCHARACTERCharacter Character sussus valores son un conjunto de caracteres valores son un conjunto de caracteres Syntax:Syntax:charactercharacter--type = "character" [ "(" repertoiretype = "character" [ "(" repertoire--list ")" ] .list ")" ] .

Los datos Los datos CHARACTERCHARACTER son distintos de los datos state en que los valores deson distintos de los datos state en que los valores deesteeste son definidos por otros estson definidos por otros estáándares o por el uso. Esta distincindares o por el uso. Esta distincióón es n es semsemáántico poco importante, pero estntico poco importante, pero estáá de gran significacide gran significacióón en cualquier n en cualquier uso de estos estuso de estos estáándares ndares

ORDINALORDINALOrdinal es el tipo de dato de los nOrdinal es el tipo de dato de los núúmeros ordinales, a diferencia de los meros ordinales, a diferencia de los

nnúúmeros de cuantificacimeros de cuantificacióón (nn (núúmero entero del tipo de dato). El mero entero del tipo de dato). El ordinal es el tipo de dato enumerado infinito ordinal es el tipo de dato enumerado infinito

Syntax:Syntax:ordinalordinal--type = "ordinal" .type = "ordinal" .

Un ordinalUn ordinal--literal denota ese valor ordinal que corresponda al nliteral denota ese valor ordinal que corresponda al núúmero mero cardinal identificado por la di'gitocardinal identificado por la di'gito--secuencia, interpretado como secuencia, interpretado como nnúúmero decimal. Un ordinalmero decimal. Un ordinal--literal no serliteral no seráá cerocero

DATE AND TIMEDATE AND TIMEDate Date -- Time Time sussus valores son puntos en tiempo a valores son puntos en tiempo a medicionesmediciones comunes: comunes:

aañño, mes, do, mes, díía, hora, minuto, segundo, y fracciones de eso a, hora, minuto, segundo, y fracciones de eso Syntax:Syntax:timetime--type = "time" "(" timetype = "time" "(" time--unit [ "," radix "," factor ] ")" .unit [ "," radix "," factor ] ")" .

Page 8: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

8

INTEGERINTEGERInteger es un tipo de dato matemInteger es un tipo de dato matemáático que abarca los valores tico que abarca los valores

integrales exactos integrales exactos Syntax:Syntax:integerinteger--type = "integer"type = "integer"

RATIONALRATIONALRaRationaltional es el tipo de dato matemes el tipo de dato matemáático que abarca los "ntico que abarca los "núúmeros meros

racionalesracionalesSyntax:Syntax:rationalrational--type = "rational"type = "rational"

SCALEDSCALEDScaled Scaled sussus valores son subconjuntos del espacio racional del valor, cada tvalores son subconjuntos del espacio racional del valor, cada tipo ipo

de dato individual tiene un denominador fijo, pero los tipo de dde dato individual tiene un denominador fijo, pero los tipo de datos scaled atos scaled poseen el concepto del valor aproximado poseen el concepto del valor aproximado

Syntax:Syntax:scaledscaled--type = "scaled" "(" radix "," factor ")" .type = "scaled" "(" radix "," factor ")" .

REALREALReal son aproximaciones de cReal son aproximaciones de cóómputo al tipo de dato matemmputo al tipo de dato matem áático que abarca tico que abarca

los "nlos "núúmeros verdaderos". Especmeros verdaderos". Especííficamente, cada tipo de dato verdadero ficamente, cada tipo de dato verdadero seseññala una colecciala una coleccióón de los valores verdaderos matemn de los valores verdaderos matemááticos que ticos que son son utilizadosutilizados a ciertos usos a una cierta precisia ciertos usos a una cierta precisióón finita y deben ser n finita y deben ser distinguibles por lo menos a esa precisidistinguibles por lo menos a esa precisióón en esas aplicaciones.n en esas aplicaciones.

Syntax:Syntax:realreal--type = "real" [ "(" radix "," factor ")" ] . type = "real" [ "(" radix "," factor ")" ] .

El tipo de dato del LI verdadero no es el tipo de dato verdaderoEl tipo de dato del LI verdadero no es el tipo de dato verdadero matemmatemáático tico abstracto, ni estabstracto, ni estáá una abstracciuna abstraccióón de puestas en prn de puestas en prááctica floatingctica floating--point. Es point. Es un modelo de cun modelo de cóómputo de los reals matemmputo de los reals matemááticos que es similar al modelo ticos que es similar al modelo del "ndel "núúmero cientmero cientíífico" usado en muchas cienciasfico" usado en muchas ciencias ..

Page 9: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

9

COMPLEXCOMPLEXComplex es una aproximaciComplex es una aproximacióón de cn de cóómputo al tipo de dato matemmputo al tipo de dato matem áático que tico que

abarca los "nabarca los "núúmeros complejos". Especmeros complejos". Especííficamente, cada tipo de dato ficamente, cada tipo de dato complejo secomplejo seññala una colecciala una coleccióón de los valores complejos matemn de los valores complejos matem ááticos que a ticos que a ciertos usosciertos usos ,, a a una cierta precisiuna cierta precisióón finita y deben ser distinguibles por lo n finita y deben ser distinguibles por lo menos a esa precisimenos a esa precisióón en esos usos n en esos usos

Syntax:Syntax:complexcomplex--type = "complex" [ "(" radix "," factor ")" ] .type = "complex" [ "(" radix "," factor ")" ] .

VOIDVOIDVoid es el tipo de dato que representa un objeto deVoid es el tipo de dato que representa un objeto dell cual se requiere presencia cual se requiere presencia

sintsintáácticamente o cticamente o semsemáánticnticaa, pero no lleva ninguna informaci, pero no lleva ninguna informacióón en un caso n en un caso dado dado

Syntax:Syntax:voidvoid--type = "void"type = "void"

El tipo de dato vacEl tipo de dato vacíío se representa en algunos idiomas como tipo de dato o se representa en algunos idiomas como tipo de dato recordrecord que no tiene ningque no tiene ningúún campo. En este estn campo. En este estáándar internacional, el tipo ndar internacional, el tipo de dato vacde dato vacíío no es un tipo de dato o no es un tipo de dato recordrecord, porque no tiene , porque no tiene ningunninguna dea de las las caractercaracteríísticas o las operaciones de un tipo de dato sticas o las operaciones de un tipo de dato recordrecord

Subtipos y Tipos ExtendidosSubtipos y Tipos ExtendidosUn subtipo es un tipo de dato derivado de un tipo de dato existeUn subtipo es un tipo de dato derivado de un tipo de dato existente, nte,

restringiendo el espacio del valor a un subconjunto de el del tirestringiendo el espacio del valor a un subconjunto de el del tipo de po de dato dato babasese mientras que mantiene todas las operaciones que mientras que mantiene todas las operaciones que caracterizancaracterizan

RANGERANGERange crea un subtipo de cualquier tipo de dato poniendo los nueRange crea un subtipo de cualquier tipo de dato poniendo los nuevos vos

llíímites superiores y/o mites superiores y/o inferioresinferiores en el espacio del valor.en el espacio del valor.Syntax:Syntax:rangerange--subtype = base "range" "(" selectsubtype = base "range" "(" select--range ")"range ")" ..

SELECTINGSELECTINGSelecting crea un subtipo de cualquier tipo de dato exacto enumeSelecting crea un subtipo de cualquier tipo de dato exacto enumerando rando

los valores en el valorlos valores en el valor--espacio del subtipo.espacio del subtipo.Syntax:Syntax:selectingselecting--subtype = base "selecting" "(" selectsubtype = base "selecting" "(" select--list ")" .list ")" .

Page 10: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

10

EXCLUDINGEXCLUDINGExcluding crea un subtipo de cualquier tipo de dato exacto Excluding crea un subtipo de cualquier tipo de dato exacto

enumerando los valores que deben ser excluidos en construir el enumerando los valores que deben ser excluidos en construir el valorvalor--espacio del subtipoespacio del subtipo

Syntax:Syntax:excludingexcluding--subtype = base "excluding" "(" selectsubtype = base "excluding" "(" select--list ")" .list ")" .

SIZESIZESize crea un subtipo de cualquier Sequence, Set, Bag o Table Size crea un subtipo de cualquier Sequence, Set, Bag o Table

especificando los lespecificando los líímites en el nmites en el núúmero de elementos que cualquier mero de elementos que cualquier valor del tipo de dato bvalor del tipo de dato basease puede contenerpuede contener

Syntax:Syntax:sizesize--subtype = base "size" "(" minimumsubtype = base "size" "(" minimum--size [ ".." maximumsize [ ".." maximum--size ] ")" .size ] ")" .

EXPLICIT SUBTYPESEXPLICIT SUBTYPES

Explicit subtype identifica del un tipo de dato como subtipo delExplicit subtype identifica del un tipo de dato como subtipo del tipo de tipo de dato base y define el procedimiento de la construccidato base y define el procedimiento de la construccióón para el n para el espacio del valor del subconjunto en tespacio del valor del subconjunto en téérminos tipo de datos el LI o rminos tipo de datos el LI o los generadores del tipo de dato. los generadores del tipo de dato.

Syntax:Syntax:explicitexplicit--subtype = base "subtype" "(" subtypesubtype = base "subtype" "(" subtype--definition ")" .definition ")" .

EXTENDEDEXTENDEDExtended crea un tipo de dato que valorExtended crea un tipo de dato que valor--espacio contenga el valorespacio contenga el valor--

espacio del tipo de dato base como subconjunto apropiado espacio del tipo de dato base como subconjunto apropiado

Syntax:Syntax:extendedextended--type = base "plus" "(" extendedtype = base "plus" "(" extended--valuevalue--list ")" .list ")" .

Page 11: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

11

GENERATED TYPESGENERATED TYPES

Un generador del tipo de dato Un generador del tipo de dato crea un nuevo valor pero con sus crea un nuevo valor pero con sus propias catacteristicas y operaciones.propias catacteristicas y operaciones.

CHOICECHOICEChoice Choice su valor essu valor es un solo valor de cualquierun solo valor de cualquier tipo de datotipo de dato set oset o

alternativo. Los tipo de datos alternativos de un tipo de dato balternativo. Los tipo de datos alternativos de un tipo de dato bien ien escogido son distinguidos lescogido son distinguidos lóógicamente por su correspondencia a los gicamente por su correspondencia a los valores de otro tipo de dato, llamados el tipo de dato tag.valores de otro tipo de dato, llamados el tipo de dato tag.

Syntax:Syntax:choicechoice--type = "choice" "(" [ fieldtype = "choice" "(" [ field--identifier ":" ] tagidentifier ":" ] tag--type [ "=" discriminant type [ "=" discriminant

] ")] ")““ "of" "(" alternative"of" "(" alternative--list ")" .list ")" .

POINTERPOINTERPointer cada uno de Pointer cada uno de sus sus valores constituye un significado de la valores constituye un significado de la

referencia a los valores de otro tipo de dato, referencia a los valores de otro tipo de dato, seseññalaalanndo el tipo de do el tipo de dato del elemento. dato del elemento. EEl valor de un apuntador cambia de acuerdo a l valor de un apuntador cambia de acuerdo a los requerimientos en el consumo de la memoria, estos cambio los requerimientos en el consumo de la memoria, estos cambio deben de tomar el menor tiempo posibledeben de tomar el menor tiempo posible

Syntax:Syntax:pointerpointer--type = "pointer" "to" "(" elementtype = "pointer" "to" "(" element--type ")" .type ")" .

Un tipo de dato Un tipo de dato pointerpointer define una asociacidefine una asociacióón del "tipo de dato sin n del "tipo de dato sin especificar el estado" en el tipo de dato del elemento. especificar el estado" en el tipo de dato del elemento. PuedePuedennhaber muchos valores del tipo de dato haber muchos valores del tipo de dato pointerpointer que se asocian al que se asocian al mismo valor del tipo de dato del elemento; y puede haber los mismo valor del tipo de dato del elemento; y puede haber los miembros del tipo de dato del elemento que no se asocian a miembros del tipo de dato del elemento que no se asocian a ningningúún valor del n valor del pointer.pointer.

Dos valores del puntero son iguales solamente si son idDos valores del puntero son iguales solamente si son idéénticos; no es nticos; no es suficiente que estsuficiente que estáán asociados al mismo valor del tipo de dato del n asociados al mismo valor del tipo de dato del elemento elemento

Page 12: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

12

PROCEDUREPROCEDURE

Procedure cada uno de Procedure cada uno de sus sus valores es una operacivalores es una operacióón en valores de n en valores de otros tipo de datos, seotros tipo de datos, seññalado los tipo de datos del paralado los tipo de datos del paráámetro. Es metro. Es decir, un tipo de dato procedure abarca todas las operaciones endecir, un tipo de dato procedure abarca todas las operaciones envalores de una coleccivalores de una coleccióón particular de tipo de datos. Todos los n particular de tipo de datos. Todos los valores de un tipo de dato procedurevalores de un tipo de dato procedure deben cambiar en el menor deben cambiar en el menor tiempo posibletiempo posible

Syntax:Syntax:procedureprocedure--type = "procedure" "(" [ parametertype = "procedure" "(" [ parameter--list ] ")" [ "returns" "(" list ] ")" [ "returns" "("

returnreturn--parameter ")" ]parameter ")" ] [ "raises" "(" termination[ "raises" "(" termination--list ")" ] .list ")" ] .

TIPO DE DATO AGGREGATETIPO DE DATO AGGREGATE

Un tipo de dato Un tipo de dato agreagregategate es un tipo de dato generado cada uno que de es un tipo de dato generado cada uno que de valores, en principio, se compone de valores de los tipo de datovalores, en principio, se compone de valores de los tipo de datos s componentes. Un generador agregado del tipo de dato genera un componentes. Un generador agregado del tipo de dato genera un tipo de dato tipo de dato para:para:

oo aplicación de un procedimiento algorítmico a los espacios del vaaplicación de un procedimiento algorítmico a los espacios del valor lor de sus tipo de datos componentes para rendir el espacio del valode sus tipo de datos componentes para rendir el espacio del valor r del tipo de dato agregado, y del tipo de dato agregado, y

oo proporciona un sistema proporciona un sistema queque caracteriza las operaciones específicas caracteriza las operaciones específicas al generadoral generador

En general, un agregadoEn general, un agregado--valor contiene mvalor contiene máás de un valor componente. s de un valor componente. Esto, sin embargo, no imposibilita los casos degenerados donde eEsto, sin embargo, no imposibilita los casos degenerados donde el l valor del agrvalor del agréégate tiene solamente un componente, o agate tiene solamente un componente, o aúún ningn ningúúnono

Page 13: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

13

RECORDRECORDRecord Record sussus valores son agregaciones heterogvalores son agregaciones heterogééneas de valores de tipo neas de valores de tipo

de datos componentes, cada agregacide datos componentes, cada agregacióón que hace un valor para n que hace un valor para cada tipo de dato componentecada tipo de dato componente es identificado por unes identificado por un "campo"campo--identificador fijo". identificador fijo".

Syntax:Syntax:recordrecord--type = "record" "(" fieldtype = "record" "(" field--list ")" .list ")" .

Una puesta en prUna puesta en prááctica de un tipo de dato ctica de un tipo de dato record record puede puede ser elser el ordenar ordenar campos fcampos fíísicamente distintos, pero sicamente distintos, pero éésa es una consideracisa es una consideracióón n pragmpragmáática y no una parte de la nocitica y no una parte de la nocióón conceptual del tipo de dato.n conceptual del tipo de dato.

SETSETSet Set susu valorvalor--espacio es espacio es sonson los subconjuntos del espacio del valor del los subconjuntos del espacio del valor del

tipo de dato del elemento, con las operaciones apropiadas al tipo de dato del elemento, con las operaciones apropiadas al sistema matemsistema matemáático tico

Syntax:Syntax:setset--type = "set" "of" "(" elementtype = "set" "of" "(" element--type ")" .type ")" .

BAGBAGBag Bag sussus valores son colecciones de casos de valores del tipo de dato valores son colecciones de casos de valores del tipo de dato

del elemento. Los casos mdel elemento. Los casos múúltiples del mismo valor pueden ocurrir ltiples del mismo valor pueden ocurrir en una coleccien una coleccióón dada; y el ordenar de los casos del valor no es n dada; y el ordenar de los casos del valor no es significativosignificativo

Syntax:Syntax:bagbag--type = "bag" "of" "(" elementtype = "bag" "of" "(" element--type ")" .type ")" .

SSEEQUENSEQUENSESequence sSequence susus valores valores se se ordenan de valores del tipo de dato del ordenan de valores del tipo de dato del

elemento. El ordenar se impone ante los valores y no intrelemento. El ordenar se impone ante los valores y no intríínseco en nseco en el tipo de dato subyacente; el mismo valor puede ocurrir mel tipo de dato subyacente; el mismo valor puede ocurrir máás de una s de una vez en una secuencia dada. vez en una secuencia dada.

Syntax:Syntax:sequencesequence--type = "sequence" "of" "(" elementtype = "sequence" "of" "(" element--type ")" .type ")" .

SSeequensequense se diferencia de Bag en que el ordenar de los valores es se diferencia de Bag en que el ordenar de los valores es significativo y por lo tanto las operaciones significativo y por lo tanto las operaciones head, tail y appendhead, tail y append, que , que dependendependen de lade la posiciposicióón, se proporciona en vez de select, n, se proporciona en vez de select, delete delete e e insert, que dependen de valor. insert, que dependen de valor.

Page 14: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

14

ARRAYARRAYArray Array sussus valores son asociaciones entre el espacio del producto de valores son asociaciones entre el espacio del producto de

unos o munos o máás tipo de datos finitos, ses tipo de datos finitos, seññalado los tipo de datos del alado los tipo de datos del ííndice, y el espacio del valor del tipo de dato del elemento, talndice, y el espacio del valor del tipo de dato del elemento, tal que que cada valor en el espacio del producto de los tipo de datos del cada valor en el espacio del producto de los tipo de datos del ííndice ndice se asocia a exactamente un valor del tipo de dato del elemento. se asocia a exactamente un valor del tipo de dato del elemento.

Syntax:Syntax:arrayarray--type = "array" "(" indextype = "array" "(" index--typetype--list ")" "of" "(" elementlist ")" "of" "(" element--type ")" .type ")" .

El tipo de dato general array es "multidimensional", de donde esEl tipo de dato general array es "multidimensional", de donde esttááparte el nparte el núúmero dimensiones y los tipo de datos ellos mismos del mero dimensiones y los tipo de datos ellos mismos del ííndice del tipo de dato conceptual. El espacio del ndice del tipo de dato conceptual. El espacio del ííndice es un ndice es un espacio desordenado del producto, aunque se pide necesariamente espacio desordenado del producto, aunque se pide necesariamente en cada "dimensien cada "dimensióón", es decir, dentro de cada tipo de dato del n", es decir, dentro de cada tipo de dato del ííndice. ndice.

El array de una sola dimensiEl array de una sola dimensióón es simplemente el caso en el cual el n es simplemente el caso en el cual el nnúúmero de los tipo de datos del mero de los tipo de datos del ííndice es 1 y el espacio del ndice es 1 y el espacio del producto del producto del ííndice es el espacio del valor de ese tipo de dato. La ndice es el espacio del valor de ese tipo de dato. La pedido del tipo de dato del pedido del tipo de dato del ííndice entonces determina la asociacindice entonces determina la asociacióón n a los independientea los independiente--valores en un arrayvalue correspondientevalores en un arrayvalue correspondiente

TABLETABLE

Table Table sussus valores son colecciones de valores en el espacio del valores son colecciones de valores en el espacio del producto de unos o mproducto de unos o máás tipo de datos del campo, tales que cada s tipo de datos del campo, tales que cada valor en el espacio del producto representa una asociacivalor en el espacio del producto representa una asociacióón entre los n entre los valores de sus campos. Aunque los tipo de datos del campo puedenvalores de sus campos. Aunque los tipo de datos del campo puedenser infinitos, cualquier valor dado de un tipo de dato ser infinitos, cualquier valor dado de un tipo de dato tabletable contiene contiene un nun núúmero finito de asociaciones.mero finito de asociaciones.

Syntax:Syntax:tabletable--type = "table" "(" fieldtype = "table" "(" field--list ")" .list ")" .

Page 15: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

15

DECLARACIÓN DE DATOSDECLARACIÓN DE DATOS

TYPE DEFINITIONSTYPE DEFINITIONS

La declaraciLa declaracióónn define un tipodefine un tipo--identificador nuevo para referir a un tipo identificador nuevo para referir a un tipo de dato o a un generador del tipo de dato. Un declaracide dato o a un generador del tipo de dato. Un declaracióón del tipo n del tipo de dato se puede utilizar de dato se puede utilizar parapara: :

nn retitularretitular un tipo de dato existente o nombrar un tipo de dato un tipo de dato existente o nombrar un tipo de dato existente que tiene unexistente que tiene unaa sintaxis sintaxis complejcomplejaa, o como el componente , o como el componente sintsintááctico de la definicictico de la definicióón de un nuevo tipo de n de un nuevo tipo de datodato o de un o de un generador nuevo del tipo de dato. generador nuevo del tipo de dato.

RENOMBRAR DECLARACIONESRENOMBRAR DECLARACIONESUna declaraciUna declaracióónn que no contiene la palabra clave "nueva" declara el que no contiene la palabra clave "nueva" declara el

tipotipo--identificador para ser un sinidentificador para ser un sinóónimo nimo de la definicide la definicióónn. .

NUEVA DECLARACINUEVA DECLARACIÓÓN DE TIPOS DE DATOSN DE TIPOS DE DATOSUna declarciUna declarcióón contiene la palabra clave n contiene la palabra clave ““nuevonuevo”” y no contiene el y no contiene el

parametro parametro ““typetype””. Define el espacio del valor del nuevo dato. Define el espacio del valor del nuevo dato

NUEVA DECLARACINUEVA DECLARACIÓÓN DE GENERADORN DE GENERADORUnUna declaracia declaracióónn que contiene la palabra clave "nueva" y por lo menos que contiene la palabra clave "nueva" y por lo menos

un un parametroparametro "tipo" se dice para ser un declaraci"tipo" se dice para ser un declaracióón del generador. n del generador. UnUnaa declaracideclaracióón del generador n del generador indicaindica el tipoel tipo--identificador para ser identificador para ser un generador nuevo del tipo de dato un generador nuevo del tipo de dato del parametrodel parametro y el algoritmo y el algoritmo asociado de la construcciasociado de la construccióón del espacio del valor para ser n del espacio del valor para ser éése se especificado por la tipoespecificado por la tipo--definicio'n. Las operaciones que definicio'n. Las operaciones que caracterizan, y otras caractercaracterizan, y otras caracteríísticas de los tipo de datos resultando sticas de los tipo de datos resultando del generador que no se puede deducir del espacio del valor, serdel generador que no se puede deducir del espacio del valor, seráán n proporcionadas junto con el declaraciproporcionadas junto con el declaracióón del generador para n del generador para terminar la definiciterminar la definicióón del generador nuevo del tipo de daton del generador nuevo del tipo de dato

Page 16: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

16

NATURAL NUMBERNATURAL NUMBERNatural number es el tipo de dato de los nNatural number es el tipo de dato de los núúmeros cardinales o meros cardinales o

naturales. naturales. Declaration:Declaration:type naturalnumber = integer range (0..*);type naturalnumber = integer range (0..*);

MODULOMODULOEl modulo es una familia de los dataypes derivados de nEl modulo es una familia de los dataypes derivados de núúmero entero mero entero

substituyendo las operaciones con operaciones aritmsubstituyendo las operaciones con operaciones aritmééticas usando ticas usando la caracterla caracteríística del mstica del móódulodulo

Declaration:Declaration:type modulo ( modulus: integer) = new integer range(0.. modulus)type modulo ( modulus: integer) = new integer range(0.. modulus)

excluding( modulus) ;excluding( modulus) ;

BITBITBit es el tipo de dato que representa el campo finito de dos sBit es el tipo de dato que representa el campo finito de dos síímbolos mbolos

seseññalados "0", la identidad aditiva, y "1", la identidad multiplicaalados "0", la identidad aditiva, y "1", la identidad multiplicativetiveDeclaration:Declaration:type bit = modulo(2);type bit = modulo(2);

BIT STRINGBIT STRINGBitstring es el tipo de dato de las cadenas variableBitstring es el tipo de dato de las cadenas variable--length de dlength de díígitos gitos

binariosbinariosDeclaration:Declaration:type bitstring = new sequence of (bit);type bitstring = new sequence of (bit);

CHARACTER STRINGCHARACTER STRINGCharacterCharacter string string representarepresenta cadenas de scadenas de síímbolos de conjuntos de mbolos de conjuntos de

caracteres estcaracteres estáándaresndaresDeclaration:Declaration:type characterstring ( repertoire: objectidentifier) = new sequetype characterstring ( repertoire: objectidentifier) = new sequence of nce of

(character ( repertoire));(character ( repertoire));

Page 17: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

17

TIME INTERVALTIME INTERVALTimeinterval Timeinterval representarepresenta el el tiempotiempo transcurrido en segundos o transcurrido en segundos o

fracciones segundo. Es un tipo de dato generado derivado de un fracciones segundo. Es un tipo de dato generado derivado de un tipo de dato tipo de dato scaledscaled limitando las operacioneslimitando las operaciones

Declaration:Declaration:type timeinterval( unit: timeunit, radix: integer, factor: integtype timeinterval( unit: timeunit, radix: integer, factor: integer) = new er) = new

scaled ( radix, factor);scaled ( radix, factor);

OCTETOCTETEl octeto es el tipo de dato de cEl octeto es el tipo de dato de cóódigos 8digos 8--bit, segbit, segúún lo utilizado para los n lo utilizado para los

conjuntosconjuntos de caracteres y los encodings privadosde caracteres y los encodings privadosDeclaration:Declaration:type octet = new integer range (0..255);type octet = new integer range (0..255);

OCTET STRINGOCTET STRINGOctetstring es el tipo de dato de encodings variableOctetstring es el tipo de dato de encodings variable--length usando length usando

ccóódigos 8digos 8--bitbitDeclaration:Declaration:type octetstring = sequence of (octet);type octetstring = sequence of (octet);

PRIVATEPRIVATEUn tipo de dato privado representa un usoUn tipo de dato privado representa un uso--definido del valordefinido del valor--espacio y espacio y

de operacide operacióón que se encubran intencionalmente de ciertas n que se encubran intencionalmente de ciertas entidades de proceso. entidades de proceso.

Declaration:Declaration:type private( length: NaturalNumber) = new array (1.. length) oftype private( length: NaturalNumber) = new array (1.. length) of (bit);(bit);

El propEl propóósito del tipo de dato privado es proporcionar los medios por lossito del tipo de dato privado es proporcionar los medios por loscuales: a) un objeto de un tipo de dato no estcuales: a) un objeto de un tipo de dato no estáándar, teniendo una ndar, teniendo una estructura interna compleja, se puede pasar entre dos estructura interna compleja, se puede pasar entre dos objetosobjetos que que entiendan el tipo entiendan el tipo enen un servicio esta'ndarun servicio esta'ndar--que se conforma sin el que se conforma sin el interpretinterpretee de de la estructura interna, o b) los valores de un tipo de dato la estructura interna, o b) los valores de un tipo de dato que sea sin setido a todos los que sea sin setido a todos los objetosobjetos pero uno, tal como pero uno, tal como ““handleshandles", ", se puede proporcionar a un usuario final para un uso mse puede proporcionar a un usuario final para un uso máás s bienbiendefinidodefinido, por ejemplo, como parte de un interfaz del paquete, por ejemplo, como parte de un interfaz del paquete

Page 18: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

18

OBEJECT IDENTIFIEROBEJECT IDENTIFIER

Objectidentifier esObjectidentifier es elel tipotipo dede datodato dede loslos ""identificadoresidentificadores deldel objetoobjeto",", es es decir los valores que identifican decir los valores que identifican úúnicamente objetosnicamente objetos enen protocoloprotocolo dedecomunicacionescomunicaciones de a (Open Systems Interconnection),de a (Open Systems Interconnection), usandousando lalaestructuraestructura formalformal definida pordefinida por el Abstract Syntax Notation One el Abstract Syntax Notation One (ISO/IEC 8824:1990). (ISO/IEC 8824:1990).

Declaration:Declaration:typetype objectidentifierobjectidentifier = new sequence of (= new sequence of (objectidentifiercomponentobjectidentifiercomponent) )

size(1..*);size(1..*);

DEFINIENDO GENERADORESDEFINIENDO GENERADORESSTACKSTACKStackStack es un generador derivado de sees un generador derivado de sequencequence substituyendo la substituyendo la

operacioperacióón que caracteriza an que caracteriza aññade con el empuje de la operaciade con el empuje de la operacióón que n que caracteriza. Es decir, la operacicaracteriza. Es decir, la operacióón de la insercin de la insercióón pone los valores n pone los valores en el principio de la secuencia (empuje) en el principio de la secuencia (empuje) en lugar de alen lugar de al final de la final de la secuencia (asecuencia (aññada). ada).

Declaration:Declaration:type stack ( element: type ) = new sequence of ( element);type stack ( element: type ) = new sequence of ( element);

TREETREETree genera las estructuras recurrentes de la listaTree genera las estructuras recurrentes de la listaDeclaration:Declaration:type tree ( leaf: type) = new sequence of (choice( state(atom, ltype tree ( leaf: type) = new sequence of (choice( state(atom, list) ) of (ist) ) of ((atom): leaf,(atom): leaf, (list): tree( leaf)));(list): tree( leaf)));

Page 19: ALCANCEmario.elinos.org.mx/docencia/ctrldesa/expo-iso11404.pdf · 2010-08-20 · abstracto, ni est á una abstracci ón de puestas en pr áctica floating -point. Es un modelo de c

19

CYCLIC ENUMERATEDCYCLIC ENUMERATEDEl cEl cííclico (enumerado) es un generador que redefine la operaciclico (enumerado) es un generador que redefine la operacióón del n del

sucesor en un tipo de dato enumerado, de modo que el sucesor delsucesor en un tipo de dato enumerado, de modo que el sucesor delvalor pasado sea el primer valor. valor pasado sea el primer valor.

Declaration:Declaration:type cyclic of (base: type )= new base;type cyclic of (base: type )= new base;

OPTIONALOPTIONALOpcional es un generador que agrega con eficacia el valor de la Opcional es un generador que agrega con eficacia el valor de la "nada" "nada"

al espacio del valor de un tipo de dato al espacio del valor de un tipo de dato babasese. . Declaration:Declaration:type optional( base: type) = new choice (boolean) of ((true): batype optional( base: type) = new choice (boolean) of ((true): base, se,

(false): void);(false): void);