SlideShare una empresa de Scribd logo
Capítulo 3 CICLO DE VIDA DE UN PROGRAMA Presentación  resumen  del libro: "EMPEZAR DE CERO A PROGRAMAR EN   lenguaje C" Autor:   Carlos Javier Pes Rivas ( [email_address] )
OBJETIVOS Saber qué es la  Ingeniería del Software . Conocer los pasos que se tienen que dar para  desarrollar  un programa. Entender cómo el programador puede escribir unas instrucciones  comprensibles para la máquina . Hoy en día, la computadora es una herramienta indispensable en muchos ámbitos, tales como: la medicina, la astronomía, las comunicaciones, etc. Gracias a la informática, se han producido avances tecnológicos que eran impensables antes de la llamada  “revolución de las computadoras” . No obstante, la máquina no puede hacer  absolutamente nada  sin un software, es decir, sin un programa que le diga qué es lo que tiene que hacer. Pero, ¿cómo se hace un programa? Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
CONTENIDO 3.1  INTRODUCCIÓN 3.2  ANÁLISIS 3.3  DISEÑO 3.4  CODIFICACIÓN 3.5  PRUEBAS 3.6  MANTENIMIENTO Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.1 INTRODUCCIÓN (1/4) Software a medida : Empresas (desarrolladora y cliente). EJEMPLOS: Gestión de la venta de billetes de un aeropuerto. Gestión del alquiler de películas de un videoclub. Gestión de los historiales médicos de los pacientes de un hospital. Software no a medida :   EJEMPLOS: Procesadores de textos. Juegos. Enciclopedias electrónicas. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.1 INTRODUCCIÓN (2/4) Metodología de la programación :  Disciplina que alberga una serie de técnicas y conocimientos científicos relacionados con la informática. Paradigmas de programación :   Programación estructurada. Aplicación del  diseño modular . Utilización, exclusivamente, de  estructuras secuenciales ,  alternativas  y  repetitivas . Empleo de  estructuras de datos  adecuadas para manipular información. Programación Orientada a Objetos. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.1 INTRODUCCIÓN (3/4) Ingeniería del Software :  Ciclo de vida de un programa (5 etapas). Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” Planificación de tareas (fechas de inicio y fin). Control de tareas (seguimiento continuo del proyecto).
3.1 INTRODUCCIÓN (4/4) Calidad del software : Características operativas: Corrección , ¿hace lo que se espera de él? Eficiencia , ¿se utilizan, óptimamente, los recursos de la computadora? Facilidad de uso , ¿la interfaz es adecuada al usuario? Integridad , ¿es seguro con respecto a los datos? Capacidad para sufrir cambios: Facilidad de mantenimiento , ¿es susceptible de ser corregido? Flexibilidad , ¿es susceptible de ser cambiado? Facilidad de prueba , ¿resulta fácil hacer pruebas? Adaptabilidad a nuevos entornos: Reusabilidad , ¿se puede usar parte del software en otro proyecto? Facilidad de interoperación , ¿puede interactúar con otros SI? Portabilidad , ¿se puede usar en otra máquina (procesador)? Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.2 ANÁLISIS (1/2) Especificación de Requisitos Software (ERS) :  ¿ Qué  tiene que hacer el programa? Comportamiento interno  (gestión de los datos). Comportamiento externo  (interacción con el usuario y con otras aplicaciones). Contrato  (empresa desarrolladora y empresa cliente) PREGUNTAS: ¿Qué debe hacer el programa? ¿Qué datos de entrada y de salida intervienen en el proceso? ¿En qué máquina y sistema operativo se va a ejecutar? ¿Quién será el usuario de la aplicación? Tratamiento de errores, seguridad de los datos, etc. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.2 ANÁLISIS (2/2) PROBLEMA EJEMPLO:  Suma de dos números enteros 1) En primer lugar, el programa debe pedir por teclado dos  números  ( datos enteros ). 2) A continuación, calculará la  suma  de los dos  números  introducidos por el usuario. 3) Finalmente, tiene que mostrar  por pantalla el resultado obtenido ( dato entero ). En pantalla se mostrará: Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.3 DISEÑO (1/6) Se tiene que encontrar una  solución informática  al problema planteado. Dicha solución determinará  cómo  se va a resolver el problema. Uso del  diseño modular  o  descendente  ( top-down ). Divide y vencerás  (subproblemas) Abstracción Encapsulación Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.3 DISEÑO (2/6) EJEMPLO DISEÑO MODULAR:  Gestión de un videoclub Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.3 DISEÑO (3/6) Algoritmo :   Establece de manera genérica e informal, la secuencia de  pasos  o  acciones  que resuelve un determinado problema. Notación: Pseudocódigo Diagramas de flujo (ordinogramas) Pseudocódigo :   Es un lenguaje de programación  algorítmico . Es un lenguaje  intermedio  entre el lenguaje natural y cualquier lenguaje de programación específico, como son: C, FORTRAN, Pascal, etc. Ordinograma :   Representa, de manera gráfica, el  orden  de los pasos o acciones de un algoritmo. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.3 DISEÑO (4/6) ALGORITMO EJEMPLO:  Suma de dos números enteros (Pseudocódigo) Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.3 DISEÑO (5/6) ALGORITMO EJEMPLO:  Suma de dos números enteros (Ordinograma) Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.3 DISEÑO (6/6) Cualidades de un algoritmo :  (solución más óptima) Finitud Precisión Claridad Generalidad Eficiencia Sencillez Modularidad Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.4 CODIFICACIÓN (1/9) EJEMPLO (lenguaje C):  Suma de dos números enteros Las acciones definidas en el algoritmo hay que convertirlas a instrucciones ( sentencias ). Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.4 CODIFICACIÓN (2/9) Lenguaje de programación :   Es un lenguaje artificial que permite escribir las instrucciones de un programa informático. Permite al programador comunicarse con la computadora para decirle qué es lo que tiene que hacer. Tipos de lenguajes: máquina de bajo nivel de alto nivel Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.4 CODIFICACIÓN (3/9) Lenguaje máquina o  binario :   Es el  único  que entiende la computadora digital. Dos símbolos: el  cero  ( 0 ) y el  uno  ( 1 ). Inconveniente:  No es portable. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” Lenguajes de bajo nivel o  ensambladores :   Más entendibles para el programador. Abreviaturas del inglés (nemotécnicos): ADD, DIV, SUB, etc. Inconveniente:  No es portable.
3.4 CODIFICACIÓN (4/9) Lenguaje de alto nivel :   Se utilizan palabras o expresiones sintácticas muy similares al inglés ( case ,  if ,  for ,  while ,...). EJEMPLO: if (  numero  >  0  ) printf( " El número es positivo " ); Si  numero  es mayor que cero, entonces, escribir por pantalla el mensaje: “El número es positivo”. Ventaja:  Sí es portable. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.4 CODIFICACIÓN (5/9) Relación entre las instrucciones de alto nivel, ensamblador y máquina:   Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.4 CODIFICACIÓN (6/9) Fases de la puesta a punto de un programa escrito en C:   Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.4 CODIFICACIÓN (7/9) Intérprete :   Se caracteriza por traducir y ejecutar,  de una en una , las instrucciones del código fuente de un programa, pero, sin generar como salida código objeto. Proceso: Lee la primera instrucción del código fuente. La traduce a código objeto y la ejecuta. A continuación, hace lo mismo con la segunda instrucción. Y así sucesivamente, hasta llegar a la última instrucción del programa, siempre y cuando, no se produzca ningún  error  que detenga el proceso. Tipos de errores : de sintaxis de ejecución de lógica Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.4 CODIFICACIÓN (8/9) Errores de sintaxis :   Se detectan en el proceso de traducción del código fuente a código binario. Impide, tanto al compilador como al intérprete, hacer la traducción. EJEMPLO:  prrintf( " Introduzca el primer numero (entero):  " ); Error de ejecución :   El ordenador no puede ejecutar alguna instrucción de forma correcta. EJEMPLO:  c =  5  /  0 ;   ( no se puede dividir entre cero ) Error de lógica :  Los resultados obtenidos no son los esperados. EJEMPLO:  c =  a  *  b ;   en vez de   c =  a  +  b ; Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.4 CODIFICACIÓN (9/9) Entornos Integrados de Desarrollo (EID) :   Son aplicaciones informáticas que incluyen a todos los programas necesarios para realizar todas las fases de puesta a punto de un programa. En el caso de C se necesita: Editor Preprocesador Compilador Enlazador Suelen incluir otras herramientas software: Depurador de código Ayuda en línea de uso del lenguaje Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.5 PRUEBAS Pruebas : Tratamiento de los datos. Adaptación al resto sistema informático. Interacción con otras aplicaciones. Hay que comprobar, exhaustivamente, la  funcionalidad . Es imposible probarlo todo. Pueden darse situaciones inesperadas. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
3.6 MANTENIMIENTO Mantenimiento : Reparación  de errores no detectados en las fases anteriores. Modificaciones  para ampliar o cambiar alguna funcionalidad. Documentación : Externa:  ERS, algoritmos, códigos fuentes, manuales de usuario,... Interna:  Comentarios en el código fuente. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
EJERCICIOS RECOMENDADOS Resueltos :  1 y 2. Propuestos :  1, 2, 3 y 4. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
http://www.carlospes.com GRACIAS POR SU ATENCIÓN Para más información, puede visitar la web del autor:

Más contenido relacionado

PPTX
Ejercicios en prolog
PPT
PPTX
Ordenamientos por selección y Shell
PPT
Arquitectura de sistemas distribuidos
PPTX
MODELO COCOMO (INGENIERA DE SOFTWARE)
PPT
Agentes Inteligentes
PDF
42 preguntas que deberias hacerte antes de abordar un proyecto
Ejercicios en prolog
Ordenamientos por selección y Shell
Arquitectura de sistemas distribuidos
MODELO COCOMO (INGENIERA DE SOFTWARE)
Agentes Inteligentes
42 preguntas que deberias hacerte antes de abordar un proyecto

La actualidad más candente (20)

PPTX
Internet de las cosas (Lot)
PPTX
2. El proceso del software
PPTX
Diagrama de casos de usos
PPTX
Roles para el tsp
PDF
Programación 3: Clases y objetos en Java
DOCX
Unidad 2 sistemas programables
PPTX
Modelo cascada
PPTX
Presentacion de algoritmos
PPTX
GitHub Presentation
PPTX
Arquitectura de software
PDF
Tabla comparativa- metodologías de desarrollo
PPTX
Organización de un centro de computo
PPTX
ETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XP
PDF
Cuestionario
DOC
Plan de iteracion
PPTX
Introducción a git y git hub
PPTX
Planificacion de proyecto de software
ODP
Presentacion fase de lanzamiento tsp
Internet de las cosas (Lot)
2. El proceso del software
Diagrama de casos de usos
Roles para el tsp
Programación 3: Clases y objetos en Java
Unidad 2 sistemas programables
Modelo cascada
Presentacion de algoritmos
GitHub Presentation
Arquitectura de software
Tabla comparativa- metodologías de desarrollo
Organización de un centro de computo
ETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XP
Cuestionario
Plan de iteracion
Introducción a git y git hub
Planificacion de proyecto de software
Presentacion fase de lanzamiento tsp
Publicidad

Destacado (20)

PPTX
Ciclo de vida de un SI y BD
DOCX
Clasificación y descripción de los programas informáticos
PPT
2 punteros y lenguaje c
PPTX
Lenguaje C_Curso Secap
PPS
Tema6
 
DOCX
FUNCIONES EN LENGUAJE C
PPSX
Capitulo 10 Introduccion a los diagramas de flujo
PPT
GUÍA RÁPIDA LENGUAJE C/AL
PPTX
Funciones en Lenguaje C
PDF
Trabajo de susana diccionario de datos
PPTX
Estructura de datos y algoritmos
PPT
Logica taller de tipo de datos
PPT
Ciclo de vida del software
PPSX
Instrucciones de control alternativas
PPS
Representación de los datos
PPT
Presentación trabajo programación
PPT
Caracteres y Cadenas en C
PDF
05 - Funciones en lenguaje C
PDF
Estructuras de control
PPSX
Estructura de un Algoritmo
Ciclo de vida de un SI y BD
Clasificación y descripción de los programas informáticos
2 punteros y lenguaje c
Lenguaje C_Curso Secap
Tema6
 
FUNCIONES EN LENGUAJE C
Capitulo 10 Introduccion a los diagramas de flujo
GUÍA RÁPIDA LENGUAJE C/AL
Funciones en Lenguaje C
Trabajo de susana diccionario de datos
Estructura de datos y algoritmos
Logica taller de tipo de datos
Ciclo de vida del software
Instrucciones de control alternativas
Representación de los datos
Presentación trabajo programación
Caracteres y Cadenas en C
05 - Funciones en lenguaje C
Estructuras de control
Estructura de un Algoritmo
Publicidad

Similar a Ciclo de vida de un programa (20)

DOCX
Programacion informatica
PPTX
Introducción a Programación I (Clase1).pptx
PPTX
Diapositivas fundamentos-de-programacion
PDF
Programación
PDF
PROGRAMACION EN C
PPTX
Programacion
PPTX
introduccion a la programacion Algoritmos Aplicaciones Errores Lenguajes de P...
DOC
PDF
Unidad Iii Generalidades Sobre Algoritmos
PDF
Tema1b 120417003759-phpapp01
PDF
Programacio nfin
PPTX
Introduccion a la programacion
PDF
Clase 2
PDF
Lectur act 3
PDF
1 conceptos generales de_programacion
PDF
Clase 7 la_programacion
PPTX
PPTX
introduccinalaprogramacin1-221020044822-0d05d20a.pptx
PPT
Programación
Programacion informatica
Introducción a Programación I (Clase1).pptx
Diapositivas fundamentos-de-programacion
Programación
PROGRAMACION EN C
Programacion
introduccion a la programacion Algoritmos Aplicaciones Errores Lenguajes de P...
Unidad Iii Generalidades Sobre Algoritmos
Tema1b 120417003759-phpapp01
Programacio nfin
Introduccion a la programacion
Clase 2
Lectur act 3
1 conceptos generales de_programacion
Clase 7 la_programacion
introduccinalaprogramacin1-221020044822-0d05d20a.pptx
Programación

Más de Carlos Pes (20)

PDF
Fases para escribir publicar y dar a conocer un libro
PPSX
EL CASO RENFE-FJD
PDF
35 ESCALONES - Un libro que muchos tratan de ocultar
PPSX
Instrucciones de control repetitivas
PDF
Fundamentos del SEO en Congreso Web 2013
PPSX
Presentacion libro Fundamentos del SEO en Pamplona
PDF
Analisis de la presentación del libro Fundamentos del SEO by Tweet Category
PPSX
16 Claves para tener éxito en SEO
PPSX
Apuntes Curso SEO Tudela - Febrero-2013
PPSX
Descubre cómo posicionar tu Web en los buscadores
PPSX
Factores que influyen en el SEO
PPSX
1,2 billones de razones para hacer seo
PPSX
Generalidades del SEO
PPSX
Aspectos del SEO que debe conocer un Community Manager
PPSX
Introducción a la codificación en lenguaje C
PDF
Ejemplo Propuesta Seguimiento SEO
PDF
Ejemplo Propuesta Auditoría SEO
PPSX
SEO Una profesión en auge
PPS
Asignación, Salida y Entrada
PPS
Operadores y Expresiones
Fases para escribir publicar y dar a conocer un libro
EL CASO RENFE-FJD
35 ESCALONES - Un libro que muchos tratan de ocultar
Instrucciones de control repetitivas
Fundamentos del SEO en Congreso Web 2013
Presentacion libro Fundamentos del SEO en Pamplona
Analisis de la presentación del libro Fundamentos del SEO by Tweet Category
16 Claves para tener éxito en SEO
Apuntes Curso SEO Tudela - Febrero-2013
Descubre cómo posicionar tu Web en los buscadores
Factores que influyen en el SEO
1,2 billones de razones para hacer seo
Generalidades del SEO
Aspectos del SEO que debe conocer un Community Manager
Introducción a la codificación en lenguaje C
Ejemplo Propuesta Seguimiento SEO
Ejemplo Propuesta Auditoría SEO
SEO Una profesión en auge
Asignación, Salida y Entrada
Operadores y Expresiones

Último (20)

PDF
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
PDF
Ernst Cassirer - Antropologia Filosofica.pdf
DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
PDF
IPERC...................................
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PPTX
Presentación de la Cetoacidosis diabetica.pptx
DOCX
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
PDF
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
PDF
Atencion prenatal. Ginecologia y obsetricia
PPTX
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
PDF
Teologia-Sistematica-Por-Lewis-Sperry-Chafer_060044.pdf
PDF
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
DOCX
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
PPTX
Doctrina 1 Soteriologuia y sus diferente
PDF
EL aprendizaje adaptativo bajo STEM+H.pdf
PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
Ernst Cassirer - Antropologia Filosofica.pdf
PLAN DE CASTELLANO 2021 actualizado a la normativa
IPERC...................................
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
Presentación de la Cetoacidosis diabetica.pptx
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
Atencion prenatal. Ginecologia y obsetricia
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
Teologia-Sistematica-Por-Lewis-Sperry-Chafer_060044.pdf
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
Doctrina 1 Soteriologuia y sus diferente
EL aprendizaje adaptativo bajo STEM+H.pdf
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf

Ciclo de vida de un programa

  • 1. Capítulo 3 CICLO DE VIDA DE UN PROGRAMA Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas ( [email_address] )
  • 2. OBJETIVOS Saber qué es la Ingeniería del Software . Conocer los pasos que se tienen que dar para desarrollar un programa. Entender cómo el programador puede escribir unas instrucciones comprensibles para la máquina . Hoy en día, la computadora es una herramienta indispensable en muchos ámbitos, tales como: la medicina, la astronomía, las comunicaciones, etc. Gracias a la informática, se han producido avances tecnológicos que eran impensables antes de la llamada “revolución de las computadoras” . No obstante, la máquina no puede hacer absolutamente nada sin un software, es decir, sin un programa que le diga qué es lo que tiene que hacer. Pero, ¿cómo se hace un programa? Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 3. CONTENIDO 3.1 INTRODUCCIÓN 3.2 ANÁLISIS 3.3 DISEÑO 3.4 CODIFICACIÓN 3.5 PRUEBAS 3.6 MANTENIMIENTO Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 4. 3.1 INTRODUCCIÓN (1/4) Software a medida : Empresas (desarrolladora y cliente). EJEMPLOS: Gestión de la venta de billetes de un aeropuerto. Gestión del alquiler de películas de un videoclub. Gestión de los historiales médicos de los pacientes de un hospital. Software no a medida : EJEMPLOS: Procesadores de textos. Juegos. Enciclopedias electrónicas. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 5. 3.1 INTRODUCCIÓN (2/4) Metodología de la programación : Disciplina que alberga una serie de técnicas y conocimientos científicos relacionados con la informática. Paradigmas de programación : Programación estructurada. Aplicación del diseño modular . Utilización, exclusivamente, de estructuras secuenciales , alternativas y repetitivas . Empleo de estructuras de datos adecuadas para manipular información. Programación Orientada a Objetos. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 6. 3.1 INTRODUCCIÓN (3/4) Ingeniería del Software : Ciclo de vida de un programa (5 etapas). Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” Planificación de tareas (fechas de inicio y fin). Control de tareas (seguimiento continuo del proyecto).
  • 7. 3.1 INTRODUCCIÓN (4/4) Calidad del software : Características operativas: Corrección , ¿hace lo que se espera de él? Eficiencia , ¿se utilizan, óptimamente, los recursos de la computadora? Facilidad de uso , ¿la interfaz es adecuada al usuario? Integridad , ¿es seguro con respecto a los datos? Capacidad para sufrir cambios: Facilidad de mantenimiento , ¿es susceptible de ser corregido? Flexibilidad , ¿es susceptible de ser cambiado? Facilidad de prueba , ¿resulta fácil hacer pruebas? Adaptabilidad a nuevos entornos: Reusabilidad , ¿se puede usar parte del software en otro proyecto? Facilidad de interoperación , ¿puede interactúar con otros SI? Portabilidad , ¿se puede usar en otra máquina (procesador)? Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 8. 3.2 ANÁLISIS (1/2) Especificación de Requisitos Software (ERS) : ¿ Qué tiene que hacer el programa? Comportamiento interno (gestión de los datos). Comportamiento externo (interacción con el usuario y con otras aplicaciones). Contrato (empresa desarrolladora y empresa cliente) PREGUNTAS: ¿Qué debe hacer el programa? ¿Qué datos de entrada y de salida intervienen en el proceso? ¿En qué máquina y sistema operativo se va a ejecutar? ¿Quién será el usuario de la aplicación? Tratamiento de errores, seguridad de los datos, etc. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 9. 3.2 ANÁLISIS (2/2) PROBLEMA EJEMPLO: Suma de dos números enteros 1) En primer lugar, el programa debe pedir por teclado dos números ( datos enteros ). 2) A continuación, calculará la suma de los dos números introducidos por el usuario. 3) Finalmente, tiene que mostrar por pantalla el resultado obtenido ( dato entero ). En pantalla se mostrará: Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 10. 3.3 DISEÑO (1/6) Se tiene que encontrar una solución informática al problema planteado. Dicha solución determinará cómo se va a resolver el problema. Uso del diseño modular o descendente ( top-down ). Divide y vencerás (subproblemas) Abstracción Encapsulación Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 11. 3.3 DISEÑO (2/6) EJEMPLO DISEÑO MODULAR: Gestión de un videoclub Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 12. 3.3 DISEÑO (3/6) Algoritmo : Establece de manera genérica e informal, la secuencia de pasos o acciones que resuelve un determinado problema. Notación: Pseudocódigo Diagramas de flujo (ordinogramas) Pseudocódigo : Es un lenguaje de programación algorítmico . Es un lenguaje intermedio entre el lenguaje natural y cualquier lenguaje de programación específico, como son: C, FORTRAN, Pascal, etc. Ordinograma : Representa, de manera gráfica, el orden de los pasos o acciones de un algoritmo. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 13. 3.3 DISEÑO (4/6) ALGORITMO EJEMPLO: Suma de dos números enteros (Pseudocódigo) Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 14. 3.3 DISEÑO (5/6) ALGORITMO EJEMPLO: Suma de dos números enteros (Ordinograma) Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 15. 3.3 DISEÑO (6/6) Cualidades de un algoritmo : (solución más óptima) Finitud Precisión Claridad Generalidad Eficiencia Sencillez Modularidad Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 16. 3.4 CODIFICACIÓN (1/9) EJEMPLO (lenguaje C): Suma de dos números enteros Las acciones definidas en el algoritmo hay que convertirlas a instrucciones ( sentencias ). Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 17. 3.4 CODIFICACIÓN (2/9) Lenguaje de programación : Es un lenguaje artificial que permite escribir las instrucciones de un programa informático. Permite al programador comunicarse con la computadora para decirle qué es lo que tiene que hacer. Tipos de lenguajes: máquina de bajo nivel de alto nivel Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 18. 3.4 CODIFICACIÓN (3/9) Lenguaje máquina o binario : Es el único que entiende la computadora digital. Dos símbolos: el cero ( 0 ) y el uno ( 1 ). Inconveniente: No es portable. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C” Lenguajes de bajo nivel o ensambladores : Más entendibles para el programador. Abreviaturas del inglés (nemotécnicos): ADD, DIV, SUB, etc. Inconveniente: No es portable.
  • 19. 3.4 CODIFICACIÓN (4/9) Lenguaje de alto nivel : Se utilizan palabras o expresiones sintácticas muy similares al inglés ( case , if , for , while ,...). EJEMPLO: if ( numero > 0 ) printf( " El número es positivo " ); Si numero es mayor que cero, entonces, escribir por pantalla el mensaje: “El número es positivo”. Ventaja: Sí es portable. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 20. 3.4 CODIFICACIÓN (5/9) Relación entre las instrucciones de alto nivel, ensamblador y máquina: Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 21. 3.4 CODIFICACIÓN (6/9) Fases de la puesta a punto de un programa escrito en C: Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 22. 3.4 CODIFICACIÓN (7/9) Intérprete : Se caracteriza por traducir y ejecutar, de una en una , las instrucciones del código fuente de un programa, pero, sin generar como salida código objeto. Proceso: Lee la primera instrucción del código fuente. La traduce a código objeto y la ejecuta. A continuación, hace lo mismo con la segunda instrucción. Y así sucesivamente, hasta llegar a la última instrucción del programa, siempre y cuando, no se produzca ningún error que detenga el proceso. Tipos de errores : de sintaxis de ejecución de lógica Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 23. 3.4 CODIFICACIÓN (8/9) Errores de sintaxis : Se detectan en el proceso de traducción del código fuente a código binario. Impide, tanto al compilador como al intérprete, hacer la traducción. EJEMPLO: prrintf( " Introduzca el primer numero (entero): " ); Error de ejecución : El ordenador no puede ejecutar alguna instrucción de forma correcta. EJEMPLO: c = 5 / 0 ; ( no se puede dividir entre cero ) Error de lógica : Los resultados obtenidos no son los esperados. EJEMPLO: c = a * b ; en vez de c = a + b ; Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 24. 3.4 CODIFICACIÓN (9/9) Entornos Integrados de Desarrollo (EID) : Son aplicaciones informáticas que incluyen a todos los programas necesarios para realizar todas las fases de puesta a punto de un programa. En el caso de C se necesita: Editor Preprocesador Compilador Enlazador Suelen incluir otras herramientas software: Depurador de código Ayuda en línea de uso del lenguaje Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 25. 3.5 PRUEBAS Pruebas : Tratamiento de los datos. Adaptación al resto sistema informático. Interacción con otras aplicaciones. Hay que comprobar, exhaustivamente, la funcionalidad . Es imposible probarlo todo. Pueden darse situaciones inesperadas. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 26. 3.6 MANTENIMIENTO Mantenimiento : Reparación de errores no detectados en las fases anteriores. Modificaciones para ampliar o cambiar alguna funcionalidad. Documentación : Externa: ERS, algoritmos, códigos fuentes, manuales de usuario,... Interna: Comentarios en el código fuente. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 27. EJERCICIOS RECOMENDADOS Resueltos : 1 y 2. Propuestos : 1, 2, 3 y 4. Capítulo 3. CICLO DE VIDA DE UN PROGRAMA Libro: “EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C”
  • 28. http://www.carlospes.com GRACIAS POR SU ATENCIÓN Para más información, puede visitar la web del autor: