SlideShare una empresa de Scribd logo
1 de 23
Oskar Barrio
riobar@gmail.com
oskar.barrio@hp.com
Visión aplicada del desarrollo
Índice
• Comenzando por el principio.
• Cajas de herramientas.
• Valor añadido.
• No todo queda oculto.
• Enlaces interesantes.
C++. Comenzando por el principio
Compiladores
En un principio…
Entornos de desarrollo (IDE’s) a
Windows Linux
Eclipse
Codelite
WxDevC++ -> Code::Blocks
Anjuta
KDevelop
Embarcadero C++ Builder
Borland Turbo C++ 5.5
Net Beans
MS Visual StudioExpress
Kate
Entornos de desarrollo (IDE’s) b
Visual Studio Visual Studio
Express
Code::Blocks C++ Builder
Licencia Propietaria Freeware GPL Propietaria
Multiplataforma
Debugger
Profiler
Diseñador UI
Autocompletado
Más herramientas Análisis de código,
coverage, unit testing,
rendimiento, etc.
Análisis de código,
coverage, bases de
datos, etc.
C++. Caja de herramientas
STL (Standard Template Library)
• Librería de utilidades que forma parte
del standard de C++, por lo que está
incluida en todas sus implementaciones.
• Por política y conveniencia se encuentra
fuera del core del lenguaje, es decir que
es necesario indicar que se quieren
utilizar.
• Las utilidades se dividen en cuatro
secciones:
– Contenedores (listas, colas, pilas, tablas
hash, etc…)
– Iteradores
– Algoritmos (búsquedas, ordenación…)
– Functors
• Hacen uso de templates y polimorfismo.
Librerías boost
• Conjunto de más de 80 bibliotecas de software libre.
• Puede utilizarse en cualquier tipo de proyecto comercial o
libre, ya que está bajo licencia BSD.
• La próxima estandarización de C++ incorpora varias de las
bibliotecas desarrolladas en boost.
• Su desarrollo ha producido un avance considerable en
programación genérica y meta programación.
• Entre sus utilidades más destacadas se encuentran mejoras
en el manejo de cadenas de texto, funciones matemáticas,
pruebas de software, procesamiento de imágenes ó gestión
de memoria (cómo los auto punteros).
Otras herramientas
QT Otras utilidades
• Conjunto de múltiples
herramientas para todo tipo de
desarrollos.
• Producido y mantenida por Nokia
• Se utiliza principalmente para
desarrollos de UI multiplataforma.
• Es muy utilizada también para
gestión de hilos, bases de datos,
XML, etc.
• Se utiliza en grandes proyectos
cómo KDE, Autodesk Maya,
Photoshop, Google o VirtualBox.
• WxWidgets (Desarrollo de
UI)
• VCL (Borland) (Multiutilidad)
• LibXML (Parseo y manejo de
XML)
• SQLite (Bases de datos)
• SDL (Utilidades gráficas y UI)
• OpenSSL (Criptología)
• OpenGL (Desarrollo gráfico)
• OpenCL (Desarrollo paralelo)
C++. Valor añadido
Grupos de herramientas
• Análisis de código.
• Estadísticas.
• Gestión de proyectos.
• Logging.
• Profilers.
• Testing.
• Cobertura de código.
• Documentación.
Algunas herramientas (a)
Análisis y estadísticas
Estudian de forma estática el código de un proyecto y todos sus posibles caminos de
ejecución, detectando posibles problemas ó errores. también pueden generar reportes
muy útiles cómo análisis de complejidad o número medio de líneas por función.
Klockwork Rational CppCheck*
CodeScanner Coverity CCCC*
Gestión de proyectos
Permiten organizar y gestionar las modificaciones sobre los fuentes de un proyecto
coordinando el acceso a los mismos por diferentes desarrolladores.
SourceSafe TeamFoundation Subversion (SVN)*
StarTeam GIT* CVS*
Algunas herramientas (b)
Testing y cobertura
Nos facilitan el desarrollo de pruebas y verificación del funcionamiento de la aplicación
para asegurar un nivel de calidad óptimo para nuestros proyectos. También ofrecen un
reporte sobre las partes de nuestro código que aún no se han testeado.
QtTest* MSTest Google Tests*
Boost test* CppTest* CppUnit*
Profiling
Analizan el rendimiento de una aplicación y el uso de recursos por parte de la misma.
Funcionan analizando el ejecutable de forma dinámica.
Rational Purify Insure++ Valgrind*
VTune Bullseye coverage AMD Code Analyst
Otras herramientas
• Doxygen: Generación automática de
documentación.
• Log4CPP: Sistema de logging para C++.
C++. No todo queda oculto
Microsoft Visual Studio (WPF)
Características:
• Tecnología y soporte de Microsoft a partir de Windows Vista.
• Utiliza el lenguaje de marcado XAML, basado en XML, para la descripción del apartado gráfico.
• Muy orientado al patrón de diseño View – Model – ViewModel.
• Se utiliza en desarrollo de aplicaciones Windows (.NET) y Web (Silverlight).
• Da soporte para animación, multimedia, 3D, gestión de documentos o Web.
Embarcadero C++ Builder (VCL)
Características:
• Desarrollado originalmente por Borland fue la el RAD de C++ más utilizado en los 90 y principios de los 2000.
• Está basado en Delphi y utiliza la experiencia de Turbo C++.
• Orientado al desarrollo de aplicaciones gráficas, aunque permite la creación de programas de cualquier tipo.
• Utiliza la librería de utilidades VCL, con multitud de controles visuales, objetos de acceso a datos, etc…
• Muy enfocado a desarrollos cloud y de gestión de bases de datos, a parte de GUIs.
QT Designer/Studio (QT)
Características:
• Librería multiplataforma, con muchas más herramientas que el desarrollo de UI.
• Permite el diseño descriptivo de interfaces mediante el lenguaje de marcado QML.
• Mantenido por una gran compañía cómo Nokia.
• En las últimas versiones soporta características 3D.
• Dispone de un entorno de trabajo propio para facilitar el desarrollo, QtCreator.
Enlaces de interés
Cultura básica:
• http://es.wikipedia.org/wiki/Compilador
• http://es.wikipedia.org/wiki/GNU_Compiler_Collection
• http://en.wikipedia.org/wiki/Standard_Template_Library
• http://es.wikipedia.org/wiki/Bibliotecas_Boost
• http://es.wikipedia.org/wiki/Qt_(biblioteca)
Herramientas de desarrollo:
• http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express
• http://www.codeblocks.org/downloads/binaries
• http://qt.nokia.com/
• http://www.boost.org/
• https://downloads.embarcadero.com/free/c_builder
Ruegos y preguntas
The End!!!

Más contenido relacionado

Similar a Desarrollo en c++, vision aplicada

Code blocks & lenguaje c++
Code blocks & lenguaje c++Code blocks & lenguaje c++
Code blocks & lenguaje c++aldaircausado11
 
Visual basic
Visual basicVisual basic
Visual basicsandrap0
 
Alta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginxAlta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginxPlain Concepts
 
Microsoft Visual Studio Universidad OYM Seccion 0435
Microsoft Visual Studio Universidad OYM Seccion 0435Microsoft Visual Studio Universidad OYM Seccion 0435
Microsoft Visual Studio Universidad OYM Seccion 0435Scarlett Rodriiguez
 
Arquitectura 63583.pptx
Arquitectura 63583.pptxArquitectura 63583.pptx
Arquitectura 63583.pptxlvaroTorres26
 
01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptxDyllanBastidas
 
Programación visual con VB.NET
Programación visual con VB.NETProgramación visual con VB.NET
Programación visual con VB.NETYamil Lambert
 
Desarrollo aplicaciones windows c#
Desarrollo aplicaciones windows c#Desarrollo aplicaciones windows c#
Desarrollo aplicaciones windows c#Roger Campos
 
Trabajo avila
Trabajo avilaTrabajo avila
Trabajo avilaadezhiz
 

Similar a Desarrollo en c++, vision aplicada (20)

Code blocks & lenguaje c++
Code blocks & lenguaje c++Code blocks & lenguaje c++
Code blocks & lenguaje c++
 
Visual basic
Visual basicVisual basic
Visual basic
 
Alta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginxAlta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginx
 
Microsoft Visual Studio Universidad OYM Seccion 0435
Microsoft Visual Studio Universidad OYM Seccion 0435Microsoft Visual Studio Universidad OYM Seccion 0435
Microsoft Visual Studio Universidad OYM Seccion 0435
 
Arquitectura 63583.pptx
Arquitectura 63583.pptxArquitectura 63583.pptx
Arquitectura 63583.pptx
 
Net framwork.ppt
Net framwork.pptNet framwork.ppt
Net framwork.ppt
 
Bea
BeaBea
Bea
 
Bea
BeaBea
Bea
 
01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx
 
Programación visual con VB.NET
Programación visual con VB.NETProgramación visual con VB.NET
Programación visual con VB.NET
 
Visual basic
Visual basicVisual basic
Visual basic
 
Visual
VisualVisual
Visual
 
Desarrollo aplicaciones windows c#
Desarrollo aplicaciones windows c#Desarrollo aplicaciones windows c#
Desarrollo aplicaciones windows c#
 
Trabajo avila
Trabajo avilaTrabajo avila
Trabajo avila
 
1-Unidad 1. Introducción a la Plataforma .NET
1-Unidad 1. Introducción a la Plataforma .NET1-Unidad 1. Introducción a la Plataforma .NET
1-Unidad 1. Introducción a la Plataforma .NET
 
Tutorial de- c. ++
Tutorial de- c. ++ Tutorial de- c. ++
Tutorial de- c. ++
 
Tutorial de-c ++
Tutorial de-c ++Tutorial de-c ++
Tutorial de-c ++
 
Tutorial de-c ++
Tutorial de-c ++Tutorial de-c ++
Tutorial de-c ++
 
Visual .net
Visual .netVisual .net
Visual .net
 
Programación
ProgramaciónProgramación
Programación
 

Desarrollo en c++, vision aplicada

  • 2. Índice • Comenzando por el principio. • Cajas de herramientas. • Valor añadido. • No todo queda oculto. • Enlaces interesantes.
  • 3. C++. Comenzando por el principio
  • 6. Entornos de desarrollo (IDE’s) a Windows Linux Eclipse Codelite WxDevC++ -> Code::Blocks Anjuta KDevelop Embarcadero C++ Builder Borland Turbo C++ 5.5 Net Beans MS Visual StudioExpress Kate
  • 7. Entornos de desarrollo (IDE’s) b Visual Studio Visual Studio Express Code::Blocks C++ Builder Licencia Propietaria Freeware GPL Propietaria Multiplataforma Debugger Profiler Diseñador UI Autocompletado Más herramientas Análisis de código, coverage, unit testing, rendimiento, etc. Análisis de código, coverage, bases de datos, etc.
  • 8. C++. Caja de herramientas
  • 9. STL (Standard Template Library) • Librería de utilidades que forma parte del standard de C++, por lo que está incluida en todas sus implementaciones. • Por política y conveniencia se encuentra fuera del core del lenguaje, es decir que es necesario indicar que se quieren utilizar. • Las utilidades se dividen en cuatro secciones: – Contenedores (listas, colas, pilas, tablas hash, etc…) – Iteradores – Algoritmos (búsquedas, ordenación…) – Functors • Hacen uso de templates y polimorfismo.
  • 10. Librerías boost • Conjunto de más de 80 bibliotecas de software libre. • Puede utilizarse en cualquier tipo de proyecto comercial o libre, ya que está bajo licencia BSD. • La próxima estandarización de C++ incorpora varias de las bibliotecas desarrolladas en boost. • Su desarrollo ha producido un avance considerable en programación genérica y meta programación. • Entre sus utilidades más destacadas se encuentran mejoras en el manejo de cadenas de texto, funciones matemáticas, pruebas de software, procesamiento de imágenes ó gestión de memoria (cómo los auto punteros).
  • 11. Otras herramientas QT Otras utilidades • Conjunto de múltiples herramientas para todo tipo de desarrollos. • Producido y mantenida por Nokia • Se utiliza principalmente para desarrollos de UI multiplataforma. • Es muy utilizada también para gestión de hilos, bases de datos, XML, etc. • Se utiliza en grandes proyectos cómo KDE, Autodesk Maya, Photoshop, Google o VirtualBox. • WxWidgets (Desarrollo de UI) • VCL (Borland) (Multiutilidad) • LibXML (Parseo y manejo de XML) • SQLite (Bases de datos) • SDL (Utilidades gráficas y UI) • OpenSSL (Criptología) • OpenGL (Desarrollo gráfico) • OpenCL (Desarrollo paralelo)
  • 13. Grupos de herramientas • Análisis de código. • Estadísticas. • Gestión de proyectos. • Logging. • Profilers. • Testing. • Cobertura de código. • Documentación.
  • 14. Algunas herramientas (a) Análisis y estadísticas Estudian de forma estática el código de un proyecto y todos sus posibles caminos de ejecución, detectando posibles problemas ó errores. también pueden generar reportes muy útiles cómo análisis de complejidad o número medio de líneas por función. Klockwork Rational CppCheck* CodeScanner Coverity CCCC* Gestión de proyectos Permiten organizar y gestionar las modificaciones sobre los fuentes de un proyecto coordinando el acceso a los mismos por diferentes desarrolladores. SourceSafe TeamFoundation Subversion (SVN)* StarTeam GIT* CVS*
  • 15. Algunas herramientas (b) Testing y cobertura Nos facilitan el desarrollo de pruebas y verificación del funcionamiento de la aplicación para asegurar un nivel de calidad óptimo para nuestros proyectos. También ofrecen un reporte sobre las partes de nuestro código que aún no se han testeado. QtTest* MSTest Google Tests* Boost test* CppTest* CppUnit* Profiling Analizan el rendimiento de una aplicación y el uso de recursos por parte de la misma. Funcionan analizando el ejecutable de forma dinámica. Rational Purify Insure++ Valgrind* VTune Bullseye coverage AMD Code Analyst
  • 16. Otras herramientas • Doxygen: Generación automática de documentación. • Log4CPP: Sistema de logging para C++.
  • 17. C++. No todo queda oculto
  • 18. Microsoft Visual Studio (WPF) Características: • Tecnología y soporte de Microsoft a partir de Windows Vista. • Utiliza el lenguaje de marcado XAML, basado en XML, para la descripción del apartado gráfico. • Muy orientado al patrón de diseño View – Model – ViewModel. • Se utiliza en desarrollo de aplicaciones Windows (.NET) y Web (Silverlight). • Da soporte para animación, multimedia, 3D, gestión de documentos o Web.
  • 19. Embarcadero C++ Builder (VCL) Características: • Desarrollado originalmente por Borland fue la el RAD de C++ más utilizado en los 90 y principios de los 2000. • Está basado en Delphi y utiliza la experiencia de Turbo C++. • Orientado al desarrollo de aplicaciones gráficas, aunque permite la creación de programas de cualquier tipo. • Utiliza la librería de utilidades VCL, con multitud de controles visuales, objetos de acceso a datos, etc… • Muy enfocado a desarrollos cloud y de gestión de bases de datos, a parte de GUIs.
  • 20. QT Designer/Studio (QT) Características: • Librería multiplataforma, con muchas más herramientas que el desarrollo de UI. • Permite el diseño descriptivo de interfaces mediante el lenguaje de marcado QML. • Mantenido por una gran compañía cómo Nokia. • En las últimas versiones soporta características 3D. • Dispone de un entorno de trabajo propio para facilitar el desarrollo, QtCreator.
  • 21. Enlaces de interés Cultura básica: • http://es.wikipedia.org/wiki/Compilador • http://es.wikipedia.org/wiki/GNU_Compiler_Collection • http://en.wikipedia.org/wiki/Standard_Template_Library • http://es.wikipedia.org/wiki/Bibliotecas_Boost • http://es.wikipedia.org/wiki/Qt_(biblioteca) Herramientas de desarrollo: • http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express • http://www.codeblocks.org/downloads/binaries • http://qt.nokia.com/ • http://www.boost.org/ • https://downloads.embarcadero.com/free/c_builder