Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Aspekty a prípady použitia

Prednáška 5, AOVS 2017/18, fiit.sk/~vranic/aovs
by

Valentino Vranić

on 16 October 2017

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Aspekty a prípady použitia

Aspekty a prípady použitia
Ústav informatiky, informačných systémov a softvérového inžinierstva
Valentino Vranić
vranic@stuba.sk fiit.sk/~vranic
> Aspekty možno chápať ako spoluprácu rolí

> Prípady použitia možno pomocou aspektov zachovať v kóde
AOVS 2017/18
16. 10. 2017
Prednáška 5:
fiit.sk/~vranic/aovs/dotaznik
Čo by mali byť aspekty pri realizácii prípadov použitia na rovnakej úrovni?
Prípady použitia na rovnakej úrovni:
symetrická aspektovo-orientovaná modularizácia

Vzťah extend:
asymetrická aspektovo-orientovaná modularizácia
рр
Body rozšírenia sú uvedené explicitne.

Narúša to princíp
neuvedomenia si (obliviousness) aspektov na strane zasiahnutého kódu?
Prvky tém v Theme/UML sú
roly
.
A roly sú známe už dlhšie...
Objednaj tovar

1. Zákazník zvolí objednávanie tovaru.
2. Aktivuje sa prípad použitia Vyhľadaj tovar.
3. Zákazník potvrdí výber tovaru a zadá počet kusov.
4. Systém overí dostupnosť tovaru.
5. Ak je tovar dostupný, systém ho pridá do objednávky.
6. Zákazník pokračuje v objednávaní ďalšieho tovaru.
7. Zákazník kedykoľvek môže vzdať objednávanie tovaru.
8. Prípad použitia končí.

Body rozšírenia:
Overenie dostupnosti tovaru: krok 5
Modifikuj plán doplnenia zásob

Prípad použitia sa aktivuje po bode rozšírenia Overenie dostupnosti tovaru prípadu použitia Objednaj tovar.

1. Systém skontroluje počet kusov objednávaného tovaru.
2. Ak počet poklesol pod stanovený limit, systém pridá objednaný počet kusov daného tovaru do plánu doplnenia zásob.
3. Pokračuje sa ďalším krokom prípadu použitia Objednaj tovar po danom bode rozšírenia.

public aspect PlanDoplneniaZasob {
...
void around(Tovar tovar):
call(* Objednavanie.tovarDostupny()
&& args(tovar) {
// uprav plan doplnenia zasob pre tovar
...
}
...
}

public class Objednavanie {
...
public void objednaj() {
...
new VyhladavanieTovaru().vyhladajTovar();
...
if (
tovarDostupny(tovar)
) {
...
} else...
}
...
}

Object-Oriented Role Analysis and Modeling (OOram)
рр
Aspect-Oriented Programming is Quantification and Obliviousness

– R. E. Filman and D. P. Friedman, 2000
Čo sú vlastne základné témy v prístupe Theme?
abstract aspect BackgroundStill {
interface MovingClass {
boolean isStill();
boolean getBackground();
}
abstract pointcut movingOp(MovingClass o);
void around(MovingClass o): movingOp(o) {
if (!o.isStill())
proceed(o);
}
}
aspect GSysBackgroundStill extends BackgroundStill {

declare parents: Point implements MovingClass;

public boolean MovingClass.isStill() {
return getBackground();
}

pointcut movingOp(MovingClass o): target(o) && call(* set*(..));
}
A. Cockburn. Writing Effective Use Cases. Addison-Wesley, 2000.
Full transcript