Portafolio digital modelo de programación pdf

Page 1

PROYECTO FINAL DE MODELO DE PROGRAMACIÓN


Nombre: Mackdiel Manuel Domínguez Francisco Cedula: 2-729-701 Fecha de Nacimiento: 12 de Febrero de 1992 Nacionalidad: Panameno Numero de Telefono: 991-2085 Celular: 6299-7053 Estado Civil: Soltero Direccion: San Antonio– Penonome Correo Electronico: mackdielmanuel@hotmail.com

Sobre mí: Soy una persona con empeno y deseos de superacion, responsable y honesto. Capacidad de trabajar bajo presion, en cualquier area. Habilidades para establecer y mantener buenas relaciones.


INTRODUCCION

El siguiente portafolio habla acerca del modelo de programación por temas, donde podemos encontrar como está dividido, donde y cuando de utilizan los diferentes modelos de programación y conocer por primera vez acerca de otros modelos que no conocíamos, aquí también se

hablara

acerca

de

la

estructura

de

control

detalladamente.

El objetivo es que en el centro solo exista una mejor perspectiva de lo que es un modelo de programación, como está compuesto y quien lo conforma.


TABLA DE CONTENIDO Presentacion Introduccion Objetivos Criterios de Evaluacion

1.

Aspectos generales de programacion…………………………………………1 Pag.

1.1.

Conceptos basicos……………………………………………………………………..2 Pag.

1.2.

Modelos de programacion…………………………………………………………4 Pag.

1.3

Programacion modular……………………………………………………………17 Pag.

1.4

Programacion estructurada……………………………………………………19 Pag.

2.

Estructuras basicas de control…………………………………………………21 Pag.

2.1. Estructuras secuenciales…………………………………………………………..22 Pag. 2.2. Estructuras selectivas………………………………………………………………..23 Pag. 2.3. Estructuras repetitivas……………………………………………………………….28 Pag. 3.

Analisis reflexivo por tema y sus ejemplos……………………….………33 Pag.

4.

Conclusion………………………………………………………………………………39 Pag.

5.

Bibliografía…………………………………………………………………………….40 Pag.

6. Evidencias……………………………………………………….……………………………41 Pag. 7. Lista de Cotejo


OBJETIVOS •

Adquirir conocimiento a traves de los distintos

programas que estudiamos en el curso de Modelo de Programacion para poder lograr un mejor desempeno como estudiante dentro del salon de clase y como profesional brindar una educacion de primera calidad.

 Lograr conocimientos a traves de las capacidades de estudios con unas amplias destrezas de tecnología y metodos innovadores eficaces, a la par con los crecimientos tecnologicos de nuestros tiempos.


CRITERIOS DE EVALUACION TRABAJO ESCRITO Criterios

Indicadores

Escala sumativa 20

Presentación

1.

10

5

Entrega puntual en la fecha indicada.

20 puntos 2.

Organización visualización

y de

la

información. 3.

Formato digital claro

4.

Cumplimiento de metas y objetivos.

Criterios Creatividad /originalidad

Indicadores 1.

20

10

5

60

40

20

Formato adecuado para el portafolio.

20 puntos 2.

Configuraciones correctas

3.

Incorporación de imágenes

4.

Aportes complementarios al tema.

Criterios Contenido

Indicadores 1.

Relevancia de la información incluida.

60 puntos

2.

Evidencias suministradas

3.

Profundidad de las reflexiones.

Total Obtenido

4.

Comunicación de ideas.

5.

Solución de problemas.

6.

Conclusiones


1.

Aspectos Generales de Programación

Las tecnicas de programacion constituyen parte fundamental en el proceso de desarrollo e Ingeniería del Software dentro del ambito informatico. Cada tecnica tiene sus propias características, distintos metodos de resolucion de problemas, así como la implementacion de estandares de ciertas companías o instituciones, y es de gran importancia aprender a implementarlas a la hora de adentrarse en la evolucion de cualquier proyecto de desarrollo de software.

1


1.1. Conceptos básicos  Modelo de Programación. Un modelo de programacion provee y determina la vision y metodos de un programador en la construccion de un programa o subprograma.  Traductores de lenguaje Un traductor de lenguaje es un programa que traduce a codigo de maquina un programa fuente escrito en un lenguaje de alto nivel.  Intérpretes Es un traductor que recibe como entrada un programa fuente, lo traduce y lo ejecuta. Un interprete traduce y ejecuta una instruccion en codigo fuente, a la vez. Los programas interpretados generalmente son mas lentos en ejecucion que los programas compilados.

2


 Compiladores Un compilador traduce un programa fuente escrito en lenguaje de alto nivel al lenguaje de maquina de la computadora. El programa traducido a lenguaje de maquina es almacenado como codigo objeto Programación Estructurada La programacion se divide en bloques (procedimientos y funciones) que pueden o no comunicarse entre sí. Ademas la programacion se controla con secuencia, seleccion e iteracion. Permite reutilizar codigo programado y otorga una mejor compresion de la programacion Algoritmo Un algoritmo es un procedimiento para resolver un problema. Este describe un conjunto finito y ordenado de pasos, reglas o instrucciones para producir la solucion a un problema dado.

3


1.2. Modelos de programaciĂłn Contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotacion y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definicion de los requisitos hasta la finalizacion de su uso. Los tipos o tecnicas de programacion son bastante variados, aunque puede que muchos solo conozcan una metodologĂ­a para realizar programas. En la mayorĂ­a de los casos, las tecnicas se centran en programacion modular y programacion estructurada, pero existen otros tipos de programacion.

4


ďƒ˜ Modelo en cascada:

Es un proceso secuencial de desarrollo en el que los pasos de desarrollo son vistos hacia abajo a traves de las fases de analisis de las necesidades, el diseno, implementacion,

pruebas

(validacion), la integracion, y mantenimiento.

Principios bĂĄsicos: 1- Esta dividido en fases secuenciales. 2- Se desarrolla asĂ­: la planificacion, los horarios, fechas, presupuestos y ejecucion de todo un sistema de una sola vez.

5


Desventajas • No aprovecha la iteracion, ni el desarrollo exploratorio• Espera requerimientos definidos completamente al inicio del proyecto –IREAL. • Dificultar para integrar administracion del riesgo. • El software es entregado tarde en el proyecto Esto hace que se detecten errores graves muy tarde. • Hacer cambios es difícil y costoso

6


ďƒ˜ Prototipado Es el framework de actividades dedicada al desarrollo de software prototipo, o sea versiones incompletas del software a desarrollar. Permite que todo el sistema, se construyan rapidamente para comprender con facilidad y aclarar ciertos aspectos en los que se aseguren que el desarrollador, el usuario, el cliente esten de acuerdo en lo que se necesita asĂ­ como tambien la solucion que se propone para dicha necesidad y de esta forma minimizar el riesgo y la incertidumbre en el desarrollo, este modelo se encarga del desarrollo de disenos para que estos sean analizados y prescindir de ellos a medida que se adhieran nuevas especificaciones, es ideal para medir el alcance del producto, pero no se asegura su uso real.

7


Ventajas del uso de prototipos 1. Permiten el desarrollo de un sistema a partir de requisitos poco claros o cambiantes. Esto ocurre con cierta frecuencia en muchos proyectos de software. 2. Como informacion complementaria a los requisitos constituyen un gran apoyo a las estimaciones de esfuerzo de todas las areas, incluyendo proveedores. 3. Son mas faciles de abordar con los usuarios finales.

8


ďƒ˜ Espiral Es un modelo de proceso de software evolutivo, desarrollado por primera vez por Barry Boehm en 1988. Las actividades de este

modelo

se

conforman en una espiral, en la que cada

bucle

o

iteracion representa

un

conjunto

de

actividades.

Las

actividades no estan fijadas a priori, sino que las siguientes se eligen en funcion del analisis de riesgo, comenzando por el bucle interior. Principio BĂĄsico La atencion se centra en la evaluacion y reduccion del riesgo del proyecto dividiendo el proyecto en segmentos mas

9


pequenos y proporcionar mas facilidad de cambio durante el proceso de desarrollo, asĂ­ como ofrecer la oportunidad de evaluar los riesgos y con un peso de la consideracion de la continuacion del proyecto durante todo el ciclo de vida CARACTERISTICAS 1. En cada giro se construye un nuevo modelo del sistema completo. 2. Este modelo puede combinarse con otros modelos de proceso de desarrollo (cascada, evolutivo). 3. Es el mejor modelo para el desarrollo de grandes sistemas. 4. El analisis de riesgo requiere la participacion de personal con alta calificacion. 5. No hay un numero definido de iteraciones. 6. Las iteraciones debe decidirlas el equipo de gestion de proyecto. 7. Mas realista que el ciclo de vida clasico. 8. Este es el enfoque mas realista actualmente.

10


VARIANTES Modelo espiral de cuatro regiones o modelo original de Boehm. Modelo espiral de seis regiones. Modelo espiral WINWIN Cada viaje alrededor de la espiral atraviesa cuatro cuadrantes bรกsicos 1-

Determinar

objetivos,

alternativas, y desencadenantes de la iteracion. 2) Evaluar alternativas; Identificar y resolver los riesgos. 3) desarrollar y verificar los resultados de la iteracion. 4) plan de la proxima iteracion. Cada ciclo comienza con la planificacion, determinar objetivos, analisis de riesgo, y desarrollar y probar.

11


ďƒ˜ Incremental Provee una estrategia para controlar la complejidad y los riesgos, desarrollando una parte del producto software reservando el resto de aspectos para el futuro. El proceso se divide en 4 partes: Analisis, Diseno, Codigo y Prueba. Para apoyar el desarrollo de proyectos por medio de este modelo se han creado frameworks (entornos de trabajo), de los cuales los dos mas famosos son el Rational Unified Process y el Dynamic Systems Development Method. El desarrollo incremental e iterativo es tambien una parte esencial de un tipo de programacion conocido como Extreme Programming y los demas frameworks de desarrollo rapido de software. Los principios bĂĄsicos son: ď ˝ Una serie de mini-Cascadas se llevan a cabo, donde todas las fases de la cascada modelo de desarrollo se han completado

12


para una pequena parte de los sistemas, antes de proceder a la proxima incremental. ď ˝ Se definen los requisitos antes de proceder con lo evolutivo, se realiza una mini-Cascada de desarrollo de cada uno de los incrementos del sistema.

ď ˝ El concepto inicial de software, analisis de las necesidades, y el diseno de la arquitectura y colectiva basicas se definen utilizando el enfoque de cascada, seguida por iterativo de prototipos, que culmina en la instalacion del prototipo final.

13


 RAD:

Rapid

Application

Development,

framework

iterativo. El desarrollo rapido de aplicaciones (RAD) es una metodología de desarrollo

de

software, que implica el

desarrollo

interactivo construccion

y

la de

prototipos. El desarrollo rapido de aplicaciones es un termino originalmente utilizado para describir un proceso de desarrollo de software introducido por James Martin en 1991. El desarrollo rapido de aplicaciones tiende a englobar tambien la usabilidad, utilidad y la rapidez de ejecucion. Siendo así un modelo de proceso del desarrollo del software lineal secuencial que enfatiza un ciclo de desarrollo extremadamente corto. DRA es una adaptacion a “Alta velocidad” en el que se logra el

14


desarrollo rapido utilizando un enfoque de construccion basado en componentes. Principios Bรกsicos 1. Intenta reducir los riesgos inherentes del proyecto partiendolo en segmentos mas pequenos y proporcionar mas facilidad de cambio durante el proceso de desarrollo. 2. Orientacion dedicada a producir sistemas de alta calidad con rapidez, principalmente mediante el uso de iteracion por prototipos (en cualquier etapa de desarrollo), promueve la participacion de los usuarios y el uso de herramientas de desarrollo computarizadas. 3. Estas herramientas pueden incluir constructores de Interfaz grafica

de

usuario

(GUI),

Computer

Aided

Software

Engineering (CASE) las herramientas, los sistemas de gestion de bases de datos (DBMS), lenguajes de programacion de cuarta generacion, generadores de codigo, y tecnicas orientada a objetos.

15


4. Hace especial hincapie en el cumplimiento de la necesidad comercial, mientras que la ingenierĂ­a tecnologica o la excelencia es de menor importancia. Ventajas de RAD 1. Los entregables pueden ser facilmente trasladados a otra plataforma. 2. El desarrollo se realiza a un nivel de abstraccion mayor. 3. Visibilidad temprana. 4. Mayor flexibilidad. 5. Menor codificacion manual. 6. Mayor involucramiento de los usuarios. 7. Posiblemente menos fallas. 8. Posiblemente menor costo. 9. Ciclos de desarrollo mas pequenos. 10.

Interfaz grafica estandar.

Desventajas de RAD 1. Progreso mas difĂ­cil de medir. 2. Menos eficiente. 3. Menor precision cientĂ­fica. 16


1.3 Programaci贸n modular En la programacion modular consta de varias secciones dividas de forma que interactuan a traves de llamadas a procedimientos, que integran el programa en su totalidad. El programa

principal

coordina

las

llamadas a los modulos secundarios y pasa

los

datos necesarios en forma de parametros. A su vez cada modulo puede contener sus propios datos y llamar a otros modulos o funciones. Es un paradigma de programacion que consiste en dividir un programa en modulos o sub programas con el fin de hacerlo mas legible y manejable. Un conjunto de instrucciones que realizan una tarea concreta o proporcionan unos determinados resultados, y que puede ser llamada (invocada) desde el programa principal o desde otros modulos.

17


Ventajas 1.

Programas mas estructurados y legibles.

2.

Los subprogramas son independientes

3.

Se pueden escribir, compilar y probar de forma independiente, por lo que en un programa de gran tamano pueden trabajar distintos programadores.

4.

Se puede modificar un subprograma sin afectar al resto de del programa, por lo que se pueden realizar cambios en un modulo sin que sea necesario modificar (ni volver a probar) el resto

5.

Los subprogramas son reutilizables.

Programaci贸n modular en C++ 1.

C++ es un lenguaje que orientado a la programacion modular.

2.

Todo programa en C++ se compone de varios modulos denominados funciones.

3.

El programa principal en C++ es la funcion main.

4.

Se puede ver como una funcion a su vez, llamada desde el sistema operativo.

5.

Las funciones son llamadas desde la funcion main o desde otras funciones.

18


1.4

ProgramaciĂłn estructurada

Tecnica de construccion de programas que utilizan al maximo los recursos del lenguaje, limita el conjunto de estructuras aplicables a leer y presenta una serie de reglas que coordinan adecuadamente el desarrollo de las diferentes fases de la programacion. La programacion estructurada esta compuesta por un conjunto de

tecnicas

que

han

ido

evolucionando

aumentando

considerablemente la productividad del programa reduciendo el tiempo de depuracion y mantenimiento del mismo. Esta programacion estructurada utiliza un numero limitado de estructuras de control, reduciendo asĂ­ considerablemente los errores. La programacion estructurada es una teorĂ­a de programacion que consiste en construir programas de facil comprension, es especialmente util, cuando se necesitan realizar correcciones o modificaciones despues de haber concluido un programa o aplicacion. Al utilizar la programacion estructurada, es mucho mas sencillo entender la codificacion del programa, que se habra hecho en diferentes secciones. 19


ďƒź Ventajas 1. Los programas son mas faciles de entender 2. Reduccion del esfuerzo en las pruebas. 3. Reduccion de los costos de mantenimiento. 4. Programas mas sencillos y mas rapidos 5. Aumento de la productividad del programador 6. Los programas quedan mejor documentados internamente.

La programacion estructurada se basa un teorema fundamental, el cual afirma que cualquier programa, no importa el tipo de trabajo que ejecute, puede ser elaborado utilizando unicamente las tres estructuras basicas que veremos en los puntos 2.1, 2.2 y 2.3.

20


2. Estructuras Básicas de control Las estructuras de control determinan la secuencia en la que se ejecutaran las instrucciones de un programa. Son enunciados de codigo que determinan el flujo de la informacion.

Las estructuras de control se dividen en tres categorías en funcion del flujo de ejecucion:  Estructura secuencial.  Estructura selectiva, alternativa o condicional.  Estructura iterativa o repetitiva.

21


2.1. Estructuras Secuenciales Sus instrucciones se ejecutan una despues de la otra, en el mismo orden en el cual aparecen en el programa. Cada una de las instrucciones estan separadas por el caracter punto y coma (;), en algunos casos nos interesara agrupar en un bloque una serie de instrucciones, como se los explicare en las estructuras de seleccion y de iteracion. El bloque de sentencias se define por el caracter llave de apertura ({) para marcar el inicio del mismo, y el caracter llave de cierre (}) para marcar el final. Se representa graficamente como una caja despues de otra, ambas con una sola entrada y una unica salida. Ejemplo

{ instrucción 1; instrucción 2; instrucción 3; ..... instrucción N; }

Las cajas A y B pueden ser definidas para ejecutar desde una simple instrucción hasta un módulo o programa completo, siempre y cuando éstos también sean programas apropiados.

22


2.2. Estructuras Selectivas Las estructuras condicionales controlan si una sentencia o bloque de sentencias se ejecutan, en funcion del cumplimiento o no de una condicion o expresion logica. Conocida como la estructura si verdadero - falso, plantea la seleccion entre dos alternativas con base en el resultado de la evaluacion de una condicion; C++ tiene dos estructuras de control para la seleccion, if y switch. Se representa graficamente de la siguiente manera:

En el diagrama de flujo anterior, C es una condición que se evalúa; A es la acción que se ejecuta cuando la evaluación de esta condición resulta verdadera y B es la acción ejecutada cuando el resultado de la evaluación indica falso.

23


Simples If-else

Cuando se evalua una condicion, y se tienen solamente dos alternativas.

MĂşltiples Switch

Cuando se evalua una condicion, y se tienen varias alternativas para elegir.

 IF 1. En su forma basica, evalua una condicion y dirige la ejecucion del programa dependiendo del resultado de esa evaluacion. 2. Si la expresion evalua a verdadero, se ejecuta el bloque de codigo. Los enunciados solo se ejecutan si se cumple la condicion.

3. La ejecucion del programa continua despues de la llave que cierra el bloque perteneciente al enunciado if. 4. La forma del enunciado if con la clausula else ofrece 2 opciones; cuando se cumpla y cuando no se cumpla la condicion.

24


If Simples:

If-else:

if (condicion) instrucción1;

if (condicion) instrucción1; else instrucción2;

if (condicion) { instrucción 1; instrucción 2; instrucción 3; }

if (condicion) { Instrucción 1; instrucción 2; } else { instrucción 3; instrucción 4; }

Ejemplo de estructura condicional en C++. Programa que lee un número entero por teclado y muestra si es par o impar.

#include <iostream> using namespace std; int main(void) { int num; cout <<"Introduzca numero:"; cin >> num; if ((num%2)==0) cout << "PAR" << endl; else cout << "IMPAR" << endl; system("pause"); }

25


MĂşltiples Switch

1. En una instruccion switch, expresion debe ser una expresion con un valor entero, y constante1, constante2, deben ser constantes enteras, constantes de tipo caracter o una expresion constante de valor entero. 2. La instruccion switch evalua la expresion entre parentesis y compara su valor con las constantes de cada caso. 3. Se ejecutaran las instrucciones de aquel case cuya constante coincida con el valor de la expresion, y continua hasta el final del bloque o hasta una instruccion que transfiera el control fuera del bloque del switch (una instruccion break, o return). 4. Si no existe una constante igual al valor de la expresion, entonces se ejecutan las sentencias que estan a continuacion de default si existe, no es obligatorio que exista, y no tiene porque ponerse siempre al final.

26


Ejemplo: Determina si un caracter leĂ­do es o no una vocal. #include <iostream> using namespace std; int main(void) { char car; cout << "Introduzca un caracter: "; cin >> car; switch (car) { case 'a': case 'A': case 'e': case 'E': case 'i': case 'I': case 'o': case 'O': case 'u': case 'U': cout << car << " es una vocal" << endl; break; default : cout << car << " no es una vocal" << endl; } system("pause"); }

27


2.3. Estructuras repetitivas Tambien llamada la estructura hacer – mientras- corresponde a la ejecucion repetida de una instruccion mientras que se cumple una determinada condicion. El diagrama de flujo para esta estructura es el siguiente:

Aquí el bloque A se ejecuta repetidamente mientras que la condición C se cumpla o sea cierta. También tiene una sola entrada y una sola salida; igualmente A puede ser cualquier estructura básica o conjunto de estructuras.

28


C++ dispone de tres estructuras repetitivas: 1. For: Este ciclo es utilizado cuando se conoce el numero de repeticiones que se requieren. Hace que una instruccion o bloque de instrucciones se repitan un numero determinado de veces mientras se cumpla la condicion. Ejemplo

for(inicialización; condicion; incremento/decremento) { instrucción 1; ........... instrucción N; }

Despues de la palabra for y entre parentesis debe haber siempre tres zonas separadas por punto y coma:  Zona de inicialización  Zona de condición  Zona de incremento ó decremento.

29


Ejemplo de instruccion for en C++. Programa que muestra los numeros del 1 al 10. /* muestra los nĂşmeros de 1 a 10 */ #include <iostream> using namespace std; int main(void) { int n; for (n = 1; n <= 10; n++) { cout << n << endl; } system("pause"); }

2. While: Es util cuando se desconoce el numero de iteraciones requeridas. Se puede terminar el ciclo cuestionando al usuario o generando algun valor desde dentro del ciclo. Se evalua la condicion, y si es cierta, se ejecuta la instruccion o bloque de instrucciones y se vuelve a evaluar la condicion; pero si la condicion es falsa, se pasa a ejecutar la siguiente instruccion despues del while.

30


while en C++. Programa que lee numeros enteros hasta que se lee un numero negativo. Se muestra la suma de todos los numeros leídos excepto el numero negativo. /*Programa que lee números hasta que se lee un negativo y muestra la suma de los números leídos */ #include <iostream> using namespace std; int main(void) { int suma, num; suma = 0; cout << "Introduzca un numero: "; cin >> num; while (num >= 0) { suma = suma + num; cout << "Introduzca un numero: "; cin >> num; } cout << endl << "La suma es: " << suma << endl; system("pause"); }

31


3.

Do While:

Ejecuta una instrucción o un bloque de instrucciones, una o más veces, dependiendo del valor de la condición. Cuando se utiliza una instrucción do-while el bloque de instrucciones se ejecuta al menos una vez, ya que la condición se evalúa al final. En cambio, con una instrucción while, puede suceder que el bloque de instrucciones no llegue a ejecutarse nunca si la condición inicialmente es falsa. Ejemplo de instrucción do while en C++. Programa que lee un número entero. El número debe estar comprendido entre 1 y 100. /* lee un número entre 1 y 10 */ #include <iostream> using namespace std; int main(void) { int numero; do { cout << "Introduzca un numero entre 1 y 100: "; cin >> numero; } while (numero < 1 || numero > 100); }

32


3. Análisis Reflexivo  Modelo de programación Los modelos de programacion son aquellos procesos que implican en el desarrollo y ele mantenimiento de un producto de software empezando desde la vida del sistema las exigencia hasta llega al final del su uso. Las mayoría del las persona se concentra en solo dos (modular y estructurada) tipo de modelo de programacion cuando en realidad son mas que a continuacion les estare explicando.

Modelo en cascada Un modelo de cascada lo resumimos en un proceso que va en forma descendente hacia abajo donde podemos mencionar cinco procesos que son el analisis, diseno, codificacion, prueba, integracion y mantenimiento Analisis de requisito: En el analisis de requisito es donde se busca saber cuales son las necesidades para cumplir todo los objetivos planteados Diseno: En el diseno de programa es donde veremos las necesidades que se deben cumplir para llegar a su objetivo planteado para resolver algunas situaciones no previstas.

33


Codificaciones: Es donde veremos los ensayo de programa o sus prototipos de programa donde ya estaremos utilizando el lenguaje de programacion. Prueba: En la donde se practica para estar seguro que funciona correctamente y que cumple con los requisitos planteados Integracion: Es la fase donde los programadores ya han hecho muchas pruebas y estan seguro que el sistema no falla Mantenimiento: Este fase es muy importante para el excito del programa o el software ya esta etapa es una de la mas transcendental de la estructura del programa porque exciten muchas actualizaciones y de esto dependera que se ejecute con mejor desempeno el programa creado. Prototipado Esto son modelos de programa no terminados que estan incompletos y que se utilizan en ensayos se hace para que cuando el usuario lo utilice no tenga errores en su usos. Espiral: Este procedimiento se encarga de evaluar los riegos del programa y este de divide en pequenos grupos que son mas faciles de arreglar cuando existe una amenaza este modelo se divide en 3 variante, modelo espiral del cuatro regiones, modelo espiral de seis regiones y modelos espiral win win.

34


Cada siclo comienza con la planificacion, determinar los objetivo, analisis de riesgos, desarrollar y probar.

Modelo Incremental: Es una forma de reducir la repeticion del trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en la toma de requisito hasta aquirir experiencia del sistema. Este proceso de divide en cuatro partes: analisis, diseno, codigo y prueba cada etapa debe cumplir con los requisitos mencionados.

RAD: Es un ciclo de desarrollo disenado para crear aplicaciones de computadora de alta calidad tiende a englobar la utilidad y la rapidez de ejecucion tiene un desarrollo interactivo y construccion de prototipo.

35


 Programación Modular Utiliza barias funciones que se llaman entre sí para hacer funciona el problema se basa en objetos o tambien llamado moldes de dato de un conjunto este consta de varias secciones divididas de forma que interactuan atreves de llamados procedimiento que integra el programa.

 Programación Estructurada Esta es una tecnica que se utiliza para hacer programa con recuento de lenguajes necesarios sus estructuras son limitas cuando se aplica para leer y presentar una series de reglas cada vez esta tecnicas van evolucionando mas al utilizar un numero limitado de estructuras del control así mismo va reduciendo los errores. La programacion estructurada esta compuesta por un teorema fundamental: 1 Estructura secuencial, 2 Estructuras selectiva, alternativa o condicional, 3 Estructura iterativa o repetitiva.

36


 Estructura básica de control Son enunciado de codigo que determina el flujo de la informacion, esta dividida en tres categoría. 1. Estructura secuencial: Se ejecutan en el mismo orden esto quiere decir que una accion sigue a otra en secuencia las tareas suceden del modo que las salidas de una es la entrada de la siguiente 2. Estructura selectiva: En esta se evalua una condicion en funcion de resultado del a misma se realiza una accion u otra es tambien conocida como la estructura si verdadero – falso. Las estructuras pueden ser:  SIMPLES: Que son las que ejecutan una accion cuando se cumplen una determinada condicion. La seleccion if evalua la condicion y si es verdadera ejecuta la accion de lo contrario no lo hara.  Selectiva doble: permite elegir dos opciones posible en funcion del cumplimiento o no de un terminada condicion, aquí se utiliza el if else.  Selectiva múltiple (switsh) : Esta expresion siempre va a estar representada con un valor entero con una constante uno y una constante dos.

37


3. Estructura repetitiva: Son estructura que repiten una secuencia de intrusiones entre ellas:  Estructura while: Se utiliza cuando se desconoce el numero de iteraciones. Si la expresion es verdadera entonces se ejecuta el cuerpo de bucle.  Estructura Do While: Permite que la iteracion se ejecute al menos una vez antes de la condicion se evaluada y sigue en funcion hasta que la condicion se cumpla.

 Estructura de for: Se utiliza cuando se conoce el numero de veces que se repite una oracion.

38


Conclusiones

1. Las estructuras de control especifican el orden en el que se ejecutan las instrucciones de un algoritmo o programa. Las tres estructuras de control basicas son: • Secuencia • Seleccion • Repeticion 2. Al terminar este trabajo ya aclare mis dudas acerca de los modelos de programacion no solo son modular y estructural, sino que existen muchos mas como cascada, prototipo, espiral, cada una de ellas con sus funciones diferentes y características que nos ayudan a ejecutar un programa. 3. Tambien aprendí que dentro de la programacion estructurada existe un teorema que son las estructuras de control.

39


Bibliografía Material brindado por la Profesora Oderaida Pena en clases.

Infografía

http://ejercicioscpp.blogspot.com/2012/11/estructuras-de-control-en-c.html

https://www.google.com/search?q=sistema+de+programacion&biw=1366&bih=667&source=lnms &tbm=isch&sa=X&ved=0CAYQ_AUoAWoVChMI377Tha24xwIVy1weCh1fnAfg#tbm=isch&q=modelo +de+programacion&imgrc=_

https://www.google.com/search?q=sistema+de+programacion&biw=1366&bih=667&source=lnms &tbm=isch&sa=X&ved=0CAYQ_AUoAWoVChMI377Tha24xwIVy1weCh1fnAfg#tbm=isch&q=modelo +incremental

40



Caso de Estudio OBJETIVOS GENERAL: Distinguir las distintas metodologías de desarrollo del software. OBJETIVOS ESPECIFICOS: Conocer y comprender los fundamentos de una adecuada gestion de proyectos de software informaticos con el uso metodologías de desarrollo. Conocer y aplicar los principios del trabajo en equipo utilizando las metodologías de desarrollo. Especificar eficazmente los objetivos y requisitos de una metodología de desarrollo. EVALUACION: CONOCIMIENTOS Y CAPACIDADES Referencia: http://www.palisade-lta.com/development/cases.asp INDICACIONES GENERALES: Elija un grupo de trabajo para resolver el siguiente caso de estudio. Lea cuidadosamente el caso de estudio y realice un analisis y responda las preguntas al final del documento. Caso 1 Aplicación en Web de modelos de riesgo agrícola usando el Kit para Programador de @RISK El problema Una companía de investigacion desarrollo un modelo de analisis de riesgo con @RISK para evaluar la probabilidad de que el ganado se infecte con una enfermedad determinada. El modelo tambien evaluaba las medidas optimas que se debían tomar en caso de infeccion. Esta companía necesitaba que este modelo estuviera disponible para analistas de todo el mundo.


Actividades a realizar: 1. Presente un análisis de las necesidades de la empresa en cuanto al sistema a utilizar. Las necesidades que tiene esta empresa en cuanto utilizar un sistema para evitar y controlar las infecciones en el ganado y ver cuales son las medidas necesarias para controlar este problema. 2. Que metodología emplearía y porque. Se emplearía los modelos de riesgo agrícola usando el Kit para Programador de @RISK porque este programa evalua las ventajas y desventajas que esta teniendo la empresa y les recomienda algunas tecnicas para solucionar dicho problema.

3. Realice el análisis del problema respecto al caso presentado. En este caso vemos la necesidad que tiene una empresa agrícola de desarrollar un sistema en la WEB y el ejemplo que nos estan dando es el KIT para programador de @RISK para evaluar los riesgos que pueda presentar su ganado en una posible infeccion y así estar precavidos si llegase a ocurrir. Este sistema existe en la web y se utiliza con Excel, tambien este sistema incluye un simulador llamado MONTE CARLOS que este nos da posibles predicciones de lo que pueda suceder ya se desventajas y ventajas. Nos ayuda a elegir una buena decision para la produccion de ganado.


Elabore su informe considerando las características de las diferentes metodologías de desarrollo explicadas en clase. (Cascada, espiral, prototipos, incremental).

MODELO DE CASCADA

1. Análisis de requisitos Es la necesidad que tiene esta empresa de buscar un modelo de programacio n.

2. Diseño del Sistema Es una estructura que se encarga de ver que problema estan pasando en la empresa agricola.

3. Diseño del Programa El diseño del programa son aquellos algoritimos que usan para desarrollar el sistema en este caso la web.

4. Codificación Es lo que se utiliza para desarrollar el programa, como lo es el KIT del programador @RISK.

5. Pruebas Es el ensayo que se le da al programa para poder ver sus defectos y mejoralos.

6. Implatancion Esta es un programa para todo el mundo que se puede obtener con facilidad en la web.

7.Mantenimiento En esta fase se les da el 75% de los recuersos para que el cliente se sienta satisfechoo del programa.


PRUEBA DIAGNOSTICA DE MODELOS DE PROGRAMACIÓN MACKDIEL DOMINGUEZ

2-729-701

Resuelva los siguientes enunciados. 1. ¿Cuál de las siguientes afirmaciones es CORRECTA? A. El tipo int es exacto y sin límites B. El tipo int es exacto pero con límites C. El tipo float es exacto y sin límites D. El tipo float es exacto pero con límites

RESPUESTA: La opción correcta es la B. int es exacto al carecer de decimales. La A es falsa porque int sí tiene límites (no puede superarse determinado valor). La C es falsa porque float también tiene límites y no es exacto al representar valores decimales o fraccionarios. La D es falsa porque float no es exacto.

2. En la instrucción de asignación en C±: A=B A. A debe ser variable y B constante B. Tanto A como B deben ser variables C. Debe haber compatibilidad de tipos entre A y B D. A y B deben ser de tipo simple

RESPUESTA: la opción correcta es la C. Si analizamos las posibilidades, la A no tiene por qué ser así. La B tampoco tiene por qué ser así, uno de los dos puede ser constante. La D no se sabe muy bien a qué se refiere. La c es cierta: debe haber compatibilidad de tipos para realizar una asignación.


3.- En la práctica, la verificación: A. Garantiza que en el programa no hay ningún error B. Se hace mediante ensayos del programa C. Aumenta la complejidad del programa D. Garantiza la eficiencia del programa

RESPUESTA: la opción correcta es la B. La C es claramente falsa ya que verificar un programa no hace que tenga mayor ni menor complejidad. La D también es falsa, ya que con la verificación se trata de comprobar la corrección del programa, es decir, que cumpla con los objetivos de la especificación, no su eficiencia.

4.- Dado el siguiente procedimiento en C±: void proc( int a,int b, int & c) { int aux; aux=a+b+c; c=aux; } Para que fuese puro: A. Es ya un procedimiento puro B. bastaría con pasar las variables a y b por referencia C. la variable c se debería pasar por referencia D. Todas las variables, incluida aux, deben pasarse por referencia

RESPUESTA: la opción correcta es la a). ¿Por qué? Para poder responder esto tendremos que conocer la definición de "procedimiento puro" porque si no está difícil :) Muchos programadores profesionales no sabrían responder a esto porque es algo bastante teórico, pero veamos la definición. Para ello tenemos que ver algún concepto previo


5.- Dado el siguiente fragmento de código en C±: n:=0; if (n<2) { n=n+1; } Después de su ejecución n contiene el valor: A. 3 B. 1 C. 2 D. 0

RESPUESTA: La opción correcta es la b). Consideremos el código. n empieza valiendo 0. Entramos en el condicional, y como n es menor que 2 se ejecuta que n incrementa su valor en una unidad pasando a valer 1

6.- Dado el siguiente fragmento de código: switch (j) { case lunes: case martes: case miércoles: case jueves: j = TipoDia(int(j)+1); break; case viernes: case sabado: case domingo: j = TipoDia(int(j)-1); break; } A. Falta una sentencia else B. la sentencia else no se puede usar dentro de una instrucción C. la variable j tiene que ser de tipo TipoDia para ser correcto D. los rangos establecidos son incorrectos

RESPUESTA: la opción correcta es la c). Analicemos las opciones. En un switch no aparecen elses luego desechamos la opción a). La opción b) es un poco confusa, cosas que


aparecen de vez en cuando. Pensemos que un else puede aparecer acompañando a un if que puede estar dentro de otra instrucción, luego desechamos la b).

7.- La complejidad de un algoritmo: A. Depende del programador B. Depende del anidamiento de bucles C. Depende del invariante D. Aumenta con el uso del LOOP

RESPUESTA: La opción correcta es la B. Tener en cuenta lo siguiente: para un tamaño de problema n, la complejidad de un algoritmo en general está en O(n) cuando tenemos un bucle de tratamiento de datos, en O(n2) cuando tenemos un bucle anidado dentro de otro, en O(n3) cuando tenemos un triple anidamiento de bucles y así sucesivamente.

8.- Un tipo vector abierto: A. Necesita utilizar un centinela B. Omite el tamaño explícito del vector C. Se utiliza para declarar variables de tipo ristra D. Simplifica las condiciones de contorno

RESPUESTA: La opción correcta es la B. Recordar lo siguiente: En C/C++ no es posible declarar vectores abiertos (con un número de elementos indefinidos) pero sí es posible incluirlos como argumentos de subprogramas siempre que al mismo tiempo se pase al subprograma (función o procedimiento) como argumento un parámetro que represente el número de elementos de que consta el vector que se pasa


9.- Del módulo de interfaz: #pragma once void uno(); void dos(); Se puede afirmar: A. Faltan argumentos a los procedimientos B. Es un tipo abstracto C. Falta una declaración de tipo D. Es un dato encapsulado

RESPUESTA: La opción correcta es la D. Recordar que hablábamos de módulo en alusión a un fragmento de un programa desarrollado de forma independiente y que distinguíamos dos tipos de módulos

10.- La sentencia: P-> = P->siguiente + 1; A. Es correcta B. Es correcta cuando siguiente es un puntero C. Es incorrecta D. Es correcta cuando siguiente es de tipo int

RESPUESTA: la opción a responder es la C, es decir, la sentencia propuesta es incorrecta. El símbolo -> no es válido en C/C++, con lo cual ninguna de las otras opciones puede ser válida.


PRACTICA CON SENTENCIAS DE CONTROL IF USO DE LA SENTENCIA IF #include <iostream> using namespace std; int main(void) { int num; cout <<"Introduzca numero:"; cin >> num; if ((num%2)==0) cout << "PAR" << endl; else cout << "IMPAR" << endl; system("pause"); }


Ejemplo de estructura condicional multiple en C++. Programa que lee un numero entero que corresponde a una hora y muestra un mensaje segun la hora #include <iostream> using namespace std; int main(void) { int hora; cout << "\nIntroduzca una hora (entre 0 y 24): "; cin >> hora; if ((hora >= 0) and (hora < 12)) cout << "\nBuenos dias\n"; else if ((hora >= 12) and (hora < 18)) cout << "\nBuenas tardes\n"; else if ((hora >= 18) and (hora < 24)) cout << "\nBuenas noches\n"; else cout << "\nHora no valida\n"; system("pause"); }


Estructura condicional multiple en C++. Programa que lee la calificacion numerica obtenida por un alumno en un examen y muestra la nota equivalente en texto #include <iostream> using namespace std; int main(void) { unsigned int nota; cout << "Introduzca una calificacion numerica entre 0 y 10:"; cin >> nota; cout << "La calificacion del alumno es" << endl; if (nota == 10) { cout << "Matricula de Honor" << endl; } else if (nota >= 9) { cout << "Sobresaliente" << endl; } else if (nota >= 7) { cout << "Notable" << endl; } else if (nota >= 5) { cout << "Aprobado" << endl; } else { endl;

cout << "Suspenso" << } system("pause");}


Uso de la instruccion switch en C++. Programa que lee dos numeros y una operacion y realiza la operacion entre esos numeros #include <iostream> using namespace std; int main(void) { int A,B, Resultado; char operador; cout << "Introduzca un numero:"; cin >> A; cout << "Introduzca otro numero:"; cin >> B; cout <<"Introduzca un operador (+,-,*,/):"; cin >> operador; Resultado = 0; switch (operador) { case '-' : Resultado = A - B; break; case '+' : Resultado = A + B; break; case '*' : Resultado = A * B; break; case '/' : Resultado = A / B; //suponemos B!=0 break; default : cout << "Operador no valido"<< endl; } cout << "El resultado es: "; cout << Resultado << endl; system("pause"); }


#include <iostream> using namespace std; int main(void) { char car; cout << "Introduzca un caracter: "; cin >> car; switch (car) { case 'a': case 'A': case 'e': case 'E': case 'i': case 'I': case 'o': case 'O': case 'u': case 'U': cout << car << " es una vocal" << endl; break; default : cout << car << " no es una vocal" << endl; } system("pause"); }


/*Programa que lee numeros hasta que se lee un negativo y muestra la suma de los numeros leĂ­dos */ #include <iostream> using namespace std; int main(void) { int suma, num; suma = 0; cout << "Introduzca un numero: "; cin >> num; while (num >= 0) { suma = suma + num; cout << "Introduzca un numero: "; cin >> num; } cout << endl << "La suma es: " << suma << endl; system("pause"); }


//*Programa que lee numeros hasta que se lee un negativo y muestra la //suma de los numeros leĂ­dos */ #include <iostream> using namespace std; int main(void) { int suma, num; suma = 0; cout << "Introduzca un numero: "; cin >> num; while (num >= 0) { suma = suma + num; cout << "Introduzca un numero: "; cin >> num; } cout << endl << "La suma es: " << suma << endl; system("pause"); }


Ejemplo de instruccion do while en C++. Programa que lee un numero entero. El numero debe estar comprendido entre 1 y 100. /* lee un numero entre 1 y 10 */ #include <iostream> using namespace std; int main(void) { int numero; do { cout << "Introduzca un numero entre 1 y 100: "; cin >> numero; } while (numero < 1 || numero > 100); }


C贸digos ejecutados en C++ En donde se declara una direccion en la memoria #include <iostream> using namespace std; int numero = 12; main() { cout <<&numero

<<endl;

cin.get(); return 0; }

En la ejecuci贸n mostrara el espacio en la memoria en hexadecimal. Compile y muestre la prueba de escritorio. Declaracion de puntero // Una matriz de 6 elementos// #include <cstdlib> #include <iostream> using std::cout; using std::endl; void main() { int X[6] = { 1, 2, 3, 4, 5, 6 }; int *prtX; prtX = X; // incializo el valor del puntero. cout << prtX += cout << prtX -= cout << prtX++; cout << }

endl << *prtX; 2; endl << *prtX; 2; endl << *prtX; endl << *prtX;


//declaraci贸n de dos variables y suma de sus elementos #include <cstdlib> #include <iostream>

int var1 = 23; int var2 = 6; int suma = var1+var2;

using namespace std;

int main() { cout << suma

<< endl;

system("PAUSE"); return 0; }

include <iostream>

using namespace std;

int a = 12; int *puntero =&a;

main() { cout << *puntero cin.get(); return 0; }.

<<endl;


LISTA DE COTEJO Tema: __________________________ Objetivo: ____________________ Facilitador: Oderaida Peña Curso: _____________________________ Nombre del Participante: ________________________ Cédula: _____________________ Fecha: _______________________ Valor de la prueba: ________________ Puntos Obtenidos_____________ Instrucciones Generales: Lea cuidadosamente el instrumento de evaluación y considere para la realización de desempeño en la labor indicada. Instrucciones Específicas: Marque con una X de acuerdo al nivel de desempeño demostrado en la práctica de campo. Criterios

Indicadores 

Conocimiento 

.

Actitud y habilidades

 

Tecnicas

Total obtenido

Reconoce los pasos para desarrollar el portafolio digital. Describe los elementos del portafolio Atiende las indicaciones para crear el portafolio Organiza los datos en forma ordenada Organiza el area de trabajo y desarrolla cada tema. Emplea las tecnicas para crear el portafolio Aplica las configuraciones del portafolio siguiendo las indicaciones para la presentacion.

Rango Observaciones E B R PM


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.