Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Desarrollo de Sofware
Desarrollo de Sofware
SOFTWARE
1
Componentes de una aplicacin
Informtica
Hardware (Hw):
Esttico
Independiente de la aplicacin
Software (Sw):
Dinmico, cambiante
Especfico del problema que resuelve la
aplicacin
2
Ciclo de Vida del SW
Es la base de la Ingeniera del Sofware
Actividades sobre el Sw desde su
concepcin hasta su muerte.
Fases:
1. Anlisis
2. Diseo
3. Desarrollo (implementacin)
4. Pruebas y validacin
5. Mantenimiento
3
Ciclo vida SW: Fase 1 Anlisis
6. Anlisis de factibilidad: ver si es posible realizar la
aplicacin.
ANLISIS DISEO
Algoritmos
Descripcin Tareas
Diseo
funcional Tipos y estructuras
Datos informtico
de datos
Analista:
Buen programador
Conocimientos slidos
Capacidad de: anlisis, sntesis, organizacin y comunicacin
(verbal y escrita)
4
Ciclo vida SW: Fase 2 Diseo
Enfoque modular: TOP-DOWN
Jerarqua de:
1. Grandes mdulos, semi-independientes,
intercomunicados
2. Submdulos
N. Funciones elementales
5
Ciclo vida SW: Fase 3 Desarrollo
Tareas:
programacin de la aplicacin
pruebas de mdulos individuales
pruebas de intercomunicacin
6
Ciclo vida SW: Fase 3 Desarrollo
Propiedades del cdigo:
1. Legible: bien estructurado, tanto
conceptualmente (funcionalmente) como
visualmente
2. Correcto: siempre y frente a cualquier
entrada
3. Comprensible: bien documentado
7
Ciclo vida SW: Fase 4 Validacin
Validacin: certificacin de que el Sw.
Cumple los requisitos y especificaciones
establecidas en fase 1 (anlisis)
Objetivos:
Validar el Sw
Detectar/corregir errores finos (los gruesos se
detectan en la fase 3)
Estratega BOTTOM-UP:
funciones individuales => jerarqua de mdulos
=> aplicacin completa
(Ms detalles despus)
8
Modelo ciclo vida SW en cascada
Anlisis
Diseo
Desarrollo
Pruebas
Mantenimiento
Subidas de 1 escaln + o frecuentes, debidas a
errores, inconsistencias, olvidos en fase anterior
Subidas de 2 o ms escalones deberan ser poco
frecuentes. Suponen esfuerzo, tiempo y coste
superiores (perdido)
9
Correccin de errores de programacin
Fuentes de errores:
1. Errores violentos
Ej: divisiones por 0, punteros locos, etc.
Deteccin fcil, reproduccin + o - fcil, resolucin fcil
2. Lgica inconsistente/errnea
Resultados a veces correctos, a veces inconsistentes,
a veces errneos
+ complicados de detectar => + difciles de reproducir
=> + difciles de corregir
3. Especificacin/diseo incorrectos
Deteccin tarda
Correccin casi imposible (falta de recursos, etc.)
E SW S
Tareas:
1. Definir el conjunto de entradas
2. Calcular (a mano) las salidas esperadas de cada entrada
3. Comprobar que el Sw hace lo mismo
10
Correccin de errores de programacin
Datos de prueba:
Antes de probar, definir conjunto de datos de
prueba.
Tipos:
1. Datos normales
2. Datos extremos
3. Datos ilegales
3.1. Datos ilegales normales
3.2. Datos ilegales absurdos
Datos de prueba:
1. Datos normales:
Son legtimos y razonables
Resultado: correcto
Ej: float media (float t [], int dim)
dim = 10000
t [i] = razonables dentro de floats, y que la
suma no pase del tamao de un float
11
Correccin de errores de programacin
Datos de prueba:
2. Datos extremos:
Son normales, pero al lmite de la procesabilidad
Resultado: correcto mensaje de error
Ej: float media (float t [], int dim)
dim = INT_MAX
t [i] = tales que la suma pasa del tamao de un
float (FLT_MAX)
Datos de prueba:
3. Datos ilegales:
Son NO procesables
Tipos:
3.1. Ilegales normales: P.ej., el tipo se corresponde, pero se
pasa del valor permitido.
Ej: dim > INT_MAX, t[i] > FLT_MAX
3.2. Ilegales absurdos: Ni siquiera coincide el tipo de dato
Ej: dim = hola
Resultado: mensaje de error correspondiente
12
Correccin de errores de programacin
Nunca puede haber fallos/ cuelgues,
programa debe responder siempre
necesario capturar excepciones
y gestionarlas adecuadamente
Excepcin: circunstancia excepcional
que se produce durante la ejecucin de
un programa y que debe ser gestionada
Capturar y gestionar excepciones
cdigo extra, costoso y caro
(aprox. 50% cdigo)
13
Algoritmos
14
Algoritmos Elementos bsicos
Flujo de ejecucin
Flujo de ejecucin
?
15
Algoritmos Elementos bsicos
3. Repeticiones:
Bloques secuenciales que se ejecutan
repetidamente mientras se cumpla una
condicin
Ej. en C: for, while, do while,
NO
?
S ...
Programacin estructurada:
Slo se usan estos 3 elementos
(secuencias, selecciones, repeticiones),
posiblemente anidados
No se usa go to
16
Algoritmos Pseudocdigo
Algoritmos Pseudocdigo
17
Algoritmos Diagrama de flujo
Diagrama de flujo algoritmo de Euclides
(inicio)
S
b>a?
NO intercambiar (a, b)
r=a%b
NO
r>0?
S devolver b
a=b;
Algoritmos Pseudocdigo
Observaciones:
No se puede programar sin saber escribir
pseudocdigo
Notacin pseudocdigo: libre pero cercana a
lenguajes, no a lenguaje natural
Elementos implcitos que no se especifican:
punteros, declaracin variables, etc.
Seguir convenciones de legibilidad:
sangrado de sentencias y bloques
Importante: claridad, concrecin de ideas
18