Documente Academic
Documente Profesional
Documente Cultură
APOO
APOO
aunei
Principii (low capling i high coheasion) . ntre module trebuie s aflm interfee ct
mai puine.
Dezavantajele programrii OO
Documentarea este un process mai dificil, dect n cazul programrii procedurale.
n structure cu multe nivele de ierarhizare, uneori este foarte greu de urmrit de la
care clas vine o proprietate.
Avantaje programrii OO
Mijloc de tartare a complextii atins prin abstractizare
Scalabilitate
Procesarea structurilor eterogene
Schimbarea comportamenului n momentul execuiei
Reutilizare
Polimorfism structuri care se comport diferit fr schimbarea unor elem.
Abstracie- abstractizarea este procesul de suprimare voluntar a anumitor detalii a
unui proces sau artefact pentru a aduce n eviden aspectele, detaliile sau structuri
accentuate.
MECANISM Abstractizare:
Modulul, e o soluie la conflictele de nume i reprezint colecii de clase, care
sunt interdependente. Modulul ofer 2 spaii de nume- spaiul public, care e
accesibil n afara modului numit i interfa. Spaiul 2 spaiul privat
disponibil doar n interiorul modulului.
TIPURI DE DATE ABSTRACTE
Programatorii trebuie s aib posibilitatea de a definini noi tipuri de date. Aceasta
include i posibilitate de a oferi clienilor acestui tip de date . E foarte important ca
aceti clieni s aib informaia despre responsabilitile, operaiile oferite, dar nu i
modul de implementare a lor.
Orientarea pe servicii
Orientarea pe obiecte ne permite definirea serviicilor tipurilor abstracte de date i
ofer clienilor clasei, servicii i nu date.
Mesaje, motenire i polimorfism- pe lng abordarea orientrii pe sericii
orientarea pe obiecte adaug nc cteva idei noi la tipul de date abstract n spea
transmiterii de mesaje i polimorfism . E foarte important de a gsi nivelul drept de
abstractizare la etapa iniial a proiectului.
Clase i obiecte
Method
Class example2{
Public:
Int I;
Int addi(int j ){
I=i+j;
Return I;
}
}
ncapsularea
Ofer independen implementrii de interfa
Previne coruperea datelor interne
Permite mai multor echipe un lucru independent asupra modulelor
Documentarea bun permite obun mentenan, dar i depanare dificil.
Ierarhizarea
Ordonarea/gruparea abstraciilor obinute...
Ierarhii de clas, motenirea
-motenirea implic o ierarhie de tip generalizare sau specializare ( este o )
Ierarhia de obiecte, agergare
Relaia ntre dou obiecte n care unul dintre obiecte aparine celuilalt obiect
Agreagarea partoff
( un obiect conine prin referin sau valoare
(compozi) obine alte obiecte )
this.value
Pentru a defini un membru static se utilizeaz cuvntul cheie static, plasat dup
modificatorul de acces:
modificatorAcces static tipMembru numeMembru;
Intr-o metod static NU este permisa referira simpl a unui membru non-static.
n orientarea pe obiecte nu exist var globale. Avem nevoie de mecanins care ar
emula acest concept.
ntr-o metoda static Nu este permisa referirea simpl a unui membru non-static.
Apelnd o anumit metod cu valorile acestui obiect o s fie ok. Dac apeleaz
metoda static tot e ok, deoarece atrbiutele statice se partajeaz. Dac apelm
metoda static this nestatice. n metod static nu poi apela nonstatic.
~X =100 va fi de 2 ori
La apelarea constructorilor, se apeleaz n primul rnd constructorii
atributelor, iar apoi construct. Clasei. La distrugerea obiectului se apelaz
la nceput destructorul clasei iar apoi obiectelor atrbut.
De 8 ori x y x y ~x ~y ~x ~y
Organizarea claselor.
1.Gruparea claselor dup funcionalitate
-uurina n cutare
-evitarea conflictelor de nume (adugarea claselor nu doar n modul )
-controlul accesului ( Grupuri accesibile private sau publice n dependen)
2.Java
-package
3.C++ C#
-Namespace
Motenire
-Has-a
MOtenirea n JAVA!!!
//vezi mob
Super(4) constructor baza
Ordinea exec. Constructor destructor la motenire
Derived*dref = new Derived();
delete dref;
//vezi mob
La c++ rezultat base.foo
Java Derived.foo va fi
3.Implic generarea unui table al funciilor v-table , care pstreaz pointeri spre
funciile fiecrui oibect derivat:
Acest lucru nu-l vedem. Ele fac LEGAREA trzie . Implic costuri performan .
//vezi mob
Base*ref = new Derived();
Cu vritual nu trebuie sa scriu de dou ori acelai cod.
Obj.add 4 de ex. Daca e un tip f bucata asta else f altceva . Compilatorul la
obj.add nu va ti care metod va li apelat.
Interfata Ioperation
<| - - - - -
Clasa Operation
Blocarea motenirei
Exist cazuri cnd o clas nu dorim s fie motenit . Pentru java e definit final .
Dac punem acest lucru, clasa nu mai poate fi extins . Dac punem la metode nu
poate fi suprascrise iar la atrbiute nu mai pot fi suprascrise
Definiii.
Cerine funcionale i nefuncionale .
Cerine non-funcionale performan , culori , mrimi.
Abordri sunt cteva: avem trei tipuri pentru care scrim cerine
-As-IS sisteme existente aa cum sun la moment. Pentru ele se creeaz cerine
pentru sistemul care trebuie s fie computerizat.
-To-be sisteme sunt sisteme de perspective care sunt bazate pe cerinele de
updatare sau cele create
-System Proposal propunerea de sistem care trebuie s fie rezultatul livrat la faza
de analiz.
Crein :
-o caracterisitc a sistemului
-un statement care trebuie s fie realizat
-cerinele se pot modifica
Funcional requirement
-
Nonfunctional requirement
-
Clieni
Parteneri
Adminsistratori
Analiti industriali
Domain experts
Informatia competitor
Interviuri
-
Closed-Ended questions
How do customers place orders?
Open-Ended questions
What are some problems you face on daily basis
Probing Questions
Why?
Interviews steps
Organizing Interview Questions
-Unstructured interview useful early in information gathering
-Structured interview useful later in process
Chestionare- un se de ntrebri
Analiza documentelor ( tot felul de sisteme informaii descrise)
Sesiune JAD
o
o
o
Prototyping
Repetitiv process
Rezultatul e o versiune rudimentar sau simplificat a sistemului.
Are ca scop de a dezvolta specificaii concrete pentru sistemul final .
Aceast abordare ne permite s transformm cerinele ntr-un sistem
informaional.
Cerinele apar cnd utilizatorul vede prototipul.
Cnd e util prototipizarea
o Este folosit cnd cerinele clientului nu sunt clare.
o S fie implicai puini oameni.
o Cnd interfeele sunt complexe i necesit o form concret
Punctele de start sunt foarte des sisteme existente sau similare. Uneori
sisteme i produse comparabile pot s ne dea soluii pentru rezolvarea problemelor
sistemului nostru. S vedem ce exist i s mbuntim.
Reverse engineering
n baza acestui cod de creat cerinele sau documentaia. Avnd la
dispoziie codul surs.
Requirements Analysis
Analiza cerinelor este un proces, care reduce diferena dintre cerinele de
sistem i design-ul de proiect
Ne ofer design ca :
-sisteme infromatice
-funcionare
-comportamente
Obiectivele analizei
Identificare necesitii clientului.
Evaluarea fezabilitii( de a aduce beneficii)
Analiza economic i tehnic
Alocarea funciilor elementare de sistem
Stabilirea unui plac i a constrngerilor
Crearea termenilorcare i vom utiliza
Domeniul informaional
Partiionarea
Proceseaz rezultatelen elaborarea datelor, funciunilor i comportamentului
Orizotal pariionare (
Vertical partiionare(ne adncim i schimbm nivelul de abstracie) cu ct mai sus e
nalt
Cerine visuale
Viziunea esenial
De implementare
Specificare principiilor
Separarea funcionalitilor de implementare
Limbaj orientat pe proces
Specificaiile s aib componentele software
Specificarea sistemului= modelul cognitiv
Trebuie ca specificarea s aib mediu ei.
Specificarea trebuie s fie operaional.
Prototipizari si specificatii
Prototipizare cu pierderi ( prototipul e aruncat)
Prototipul evolutionar ( este redefinit si ultilizat pentru finalizarea sistemului )
Erori tipice n analiza cerinelor
- Clienii nu neleg ce vor.
- Cerinele se schimb pe parcursul proiectului.
- Clienii pun termeni nerezonabili
-Probleme de comunicare, client i manageri de proiect.
- Echipa de dezvoltare nu nelege politica de dezvoltare.
manageri
-
Facei notie
Fii consisteni n utilizarea cuvintelor (numii un concept cu acelai cuvnt)
Echipa de dezvoltare nu nelege politica de oranizare.
Comunicarea.
network.
Alegerea
protocoalelor,
protejarea
datelor
senzitive
pe
Caching. Atunci cnd de ex. toi caut n google un singur lucru i el menine
n cash pentru a afia direct, dar nu din baze de date.