Professional Documents
Culture Documents
E N TO R N S D E D E S E N V O L U PA M E N T
1. Desenvolupament de programari
Tota aplicaci informtica, ja sigui utilitzada en un suport convencional (com un ordinador de sobretaula o un ordi-
nador porttil) o sigui utilitzada en un suport de nova generaci (per exemple, dispositius mbils com ara un tel-
fon mbil de darrera generaci o una tauleta tctil PC), ha seguit un procediment planificat i desenvolupat detall
per detall per a la seva creaci. Aquest anir des de la concepci de la idea o de la funcionalitat que haur de satisfer
aquesta aplicaci fins a la generaci dun o diversos fitxers que permetin la seva execuci exitosa.
Per convertir aquesta concepci duna idea abstracta en un producte acabat que sigui efica i eficient hi haur molts
ms passos, moltes tasques a fer. Aquestes tasques caldr que estiguin ben planificades i que segueixin un gui que
pot tenir en compte aspectes com:
Analitzar les necessitats que tenen les persones que faran servir aquest programari, escoltar com el voldran,
atendre a les seves indicacions
Dissenyar una soluci que tingui en compte totes les necessitats abans analitzades: qu haur de fer el progra-
mari, quines interfcies grfiques tindr i com seran aquestes, quines dades shauran demmagatzemar i com es
far
Desenvolupar el programari que implementi tot all analitzat i dissenyat anteriorment, fent-lo duna forma al
ms modular possible per facilitar el posterior manteniment o manipulaci per part daltres programadors.
Dur a terme les proves pertinents, tant de forma individualitzada per a cada mdul com de forma complerta,
per tal de validar que el codi desenvolupat s correcte i que fa el que ha de fer segons lestablert en els requeri-
ments.
Implantar el programari en lentorn on els usuaris finals el faran servir.
Un primer pas per poder comenar a analitzar com cal fer un programa informtic s tenir clar qu s un programa
i qu significa aquest concepte. En contrast amb altres termes usats en informtica, s possible referir-se a un pro-
grama en el llenguatge colloquial sense haver destar parlant necessriament dordinadors. Es podria estar refe-
rint al programa dun cicle de conferncies o de cinema. Per, tot i que no es tracta dun context informtic, aquest
s ja aporta una idea general del seu significat.
Un altre s habitual, ara s vinculat al context de les mquines i els autmats, podria ser referir-se al programa
duna rentadora o dun robot de cuina. En aquest cas, per, el que se succeeix sn un conjunt, no tant desdeveni-
ments, sin dordres que lelectrodomstic segueix ordenadament. Un cop seleccionat el programa que volem,
lelectrodomstic fa totes les tasques corresponents de manera autnoma.
Per exemple, el programa dun robot de cuina per fer una crema de pastanaga seria:
1. Espera que introduu les pastanagues ben netejades, una patata i espcies al gust.
2. Gira durant 1 minut, avanant progressivament fins a la velocitat 5.
3. Espera que introduu llet i sal.
4. Gira durant 30 segons a velocitat 7.
5. Gira durant 10 minuts a velocitat 3 mentre cou a una temperatura de 90 graus.
6. Satura. La crema de pastanaga est llesta!
Aquest conjunt dordres no s arbitrari, sin que serveix per dur a terme una tasca de certa complexitat que no es
pot fer dun sol cop. Sha de fer pas per pas. Totes les ordres estan vinculades entre si per arribar a assolir aquest
objectiu i, sobretot, s molt important la disposici en qu es duen a terme.
Entrant ja, ara s, en el mn dels ordinadors, la manera com sestructuren les tasques que han de ser executades s
similar als programes delectrodomstics anteriorment citats. En aquest cas, per, en lloc de transformar ingredi-
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 1/19
26/9/2017 Entorns de desenvolupament
ents (o rentar roba bruta, si es tracts duna rentadora), el que lordinador transforma s informaci o dades.
Quines dades processa un programa informtic? B, aix dependr del tipus de programa:
Per tant, la tasca dun programador informtic s escollir quines ordres constituiran un programa dordinador, en
quin ordre shan de dur a terme i sobre quines dades cal aplicar-les perqu el programa porti a terme la tasca que
ha de resoldre.
Executar un programa
Per executar un programa sentn fer que lordinador segueixi
totes les seves ordres, des de la primera fins a la darrera.
La dificultat de tot plegat ser ms o menys gran depenent de la complexitat mateixa dall que cal que el programa
faci. No s el mateix establir qu ha de fer lordinador per resoldre una multiplicaci de tres nombres que per pro-
cessar textos o visualitzar pgines a Internet.
Daltra banda, un cop fet el programa, cada cop que sexecuti, lordinador complir totes les ordres del programa.
De fet, un ordinador s incapa de fer absolutament res per si mateix, sempre cal dir-li qu ha de fer. I aix se li diu
mitjanant lexecuci de programes. Tot i que des del punt de vista de lusuari pot semblar que quan es posa en
marxa un ordinador aquest funciona sense executar cap programa concret, cal tenir en compte que el seu sistema
operatiu s un programa que est sempre en execuci.
Per crear un programa el que es far ser crear un arxiu i escriure a un fitxer el seguit dinstruccions que es vol que
lordinador executi. Aquestes instruccions hauran de seguir unes pautes determinades en funci del llenguatge de
programaci escollit. A ms, haurien de seguir un ordre determinat que donar sentit al programa escrit. Per
comenar nhi haur prou amb un editor de text simple.
Un cop sha acabat descriure el programa, el conjunt de fitxers de text resultants, on es tro-
ben les instruccions, es diu que contenen el codi font. Aquest codi font pot ser des dun
nivell molt alt, molt a prop del llenguatge hum, fins a un de nivell ms baix, ms proper al
codi de les mquines, com ara el codi assemblador.
La tendncia actual s fer s de llenguatges dalt nivell, s a dir, propers al llenguatge hum. Per aix fa aparixer
un problema, i s que els fitxers de codi font no contenen el llenguatge mquina que entendr lordinador. Per tant,
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 2/19
26/9/2017 Entorns de desenvolupament
resulten incomprensibles per al processador. Per poder generar codi mquina cal fer un procs de traducci des
dels mnemotcnics que cont cada fitxer a les seqncies binries que entn el processador.
El procs anomenat compilaci s la traducci del codi font dels fitxers del programa en fitxers en format binari
que contenen les instruccions en un format que el processador pot entendre. El contingut daquests fitxers sano-
mena codi objecte. El programa que fa aquest procs sanomena compilador.
El codi objecte s el codi font tradut (pel compilador) a codi mquina, per aquest codi
encara no pot ser executat per lordinador.
El codi executable s la traducci completa a codi mquina, duta a terme per lenllaador
(en angls, linker). El codi executable s interpretat directament per lordinador.
L enllaador s lencarregat dinserir al codi objecte les funcions de les llibreries que sn necessries per al pro-
grama i de dur a terme el procs de muntatge generant un arxiu executable.
Una llibreria s un collecci de codi predefinit que facilita la tasca del programador a lhora de codificar un pro-
grama.
A la figura 1 es mostra un resum ordenat de tots els conceptes definits. El codi font desenvolupat pels programadors
es convertir en codi objecte amb lajuda del compilador. Aquest ajudar a localitzar els errors de sintaxi o de com-
pilaci que es trobin al codi font. Amb lenllaador, que recollir el codi objecte i les llibreries, es generar el codi
executable.
La primera parteix del codi font a un llenguatge intermedi obtenint un programa equivalent amb un menor
nivell dabstracci que loriginal i que no pot ser directament executat.
La segona fase tradueix el llenguatge intermedi a un llenguatge comprensible per la mquina.
Arribat aquest punt es podria plantejar la pregunta: per qu dividir la compilaci en dues fases? Lobjectiu s que el
codi de la primera fase, el codi intermedi, sigui com per a qualsevol processador, i que el codi generat en la segona
fase sigui lespecfic per a cada processador. De fet, la traducci del llenguatge intermedi al llenguatge mquina no
se sol fer mitjanant compilaci sin mitjanant un intrpret, tal com es mostra en la figura 1.
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 3/19
26/9/2017 Entorns de desenvolupament
Codi de bytes
El codi de bytes no s un llenguatge dalt nivell, sin un veritable
codi mquina de baix nivell, viable fins i tot com a llenguatge
dentrada per a un microprocessador fsic.
La mquina virtual Java s una pea fonamental de la tecnologia Java. Se situa en un nivell superior al maquinari
sobre el qual es vol executar laplicaci i actua com un pont entre el codi de bytes a executar i el sistema. Aix, quan
un programador escriu una aplicaci Java, ho fa pensant en la JVM encarregada dexecutar laplicaci i no hi ha cap
motiu per pensar en les caracterstiques de la plataforma fsica sobre la qual sha dexecutar laplicaci. La JVM ser
lencarregada, en executar laplicaci, de convertir el codi de bytes a codi natiu de la plataforma fsica.
El gran avantatge de la JVM s que possibilita la portabilitat de laplicaci a diferents plataformes i, aix, un pro-
grama Java escrit en un sistema operatiu Windows es pot executar en altres sistemes operatius (Linux, Solaris i
Apple OS X) amb lnic requeriment de disposar de la JVM per al sistema corresponent.
El concepte de mquina virtual Java susa en dos mbits: duna banda, per fer referncia al conjunt despecificaci-
ons que ha de complir qualsevol implementaci de la JVM; daltra banda, per fer referncia a les diverses imple-
mentacions de la mquina virtual Java existents i de les quals cal utilitzar-ne alguna per executar les aplicacions
Java.
Als materials web es pot trobar una explicaci, pas a pas, de com
descarregar i installar la mquina virtual Java.
Lempresa Sun Microsystems s la propietria de la marca registrada Java, i aquesta sutilitza per certificar les
implementacions de la JVM que sajusten i sn totalment compatibles amb les especificacions de la JVM, en el pre-
faci de les quals es diu: Esperem que aquesta especificaci documenti suficientment la mquina virtual de Java per
fer possibles implementacions des de zero. Sun proporciona tests que verifiquen que les implementacions de la
mquina virtual Java operen correctament.
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 4/19
26/9/2017 Entorns de desenvolupament
Establert el concepte de programa informtic i els conceptes de codi font, codi objecte i codi executable (aix com el
de mquina virtual), cal ara establir les diferncies entre els diversos tipus de codi font existents, a travs dels quals
sarriba a obtenir un programa informtic.
Al llarg dels darrers anys ha existit una evoluci constant en els llenguatges de programaci. Sha establert una crei-
xent evoluci en la qual es van incorporant elements que permeten crear programes cada vegada ms slids i efici-
ents. Aix facilita molt la tasca del programador per al desenvolupament del programari, el seu manteniment i
ladaptaci. Avui en dia, existeixen, fins i tot, llenguatges de programaci que permeten la creaci daplicacions
informtiques a persones sense coneixements tcnics dinformtica, pel fet dexistir una creaci prcticament auto-
mtica del codi a partir dunes preguntes.
La seva estructura est totalment adaptada als circuits impresos dels ordinadors o processadors electrnics i molt
allunyada de la forma dexpressi i anlisi dels problemes propis dels humans (les instruccions sexpressen en codi
binari). Aix fa que la programaci en aquest llenguatge resulti tediosa i complicada, ja que es requereix un conei-
xement profund de larquitectura fsica de lordinador. A ms, sha de valorar que el codi mquina fa possible que el
programador utilitzi la totalitat de recursos del maquinari, amb la qual cosa es poden obtenir programes molt efici-
ents.
10110000 01100001
Aquesta lnia cont una instrucci que mou un valor al registre del processador.
Actualment, a causa de la complexitat del desenvolupament daquest tipus de llenguatge, est prcticament en
dess. Noms es far servir en processadors molts concrets o per a funcionalitats molt especfiques.
Cada instrucci en llenguatge dassemblador correspon a una instrucci en llenguatge mquina. Aquests tipus de
llenguatges depenen totalment del processador que utilitzi la mquina, per aix es diu que estan orientats a les
mquines.
A la figura 1 es mostra un esquema del funcionament dels llenguatges de segona generaci. A partir del codi escrit
en llenguatge dassemblador, el programa traductor (assemblador) ho converteix en codi de primera generaci, que
ser interpretat per la mquina.
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 5/19
26/9/2017 Entorns de desenvolupament
En general sutilitza aquest tipus de llenguatges per programar controladors (drivers) o aplicacions de temps real,
ja que requereix un s molt eficient de la velocitat i de la memria.
Permeten escriure programes molt optimitzats que aprofiten al mxim el maquinari (hardware) disponible.
Permeten al programador especificar exactament quines instruccions vol que sexecutin.
Els programes escrits en llenguatges de baix nivell estan completament lligats al maquinari on sexecutaran i
no es poden traslladar fcilment a altres sistemes amb un maquinari diferent.
Cal conixer a fons larquitectura del sistema i del processador per escriure bons programes.
No permeten expressar de forma directa conceptes habituals a nivell dalgorisme.
Son difcils de codificar, documentar i mantenir.
Els llenguatges de tercera generaci o dalt nivell sutilitzen quan es vol desenvolupar aplicacions grans i complexes,
on es prioritza el fet de facilitar i comprendre com fer les coses (llenguatge hum) per sobre del rendiment del pro-
gramari o del seu s de la memria.
Els esforos encaminats a fer la tasca de programaci independent de la mquina on sexecutaran van donar com a
resultat laparici dels llenguatges de programaci dalt nivell.
Els llenguatges dalt nivell sn normalment fcils daprendre perqu estan formats per elements de llenguatges
naturals, com ara langls. A continuaci es mostra un exemple dalgorisme implementat en un llenguatge dalt
nivell, concretament en Basic. Aquest algorisme calcula el factorial dun nombre donat a la funci com a parmetre.
Es pot observar com s fcilment comprensible amb un mnim coneixement de langls.
' ------------------------------------------
' Funci Factorial
' -----------------------------------------
Public Function Factorial(num As Integer)As String
Dim i As Integer
For i = 1 To num - 1
num = num * i
Factorial = num
Next
End Function
Com a conseqncia daquest allunyament de la mquina i acostament a les persones, els programes escrits en llen-
guatges de programaci de tercera generaci no poden ser interpretats directament per lordinador, sin que s
necessari dur a terme prviament la seva traducci a llenguatge mquina. Hi ha dos tipus de traductors: els compi-
ladors i els intrprets.
Compiladors
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 6/19
26/9/2017 Entorns de desenvolupament
Sn programes que tradueixen el programa escrit amb un llenguatge dalt nivell al llenguatge mquina. El compila-
dor detectar els possibles errors del programa font per aconseguir un programa executable depurat.
Alguns exemples de codis de programaci que hauran de passar per un compilador sn: Pascal, C, C++, .NET,
A la figura 1 es pot veure, en un esquema, la funci del compilador entre els dos llenguatges.
A la figura 1 es pot observar un esquema que representa la dependncia del sistema operatiu a lhora descollir i uti-
litzar compilador.
Els intrprets
Lintrpret s un programa que tradueix el codi dalt nivell a codi de bytes, per, a diferncia del compilador, ho fa
en temps dexecuci. s a dir, no es fa un procs previ de traducci de tot el programa font a codi de bytes, sin que
es va traduint i executant instrucci per instrucci.
Alguns exemples de codis de programaci que hauran de passar per un intrpret sn: Javascript, PHP, ASP
El codi interpretat no s executat directament pel sistema operatiu, sin que fa s dun intrpret.
Cada sistema t el seu propi intrpret.
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 7/19
26/9/2017 Entorns de desenvolupament
Sn independents del maquinari (no hi fan cap referncia). Per aquest motiu s possible portar el programa
entre diferents ordinadors / arquitectures / sistemes operatius (sempre que en el sistema de destinaci exis-
teixi un compilador per a aquest llenguatge dalt nivell).
s ms fcil i rpid escriure els programes i ms fcil mantenir-los.
La seva execuci en un ordinador pot resultar ms lenta que el mateix programa escrit en llenguatge de baix
nivell, tot i que aix depn molt de la qualitat del compilador que faci la traducci.
Sautomatitzen certs aspectes que abans calia fer a m. Inclouen eines orientades al desenvolupament daplicacions
(IDE) que permeten definir i gestionar bases de dades, dur a terme informes (p.ex.: Oracle reports), consultes (p.
ex.: informix 4GL), mduls , escrivint molt poques lnies de codi o cap.
Permeten la creaci de prototipus duna aplicaci rpidament. Els prototipus permeten tenir una idea de laspecte i
del funcionament de laplicaci abans que el codi estigui acabat. Aix facilita lobtenci dun programa que reuneixi
les necessitats i expectatives del client.
Alguns dels aspectes positius que mostren aquest tipus de llenguatges de programaci sn:
Major abstracci.
Menor esfor de programaci.
Menor cost de desenvolupament del programari.
Basats en generaci de codi a partir despecificacions de nivell molt alt.
Es poden dur a terme aplicacions sense ser un expert en el llenguatge.
Solen tenir un conjunt dinstruccions limitat.
Sn especfics del producte que els ofereix.
Aquests llenguatges de programaci de quarta generaci estan orientats, bsicament, a les aplicacions de negoci i al
maneig de bases de dades.
Alguns exemples de llenguatges de quarta generaci sn Visual Basic, Visual Basic .NET, ABAP de SAP, FileMaker,
PHP, ASP, 4D
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 8/19
26/9/2017 Entorns de desenvolupament
En lloc dexecutar noms un conjunt dordres, lobjectiu daquests sistemes s pensar i anticipar les necessitats
dels usuaris. Aquests sistemes es troben encara en desenvolupament. Es tractaria del paradigma lgic.
s difcil establir una classificaci general dels llenguatges de programaci, ja que existeix un gran nombre de llen-
guatges i, de vegades, diferents versions dun mateix llenguatge. Aix provocar que en qualsevol classificaci que
es faci un mateix llenguatge pertanyi a ms dun dels grups establerts. Una classificaci molt estesa, atenent a la
forma de treballar dels programes i a la filosofia amb qu van ser concebuts, s la segent:
Paradigma imperatiu/estructurat.
Paradigma dobjectes.
Paradigma funcional.
Paradigma lgic.
La tcnica seguida en la programaci imperativa s la programaci estructurada. La idea s que qualsevol pro-
grama, per complex i gran que sigui, pot ser representat mitjanant tres tipus destructures de control:
Seqncia.
Selecci.
Iteraci.
Daltra banda, tamb es proposa desenvolupar el programa amb la tcnica de disseny descendent (top-down). s a
dir, modular el programa creant porcions ms petites de programes amb tasques especfiques, que se subdivideixen
en altres subprogrames, cada vegada ms petits. La idea s que aquests subprogrames tpicament anomenats funci-
ons o procediments han de resoldre un nic objectiu o tasca.
Imaginem que hem de fer una aplicaci que registri les dades bsiques del personal duna escola, dades com poden
ser el nom, el DNI, i que calculi el salari dels professors aix com el dels administratius, on el salari dels administra-
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 9/19
26/9/2017 Entorns de desenvolupament
tius s el sou base (SOU_BASE) * 10 mentre que el salari dels professors s el sou base (SOU_BASE) + nombre dhores
impartides (numHores) * 12.
Struct Administratiu
{
string nom;
string DNI;
float Salari;
}
Struct Professor
{
string nom;
string DNI;
int numHores;
float salari;
}
Un objecte s una combinaci de dades (anomenades atributs) i mtodes (funcions i procediments) que ens perme-
ten interactuar amb ell. En aquest tipus de programaci, per tant, els programes sn conjunts dobjectes que
interactuen entre ells a travs de missatges (crides a mtodes).
class Treballador {
private:
string nom;
string DNI;
protected:
static const float SOU_BASE = 1.000;
public:
string GetNom() {return this.nom;}
void SetNom (string n) {this.nom = n;}
string GetDNI() {return this.DNI;}
void SetDNI (string dni) {this.DNI = dni;}
virtual float salari() = 0;
}
El paradigma funcional est basat en un model matemtic. La idea s que el resultat dun
clcul s lentrada del segent, i aix successivament fins que una composici produeixi el
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 10/19
26/9/2017 Entorns de desenvolupament
resultat desitjat.
Els creadors dels primers llenguatges funcionals pretenien convertir-los en llenguatges ds universal per al proces-
sament de dades en tot tipus daplicacions, per, amb el pas del temps, sha utilitzat principalment en mbits
dinvestigaci cientfica i aplicacions matemtiques.
Un dels llenguatges ms tpics del paradigma funcional s el Lisp. Vegeu un exemple de programaci del factorial
amb aquest llenguatge:
Un programa lgic cont una base de coneixement sobre la que es duen a terme consultes. La base de coneixement
est formada per fets, que representen la informaci del sistema expressada com a relacions entre les dades i regles
lgiques que permeten deduir conseqncies a partir de combinacions entre els fets i, en general, altres regles.
Determinarem si hem de prescriure al pacient estar a casa reposant al saber que es compleixen els segents
fets: malestar i 39 de temperatura corporal.
Regles de la base de coneixement:
El sistema identifica les regles aplicables: R2 i R3. Lalgorisme sinicia aplicant la regla R2, incorporant en la
base de fets posar-se el termmetre.
Com que no sha solucionat el problema, continua amb la segent regla R3, afegint a la base de fets febre.
Com que no sha solucionat el problema, torna a identificar un subconjunt de regles aplicables, excepte les ja
utilitzades. El sistema identifica les regles aplicables: R1, tot incorporant a la base de fets estar a casa en
reps.
Base de fets = { malestar, termmetre marca 39, posar-se termmetre, febre, estar a casa en reps}
Com que reps est a la base de fets, sha arribat a una resposta positiva a la pregunta formulada.
El paradigma s mpliament utilitzat en les aplicacions que tenen a veure amb la Intelligncia Artificial, particular-
ment en el camp de sistemes experts i processament del llenguatge hum. Un sistema expert s un programa que
imita el comportament dun expert hum. Per tant cont informaci (s a dir una base de coneixements) i una eina
per comprendre les preguntes i trobar la resposta correcta examinant la base de dades (un motor dinferncia).
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 11/19
26/9/2017 Entorns de desenvolupament
Tamb s til en problemes combinatoris o que requereixin una gran quantitat o amplitud de solucions alternati-
ves, dacord amb la naturalesa del mecanisme de tornada enrere (backtracking).
Existeixen molts llenguatges de programaci diferents, fins al punt que moltes tecnologies tenen el seu llenguatge
propi. Cada un daquests llenguatges t un seguit de particularitats que el fan diferent de la resta.
Els llenguatges de programaci ms difosos sn aquells que ms es fan servir en cadascun dels diferents mbits de
la informtica. En lmbit educatiu, per exemple, es considera un llenguatge de programaci molt difs aquell que
es fa servir a moltes universitats o centres educatius per a la docncia de la iniciaci a la programaci.
Els llenguatges de programaci ms difosos corresponents a diferents mbits, a diferents tecnologies o a diferents
tipus de programaci tenen una srie de caracterstiques en com que sn les que marquen les similituds entre tots
ells.
Claredat
Hi haur dhaver prou informaci al codi per tal que el programa pugui ser ents i verificat: comentaris, noms de
variables comprensibles i procediments entenedors Tot programa estructurat pot ser llegit des del principi a la fi
sense interrupcions en la seqncia normal de lectura.
Teorema de lestructura
Demostra que tot programa es pot escriure utilitzant nicament les tres estructures bsiques de control:
Seqncia: instruccions executades successivament, una darrere laltra. A la figura 1 es pot observar un exem-
ple de lestructura bsica de seqncia, on primer sexecutar la sentncia A i, posteriorment, la B.
Figura 1.7. Exemple de seqncia
Selecci: la instrucci condicional amb doble alternativa, de la forma si condici, llavors SentnciaA, sin Sen-
tnciaB. A la figura 1 es pot observar un esquema que exemplifica lestructura bsica de selecci.
Iteraci: el bucle condicional mentre condici, fes SentnciaA, que executa les instruccions repetidament
mentre la condici es compleixi. A la figura 1 es pot observar un esquema que exemplifica lestructura bsica
diteraci.
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 12/19
26/9/2017 Entorns de desenvolupament
Figura 1.9. Exemple diteraci
Disseny descendent
El disseny descendent s una tcnica que es basa en el concepte de divideix i vencers per tal de resoldre un pro-
blema en lmbit de la programaci. Es tracta de la resoluci del problema al llarg de diferents nivells dabstracci
partint dun nivell ms abstracte i finalitzant en un nivell de detall.
A la figura 1 es pot observar un exemple del disseny descendent. A partir del problema1 sobtenen diversos subpro-
blemes (subproblema 1.1, subproblema 1.2 i subproblema 1.3). La resoluci daquests subproblemes ser molt ms
senzilla que la del problema original per tal com se nha redut considerablement labast i la mida. De forma itera-
tiva es pot observar com aquests subproblemes es tornen a dividir, a la vegada, en altres subproblemes.
La visi moderna de la programaci estructurada introdueix les caracterstiques de programaci modular i tipus
abstractes de dades (TAD).
Programaci modular
La realitzaci dun programa sense seguir una tcnica de programaci modular produeix sovint un conjunt enorme
de sentncies lexecuci de les quals s complexa de seguir, i dentendre, amb la qual cosa es fa gaireb impossible
la depuraci derrors i la introducci de millores. Fins i tot, es pot donar el cas dhaver dabandonar el codi preexis-
tent perqu resulta ms fcil comenar de nou.
Quan es parla de programaci modular, ens referim a la divisi dun programa en parts ms manejables i indepen-
dents. Una regla prctica per aconseguir aquest propsit s establir que cada segment del programa no excedeixi,
en longitud, dun pam de codificaci.
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 13/19
26/9/2017 Entorns de desenvolupament
Procediments: sn subprogrames que duen a terme una tasca determinada i retornen 0 o ms dun valor. Suti-
litzen per estructurar un programa i millorar la seva claredat.
Funcions: sn subprogrames que duen a terme una determinada tasca i retornen un nic resultat o valor. Suti-
litzen per crear operacions noves que no ofereix el llenguatge.
Els llenguatges de programaci assumeixen un nombre determinat de tipus de dades, que pot variar dun llen-
guatge a un altre; aix, en Pascal tenim els enters, els reals, els booleans, els carcters Aquests tipus de dades sn
anomenats tipus de dades bsics en el context dels llenguatges de programaci.
Fins fa uns anys, tota la programaci es basava en aquest concepte de tipus i no eren pocs els problemes que aparei-
xien, lligats molt especialment a la complexitat de les dades que shavien de definir. Va aparixer la possibilitat de
poder definir tipus abstractes de dades, on el programador pot definir un nou tipus de dades i les seves possibles
operacions.
struct TADpila
{
int top;
int elements[MAX_PILA];
}
Les funcions i procediments comparteixen dades del programa, cosa que provoca que canvis en un dells afec-
tin a la resta.
Al moment de dissenyar una aplicaci s molt difcil preveure detalladament quines funcions i procediments
necessitarem.
La reutilitzaci del codi s difcil i acaba consistint a copiar i enganxar determinats trossos de codi, i retocar-
los. Aix s especialment habitual quan el codi no s modular.
Lorientaci a objectes, concebut als anys setanta i vuitanta per estesa a partir dels noranta, va permetre superar
aquestes limitacions.
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 14/19
26/9/2017 Entorns de desenvolupament
En un programa orientat a objectes, labstracci no sn els procediments ni les funcions, sn els objectes. Aquests
objectes sn una representaci directa dalguna cosa del mn real, com ara un llibre, una persona, una organitzaci,
una comanda, un empleat
Els llenguatges de POO (programaci orientada a objectes) sn aquells que implementen ms o menys fidelment el
paradigma OO. La programaci orientada a objectes es basa en la integraci de 5 conceptes: abstracci, encapsula-
ci, modularitat, jerarquia i polimorfisme, que s necessari comprendre i seguir de manera absolutament rigorosa.
No seguir-los sistemticament o ometrels puntualment, per pressa o altres raons, fa perdre tot el valor i els benefi-
cis que aporta lorientaci a objectes.
Abstracci
s el procs en el qual se separen les propietats ms importants dun objecte de les que no ho sn. s a dir, per
mitj de labstracci es defineixen les caracterstiques essencials dun objecte del mn real, els atributs i comporta-
ments que el defineixen com a tal, per desprs modelar-lo en un objecte de programari. En el procs dabstracci no
ha de ser preocupant la implementaci de cada mtode o atribut, noms cal definir-los.
En la tecnologia orientada a objectes leina principal per suportar labstracci s la classe. Es pot definir una classe
com una descripci genrica dun grup dobjectes que comparteixen caracterstiques comunes, les quals sn especi-
ficades en els seus atributs i comportaments.
Encapsulaci
Permet als objectes triar quina informaci s publicada i quina informaci s amagada a la resta dels objectes. Per
aix els objectes solen presentar els seus mtodes com a interfcies pbliques i els seus atributs com a dades priva-
des o protegides, essent inaccessibles des daltres objectes. Les caracterstiques que es poden atorgar sn:
Pblic: qualsevol classe pot accedir a qualsevol atribut o mtode declarat com a pblic i utilitzar-lo.
Protegit: qualsevol classe heretada pot accedir a qualsevol atribut o mtode declarat com a protegit a la classe
mare i utilitzar-lo.
Privat: cap classe no pot accedir a un atribut o mtode declarat com a privat i utilitzar-lo.
Modularitat
Permet poder modificar les caracterstiques de cada una de les classes que defineixen un objecte, de forma indepen-
dent de la resta de classes en laplicaci. En altres paraules, si una aplicaci es pot dividir en mduls separats, nor-
malment classes, i aquests mduls es poden compilar i modificar sense afectar els altres, aleshores aquesta aplica-
ci ha estat implementada en un llenguatge de programaci que suporta la modularitat.
Jerarquia
Permet lordenaci de les abstraccions. Les dues jerarquies ms importants dun sistema complex sn lherncia i
lagregaci.
Lherncia tamb es pot veure com una forma de compartir codi, de manera que quan sutilitza lherncia per defi-
nir una nova classe noms sha dafegir all que sigui diferent, s a dir, reaprofita els mtodes i variables, i especia-
litza el comportament.
Per exemple, es pot identificar una classe pare anomenada treballador i dues classes filles, s a dir dos subtipus
de treballadors, administratiu i professor.
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 15/19
26/9/2017 Entorns de desenvolupament
A la figura 1 es pot observar la representaci en forma de diagrama de lexemple explicat anteriorment: les classes
administratiu i professor que hereten de la classe treballador.
Lagregaci s un objecte que est format de la combinaci daltres objectes o components. Aix, un ordinador es
compon duna CPU, una pantalla, un teclat i un ratol, i aquests components no tenen sentit sense lordinador. A la
figura 1 es pot observar un exemple dagregaci en qu la classe ordinador est composta per les altres quatre clas-
ses.
El polimorfisme
s una caracterstica que permet donar diferents formes a un mtode, ja sigui en la definici com en la implementa-
ci.
La sobrecrrega (overload) de mtodes consisteix a implementar diverses vegades un mateix mtode per amb
parmetres diferents, de manera que, en invocar-lo, el compilador decideix quin dels mtodes sha dexecutar, en
funci dels parmetres de la crida.
Un exemple de mtode sobrecarregat s aquell que calcula el salari dun treballador en una empresa. En funci de
la posici que ocupa el treballador tindr ms o menys conceptes a la seva nmina (ms o menys incentius, per
exemple).
El mateix mtode, que podrem anomenar ClculSalari quedar implementat de forma diferent en funci de si es
calcula el salari dun operari (amb menys conceptes en la seva nmina, la qual cosa provoca que el mtode rebi
menys variables) o si es calcula el salari dun directiu.
La sobreescriptura (override) de mtodes consisteix a reimplementar un mtode heretat duna superclasse exacta-
ment amb la mateixa definici (incloent nom de mtode, parmetres i valor de retorn).
Un exemple de sobrecrrega de mtodes podria ser el del mtode Area(). A partir duna classe Figura que cont el
mtode Area(), existeix una classe derivada per a alguns tipus de figures (per exemple, Rectangle o Quadrat).
La implementaci del mtode Area() ser diferent a cada una de les classes derivades; aquestes poden implemen-
tar-se de forma diferent (en funci de com es calculi en cada cas lrea de la figura) o definir-se de forma diferent.
Una aplicaci informtica necessitar moltes petites accions (i no tan petites) per ser creada. Shan desenvolupat
moltes metodologies que ofereixen un acompanyament al llarg daquest desenvolupament, proporcionant pautes,
indicacions, mtodes i documents per ajudar, sobretot, els caps de projecte ms inexperts.
Dintre daquestes metodologies hi ha Mtrica v3.0. Ha estat desenvolupada pel Ministeri dAdministracions Pbli-
ques. Es tracta duna metodologia per a la planificaci, desenvolupament i manteniment dels sistemes dinformaci
duna organitzaci. Per al desenvolupament de programari cal fixar-se en la part que fa referncia al desenvolupa-
ment dels sistemes dinformaci (SI), dins la metodologia Mtrica. Divideix el desenvolupament en 5 fases, que se
segueixen de forma seqencial.
Tamb s important tenir clarament identificats els rols dels components de lequip de projecte que participaran en
el desenvolupament de laplicaci informtica. A Mtrica aquests perfils sn:
A la figura 1 hi podeu observar les cinc fases principals de la metodologia Mtrica v3.0.
Els resultats de lestudi de viabilitat del sistema constituiran la base per prendre la decisi
de seguir endavant o abandonar el projecte.
En primer lloc, es descriu el sistema dinformaci, a partir de la informaci obtinguda en lestudi de viabilitat. Es
delimita el seu abast, es genera un catleg de requisits generals i es descriu el sistema mitjanant uns models inici-
als dalt nivell.
Es recullen de forma detallada els requisits funcionals que el sistema dinformaci ha de cobrir. A ms, sidentifi-
quen els requisits no funcionals del sistema, s a dir, les facilitats que ha de proporcionar el sistema, i les restricci-
ons a qu estar sotms, quant a rendiment, freqncia de tractament, seguretat
Normalment, per tal defectuar lanlisi se sol elaborar els models de casos ds i de classes, en desenvolupaments
orientats a objectes, i de dades i processos en desenvolupaments estructurats. Daltra banda, saconsella dur a
terme una definici dinterfcies dusuari, ja que facilitar la comunicaci amb els usuaris clau.
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 17/19
26/9/2017 Entorns de desenvolupament
El propsit del disseny s obtenir la definici de larquitectura del sistema i de lentorn tec-
nolgic que li donar suport, juntament amb lespecificaci detallada dels components del
sistema dinformaci. A partir daquesta informaci, es generen totes les especificacions de
construcci relatives al propi sistema, aix com lespecificaci tcnica del pla de proves, la
definici dels requisits dimplantaci i el disseny dels procediments de migraci i crrega
inicial.
En el disseny es generen les especificacions necessries per a la construcci del sistema dinformaci, com per
exemple:
Els components del sistema (mduls o classes, segons el cas) i de les estructures de dades.
Els procediments de migraci i els seus components associats.
La definici i revisi del pla de proves, i el disseny de les verificacions dels nivells de prova establerts.
El catleg dexcepcions, que permet establir un conjunt de verificacions relacionades amb el propi disseny o
amb larquitectura del sistema.
Lespecificaci dels requisits dimplantaci.
Per aconseguir aquest objectiu, es recull la informaci elaborada durant la fase de disseny, es prepara lentorn de
construcci, es genera el codi de cada un dels components del sistema dinformaci i es van duent a terme, a
mesura que es vagi finalitzant la construcci, les proves unitries de cada un dells i les dintegraci entre subsiste-
mes. Si fos necessari efectuar una migraci de dades, s en aquest procs on es porta a terme la construcci dels
components de migraci i dels procediments de migraci i crrega inicial de dades.
Un cop revisada lestratgia dimplantaci, sestableix el pla dimplantaci i es detalla lequip que el portar a terme.
Per a linici daquest procs es prenen com a punt de partida els components del sistema provats de forma unitria i
integrats en el procs de construcci, aix com la documentaci associada. El sistema sha de sotmetre a les proves
dimplantaci amb la participaci de lusuari doperaci. La responsabilitat, entre altres aspectes, s comprovar el
comportament del sistema sota les condicions ms extremes. El sistema tamb ser sotms a les proves daccepta-
ci, que seran dutes a terme per lusuari final.
En aquest procs selabora el pla de manteniment del sistema, de manera que el responsable del manteniment
conegui el sistema abans que aquest passi a producci.
Tamb sestableix lacord de nivell de servei requerit una vegada que sinici la producci. Lacord de nivell de servei
fa referncia a serveis de gesti doperacions, de suport a usuaris i al nivell amb qu es prestaran aquests serveis.
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 18/19
26/9/2017 Entorns de desenvolupament
https://ioc.xtec.cat/materials/FP/Materials/IC_S_INF/INF_IC_S_M05/web/html/WebContent/u1/a1/continguts.html 19/19