Está en la página 1de 9

Heberto Reynel Iglesias / Programación Orientada a Objetos con C++

Programación Orientada a Objetos con C++


Heberto Reynel Iglesias

2019

TABLA DE CONTENIDO

1. Introducción: Objetivo, Equipos, Evaluación, Método, Ética. Bibliografía.

2. Computadoras, POO, Clases y Objetos. Primer Proyecto: Bibliotheka-1.

3. Herencia y Polimorfismo. Segundo Proyecto: Bibliotheka-2.

4. Plantillas. Programación Genérica. Tercer Proyecto: Bibliotheka-3

5. Archivos. Cuarto Proyecto: Bibliotheka-4.

Anexos

1
Heberto Reynel Iglesias / Programación Orientada a Objetos con C++

Capítulo 1
Introducción

1.1. Generalidades

1.1.1. Objetivo de la Unidad de Aprendizaje


El objetivo de la unidad de aprendizaje es que el estudiante sea competente para:

- Proyectar programas de cómputo,


- situado en el ambiente de trabajo profesional (recreado en el aula y el laboratorio) para una
organización productiva en la sociedad actual,
- para lo cual utiliza el método del proyecto de ingeniería (MPI), el paradigma de la programación
orientada a objetos (POO), el lenguaje de modelado unificado (UML) y el lenguaje de programación
C++, y
- evidencia la competencia con la entrega por escrito de los informes y manuales que corresponden a
los programas de cómputo (examen escrito), así como con la prueba práctica en el laboratorio de
dichos programas (examen práctico), además de la presentación verbal de dichos informes y
manuales (examen oral), y de haber mostrado una participación individual activa en los equipos de
trabajo (trabajo en equipo) y haberse desempeñado conforme a la ética profesional del ingeniero.
- Los criterios de evaluación del desempeño del estudiante serán: la correcta redacción de los informes
y manuales escritos correspondientes a los programas de cómputo, la eficacia funcional de los
programas de cómputo mostrada en el laboratorio, la correcta presentación oral de los proyectos
correspondientes, la colaboración individual apropiada en los equipos de trabajo, y la observancia de
la ética profesional del ingeniero del IPN.

El estudiante deberá entonces:

Saber Conocer:
- El método del proyecto de ingeniería,
- El paradigma de la programación orientada a objetos,
- Los fundamentos del Lenguaje C++,
- Las técnicas básicas de redacción de informes técnicos y su presentación escrita y oral,
- Las técnicas básicas de trabajo en equipo, y
- El código de ética profesional del ingeniero.

2
Heberto Reynel Iglesias / Programación Orientada a Objetos con C++

Saber Hacer:
- Proyectar y realizar programas de cómputo
- Utilizar el método del proyecto de ingeniería,
- Utilizar la programación orientada a objetos
- Utilizar el lenguaje C++
- Formular informes técnicos y hacer las presentaciones escritas y orales correspondientes.

Saber Ser:
- Desempeñarse conforme al código de ética profesional del ingeniero del IPN.

1.1.2. Organización de los Equipos de Trabajo


Un grupo de trabajo es un sistema formado por un grupo heterogéneo de personas directa y
complementariamente relacionadas, que trabajan cohesionadas bajo ciertas normas (compartidas) y con un
determinado propósito.

El profesor, entonces, desde las primeras clases organizará las actividades del grupo escolar de la manera
siguiente:

- Usualmente se tienen grupos escolares de 30 alumnos. El grupo escolar se dividirá en equipos de 5 alumnos
por equipo, es decir, habrá 6 equipos por grupo escolar. El Profesor designará un coordinador del equipo, el cual
asumirá dicho rol durante un proyecto, es decir, al cambiar el proyecto asignado al equipo, cambiará el
coordinador. Los restantes miembros del equipo tendrán el rol de proyectistas (o analistas-programadores).

- A cada equipo se le asignará el proyecto y la realización de un sistema de información (programa), el cual podrá
ser el mismo para todos los equipos. Cada equipo proyectará y realizará su propio sistema de información.

- Durante la primera sesión del equipo se hará una “tormenta de ideas” para proyectar el sistema de
información (conforme al método del proyecto de ingeniería, descrito en la sección siguiente), al final de la cual
se tendrán especificados los Requerimientos del sistema en lo general. Posteriormente a cada miembro del
equipo se le asignará el sub-proyecto de una parte del sistema o subsistema. Al final se reunirá el equipo para
integrar la solución completa y final del prototipo del sistema.

1.1.3. Evaluación
La evaluación de todos y cada uno de los alumnos del grupo escolar, se hará:

- Por la entrega del escrito (examen escrito), del todo y la parte del sistema de información que se le asigne de
tarea (30%);
- Por la demostración práctica del funcionamiento eficaz del programa correspondiente, en el laboratorio (20%);
- Por la presentación verbal (examen oral), del todo y la parte del sistema de información que se le haya
asignado de tarea (40%);
- Por su participación y contribución individual, con puntualidad y asiduidad a clases y al trabajo en equipo con
ética profesional (10%).

3
Heberto Reynel Iglesias / Programación Orientada a Objetos con C++

Tabla para registro de evaluaciones.


Boleta Paterno Materno Nombre Eqp Rol Esc1 Lbr1 Vrb1 Ind1 Prm1
1 Crd
1 Prg1
1 Prg2
1 Prg3
1 Prg4
2 Crd
Eqp – Equipo; Esc – Examen Escrito (30%); Lbr – Examen en Laboratorio (20%); Vrb – Examen
Verbal (40%); Ind – Participación Individual (10%); Prm – Promedio de Calificaciones; Crd – Coordinador; Prg –
Programador.

1.2. El Método del Proyecto de Ingeniería


1.2.1. Ingeniería y Ciencia
Para comprender mejor la ingeniería, consideremos brevemente su diferencia y complementariedad con la
ciencia.

La ciencia es la acción y el efecto de investigar racional y objetivamente el universo, con el propósito


de descubrir, explicar y predecir su comportamiento. La investigación científica (la acción) usualmente
se realiza mediante el método científico (... objetivo, hipótesis, pruebas, ...) La explicación (el efecto) se
expresa mediante conceptos, modelos y teorías. Los científicos, por tanto, tratan de explicar la
estructura y el comportamiento del (sistema) universo natural o social pre-existente.

La ingeniería es la acción y el efecto de proyectar y realizar sistemas complejos, que funcionen eficaz y
eficientemente, con el propósito de satisfacer determinadas necesidades humanas. La ingeniería es
acción, porque es una actividad orientada a la formulación de proyectos, así como a la realización de
estos. Además, la ingeniería es efecto; es decir, es la realización del proyecto en forma de un sistema
complejo que satisface determinadas necesidades humanas. Los ingenieros, por lo tanto, tratan de
crear un mundo nuevo (innovan), un mundo no pre-existente, crean un mundo artificial (producido por
el ser humano y no por la naturaleza), un mundo nuevo conforme a las necesidades humanas. Así, los
edificios, los puentes, las computadoras y la red Internet, entre muchos otros sistemas tecnológicos,
son creaciones de la ingeniería.

El proyecto constituye el propósito fundamental de la ingeniería.1 El método del proyecto de ingeniería media
entre el problema y la solución, como se muestra esquemáticamente en la Figura 1-1. Cuando nos referimos al
proyecto, hacemos referencia tanto a su especificación mediante modelos textuales, gráficos, matemáticos o
físicos, así como a su realización o materialización.

1
Asimow, Morris, Introducción al proyecto, Herrero Hnos. Sucs., México, 1973, p.5.

4
Heberto Reynel Iglesias / Programación Orientada a Objetos con C++

Problema Método del Proyecto Solución


Sistémico de Ingeniería Sistémica
Complejo

Figura 1-1. El Método media entre el Problema y la Solución.

El método del proyecto de ingeniería recorre cinco fases, mismas que constituyen el ciclo de vida del proyecto:
1) Anteproyecto, 2) Proyecto, 3) Construcción, 4) Operación, y 5) Retiro. Este método es iterativo e incremental,
como se muestra en la Figura 1-2; es decir, avanza de una fase a otra, iterando a una fase anterior si es
necesario, para precisar o corregir algún aspecto del desarrollo del proyecto, incrementando su mejoramiento
en cada iteración.

Anteproyecto Proyecto Construcción Operación Retiro

Figura 1-2. Ciclo de vida del Proyecto de Ingeniería.

La Ingeniería del Software trata de los métodos específicos para proyectar programas de cómputo, dependiendo
de los paradigmas y lenguajes de programación que se utilicen; así, por ejemplo, para la Programación
Estructurada se usan la técnica descendente (top-down), la modularización y el teorema de estructura.
Asimismo, en la Programación Orientada a Objetos, se usa generalmente el método del Proceso Unificado (UP,
por sus siglas en inglés) y el Lenguaje de Modelado Unificado (UML). Sin embargo, el método general que se
usará en este libro para crear programas de cómputo o, mejor dicho, sistemas de información basados en
computadoras, será el Método del Proyecto de Ingeniería (MPI) y, dentro de éste, se utilizan las técnicas o
paradigmas particulares antes referidos.

1.2.2. Anteproyecto
La fase de anteproyecto consta de las etapas siguientes:

- Especificar completamente los requerimientos del sistema: dominio del sistema a proyectar (problema), casos
de uso, entradas y salidas, parámetros, restricciones, criterios.

5
Heberto Reynel Iglesias / Programación Orientada a Objetos con C++

- Imaginar y especificar (modelar) diferentes soluciones sistémicas al problema.


- Evaluar las diferentes opciones de sistemas y seleccionar la mejor, en términos de su factibilidad, su
confiabilidad y su costeo.
- Detallar la opción seleccionada, para construir un prototipo.
- Construir un prototipo del sistema seleccionado.
- Probar el prototipo conforme a los requerimientos.
- Documentar (informe técnico y manuales de uso) el anteproyecto.

1.2.3. Proyecto
La fase de proyecto consta de las etapas siguientes:

- Suministrar la descripción de ingeniería de un proyecto probado y factible.


- Elaborar el proyecto detallado o la especificación de los componentes.
- Construir y probar modelos experimentales para comprobar las ideas.
- Refinar hasta que se consiga una descripción de ingeniería de un proyecto probado.

1.2.4. Construcción
La fase de construcción consta de las etapas siguientes:

- Producir o adquirir las componentes para la construcción del sistema.


- Construir y probar el sistema.
- Documentar la construcción del sistema.

1.2.5. Operación
La fase de operación consta de las etapas siguientes:

- Transferir al cliente el sistema, para su operación apropiada.


- Por parte del cliente:
- Reclutar, contratar y capacitar al personal que operará al sistema.
- Adquirir los consumibles y útiles para la operación del sistema.
- Iniciar la operación.
- Suministrar el mantenimiento del sistema.

1.2.6. Retiro
La fase de retiro consta de las etapas siguientes:

- Efectuar los estudios para evaluar la posible obsolescencia del sistema.


- Preparar el retiro del sistema

6
Heberto Reynel Iglesias / Programación Orientada a Objetos con C++

- Retirar el sistema.
- Documentar el Retiro.

El método del proyecto de ingeniería se aplica a cualquier problema de ingeniería, incluyendo tanto el proyecto
del producto a producir, como el proyecto de la planta productiva. En lo que sigue, todos los ejemplos de
proyecto y realización de sistemas de información (programas de cómputo), corresponderán solamente a la fase
de anteproyecto del método del proyecto de ingeniería. Asimismo, sólo se desarrollará el anteproyecto del
producto a producir, es decir, sólo se desarrollará el anteproyecto del programa de cómputo correspondiente;
es decir, no se tratará el proyecto de la planta productiva correspondiente. Lo anterior es el caso de un
programa de cómputo desarrollado para uso interno de una organización, y no para su producción y distribución
masiva en un mercado determinado, lo cual sale del alcance del presente libro.

1.3. Calidad de un sistema de información (programa de cómputo)


La calidad de un programa de cómputo se mide por su: Utilidad (eficacia), Confiabilidad (falibilidad),
Flexibilidad (mantenimiento) y Portabilidad (re-uso).

1.4. Programas de Aplicación


A continuación se requiere que el estudiante realice la práctica siguiente. En una memoria USB (que se
mantendrá durante todo el curso y que servirá para las evaluaciones correspondientes):

Crear una carpeta denominada POO. Dentro de la carpeta POO, crear las sub-carpetas siguientes:
Bibliotheka-0, Bibliotheka-1, Control-Escolar, MathCalc-0 y Archivos. Dentro de cada una de las carpetas
anteriores, crear las sub-carpetas Reportes y Aplicación. Más adelante se irán utilizando dichas carpetas
para guardar archivos. La estructura de las carpetas y los archivos queda como se muestra
esquemáticamente en la Figura 1-3.

7
Heberto Reynel Iglesias / Programación Orientada a Objetos con C++

POO

Bibliotheka-1 Bibliotheka-2 ControlEscolar MathCalc-0 Archivos

Reportes Aplicación

Figura 1-3. Estructura de carpetas y archivos en la memoria USB.

1.5. Ética Profesional del Ingeniero


La moral (moris=costumbre) es el conjunto de creencias, costumbres valores y normas de una persona o
sociedad, que funciona como una guía para obrar, orienta acerca de qué acciones son correctas (buenas) y
cuales son incorrectas (malas). Moral es cultura.

Ética es la filosofía y la ciencia que trata de la moral individual o colectiva, en una sociedad históricamente dada.
Tiempo y espacio.

La ética (usada aquí como moral) profesional del ingeniero, es el conjunto de creencias, costumbres, valores y
normas que guían el ejercicio profesional de un ingeniero. Valores y normas:

- Máximo beneficio del cliente, utilidad de sus proyectos.


- No afectar el patrimonio de terceros.
- Utilizar conocimientos científicos.
- No plagiar (presentar como propios proyectos ajenos).
- Conducirse con respeto.

1.6. Bibliografía
1. Deitel, Paul J., Deitel, Harvery M., C++ Cómo programar, México, Pearson Educación, 2014, 9ª Ed.
2. Liberty, Jesse, Jones Bradley, SAMS Teach yourself C++ in 21 days, 5a ed., Indianápolis, SAMS Publishing,
2005.
3. Stroustrup, Bjarne; El Lenguaje de Programación C++; España, Addison Wesley, Edición Especial, 2002.
4. Ceballos Sierra, Francisco Javier; Enciclopedia del Lenguaje C++; México, Alfaomega, 2004.
5. Horton, Ivor. Ivor Horton’s Beginning Visual C++ 2005. Indianapolis, Wiley, 2006.

8
Heberto Reynel Iglesias / Programación Orientada a Objetos con C++

6. Arlow, Jim; Neustadt, Ila. UML and the Unified Process: Practical Object-Oriented Analogic and Design;
USA Addison-Wesley, 2002.
7. Pilone, Dan; UML 2.0 in a nutshell: A desktop quick reference; O’Reilly, 2005
8. Stevens, Perdita; Pooley, Rob; Utilización de UML en ingeniería del software con objetos y componentes;
Addison Wesley, 2002.

También podría gustarte