Publicado el 21 de Noviembre del 2018
2.563 visualizaciones desde el 21 de Noviembre del 2018
183,2 KB
10 paginas
Creado hace 15a (12/11/2008)
METODOLOGÍA
Y
TECNOLOGÍA
DE
LA
PROGRAMACIÓN
I
Ingeniería
Informática
Curso
Primero.
2008‐09
las
Documentación
Introducción
La
creación
de
nuevo
sistema
informático
conlleva
diversas
fases
que
van
más
allá
de
la
codificación
del
mismo.
Un
modelo
tradicional
de
diseño
establece
cinco
fases:
análisis,
diseño,
codificación,
pruebas
y
mantenimiento.
En
la
primera
se
realiza
un
estudio
de
los
requisitos
del
sistema
y
la
viabilidad
del
mismo.
La
fase
de
diseño
identifica
y
define
los
elementos
que
precisa
el
proyecto
y
la
interconexión
entre
los
mismos.
Del
resultado
de
estas
dos
fases
se
obtiene
un
plan
que
se
utilizará
como
guía
para
la
codificación
del
sistema.
El
producto
resultante
de
la
codificación
se
verá
sometido
a
una
batería
de
pruebas
que
aseguren
la
fiabilidad
del
mismo.
Finalmente,
el
ciclo
de
vida
de
un
sistema
informático
no
termina
en
las
pruebas,
si
no
que
se
extiende
mientras
que
esté
en
uso.
Así,
es
necesario
realizar
y
preveer
un
fases
deberían
estar
debidamente
mantenimiento
del
mismos.
Todas
documentadas,
permitiendo
que
en
futuro,
se
puedan
acometer
cambios
y
mejoras
en
el
sistema
de
manera
sencilla.
En
este
modelo
clásico
se
contempla,
además,
que
se
pueden
pasar
por
las
distintas
fases
más
de
una
vez,
permitiendo
retroceder
a
una
fase
anterior
si
se
descubre
una
deficiencia
que
impida
continuar.
De
esta
manera,
el
producto
final
se
obtiene
mediante
una
serie
de
refinamientos
sucesivos.
Al
finalizar
cada
una
de
las
fases,
se
cumple
un
hito
del
proyecto,
el
cual,
suele
venir
acompañado
de
un
entregable.
Este
puede
ser,
por
ejemplo,
un
nuevo
documento
o
un
listado
de
código,
o
una
nueva
versión
de
un
entregable
anterior.
En
el
presente
documento
nos
centramos
en
explicar
como
se
describirían
las
estructuras
de
datos
y
la
algoritmia
de
un
proyecto.
Ambas
podrían
incluirse
en
entregables,
por
ejemplo,
tanto
en
la
fase
de
diseño
como
en
la
de
documentación.
Ahora
bien,
suponemos
que
se
ha
escogido
un
diseño
estructurado
para
acometer
el
proyecto,
y
en
este
sentido
irán
las
indicaciones.
Existen
otros
paradigmas
de
programación,
tales
como
orientación
a
objetos,
que
requieren
un
enfoque
distinto
en
la
elaboración
de
los
documentos.
Dentro
del
diseño
estructurado,
la
herramientas
que
vamos
a
plantear
permiten
una
descripción
detallada
del
proyecto
Existen
otros
modelos
(ej,
DFD,
DEC…)
que
permiten
realizar
una
descripción
de
más
alto
nivel,
pero
que
quedan
fuera
de
este
documento.
Nicolas
Wirth
acuño
el
famoso
lema
de
la
programación
estructurada:
Algoritmos
+
Estructuras
de
Datos
=
Programas
En
este
apartado
nos
centraremos
en
describir
las
estructuras
de
datos,
mientras
que
en
el
segundo
lo
dedicaremos
a
la
parte
algorítmica,
ya
que
es
ese
en
el
orden
en
el
que
deberían
aparecer
explicadas
en
la
documentación.
Aunque
durante
la
fase
de
diseño
la
elección
de
las
estructuras
de
datos
y
algoritmos,
de
nuevo,
consiste
en
un
1
Estructuras
de
datos
METODOLOGÍA
Y
TECNOLOGÍA
DE
LA
PROGRAMACIÓN
I
Ingeniería
Informática
Curso
Primero.
2008‐09
proceso
de
refinamiento,
a
la
hora
presentar
el
resultado
final
se
plantean
primeramente
las
estructuras
de
datos,
y
a
continuación,
los
algoritmos
que
se
desprenden.
La
definición
de
las
estructuras
parte
de
conjunto
de
tipos
de
datos
básicos,
y
de
mecanismos
que
nos
permitan
generar
nuevos
tipos
de
datos.
Uno
de
nuestros
objetivos
es
conseguir
una
descripción
del
proyecto
independiente
del
lenguaje
de
programación
escogido.
Para
ello,
se
proponen
emplear
una
serie
de
tipos
de
datos
genéricos
que
son
comunes
a
la
mayor
parte
de
lenguajes
estructurados.
Tipos
básicos:
‐ entero
‐
real
‐ booleano
‐
carácter
‐ enumerado
Tipos
compuesto:
‐ array
(matriz)
‐ estructura
‐
cadena
La
declaración
de
las
estructuras
de
datos
constará
de
dos
partes.
En
la
primera
se
definirán
las
constantes
disponibles.
En
la
segunda,
los
tipos
de
datos
que
se
van
a
emplear.
Cada
constante,
tipo
o
campo
de
un
nuevo
tipo
irá
acompañado
de
un
comentario
que
explique
la
necesidad
del
mismo.
Ejemplo
1:
Tres
en
raya
Las
tres
en
rayas
es
juego
de
dos
jugadores.
Se
juega
sobre
un
tablero
de
NxM,
y
con
dos
tipos
de
fichas
(tradicionalmente
un
X
ó
O).
Cada
jugador
coloca
en
turnos
sucesivos
una
ficha
sobre
alguna
de
las
casillas
vacías
del
tablero.
El
juego
finaliza
cuando
o
bien
algún
jugador
consigue
alinear
tres
de
sus
fichas
en
cualquiera
de
las
direcciones
posibles
(vertical,
horizontal
o
diagonal),
o
bien
cuando
no
queda
ninguna
casilla
vacía
dónde
colocar
ficha.
A
continuación
se
van
a
describir
las
posible
estructuras
de
datos
necesarias
para
un
implementara
dicho
programa
que
juego.
Primero
se
realiza
una
breve
presentación,
y
a
continuación
una
descripción
detallada
de
las
mismas.
Para
representar
el
tablero
se
ha
definido
el
tipo
tablero,
que
consiste
en
un
registro
que
contiene
una
matriz
de
NxM
de
casillas,
el
número
de
casillas
ocupadas
y
cuál
de
los
jugadores
posee
el
turno.
Cada
casilla
puede
estar
vacía,
ocupada
por
una
ficha
del
usuario,
o
por
una
ficha
del
ordenador.
Por
último,
el
tipo
de
datos
acción
recoge
las
posibles
acciones
del
usuario.
2
METODOLOGÍA
Y
TECNOLOGÍA
DE
LA
PROGRAMACIÓN
I
Ingeniería
Informática
Curso
Primero.
2008‐09
Constantes
Tipos
N
M
Estado
Accion
Casilla
Matriz
Tablero
Nombre1
Tipo
Descripción
Definición
Valor
por
defecto
que
Nombre
Descripción
Número
de
filas
que
tiene
el
tablero
3
Número
de
columnas
que
tiene
el
tablero
3
enumerado
Posibles
estados
en
los
que
se
puede
encontrar
la
partida
enumerado
Diferentes
puede
acciones
realizar
el
usuario
enumerado
Posibles
valores
que
puede
almacenar
una
casilla
del
tablero.
la
casilla
está
libre;
VACIA
=
si
la
casilla
contiene
USUARIO
=
si
una
ficha
del
usuario;
ORDENADOR
=
ficha
del
ordenador
array
Tabla
que
contiene
las
casillas
del
tablero.
Estructura
que
define
el
tablero
y
el
estructura
estado
del
mismo.
‐
casillas
=
Tablero
de
NxM
casillas;
‐
ocupadas
=
Número
de
casillas
ocupadas
en
cada
momento,
es
decir,
casilla
<>
VACIA;
‐
turno:
VERDADERO
si
juega
el
ordenador
y
FALSO
si
juega
el
usuario
1
Todos
los
nuevos
tipos
de
datos
definidos
se
nombran
empezando
por
mayúscula.
Las
constantes
se
escriben
con
todas
las
letras
en
mayúsculas.
3
INICIO_PARTIDA,
JUGANDO,
PAUSADA
FIN_PARTIDA
JUGAR,
SALVAR,
CARGAR,
TERMINAR,
CONTINUAR,
PAUSAR
VACIA,
USUARIO,
ORDENADOR
[1..N,
1..M]
de
Casilla
casillas:
Matriz
;
ocupadas:
Entero
turno
:
Booleano
METODOLOGÍA
Y
TECNOLOGÍA
DE
LA
PROGRAMACIÓN
I
Ingeniería
Informática
Curso
Primero.
2008‐09
Pseudocódigo
Entendemos
por
pseudocódigo
un
lenguaje
semiformal
que
facilita
la
descripción
algorítmica
de
un
programa.
El
pseudocódigo
se
entiende
como
lenguaje
técnico,
así
que
se
espera
que
el
lector
posea
conocimientos
de
programación
(ej.
analistas,
desarrolladores).
En
este
sentido,
obedece
a
unas
reglas
mínimas
conocidas
por
la
comunidad.
Ahora
bien,
no
es
necesaria
emplear
una
validación
formal,
como
puede
ser
el
caso
de
un
lenguaje
de
programación
de
alto
nivel
(ej.
C
ó
Pascal),
si
no
que
se
permite
cierta
flexibilidad
a
la
hora
de
expresarse.
Esto
es
así,
en
tanto
en
cuanto
que
el
interprete
del
código
no
es
una
máquina
si
no
un
humano.
Otra
ventaja
del
pseudocódigo
es
que
permite
independizar
la
descripción
del
programa
de
los
lenguajes
de
programación.
Un
mismo
pseudocódigo
debería
poder
ser
implementado
mediante
varios
lenguajes.
La
flexibilidad
que
aporta
el
pseudocódigo
permite
al
programador
realizar
una
descripción
bastante
ajustada
del
diseño
del
programa,
sin
tener
que
ocuparse
de
los
detalles
de
implementación.
De
echo,
un
mismo
algoritmo
se
puede
describir
empleando
distintos
niveles
de
detalle.
Así,
se
hace
especialmente
conveniente
como
herramienta
de
diseño
descendente.
Un
posible
pseudocódigo
Existen
múltiples
propuestas
de
pseudocódigo.
Cualquiera
que
consiga
expresar
un
programa
de
manera
precisa
nos
valdría.
Hemos
elegido
una
propuesta
en
concreta
basada
en
el
libro
de
Cormen
et
al
2
que
nos
sirva
de
modelo
para
las
explicaciones
tanto
en
teoría
como
en
prácticas.
Ahora
bien,
cuando
tengáis
que
emplear
una
descripción
en
pseudocódigo
no
es
obligatorio
seguir
esta
propuesta,
sino
que
podéis,
si
os
sentéis
más
cómodos,
elegir
otra
que
fuera
igual
de
válida.
En
el
siguiente
apartado
se
indican
una
serie
de
convenciones
mínimas
que
definen
la
propuesta
de
pseudocódigo.
Es
posible
que,
en
determinados
programas,
sea
necesario
expandir
la
propuesta
para
poder
expresarse
correctamente.
En
el
siguiente
apartado
se
incluyen
diversos
ejemplos
en
los
que
se
muestra
el
modo
de
empleo
y
la
potencialidad
del
mismo.
1. La
indentación
(o
sangrado)
se
emplea
para
señalar
el
comienzo
y
fin
de
un
bloque
(véanse
ejemplos).
Esta
regla
también
se
aplica
a
la
sentencia
condicional
si…si
no.
2
T.
H.
Cormen,
C.L.
Leiserson,
R.L.
Rivest,
C.
Stein.
Introduction
to
Algorithms.
Second
Edition.
The
MIT
Press.
2003,
pp.
19‐20
Convenciones
del
pseudocódigo
4
METODOLOGÍA
Y
TECNOLOGÍA
DE
LA
PROGRAMACIÓN
I
Ingeniería
Informática
Curso
Primero.
2008‐09
2. Las
sentencias
de
repetición
desde…hasta,
mientras
y
haz…mientras,
y
las
estructura
condicionales
si…si
no
y
segun
tienen
una
interpretación
similar
a
la
que
se
da
en
C
a
las
estructuras
for,
while,
do‐while,
if‐then‐else,
case
(véanse
ejemplos)
3. La
asignación
de
un
valor
a
una
variable
se
realiza
mediante
el
símbolo
‘←’.
Ej.
i
←
30
Se
puede
asignar
un
mismo
valor
a
varias
variables
en
una
única
línea
concatenando
sucesivas
asignaciones:
Ej.
i
←
j
←
30
Asi
Comentarios de: Metodología y tecnología de la programación I (0)
No hay comentarios