Documente Academic
Documente Profesional
Documente Cultură
Ploiești 2020
Unitatea de învățare 8. Faza de proiectare
6. 1. Introducere .................................................................................................................................. 3
6. 2. Procesul de proiectare ................................................................................................................ 4
6. 3. Arhitectura software ................................................................................................................... 4
6.3. 1. Tipuri de proiectare ............................................................................................................. 5
6.3. 2. Modelul arhitectural............................................................................................................ 6
6. 4. Proiectarea modulelor................................................................................................................. 6
6.3. 3. Modele de proiectare a modulelor ..................................................................................... 7
6.3. 4. Caracteristici ale modulelor................................................................................................. 8
6.3. 5. Principii de modularizare..................................................................................................... 9
6.3. 6. Reguli de proiectare a modulelor ...................................................................................... 10
6. 5. Documentul de proiectare arhitecturala (ADD) ........................................................................ 10
6. 6. Proiectarea de detaliu ............................................................................................................... 12
Durata: 4 ore
Cunoștințe și deprinderi
La finalul parcurgerii acestei unități de învățare veți înțelege:
- care sunt cele două niveluri ale procesului de proiectare;
- care sunt cele mai utilizate tehnici de proiectare;
- care sunt avantajele și dezavantajele modelelor de proiectare ale modulelor.
La finalul parcurgerii acestei unități de învățare veți putea să:
- explicați conținutul documentului de proiectare arhitecturală;
- descrieți caracteristicile de calitate ale modulelor;
- enumerați principiile de modularizare.
8 1. Introducere
Etapa de proiectare reprezintă al doilea pas în dezvoltarea unui produs software, etapă
ce răspunde la întrebarea CUM se va rezolva problema și implică atât proiectarea arhitecturală,
cât și proiectare detaliată a fiecărui modul în parte.
În 1981, Hoare făcea o observație interesantă legată de această etapă: Sunt două moduri
de a proiecta un produs software. Primul este de a-l face atât de simplu încât este evident că nu
există deficiențe. Al doilea este de a-l face atât de complicat încât nu există deficiențe evidente.
Prima metodă este mult mai dificilă.
Absența unei proiectări eficiente și coerente duce la scris de cod haotic, greu de înțeles
și de modificat. Cu cât te apuci mai repede să scrii cod, cu atât termini mai târziu. Deși, de
obicei, nu e niciodată timp să se proiecteze corect, întotdeauna e timp să se proiecteze de două
ori. Astfel codul proiectat corect este mai ușor de scris, de înțeles, de corectat, de extins [2].
8 2. Procesul de proiectare
8 3. Arhitectura software
8. 3. 1. Tipuri de proiectare
Obținerea modelului de proiectare arhitecturală se poate realiza prin:
• Tehnica top-down, în care problema este recursiv împărțită în subprobleme, până când
sunt identificate toate subproblemele elementare;
• Tehnica bottom- up, în care se pornește de “jos”, de la proiectarea modulelor și se
continuă cu îmbinarea acestora până la proiectarea sistemului pe ansamblu;
• Tehnica hibridă, în care se pornește de la nivelului arhitectural și se urmărește
împărțirea sistemului în subsisteme care sa poată refolosi unele module deja existente.
Tehnica top – down
Proiectarea top- down presupune existența documentului cu specificațiile sistemului
creat în etapa anterioară. Astfel, setul cerințelor P se descompune în subseturi de cerințe P1, P2,
..., Pn, alocat fiecare unei subsistem al arhitecturii, PA1, PA2, ..., PAn.
Următorul pas constă în prelucrarea fiecărui set de cerințe Pi. Dacă Pi este suficient de
simplă, modulul PAi poate fi codificat direct în pseudocod, dacă nu, împărțim Pi, de exemplu, în
două alte module de specificații Si1 și Si2. Un exemplu este reprezentat în Figura 2.
Această descompunere se realizează până când nivelul său de detaliu permite atât
continuarea dezvoltării în paralel de către mai mulți membrii ai echipei de dezvoltare cât și
planificarea activităților următoare ale procesului de dezvoltare (până la livrare) [1].
Tehnica bottom – up
Este o tehnică centrată pe reutilizare în care se ține o evidență a componentelor deja
existente (module funcționale sau clase). Plecând de l acest set de module existente se caută o
descompunere a cerințelor în subseturi ce pot fi implementate folosind componentele deja
existente. Rezultatul este tot o structură modulară de tip arbore, numai că procesul începe de “jos”
până ce ajungem “sus” la P.
✎Exercițiul 1
Prezentați două dezavantaje ale utilizării tehnicii hibride.
8. 3. 2. Modelul arhitectural
Reprezintă o structură ierarhică realizată din subsisteme interconectate, ce conțin la
rândul lor module interconectate ș.a.m.d. Modelul poate fi reprezentat prin:
• Diagrame de structură, în cazul unei descompuneri funcționale: descompunerea
iterativa a funcțiilor pe care trebuie sa le implementeze sistemul;
• Diagrame de clase, în care relațiile ierarhice se bazează pe generalizare si
specializare;
• Diagrame de componente și diagrame de distribuție combinate cu diagrame de
componente.
Fiecare modul identificat în arhitectura software se descrie în Documentul de proiectare
arhitecturală prin următoarele informații:
• Identificatorul (unic) si tipul sau (clasa, funcție, fișier, program);
• Scopul său – cerințele software pe care le implementează;
• Componentele subordonate: modulele apelate/ obiectele utilizate/ fișierele unei
baze de date;
• Interfața componentei: fluxul datelor și al controlului;
• Dependențele sale: condiții care trebuie să fie satisfăcute înainte sau după
execuția sa, operații interzise în timpul execuției componentei;
• Prelucrarea interna a componentei, la nivelul cel mai coborât în limbaj natural;
• Structurile de date interne.
8 4. Proiectarea modulelor
Descompunerea în module ale unui sistem software se realizează după două modele
principale:
• Modelul obiectual – un sistem este compus din mai multe obiecte ce
interacționează între ele;
• Modelul funcțional (pipeline sau flux de date) – un sistem este descompus în
module funcționale.
8. 3. 3. Modele de proiectare a modulelor
Modelul obiectual structurează sistemul într-un set de obiecte slab conectate dar cu
interfețe bine definite. În această abordare, pașii principali constau în identificarea și rafinarea
claselor, a atributelor și a operațiilor caracteristici. Printre avantajele modelului se numără:
• Modificarea unui obiect nu influențează celelalte obiecte deoarece cuplarea între
ele este slabă;
• Entitățile din lumea reală sunt modelate cât mai aproape de realitate;
• Limbajele orientate pe obiecte sunt larg utilizate
Dezavantaje:
• Probleme pot apărea odată cu schimbarea interfețelor obiectelor;
• Entitățile complexe pot fi greu de reprezentat ca obiecte.
În Figura 3 este reprezentată modelarea obiectuală a unui sistem de facturare. Se observă
existența claselor Client, Factură, Plată, Confirmare ce modelează entitățile implicate în acest
proces și mesajele ce reflectă interacțiunile dintre ele.
✎Exercițiul 2
Prezentați alte două avantaje ale modelului obiectual.
✎Exercițiul 3
Prezentați alte aspecte de care un programator trebuie să țină cont în proiectarea modulelor.
a. Abstract
b. Table of Contents
c. Document Status Sheet Status sheet for configuration control.
Document Change Records
d. A list of document changes.
since previous issue
1. Introduction
1.1 Purpose The purpose of this particular ADD and its intended readership.
Scope of the software. Identifies the product by name, explains
1.2 Scope
what the software will do.
1.3 List of definitions The definitions of all used terms, acronyms and abbreviations.
1.4 List of references All applicable documents.
1.5 Overview Short description of the rest of the ADD and how it is organized.
Short introduction to system context and design. Background of
2. System overview
the project.
3. System context (for each external interface ...)
3.n External interface definition The relationship with external system n.
4. System design
4.1 Design method Name and reference of the method used.
Overview of components: decomposition, dependency or
4.2 Decomposition description
interface view.
5. Component descriptions (for each component ...)
5.n Component identifier A unique identifier.
5.n.1 Type Task, procedure, package, program, file, ...
5.n.2 Purpose Software requirements implemented.
5.n.3 Function What the component does.
Child components (modules called, files composed of, classes
5.n.4 Subordinates
used).
Components to be executed before/after, excluded operations
5.n.5 Dependencies
during execution.
5.n.6 Interfaces Data and control flow in and out.
5.n.7 Resources Needed to perform the function.
5.n.8 References To other documents.
5.n.9 Processing Internal control and data flow.
5.n.10 Data Internal data.
6. Feasibility and resource A summary of computer resources needed to build, operate and
estimates maintain the software.
A table showing how each software requirement of the SRD is
7. Requirements traceability matrix
linked to components in the ADD.
8 6. Proiectarea de detaliu