Vés al contingut

Anàlisi i disseny orientats a objectes

De la Viquipèdia, l'enciclopèdia lliure

L'anàlisi i el disseny orientats a objectes (OOAD) és un enfocament per analitzar i dissenyar un sistema informàtic aplicant una mentalitat orientada a objectes i utilitzant el modelatge visual durant tot el procés de desenvolupament de programari. Consisteix en l'anàlisi orientada a objectes (OOA) i el disseny orientat a objectes (OOD)  – cadascun dels quals produeix un model del sistema mitjançant el modelatge orientat a objectes (OOM). Els defensors sostenen que els models s'han de refinar i evolucionar contínuament, en un procés iteratiu, impulsat per factors clau com el risc i el valor empresarial.

L'OOAD és un mètode d'anàlisi i disseny que aprofita els principis de descomposició orientats a objectes i les notacions per representar models lògics, físics, basats en estats i dinàmics d'un sistema. Com a part del cicle de vida del desenvolupament de programari, l'OOAD pertany a dues etapes inicials: sovint anomenades anàlisi de requisits i disseny.[1]

El model de la cascada.

Tot i que l'OOAD es podria emprar en una metodologia en cascada on les etapes del cicle de vida són seqüencials amb límits rígids entre elles, l'OOAD sovint implica enfocaments més iteratius. Les metodologies iteratives es van idear per afegir flexibilitat al procés de desenvolupament. En lloc de treballar en cada etapa del cicle de vida alhora, amb un enfocament iteratiu, el treball pot progressar en l'anàlisi, el disseny i la codificació alhora. I a diferència de la mentalitat en cascada que un canvi a una etapa anterior del cicle de vida és un fracàs, un enfocament iteratiu admet que aquests canvis són normals en el curs d'un procés intensiu en coneixement  – que coses com l'anàlisi no es poden entendre completament sense entendre els problemes de disseny, que els problemes de codificació poden afectar el disseny, que les proves poden proporcionar informació sobre com s'ha de modificar el codi o fins i tot el disseny, etc. Tot i que és possible fer desenvolupament orientat a objectes en una metodologia en cascada, la majoria de l'OOAD segueixen un enfocament iteratiu.

L'OOAD es duu a terme de manera iterativa i incremental, tal com ho formula el Procés Unificat.

El paradigma orientat a objectes emfatitza la modularitat i la reusabilitat. L'objectiu d'un enfocament orientat a objectes és satisfer el principi "obert  – tancat". Un mòdul és obert si admet extensió o si el mòdul proporciona maneres estandarditzades d'afegir nous comportaments o descriure nous estats. En el paradigma orientat a objectes, això sovint s'aconsegueix creant una nova subclasse d'una classe existent. Un mòdul és tancat si té una interfície estable ben definida que tots els altres mòduls han d'utilitzar i que limita la interacció i els possibles errors que es poden introduir en un mòdul mitjançant canvis en un altre. En el paradigma orientat a objectes, això s'aconsegueix definint mètodes que invoquen serveis en objectes. Els mètodes poden ser públics o privats, és a dir, certs comportaments que són únics per a l'objecte no estan exposats a altres objectes. Això redueix una font de molts errors comuns en la programació informàtica.[2]

Anàlisi orientada a objectes

[modifica]

Els models comuns que s'utilitzen en OOA són el cas d'ús i el model d'objectes. Un cas d'ús descriu un escenari per a funcions de domini estàndard que el sistema ha de dur a terme. Un model d'objectes descriu els noms, les relacions de classe, les operacions i les propietats dels objectes principals. També es poden crear maquetes o prototips d'interfície d'usuari per ajudar a la comprensió.[3]

A diferència de l'OOA, que organitza els requisits al voltant d'objectes que integren processos i dades, amb altres mètodes d'anàlisi, els processos i les dades es consideren per separat. Per exemple, les dades es poden modelar mitjançant diagrames entitat-relació, i els comportaments mitjançant diagrames de flux o diagrames d'estructura.

Artefactes

[modifica]

Les sortides de l'OOA són entrades per a l'OOD. En un enfocament iteratiu, no cal que un artefacte de sortida estigui completament desenvolupat per servir com a entrada per a l'OOD. Tant l'OOA com l'OOD es poden realitzar de manera incremental, i els artefactes es poden fer créixer contínuament en lloc de desenvolupar-se completament d'una sola vegada. Els artefactes OOA inclouen:

Model conceptual
Un model conceptual captura conceptes en el domini del problema. El model conceptual es tria explícitament per ser independent dels detalls d'implementació, com ara la concurrència o l'emmagatzematge de dades.
Cas d'ús
Un cas d'ús és una descripció de seqüències d'esdeveniments que porten a un sistema a fer alguna cosa útil. Cada cas d'ús proporciona un o més escenaris que transmeten com el sistema hauria d'interactuar amb els usuaris anomenats actors per aconseguir un objectiu o funció empresarial específica. Els actors dels casos d'ús poden ser usuaris finals o altres sistemes. En moltes circumstàncies, els casos d'ús es desglossen més en diagrames de casos d'ús. Els diagrames de casos d'ús s'utilitzen per identificar l'actor (usuaris o altres sistemes) i els processos que realitzen.
Diagrama de seqüència del sistema
Un diagrama de seqüència de sistema (SSD) és una imatge que mostra, per a un escenari particular d'un cas d'ús, els esdeveniments que generen actors externs, el seu ordre i els possibles esdeveniments entre sistemes.
Documentació de la interfície d'usuari
Documentació opcional que mostra i descriu l'aspecte de la interfície d'usuari.
Model de dades relacionals
Si no s'utilitza una base de dades d'objectes, normalment s'hauria de crear un model de dades relacional abans del disseny, ja que l'estratègia escollida per al mapatge objecte-relacional és un resultat del procés de disseny OO. Tanmateix, és possible desenvolupar el model de dades relacional i els artefactes OOD en paral·lel, i el creixement d'un artefacte pot estimular el refinament d'altres artefactes.

Disseny orientat a objectes

[modifica]

El disseny de programari obert (OOA), una forma de disseny de programari, és el procés de planificació d'un sistema d'objectes que interactuen per resoldre un problema de programari. Un dissenyador aplica restriccions d'implementació al model conceptual produït en OOA. Aquestes restriccions poden incloure les plataformes de maquinari i programari, els requisits de rendiment, l'emmagatzematge i les transaccions persistents, la usabilitat del sistema i les limitacions imposades pels pressupostos i el temps. Els conceptes del model d'anàlisi, que és independent de la tecnologia, es mapen a les classes i interfícies d'implementació, donant com a resultat un model del domini de la solució, és a dir, una descripció detallada de com s'ha de construir el sistema sobre tecnologies concretes.[4]

Les activitats de l'OOD inclouen:

Els principis i estratègies de OOD inclouen:

Injecció de dependències
La injecció de dependències consisteix en el fet que si un objecte depèn de tenir una instància d'un altre objecte, l'objecte necessari s'"injecta" a l'objecte dependent; per exemple, se li passa una connexió de base de dades com a argument al constructor en lloc de crear-ne una internament.
Principi de dependències acícliques
El principi de les dependències acícliques és que el graf de dependències de paquets o components (la granularitat depèn de l'abast del treball d'un desenvolupador) no ha de tenir cicles. Això també es coneix com a tenir un graf acíclic dirigit.[6] Per exemple, el paquet C depèn del paquet B, que depèn del paquet A. Si el paquet A depengués del paquet C, tindríeu un cicle.
Principi de reutilització de compostos
El principi de reutilització composta és afavorir la composició polimòrfica d'objectes per sobre de l'herència.[7]

Artefactes

[modifica]
Diagrama de seqüència
Amplieu el diagrama de seqüència per afegir objectes específics que gestionen els esdeveniments del sistema. Un diagrama de seqüència mostra, com a línies verticals paral·leles, diferents processos o objectes que viuen simultàniament i, com a fletxes horitzontals, els missatges intercanviats entre ells, en l'ordre en què es produeixen.
Diagrama de classes
Un diagrama de classes és un tipus de diagrama UML d'estructura estàtica que descriu l'estructura d'un sistema mostrant les classes del sistema, els seus atributs i les relacions entre les classes. Els missatges i les classes identificades mitjançant el desenvolupament dels diagrames de seqüència poden servir com a entrada per a la generació automàtica del diagrama de classes global del sistema.

Referències

[modifica]
  1. Jacobsen, Ivar. Object Oriented Software Engineering (en anglès). Addison-Wesley ACM Press, 1992, p. 15,199. ISBN 0-201-54435-0. 
  2. Meyer, Bertrand. Object-Oriented Software Construction (en anglès). Cambridge: Prentise Hall International Series in Computer Science, 1988, p. 23. ISBN 0-13-629049-3. 
  3. Jacobsen, Ivar. Object Oriented Software Engineering (en anglès). Addison-Wesley ACM Press, 1992, p. 77–79. ISBN 0-201-54435-0. 
  4. Conallen, Jim. Building Web Applications with UML (en anglès). Addison Wesley, 2000, p. 147. ISBN 0201615770. 
  5. Erich Gamma. Design Patterns: Elements of Reusable Object-Oriented Software (en anglès). Addison-Wesley, January 2, 1995. ISBN 978-0-201-63361-0. 
  6. «What Is Object-Oriented Design?» (en anglès). Object Mentor. Arxivat de l'original el 2007-06-30. [Consulta: 3 juliol 2007].
  7. Erich Gamma. Design Patterns: Elements of Reusable Object-Oriented Software (en anglès). Addison-Wesley, January 2, 1995. ISBN 978-0-201-63361-0.