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.
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
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