En aquesta secció, aprendrem com planificar i dissenyar un projecte de programació. La planificació i el disseny són passos crucials per assegurar que el projecte es desenvolupi de manera eficient i efectiva. Aquests passos ajuden a identificar els requisits, definir l'abast del projecte, i establir una estructura clara abans de començar a codificar.
- Definició dels Requisits
1.1. Identificació dels Requisits del Projecte
- Funcionalitats Principals: Quines són les funcionalitats bàsiques que el projecte ha de complir?
- Requisits No Funcionals: Quines són les expectatives de rendiment, seguretat, i usabilitat?
- Restriccions: Quines són les limitacions tècniques o de temps?
1.2. Documentació dels Requisits
- Especificacions Funcional: Descripció detallada de cada funcionalitat.
- Especificacions Tècniques: Requisits tècnics com llenguatges de programació, bases de dades, etc.
- Anàlisi de Requisits
2.1. Diagrames de Casos d'Ús
- Actors: Qui interactuarà amb el sistema?
- Casos d'Ús: Quines accions poden realitzar els actors?
2.2. Diagrames de Seqüència
- Flux de Dades: Com es mouen les dades a través del sistema?
- Interaccions: Com interactuen els diferents components del sistema?
- Disseny del Sistema
3.1. Arquitectura del Sistema
- Patrons d'Arquitectura: MVC (Model-View-Controller), Microserveis, etc.
- Components Principals: Quins són els components principals del sistema i com es relacionen entre ells?
3.2. Diagrames de Classes
- Classes i Objectes: Quines classes necessitem i quins són els seus atributs i mètodes?
- Relacions: Com es relacionen les classes entre elles?
3.3. Disseny de la Base de Dades
- Esquema de la Base de Dades: Taules, camps, i relacions.
- Normalització: Assegurar que la base de dades està normalitzada per evitar redundàncies.
- Planificació del Desenvolupament
4.1. Divisió del Treball
- Tasques: Desglossar el projecte en tasques més petites i manejables.
- Assignació de Tasques: Qui serà responsable de cada tasca?
4.2. Cronograma
- Línia de Temps: Establir una línia de temps amb fites clau.
- Dependències: Identificar les dependències entre tasques.
4.3. Metodologies de Desenvolupament
- Àgil: Sprints, reunions diàries, revisió de sprints.
- Cascada: Fases seqüencials de desenvolupament.
- Prototipat
5.1. Creació de Prototips
- Wireframes: Esbossos de les interfícies d'usuari.
- Prototips de Baixa Fidelitat: Prototips senzills per validar idees inicials.
5.2. Validació de Prototips
- Feedback d'Usuaris: Recollir feedback dels usuaris per millorar el disseny.
- Iteració: Realitzar ajustos basats en el feedback rebut.
Exercicis Pràctics
Exercici 1: Definició de Requisits
Descripció: Defineix els requisits funcionals i no funcionals per a una aplicació de gestió de tasques. Solució:
- Funcionalitats Principals: Crear, editar, eliminar i veure tasques.
- Requisits No Funcionals: L'aplicació ha de ser ràpida, segura i fàcil d'usar.
- Restriccions: Desenvolupament en 3 mesos, utilitzant Python i SQLite.
Exercici 2: Diagrama de Casos d'Ús
Descripció: Crea un diagrama de casos d'ús per a una aplicació de comerç electrònic. Solució:
- Actors: Client, Administrador.
- Casos d'Ús: Registrar-se, iniciar sessió, cercar productes, afegir productes al carret, realitzar una compra, gestionar productes (Administrador).
Exercici 3: Disseny de la Base de Dades
Descripció: Dissenya l'esquema de la base de dades per a una aplicació de blog. Solució:
- Taules: Usuaris, Articles, Comentaris.
- Relacions: Un usuari pot tenir molts articles, un article pot tenir molts comentaris.
Resum
En aquesta secció, hem après la importància de la planificació i el disseny en el desenvolupament de projectes de programació. Hem vist com definir i documentar els requisits, analitzar-los, dissenyar l'arquitectura del sistema, planificar el desenvolupament i crear prototips. Aquests passos són essencials per assegurar que el projecte es desenvolupi de manera eficient i efectiva, i per evitar problemes durant la fase de codificació.
Fonaments de la Programació
Mòdul 1: Introducció a la Programació
- Què és la programació?
- Història de la programació
- Llenguatges de programació
- Entorns de desenvolupament