Entorns de desenvolupament
...intro...
Contingut
UF1: Desenvolupament de programari
Enginyeria de software
- Conceptes generals de programació:
- Codi font, compilació, codi executable, llenguatges compilats vs interpretats.
- Enginyeria del software:
- Metodologia: anàlisi, especificació, disseny, desenvolupament/implementació, test, desplegament/producció, documentació, manteniment
- Metodologia de l'enginyeria de sofware (Wikipèdia).
- Models de desenvolupament: en cascada, de prototips (desenvolupament ràpid), model en espiral, per etapes, iteratiu, RAD (rapid app. devel.), procés unificat, etc.
- Projecte de software:
- Una guía que s'ajusta a les etapes de la metodologia del software: http://xavier.amatriain.net/PFC/
- Metodologia: anàlisi, especificació, disseny, desenvolupament/implementació, test, desplegament/producció, documentació, manteniment
- Cas pràctic:
- Especificacions: cooperativa de consum
- Exercici: el·labora les especificacions per una aplicació per jugar al Sudoku.
Entorns integrats de desenvolupament
IDE : Integrated Development Environment
- Geany: senzill però amb tot el què es necessita per començar. El pots instal·lar en Windows o en GNU/Linux (Debian) amb:
# apt-get install geany
- SublimeText: molt bo per Python (de pagament).
- Eclipse + Pydev:
- Eclipse és un IDE fet en Java (i per tant molt adient per aquest llenguatge).
- PyDev és un plug-in per Python en Eclipse. Instal·lació: http://pydev.org/manual_101_install.html
- NetBeans: també originari per Java però que té plugins per diferents llenguatges com PHP o Python.
- Es pot instal·lar a Ubuntu/Debian amb:
$ sudo apt-get install netbeans
- Es pot instal·lar a Ubuntu/Debian amb:
Frameworks
Un framework és una combinació de llibreries (APIs) i bones pràctiques de programació que ens facilita el desenvolupament de programari.
Hi ha nombrosos frameworks per diferents tipus d'aplicacions a les que ens orientem.
Alguns frameworks per Python:
- Pyramid: El que treballarem aquest curs. Trobaràs el necessri en aquest tutorial.
- Django: https://www.djangoproject.com/
- web2py:: http://www.web2py.com/
Frameworks per altres llenguatges:
- PHP: Symphony, YII, ...
- JavaScript: YUI, jQuery, Dojo, ...
Pyramid framework
Ens permet una gestió del codi eficient, mantenible i escalable. Pots introduir-te amb aquests articles:
- Pyramid en Google App Engine. Començem amb Pyramid per GAE. Seguint aquest tutorial podreu crear el projecte amb l'entorn Buildout.
- Descarregueu A TOTA XUFA amb el PyPI mirror del departament.
- Python: Pyramid framework.
- Pyramid: arquitectura
- Web Services amb Pyramid i Cornice
- Pyramid autenticació
- Pyramid: documentant amb Sphinx
UF2: Optimització de programari
- Python: depuració (a cacauet).
- Seguirem treballant Pyramid:
Control de versions
- Conceptes: Control de versions
- Git: comandes: resum de les comandes més habituals.
- http://github.com : feu-vos un compte. Important per l'entrega de projectes.
Altres
- Proves (test)
- Documentació:
- Sphinx (per Python i C/C++): http://sphinx.pocoo.org/
- Optimització del codi
- Refacció
- Control d'errors o bugs
UF3: Introducció al disseny orientat a objectes
A aquestes alçades del curs ja tenim una certa experiència programant que ens permet ocupar-nos més bé de COM programem.
El disseny ens permetrà:
- Anticipar dificultats i solucions.
- Avaluar complexitat, útil per pressupostar projectes.
- Triar tecnologia adient (llenguatge, recursos, hosting, hardware, etc.)
- Identificar parts del projecte:
- Establir etapes de desenvolupament i entregues (milestones o "fites").
- Dividir tasques en equip de treball.
En la metodologia clàssica d'enginyeria de software (model de cascada) solem trobar la etapa de DISSENY abans de la de codificació, i abans de
- Especificacions: diem què volem programar, quins requisits ha de complir l'aplicació.
- Disseny: COM programarem el què hem especificat.
- Codificació: escrivim codi.
- Test
- Documentació
- Producció: publicació, distribució de codi/executables, etc.
Disposem d'algunes eines que ens ajudaran: