PDF de programación - TEMA 2: DESARROLLO DEL SOFTWARE

Imágen de pdf TEMA 2: DESARROLLO DEL SOFTWARE

TEMA 2: DESARROLLO DEL SOFTWAREgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 20 de Diciembre del 2017)
702 visualizaciones desde el 20 de Diciembre del 2017
148,0 KB
18 paginas
Creado hace 16a (05/03/2008)
TEMA 2: DESARROLLO DEL

SOFTWARE

EDI I – Curso 2007/08

Escuela Politécnica Superior

Universidad Autónoma de Madrid

TEMA 2: DESARROLLO DEL

SOFTWARE

2.1. Ciclo de vida del Software
2.2. Corrección de errores de programación
2.3. Algoritmos

1

Componentes de una aplicación

Informática

Hardware (Hw):
– Estático
– Independiente de la aplicación
Software (Sw):
– Dinámico, cambiante
– Específico del problema que resuelve la

aplicación

Componentes de una aplicación

Informática

Sw más necesario, más complejo y más
trabajoso que el Hw más caro
Desarrollo de Sw requiere ECI:
– Esfuerzo
– Creatividad
– Ingenio
Metodología de producción de Sw:
Ingeniería del Software

2

Ciclo de Vida del SW

Es la base de la Ingeniería del Sofware
Actividades sobre el Sw desde su
concepción hasta su muerte.
Fases:

1. Análisis
2. Diseño
3. Desarrollo (implementación)
4. Pruebas y validación
5. Mantenimiento

Ciclo vida SW: Fase 1 Análisis
Qué hace la aplicación
Tareas a realizar:
1. Descripción general completa del problema a

resolver

2. Especificación funcional: qué tiene que hacer la

aplicación

3. Análisis de requisitos: condiciones informáticas bajo

las que debe funcionar la aplicación

4. Especificación de E/S: qué recibe y qué devuelve la

aplicación

5. Criterios de validación: especificar cómo se va a

comprobar que la aplicación funciona (que cumple
requisitos y especificaciones)

3

Ciclo vida SW: Fase 1 Análisis
6. Análisis de factibilidad: ver si es posible realizar la

aplicación.

Resultados de la fase de análisis:
1. Conocimiento profundo del problema (por parte de

los informáticos)
2. Documento con:

– Especificación de requisitos

(valor informático + contractual)

– Protomanual de usuario
– Primeras estimaciones del coste de la aplicación

Ciclo vida SW: Fase 2 Diseño
Cómo se va a hacer la aplicación

ANÁLISIS

Descripción
funcional

Tareas
Datos

DISEÑO

Algoritmos

Tipos y estructuras

de datos

Diseño
informático

Cliente

Analista

Programador

Analista:





Buen programador
Conocimientos sólidos
Capacidad de: análisis, síntesis, organización y comunicación
(verbal y escrita)

4

Ciclo vida SW: Fase 2 Diseño
Enfoque modular: TOP-DOWN
Jerarquía de:
1. Grandes módulos, semi-independientes,

intercomunicados

2. Submódulos


N. Funciones elementales

Ciclo vida SW: Fase 2 Diseño
Resultados de la fase de diseño:
1. Estructuración de la aplicación según la

jerarquía de módulos

2. Documento de diseño con info sobre:

1. Organización de los procesos
2. Datos y sus estructuras de datos
3. E/S generales y de cada submódulo
4.

Intercomunicación (a niveles
corrrespondientes)

3. Estimaciones económicas finales

5

Ciclo vida SW: Fase 3 Desarrollo

Tareas:
– programación de la aplicación
– pruebas de módulos individuales
– pruebas de intercomunicación

Módulo de desarrollo + pruebas =
espiral creciente de alcance funcional y
complejidad

Ciclo vida SW: Fase 3 Desarrollo

Resultados del desarrollo:
1. Código de la aplicación
2. Documentación de la aplicación
3. Código del Sw de pruebas: genera datos de
pruebas, simula entornos de ejecución, etc.

4. Datos de pruebas
5. Documentación de las pruebas

6

Ciclo vida SW: Fase 3 Desarrollo

Propiedades del código:
1. Legible: bien estructurado, tanto

conceptualmente (funcionalmente) como
visualmente

2. Correcto: siempre y frente a cualquier

entrada

3. Comprensible: bien documentado

Ciclo vida SW: Fase 3 Desarrollo

Tipos de código:

– Académico:

– Profesional:

Programas pequeños
Poco críticos
Análisis y diseño individual
Poco uso
(programador y profesor)
Requiere ECI

Programas grandes
Críticos (no pueden fallar)
Análisis y diseño en grupo
Uso intenso, por terceros
Requiere ECI
+ metodología
+ buenos hábitos
+ …

7

Ciclo vida SW: Fase 4 Validación

Validación: certificación de que el Sw.
Cumple los requisitos y especificaciones
establecidas en fase 1 (análisis)
Objetivos:
– Validar el Sw
– Detectar/corregir errores “finos” (los gruesos se

detectan en la fase 3)

Estrategía BOTTOM-UP:
funciones individuales => jerarquía de módulos
=> aplicación completa

(Más detalles después)

Ciclo vida SW: Fase 5 Mantenimiento

Modificación de un producto Sw después
de su entrega al cliente, para:
– corregir defectos
– adaptarlo a un cambio de entorno
– mejorar rendimiento
– …
Suele ser lo más costoso

8

Modelo ciclo vida SW en cascada
Análisis

Diseño

Desarrollo

Pruebas

Mantenimiento

Subidas de 1 escalón + o – frecuentes, debidas a
errores, inconsistencias, olvidos en fase anterior
Subidas de 2 o más escalones deberían ser poco
frecuentes. Suponen esfuerzo, tiempo y coste
superiores (perdido)

TEMA 2: DESARROLLO DEL

SOFTWARE

2.1. Ciclo de vida del Software
2.2. Corrección de errores de programación
– Fuentes de errores
– Detección de errores. Tipos de pruebas
– Datos de prueba
– Excepciones
2.3. Algoritmos

9

Corrección de errores de programación

Fuentes de errores:
1. Errores “violentos”

– Ej: divisiones por 0, punteros locos, etc.
– Detección fácil, reproducción + o - fácil, resolución fácil

2. Lógica inconsistente/errónea

– Resultados a veces correctos, a veces inconsistentes,

a veces erróneos

– + complicados de detectar => + difíciles de reproducir

=> + difíciles de corregir

3. Especificación/diseño incorrectos

– Detección tardía
– Corrección casi imposible (falta de recursos, etc.)

Corrección de errores de programación

Detección de errores. Pruebas de 2 tipos:
1. Funcionales: pruebas de alto nivel

– El software se ve como una “caja negra”

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

2. Estructurales: pruebas de bajo nivel

– Se sigue de cerca la evolución de la ejecución

(depuración, debugger)

10

Corrección de errores de programación

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

Corrección de errores de programación

Datos de prueba:

1. Datos normales:

– Son legítimos 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 tamaño de un float

11

Corrección de errores de programación

Datos de prueba:

2. Datos extremos:

– Son “normales”, pero al límite 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 tamaño de un

float (FLT_MAX)

Corrección de errores de programación

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

Corrección de errores de programación
Nunca puede haber fallos/ “cuelgues”,
programa debe responder siempre

necesario capturar excepciones

y gestionarlas adecuadamente
Excepción: circunstancia excepcional
que se produce durante la ejecución de
un programa y que debe ser gestionada
Capturar y gestionar excepciones
código extra, costoso y caro
(aprox. 50% código)

TEMA 2: DESARROLLO DEL

SOFTWARE

2.1. Ciclo de vida del Software
2.2. Corrección de errores de programación
2.3. Algoritmos
– Definición
– Elementos básicos
– Programación estructurada
– Pseudocódigo y diagrama de flujo

13

Algoritmos

Algoritmo: conjunto de instrucciones
– simples,
– de ejecución finita, y
– que producen unos resultados concretos y

correctos.

Algoritmos – Elementos básicos

Elementos básicos de un algoritmo:
1. Secuencias (bloques secuenciales)
2. Selecciones
3. Repeticiones

14

Algoritmos – Elementos básicos

1. Secuencias (bloques secuenciales):

serie de sentencias simples
de ejecución secuencial

Flujo de ejecución

Algoritmos – Elementos básicos

2. Selecciones:

– Bloques secuenciales que se ejecutan o no

dependiendo de una condición

– Varios bloques, sólo se ejecuta uno
– Ej. en C: if, switch, …

?

Flujo de ejecución

15

Algoritmos – Elementos básicos

3. Repeticiones:

– Bloques secuenciales que se ejecutan

repetidamente mientras se cumpla una
condición

– Ej. en C: for, while, do while, …

NO

?



. . .

Algoritmos – Prog. estructurada

Programación estructurada:
– Sólo se usan estos 3 elementos

(secuencias, selecciones, repeticiones),
posiblemente anidados

– No se usa “go to”

16

Algoritmos – Pseudocódigo

Pseudocódigo: representación genérica
(independiente del lenguaje)
y concisa del funcionamiento de un
algoritmo

Algoritmos – Pseudocódigo

Pseudocódigo algoritmo de Euclides

ent mcd (ent a, ent b)

intercambia (a, b);

si b > a:

r = a mod b;
mientras r > 0:

a = b;
b = r;
r = a mod b;

devolver b;

Selección

Repetición

Secuencia

17

Algoritmos – Diagrama de flujo

Diagrama de flujo algoritmo de Euclides

(inicio)



b>a?
NO

r = a % b

NO

r>0?

a=b;


intercambiar (a, b)

devolver b

Algoritmos – Pseudocódigo
Observaciones:
– No se puede programar sin saber escribir

pseudocódigo

– Notación pseudocódigo: libre pero cercana a

lenguajes, no a lenguaje natural

– Elementos implícitos que no se especifican:

punteros, declaración variables, etc.
– Seguir convenciones de legibilidad:
sangrado de sentencias y bloques
Importante: claridad, concreción de ideas



18
  • Links de descarga
http://lwp-l.com/pdf7979

Comentarios de: TEMA 2: DESARROLLO DEL SOFTWARE (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad