Evolving mutation from objects to the cloud
|
|
- Norah Bryan
- 5 years ago
- Views:
Transcription
1 Evolving mutation from objects to the cloud MUTATION workshop, Berlin, March 2011 Benoit Baudry 1
2 Outline A perspective on testing in evolving software construction paradigms A methodological pattern: question-learn-testfeedback An illustration: aspect-oriented programming 2
3 1. The scope of software testing practice and research is broadening 3
4 1. The scope of software testing practice and research is widening 4
5 purpose 1. The scope of software testing practice and research is widening 4
6 beta acceptance system unit purpose regression security integration usability performance 1. The scope of software testing practice and research is widening 4
7 beta acceptance system unit purpose regression security integration usability performance target 1. The scope of software testing practice and research is widening 4
8 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement state target requirements environment mutation The scope of software testing practice and research is widening 4
9 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement state target requirements environment mutation The scope of software testing practice and research is widening techniques 4
10 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement state target requirements environment mutation The scope of software testing practice and research is widening impact analysis test plan prioritization techniques selection data generation conformance 4
11 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement target requirements state environment mutation The scope of software testing practice and research is jobs widening impact analysis test plan prioritization techniques selection data generation conformance 4
12 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement target requirements state environment mutation The scope of software testing practice and research is dev-tester integration designer jobs engineer widening trainer QA architect impact analysis test plan prioritization techniques selection data generation conformance 4
13 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement target requirements state environment mutation The scope of software tools testing practice and research is dev-tester integration designer jobs engineer widening trainer QA architect impact analysis test plan prioritization techniques selection data generation conformance 4
14 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement target requirements state environment mutation The scope of software tools testing practice and research is dev-tester integration designer jobs engineer widening trainer QA architect impact analysis test plan prioritization techniques selection data generation conformance 4
15 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement target requirements state environment mutation The scope of software tools testing practice and research is dev-tester integration designer jobs engineer widening trainer QA architect impact analysis test plan prioritization techniques selection data generation conformance 4
16 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement target requirements state environment mutation The scope of software tools testing practice and research is dev-tester integration designer jobs engineer widening trainer QA architect impact analysis test plan prioritization techniques selection data generation conformance 5
17 beta acceptance system unit purpose regression security integration usability performance 1. scenario MC/DC statement target requirements state environment mutation The scope of software tools testing practice and research is dev-tester integration designer jobs engineer widening trainer QA architect impact analysis test plan prioritization techniques selection data generation conformance 6
18 2. because of (i) new ways of building software systems to (ii) face the growing diversity of applications and requirements for software systems 7
19 2. because of (i) new ways of building software systems to 8
20 processes 2. because of (i) new ways of building software systems to 8
21 V-cycle Innovation factory processes CMMI spiral SCRUM 2. because of (i) new ways of building software systems to 8
22 V-cycle Innovation factory processes CMMI spiral SCRUM constraints 2. because of (i) new ways of building software systems to 8
23 V-cycle Innovation factory processes CMMI spiral SCRUM embedded critical distributed constraints end-user security scalability 2. because of (i) new ways of building software systems to 8
24 V-cycle Innovation factory processes CMMI spiral SCRUM embedded critical distributed constraints end-user security scalability 2. because of (i) new ways of building software systems to languages 8
25 V-cycle Innovation factory processes CMMI spiral SCRUM embedded critical distributed constraints end-user security scalability 2. because of (i) new ways of building software systems to CP CBSE OOP AOP languages enduser DSL DSML Procedural UML 8
26 V-cycle Innovation factory processes CMMI spiral SCRUM embedded critical distributed constraints end-user security scalability 2. because of (i) new ways of building software systems to economics CP CBSE OOP AOP languages enduser DSL DSML Procedural UML 8
27 V-cycle Innovation factory processes CMMI spiral SCRUM embedded critical distributed constraints end-user security scalability 2. because of (i) new ways of building innovation cloud outsourcing software systems to economics lean agility SOA CP CBSE OOP AOP languages enduser DSL DSML Procedural UML 8
28 V-cycle Innovation factory processes CMMI spiral SCRUM embedded critical distributed constraints end-user security scalability 2. environments because of (i) new ways of building innovation cloud outsourcing software systems to economics lean agility SOA CP CBSE OOP AOP languages enduser DSL DSML Procedural UML 8
29 V-cycle Innovation factory processes CMMI spiral SCRUM embedded critical distributed constraints end-user security scalability 2. environments because of (i) new ways of building innovation cloud outsourcing software systems to economics lean agility SOA CP CBSE OOP AOP languages enduser DSL DSML Procedural UML 8
30 V-cycle Innovation factory processes CMMI spiral SCRUM embedded critical distributed constraints end-user security scalability 2. environments because of (i) new ways of building innovation cloud outsourcing software systems to economics lean agility SOA CP CBSE OOP AOP languages enduser DSL DSML Procedural UML 8
31 (ii) face the growing diversity of applications and requirements for software systems 9
32 (ii) face the growing diversity of applications and requirements for software systems 9
33 (ii) face the growing diversity of applications and requirements for software systems 9
34 (ii) face the growing diversity of applications and requirements for software systems 9
35 (ii) face the growing diversity of applications and requirements for software systems 9
36 (ii) face the growing diversity of applications and requirements for software systems 9
37 (ii) face the growing diversity of applications and requirements for software systems 9
38 3. The identification of core principles underlying this apparent seething landscape is a major challenge for research in software engineering. 10
39 A visual representation Carlo Ghezzi, Mehdi Jazayeri, and Dino Mandrioli. Fundamentals of Software Engineering, 2nd edition
40 Key principles Carlo Ghezzi, Mehdi Jazayeri, and Dino Mandrioli. Fundamentals of Software Engineering, 2nd edition Rigor and formality Separation of concerns Modularity Abstraction Anticipation of change Generality Incrementality 12
41 Research in Software Engineering Peter J. Denning: Is computer science science?. Communications of the ACM, (4): p Science Maths Engineering 13
42 Research in Software Engineering Peter J. Denning: Is computer science science?. Communications of the ACM, (4): p Science Maths Engineering 13
43 Research in Software Engineering Peter J. Denning: Is computer science science?. Communications of the ACM, (4): p Science Maths Engineering 13
44 4. The confrontation of these core principles with the broadening scope of software leads to the emergence of new software construction paradigms 14
45 Software construction paradigms Object-oriented programming Aspect-oriented programming Model-driven development Aspect-oriented modelling Multi-paradigm modelling 15
46 Software testing research for emerging paradigms extends beyond error detection to analyze and include the context imposed by these paradigms 16
47 Agility and Test Driven Development Write unit test refactor Run test è fail Run test è pass Write code 17
48 MDD and MBT Requirements Design models Test model System Test cases 18
49 QLTF pattern Learn Questions tester test(t,j) ack SUT Test Software construction paradigm Feedback 19
50 Mutation in QLTF what can go wrong? what type of errors are we looking for? what can mitigate/increase error risks? Software construction paradigm te S st U er test(t,j) T ack Learn Test Feedback 20
51 Mutation in QLTF Questions Software construction paradigm what are the frequent faults? what usages trigger faults? what practices to detect faults? te S st U ertest(t,j) T ack Test Feedback 21
52 Mutation in QLTF Questions Software construction paradigm tes SU ter test(t,j) T ack how can we assist fault detection? do our techniques detect faults? are new adequacy criteria adequate? Feedback 22
53 Mutation in QLTF te S st test(t,j) U er ack T Learn Test Questions Software construction paradigm how can we prevent faults? how can testability be improved? how can test be integrated in dev. processes? 23
54 Aspect oriented programming 24
55 An example: AOP class Point implements FigureElement { private int x = 0, y = 0; int getx() { return x; int gety() { return y; void setx(int x) { this.x = x; void sety(int y) { this.y = y; void moveby(int dx, int dy) {... class Line implements FigureElement{ private Point p1, p2; Point getp1() { return p1; Point getp2() { return p2; void setp1(point p1) { this.p1 = p1; void setp2(point p2) { this.p2 = p2; void moveby(int dx, int dy) {... aspect DisplayUpdating { pointcut move(): call(void FigureElement.moveBy(int, int)) call(void Line.setP1(Point)) call(void Line.setP2(Point)) call(void Point.setX(int)) call(void Point.setY(int)); after(): move() { Display.update(); 25
56 An example: AOP class Point implements FigureElement { private int x = 0, y = 0; int getx() { return x; int gety() { return y; void setx(int x) { this.x = x; void sety(int y) { this.y = y; void moveby(int dx, int dy) {... class Line implements FigureElement{ private Point p1, p2; Point getp1() { return p1; Point getp2() { return p2; void setp1(point p1) { this.p1 = p1; void setp2(point p2) { this.p2 = p2; void moveby(int dx, int dy) {... aspect DisplayUpdating { pointcut move(): call(void FigureElement.moveBy(int, int)) call(void Line.setP1(Point)) call(void Line.setP2(Point)) call(void Point.setX(int)) call(void Point.setY(int)); after(): move() { Display.update(); Advice 25
57 An example: AOP class Point implements FigureElement { private int x = 0, y = 0; int getx() { return x; int gety() { return y; void setx(int x) { this.x = x; void sety(int y) { this.y = y; void moveby(int dx, int dy) {... class Line implements FigureElement{ private Point p1, p2; Point getp1() { return p1; Point getp2() { return p2; void setp1(point p1) { this.p1 = p1; void setp2(point p2) { this.p2 = p2; void moveby(int dx, int dy) {... Pointcut descriptor (PCD) aspect DisplayUpdating { pointcut move(): call(void FigureElement.moveBy(int, int)) call(void Line.setP1(Point)) call(void Line.setP2(Point)) call(void Point.setX(int)) call(void Point.setY(int)); after(): move() { Display.update(); Advice 25
58 An example: AOP class Point implements FigureElement { private int x = 0, y = 0; int getx() { return x; int gety() { return y; void setx(int x) { this.x = x; void sety(int y) { this.y = y; void moveby(int dx, int dy) {... class Line implements FigureElement{ private Point p1, p2; Point getp1() { return p1; Point getp2() { return p2; void setp1(point p1) { this.p1 = p1; void setp2(point p2) { this.p2 = p2; void moveby(int dx, int dy) {... JoinPoint Pointcut descriptor (PCD) aspect DisplayUpdating { pointcut move(): call(void FigureElement.moveBy(int, int)) call(void Line.setP1(Point)) call(void Line.setP2(Point)) call(void Point.setX(int)) call(void Point.setY(int)); after(): move() { Display.update(); Advice 25
59 An example: AOP class Point implements FigureElement { private int x = 0, y = 0; int getx() { return x; int gety() { return y; void setx(int x) { this.x = x; void sety(int y) { this.y = y; void moveby(int dx, int dy) {... class Line implements FigureElement{ private Point p1, p2; Point getp1() { return p1; Point getp2() { return p2; void setp1(point p1) { this.p1 = p1; void setp2(point p2) { this.p2 = p2; void moveby(int dx, int dy) {... JoinPoint Pointcut descriptor (PCD) aspect DisplayUpdating { pointcut move(): call(void FigureElement.moveBy(int, int)) call(void Line.setP1(Point)) call(void Line.setP2(Point)) call(void Point.setX(int)) call(void Point.setY(int)); after(): move() { Display.update(); Advice 25
60 Bank + login(string, String): + deleteaccount(int); + createaccount(): Account + getaccount(int): Account accounts * Account - balance: int + withdraw(int): + deposit(int): void public aspect AccessControl { pointcut controlledaccess(): execution(* Account.*(int)); A fault in the PCD can have a ripple effect and result in many different before(): controlledaccess() { if(!checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 26
61 Withdraw 27
62 Faults in PCD Intended Matched 28
63 Faults in PCD correct PCD Intended Matched 28
64 Faults in PCD correct PCD both neglected and unintended Intended Matched 28
65 Faults in PCD correct PCD both neglected and unintended neglected joinpoints Intended Matched 28
66 Faults in PCD correct PCD both neglected and unintended neglected joinpoints unintended joinpoints Intended Matched 28
67 both neglected and unintended pointcut controlledaccess(): execution(* Bank.*(int)); matches deleteaccount() and getaccount() pointcut controlledaccess(): execution( Bank.*(int)); matches deleteaccount() and login() 29
68 neglected joinpoints pointcut controlledaccess(): execution(* Account.*(int)); matches withdraw() and deposit() pointcut controlledaccess(): execution( Account.*(int)); matches withdraw() 30
69 Mutant PCD A PCD where a fault has been inserted Selects a different set of joinpoints Equivalent mutant Mutant that matches the same set of joinpoint Equivalent mutants can be detected statically 31
70 Mutation Operators Operator PCCC PCCE PCGS PCLO PCTT POEC POPL PSWR PWAR PWIW Description Replaces a cflow by a cflowbelow, or the contrary Replaces a call by an execution, or the contrary Replaces a get by a set, or the contrary Changes the logical operators in a composition of PCDs Replaces a this by a target, or the contrary Adds, removes or changes throwing clauses Changes the parameter list Removes wildcards Removes annotation from type, field or method patterns Adds wildcards 32
71 Testing the PCD: an example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public aspect AccessControl { pointcut controlledaccess(): execution(* before(): controlledaccess() { if(!checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 33
72 Testing the PCD: an example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); try { account.withdraw(30); fail("access should not be authorized"); catch(deniedaccessexception() { 33
73 Testing the PCD: an example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); try { account.withdraw(30); fail("access should not be authorized"); catch(deniedaccessexception() { 33
74 Testing the PCD: example 2 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public aspect AccessControl { pointcut controlledaccess(): execution(void before(): controlledaccess() { if(!checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 34
75 Testing the PCD: example 2 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); try { account.withdraw(30); fail("access should not be authorized"); catch(deniedaccessexception() { 34
76 Testing the PCD: example 2 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); try { account.withdraw(30); fail("access should not be authorized"); catch(deniedaccessexception() { 34
77 Testing the PCD: example 3 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public aspect AccessControl { pointcut controlledaccess(): execution(* before(): controlledaccess() { if(checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 35
78 Testing the PCD: example 3 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); try { account.withdraw(30); fail("access should not be authorized"); catch(deniedaccessexception() { 35
79 Testing the PCD: example 3 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); try { account.withdraw(30); fail("access should not be authorized"); catch(deniedaccessexception() { 35
80 Testing the PCD: example 4 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public aspect AccessControl { pointcut controlledaccess(): execution(* before(): controlledaccess() { if(!checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 36
81 Testing the PCD: example 4 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); try { account.withdraw(30); fail("access should not be authorized"); catch(deniedaccessexception() { 36
82 Testing the PCD: example 4 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); try { account.withdraw(30); fail("access should not be authorized"); catch(deniedaccessexception() { 36
83 Crosscutting aspects 38 open source projects: 479 aspects, 522 advices in join-points
84 AdviceTracer: writing PCD specific Oracles AdviceTracer: AspectJ library to write oracles that specifically target the PCD Oracles written with AdviceTracer for one PCD are: Independent from the advices Independent from other PCDs 38
85 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public aspect AccessControl { pointcut controlledaccess(): execution(* before(): controlledaccess() { if(!checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 39
86 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 39
87 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 39
88 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 39
89 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 39
90 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 39
91 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 39
92 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 39
93 AdviceTracer: example 1 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 39
94 AdviceTracer: example 2 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public aspect AccessControl { pointcut controlledaccess(): execution(void before(): controlledaccess() { if(!checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 40
95 AdviceTracer: example 2 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 40
96 AdviceTracer: example 2 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 40
97 AdviceTracer: example 3 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public aspect AccessControl { pointcut controlledaccess(): execution(* before(): controlledaccess() { if(checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 41
98 AdviceTracer: example 3 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 41
99 AdviceTracer: example 3 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 41
100 AdviceTracer: example 4 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public aspect AccessControl { pointcut controlledaccess(): execution(* before(): controlledaccess() { if(!checkaccess(thisjoinpoint.gettarget())) throw new DeniedAccessException(); 42
101 AdviceTracer: example 4 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 42
102 AdviceTracer: example 4 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); try { account.withdraw(30); catch(deniedaccessexception() { setadvicetraceroff(); assertadviceexecutionequals(1); assertexecutedadvice("accesscontrol","account.withdraw:47"); 42
103 AdviceTracer: example 5 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); // System Test setadvicetraceroff(); assertadviceexecutionequals(4); 43
104 AdviceTracer: example 5 Bank + login(string,string): + deleteaccount(int): accounts * Account + withdraw(int): public void testaccesscontroldelete() { bank.login(nonauthorizeduser,password); addtracedadvice("accesscontrol"); setadvicetraceron(); // System Test setadvicetraceroff(); assertadviceexecutionequals(4); 43
105 R. Delamare, B. Baudry, S. Ghosh, Y. Le Traon. «An approach for testing pointcut descriptors in AspectJ». Journal of Software Testing, Verification and Reliability,
106 QLTF for AOP usage of PCD Software construction paradigm which faults? tester test(t,j) ack SUT AdviceTracer mutation tool contracts for AOP 45
107 Cloud computing Build order of magnitude bigger systems with order of magnitude less efforts Distribution, communication and synchronization are hidden establish trust in these mechanisms Design applications as atoms and bits reason on pieces of programs understand the interactions between these pieces and the cloud framework 46
108 MapReduce 47
109 Word count 48
110 Word count 49
111 MapReduce application Two independents parts Mapper processes a bit of information; 1-to-1 input/ output sources Reducer processes n mapped bits of information in a global result; n-to-1 I/O sources + configuration, dispatch modules 50
112 Map and reduce modules rely on high level languages low level arithmetic, control, etc. are hidden from the programmer that have been heavily tested i.e., we can trust the iterator Java library framework that abstracts I/O and distribution operations all errors are handled by the framework (e.g., Hadoop) 51
113 MapReduce faults Some faults in map and reduce logic, arithmetic Most of them elsewhere cutting a function in map and reduce is a hard design task understanding the MapReduce framework is hard 52
114 Conclusion New ways of building software require new ways of testing it Mutation analysis can play a central role understanding faults in the methods and techniques focusing testing on relevant defects tailoring testing research questions 53
An Approach for Testing Pointcut Descriptors in AspectJ
An Approach for Testing Pointcut Descriptors in AspectJ Romain Delamare, Benoit Baudry, Sudipto Ghosh, Shashank Gupta, Yves Le Traon To cite this version: Romain Delamare, Benoit Baudry, Sudipto Ghosh,
More informationAn AspectJ-enabled Eclipse Runtime Engine - Demonstration at AOSD 04 - Martin Lippert
An AspectJ-enabled Eclipse Runtime Engine - Demonstration at AOSD 04 - Martin Lippert lippert@acm.org www.martinlippert.com Motivation Use Eclipse 3.0 RCP to develop enterprise applications Use AspectJ
More informationIntroduction to Aspect-Oriented Programming
Introduction to Aspect-Oriented Programming Martin Giese Chalmers University of Technology Göteborg, Sweden AOP Course 2003 p.1/44 AspectJ Quick Tour AOP Course 2003 p.2/44 Reminder: Join Points A join
More informationGETTING STARTED WITH ASPECTJ
a GETTING STARTED WITH ASPECTJ An aspect-oriented extension to Java enables plug-and-play implementations of crosscutting. Many software developers are attracted to the idea of AOP they recognize the concept
More informationwith Aspect/J 44. Aspect-Oriented Programming Literature [KLM+97] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C.
44. Aspect-Oriented Programming with Aspect/J Prof. Dr. Uwe Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik http://st.inf.tu-dresden.de Version 14-0.9, June 14, 2014
More informationwith Aspect/J 24) Aspect-Oriented Programming Literature [KLM+97] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C.
24) Aspect-Oriented Programming with Aspect/J Prof. Dr. Uwe Aßmann Florian Heidenreich Technische Universität Dresden Institut für Software- und Multimediatechnik http//st.inf.tu-dresden.de Version 11-0.1,
More informationAspect Oriented Programming
1 Aspect Oriented Programming Programming Languages Seminar Presenter: Barış Aktemur University of Illinois 18 Feb. 2004 Mostly taken from Bedir Tekinerdogan s slides Outline Introduction Problems Terminology
More informationAspect-Oriented Programming and AspectJ
What is Aspect-Oriented Programming? Many possible answers: a fad Aspect-Oriented Programming and AspectJ Aspect-oriented programming is a common buzzword lately Papers from ECOOP 1997 (early overview
More informationAspectScope: An Outline Viewer for AspectJ Programs
Vol. 6, No. 9, 2007 AspectScope: An Outline Viewer for AspectJ Programs Michihiro Horie, Tokyo Institute of Technology, Japan Shigeru Chiba, Tokyo Institute of Technology, Japan This paper presents the
More informationA Brief Introduction to Aspect-Oriented Programming. Historical View Of Languages. Procedural language Functional language Object-Oriented language
A Brief Introduction to Aspect-Oriented Programming Historical View Of Languages Procedural language Functional language Object-Oriented language 1 Acknowledgements Zhenxiao Yang Gregor Kiczales Procedural
More informationA Brief Introduction to Aspect-Oriented Programming" Historical View Of Languages"
A Brief Introduction to Aspect-Oriented Programming" Historical View Of Languages" Procedural language" Functional language" Object-Oriented language" 1 Acknowledgements" Zhenxiao Yang" Gregor Kiczales"
More informationUsing Aspect-Oriented Programming to extend Protégé. Henrik Eriksson Linköping University
Using Aspect-Oriented Programming to extend Protégé Henrik Eriksson Linköping University Questions about MOP and Protégé Original goal: Extending the JessTab plug-in What is the class precedence in Protégé?
More informationMeta-Program and Meta-Programming
Meta-Program and Meta-Programming What is a Meta-Programming? The creation of procedures and programs that automatically construct the definitions of other procedures and programs. First example the Turing
More informationAJDT: Getting started with Aspect-Oriented Programming in Eclipse
AJDT: Getting started with Aspect-Oriented Programming in Eclipse Matt Chapman IBM Java Technology Hursley, UK AJDT Committer Andy Clement IBM Java Technology Hursley, UK AJDT & AspectJ Committer Mik Kersten
More informationStudy Goals. Evaluation Criteria. Problems with OO Solution. Design Pattern Implementation in Java and AspectJ
DCC / ICEx / UFMG Study Goals Design Pattern Implementation in Java and AspectJ Develop and compare Java and AspectJ implementations of the 23 GoF patterns Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo
More informationMapping Features to Aspects
Mapping Features to Aspects The Road from Crosscutting to Product Lines (Work in Progress) Roberto E. Lopez-Herrejon Computing Laboratory Oxford University 1 Motivation Features Feature Informally: A characteristic
More informationTesting Aspect-Oriented Software
Project Report Testing Aspect-Oriented Software Fayezin Islam MSc in Advanced Software Engineering 2006/2007 School of Physical Sciences and Engineering King s College London Supervised by Professor Mark
More informationSo, What is an Aspect?
Introduction to AspectJ Aspect-oriented paradigm AspectJ constructs Types of Join Points Primitive Lexical designators Type designators Control flow Types of Advice Before After Around Receptions Join
More informationThe AspectJTM Programming Guide
Table of Contents The AspectJTM Programming Guide...1 the AspectJ Team...1 Preface...3 Chapter 1. Getting Started with AspectJ...3 Introduction...4 AspectJ Semantics...5 The Dynamic Join Point Model...6
More informationModular software design with crosscutting interfaces
Computer Science Publications Computer Science 1-2006 Modular software design with crosscutting interfaces W. G. Griswold University of California, San Diego M. Shonle University of California, San Diego
More informationA model-based framework for security policy specification, deployment and testing
A model-based framework for security policy specification, deployment and testing Tejeddine Mouelhi 1, Franck Fleurey 3, Benoit Baudry 2 and Yves Le Traon 1 1 IT- Telecom Bretagne, France. 2 INRIA/IRISA,
More informationManual Testing. Software Development Life Cycle. Verification. Mobile Testing
10 Weeks (Weekday Batches) or 12 Weekends (Weekend batches) To become a Professional Software Tester To enable the students to become Employable Manual Testing Fundamental of Testing What is software testing?
More informationaspect-oriented programming Modular Software Design with Crosscutting Interfaces
focus aspect-oriented programming Modular Software Design with Crosscutting Interfaces William G. Griswold and Macneil Shonle, University of California, San Diego Kevin Sullivan, Yuanyuan Song, Nishit
More informationaspect-oriented programming Modular Software Design with Crosscutting Interfaces
focus aspect-oriented programming Modular Software Design with Crosscutting Interfaces William G. Griswold and Macneil Shonle, University of California, San Diego Kevin Sullivan, Yuanyuan Song, Nishit
More informationMotivation. Ability is what you're capable of doing. Motivation determines what you do. Attitude determines how well you do it.
Aspects in AspectJ Motivation Aspect Oriented Programming: a brief introduction to terminology Installation Experimentation AspectJ some details AspectJ things you should know about but we dont have time
More information04/06/2013. Study Goals. Design Patterns in AspectJ. Evaluation Criteria. Problems with OO Solution
DCC / ICEx / UFMG Study Goals Design Patterns in AspectJ Develop and compare Java and AspectJ implementations of the 23 GoF patterns Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Aim to keep the
More informationTest Architect A Key Role defined by Siemens
Test Architect A Key Role defined by Siemens Siemens Munich, Germany January 30 February 3, 2017 http://www.oop-konferenz.de Agenda Why do we need a Test Architect? What are the responsibilities and tasks
More informationDISCUSSING ASPECTS OF AOP
a DISCUSSING ASPECTS OF AOP How would you define AOP? Gregor Kiczales: Aspect-oriented programming is a new evolution in the line of technology for separation of concerns technology that allows design
More informationChapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring
Chapter 7 Modular Refactoring I n this chapter, the role of Unified Modeling Language (UML) diagrams and Object Constraint Language (OCL) expressions in modular refactoring have been explained. It has
More informationAspect-Oriented Programming and Modular Reasoning
Copyright 2004 Gregor Kiczales, Mira Mezini. All rights reserved. 1 Aspect-Oriented Programming and Modular Reasoning Gregor Kiczales University of British Columbia gregork@acm.org Mira Mezini Technische
More informationLEVERAGING VISUAL STUDIO TEAM SYSTEM 2008 Course LTS08: Five days; Instructor-Led Course Syllabus
LEVERAGING VISUAL STUDIO TEAM SYSTEM 2008 Course LTS08: Five days; Instructor-Led Course Syllabus INTRODUCTION This five-day, instructor-led course provides students with the knowledge and skills to effectively
More informationAspect-Oriented Programming and Modular Reasoning
Aspect-Oriented Programming and Modular Reasoning Gregor Kiczales University of British Columbia 2366 Main Mall Vancouver, BC, Canada gregork@acm.org Mira Mezini Technische Universität Darmstadt Hochschulstrasse
More informationPart I: Preliminaries 24
Contents Preface......................................... 15 Acknowledgements................................... 22 Part I: Preliminaries 24 1. Basics of Software Testing 25 1.1. Humans, errors, and testing.............................
More informationTowards Regression Test Selection for AspectJ Programs
Towards Regression Test Selection for AspectJ Programs Jianjun Zhao Department of Computer Science and Engineering Shanghai Jiao Tong University 800 Dongchuan Road, Shanghai 200240, China zhao-jj@cs.sjtu.edu.cn
More informationCourse 1 October, 9, Adrian Iftene
Course 1 October, 9, 2017 Adrian Iftene adiftene@info.uaic.ro SWEBOK: place and role of software engineering, knowledge areas (KAs), related disciplines Development and maintenance of the systems: model
More informationAspect-Oriented Programming
Aspect-Oriented Programming Based on the Example of AspectJ Prof. Harald Gall University of Zurich, Switzerland software evolution & architecture lab AOP is kind of a complicated one for me ( ) the idea
More informationTesting in the Agile World
Testing in the Agile World John Fodeh Solution Architect, Global Testing Practice 2008 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Outline
More informationJML and Aspects: The Benefits of
JML and Aspects: The Benefits of Instrumenting JML Features with AspectJ Henrique Rebêlo Sérgio Soares Ricardo Lima Paulo Borba Márcio Cornélio Java Modeling Language Formal specification language for
More information(Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info
(Complete Package) WEB APP TESTING DB TESTING We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info START DATE : TIMINGS : DURATION : TYPE OF BATCH : FEE : FACULTY NAME
More informationContext-oriented Programming. Pascal Costanza (Vrije Universiteit Brussel, Belgium) Robert Hirschfeld (Hasso-Plattner-Institut, Potsdam, Germany)
Context-oriented Programming Pascal Costanza (Vrije Universiteit Brussel, Belgium) Robert Hirschfeld (Hasso-Plattner-Institut, Potsdam, Germany) Programs are too static! Mobile devices Software agents
More informationProgramming AspectJ with Eclipse and AJDT, By Example. Chien-Tsun Chen Sep. 21, 2003
Programming AspectJ with Eclipse and AJDT, By Example Chien-Tsun Chen Sep. 21, 2003 ctchen@ctchen.idv.tw References R. Laddad, I want my AOP!, Part 1-Part3, JavaWorld, 2002. R. Laddad, AspectJ in Action,
More informationSoftware Testing part II (white box) Lecturer: Giuseppe Santucci
Software Testing part II (white box) Lecturer: Giuseppe Santucci 4. White box testing White-box (or Glass-box) testing: general characteristics Statement coverage Decision coverage Condition coverage Decision
More informationCourse 7 25 November Adrian Iftene
Course 7 25 November 2013 Adrian Iftene adiftene@info.uaic.ro 1 Recapitulation course 6 AOP AOP Profiler Tracing Pooling PostSharp Spring Framework Runtime Verification Model Checking MOP Java MOP 2 Concern
More informationLanguage support for AOP
Language support for AOP AspectJ and beyond Mario Südholt www.emn.fr/sudholt INRIA and École des Mines de Nantes OBASCO project, Nantes, France Language support for AOP ; Mario Südholt; INRIA/EMN; March
More informationAspect-Oriented Programming
Aspect-Oriented Programming Anya Helene Bagge Department of Informatics University of Bergen LRDE Seminar, 26 Mar 2008 Anya Helene Bagge (UiB) Aspect-Oriented Programming LRDE Seminar, 26 Mar 2008 1 /
More informationKlocwork Architecture Excavation Methodology. Nikolai Mansurov Chief Scientist & Architect
Klocwork Architecture Excavation Methodology Nikolai Mansurov Chief Scientist & Architect Overview Introduction Production of software is evolutionary and involves multiple releases Evolution of existing
More informationSpecifying Pointcuts in AspectJ
Specifying Pointcuts in AspectJ Yi Wang Department of Computer Science Shanghai Jiao Tong University 800 Dongchuan Rd, Shanghai, 200240, China yi_wang@sjtu.edu.cn Jianjun Zhao Department of Computer Science
More informationAspect-Oriented Programming
Aspect-Oriented Programming Harald Gall University of Zurich seal.ifi.uzh.ch/ase Source: http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html Programming paradigms Procedural programming
More informationAspect Oriented Programming with AspectJ. Ted Leung Sauria Associates, LLC
Aspect Oriented Programming with AspectJ Ted Leung Sauria Associates, LLC twl@sauria.com Overview Why do we need AOP? What is AOP AspectJ Why do we need AOP? Modular designs are not cut and dried Responsibilities
More informationTest-Driven Development for Aspect-Oriented Programming Progress Report
The University of Manchester School of Computer Science MSc in Advanced Computer Science (Software Engineering) Test-Driven Development for Aspect-Oriented Programming Progress Report Andreas Vlachou Supervisor:
More informationThree General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams
Three General Principles of QA COMP 4004 Fall 2008 Notes Adapted from Dr. A. Williams Software Quality Assurance Lec2 1 Three General Principles of QA Know what you are doing. Know what you should be doing.
More informationTowards A Metrics Suite for Aspect-Oriented Software
Towards A Metrics Suite for Aspect-Oriented Software Jianjun Zhao Department of Computer Science and Engineering Fukuoka Institute of Technology 3-30-1 Wajiro-Higashi, Higashi-ku, Fukuoka 811-0295, Japan
More informationAPTE: Automated Pointcut Testing for AspectJ Programs
APTE: Automated Pointcut Testing for AspectJ Programs Prasanth Anbalagan Department of Computer Science North Carolina State University Raleigh, NC 27695 panbala@ncsu.edu Tao Xie Department of Computer
More informationSeparation of Concerns. AspectJ. What if the concerns are Cross-Cutting? SoC: Programming Paradigms. Key theme: Modularity and Encapsulation
Separation of Concerns and AspectJ EEC 625 Lecture #16 April 3, 2006 EEC 625: Software Design & Architecture Separation of Concerns Breaking a program into pieces that overlap in functionality as little
More informationJAVA. Aspects (AOP) AspectJ
JAVA Aspects (AOP) AspectJ AOP Aspect-oriented programming separation of concerns concern ~ a part of program code related to a particular functionality typically understood as an extension of OOP solves
More informationCertifiedAT - Version: 1. ISTQB Certified Agile Tester Foundation Level Extension
CertifiedAT - Version: 1 ISTQB Certified Agile Tester Foundation Level Extension ISTQB Certified Agile Tester Foundation Level Extension CertifiedAT - Version: 1 3 days Course Description: We are facing
More informationCS5233 Components Models and Engineering
CS5233 Components Models and Engineering - Komponententechnologien Master of Science (Informatik) Java Services Seite 1 Services Services Build-in technology Java 6 build-in technology to load services
More informationA CONFUSED TESTER IN AGILE WORLD
A CONFUSED TESTER IN AGILE WORLD QA A LIABILITY OR AN ASSET THIS IS A WORK OF FACTS & FINDINGS BASED ON TRUE STORIES OF ONE & MANY TESTERS!! J Presented By Ashish Kumar, A STORY OF TESTING. WHAT S AHEAD
More information1. Introduction. 2. Technology concepts
1 Table of Contents 1. Introduction...2 2. Technology Concepts...3 2.1. Sharding...4 2.2. Service Oriented Data Architecture...4 2.3. Aspect Oriented Programming...4 3. Technology/Platform-Specific Features...5
More informationFinal Paper/Best Practice/Tutorial Advantages OF BDD Testing
Final Paper/Best Practice/Tutorial Advantages OF BDD Testing Preeti Khandokar Test Manager Datamatics Global Solutions Ltd Table of Contents Table of Contents... 2 Abstract... 3 Introduction... 3 Solution:...
More informationRefactoring Aspect Oriented Software
Refactoring Aspect Oriented Software Jochem Rutgers rutgers@ewi.utwente.nl ABSTRACT Existing refactoring methods are able to rewrite object-oriented code to better object-oriented code or to aspect-oriented
More informationISTQB Advanced Level (CTAL)
ISTQB Advanced Level (CTAL) 2012 Syllabus - Overview Mike Smith Chairman, Advanced Level Working Group (ALWG) December 2012 Contents 1 2 3 4 5 6 Introduction to ISTQB CTAL 2012: What s changed? CTAL 2012:
More informationA Unit Testing Framework for Aspects without Weaving
A Unit Testing Framework for Aspects without Weaving Yudai Yamazaki l01104@sic.shibaura-it.ac.jp Kouhei Sakurai sakurai@komiya.ise.shibaura-it.ac.jp Saeko Matsuura matsuura@se.shibaura-it.ac.jp Hidehiko
More informationLecture 16 & 17. Crosscutting Concerns N-dimensional separation of concerns, AspectJ, Mixin, Concern Graph, etc.
Lecture 16 & 17 Crosscutting Concerns N-dimensional separation of concerns, AspectJ, Mixin, Concern Graph, etc. Spring 2009 EE 382V Software Evolution, Instructor Miryung Kim This week s Agenda Presentations:
More informationInformation systems modeling. Tomasz Kubik
Information systems modeling Tomasz Kubik Aspect-oriented programming, AOP Systems are composed of several components, each responsible for a specific piece of functionality. But often these components
More informationSystems Analysis and Design in a Changing World, Fourth Edition
Systems Analysis and Design in a Changing World, Fourth Edition Systems Analysis and Design in a Changing World, 4th Edition Learning Objectives Explain the purpose and various phases of the systems development
More informationLearn Well Technocraft
-This course includes Manual Testing aspects plus basic automation testing tools. The content included in the syllabus is sufficient for clearing the ISTQB certification. Note: We have combo course and
More informationBringing QA Into the Agile Process
Quality Assurance - SCQAA-OC 2/17/09 Bringing QA Into the Process SCQAA Meeting 2/17/09 Speaker: Paul Hodgetts, Logic, www.logic.com Rev 090217 Your Speaker: Paul Hodgetts Team coach, trainer, consultant,
More informationQuestion-learn-test-feedback pattern to test emerging software construction paradigms
Question-learn-test-feedback pattern to test emerging software construction paradigms Benoit Baudry To cite this version: Benoit Baudry. Question-learn-test-feedback pattern to test emerging software construction
More informationComparative Evaluation of Programming Paradigms: Separation of Concerns with Object-, Aspect-, and Context-Oriented Programming
Comparative Evaluation of Programming Paradigms: Separation of Concerns with Object-, Aspect-, and Context-Oriented Programming Fumiya Kato, Kazunori Sakamoto, Hironori Washizaki, and Yoshiaki Fukazawa
More informationDynamic Aspect Composition using Logic Metaprogramming
Vrije Universiteit Brussel - Belgium Faculty of Sciences In Collaboration with Ecole des Mines de Nantes - France and Universidad National de La Plata - Argentina 2001-2002 VRIJE UNIVERSITEIT BRUSSEL SCIENTIA
More informationWhat is AOP? Business Logic Requirements Concern Identifier Security Logging (Laddad, 2003, p. 9) What is AOP? Non-AOP implementation of crosscutting
Aspect Oriented Programming Todd A. Whittaker Franklin University whittakt@franklin.edu What is AOP? Addresses crosscutting concerns Requirements analysis leads to identification of concerns in a software
More informationAspect-Oriented Programming and Aspect-J
Aspect-Oriented Programming and Aspect-J TDDD05 Ola Leifer Most slides courtesy of Jens Gustafsson and Mikhail Chalabine Outline: Aspect-Oriented Programming New concepts introduced Crosscutting concern
More informationObject-Oriented Programming
Object-Oriented Programming 3/18/14 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Object-Oriented
More informationAutomated Generation of Pointcut Mutants for Testing Pointcuts in AspectJ Programs
Automated Generation of Pointcut Mutants for Testing Pointcuts in AspectJ Programs Prasanth Anbalagan Tao Xie Department of Computer Science, North Carolina State University, NC 27695, USA panbala@ncsu.edu
More informationThe Future of Testing: Continuous Enterprise Testing
The Future of Testing: Continuous Enterprise Testing ANZTB Test Conference, Canberra, 1 June 2018 Thomas Hadorn. Dev Ops Years Months Months Weeks Delivery Cycle Time Weeks Days Perceived Disruption Software
More informationShift Left Testing: are you ready? Live Webinar, Sept 19
Shift Left Testing: are you ready? Live Webinar, Sept 19 Guy Arieli CTO, Experitest 01 What exactly is Shift Left? Agenda 02 03 How Shift Left affects application development & testing organizational structures
More informationAutomated Acceptance Testing
Automated Acceptance Testing Björn Beskow Callista Enterprise AB bjorn.beskow@callista.se http://www.callista.se/enterprise CADEC 2004-01-28, Automated Acceptance Testing, Slide 1 Target audience and Objectives
More informationState-Based Incremental Testing of Aspect-Oriented Programs
State-Based Incremental Testing of Aspect-Oriented Programs Dianxiang Xu Department of Computer Science North Dakota State University Fargo, ND 58105, U.S.A dianxiang.xu@ndsu.edu Weifeng Xu Department
More informationFrustrated by all the hype?
Fundamentals of Software Architecture Looking beyond the hype Markus Völter (voelter@acm.org) Introduction Frustrated by all the hype? If so this presentation is for you. Otherwise you should leave People
More informationDisciplined Reuse of Aspects State of the Art & Work Plan. André Restivo
Disciplined Reuse of Aspects State of the Art & Work Plan André Restivo September 4, 2007 Contents 1 Aspect-Oriented Programming 5 1.1 Separation of Concerns........................ 5 1.2 Object-Oriented
More informationEnterprise Informatization LECTURE
Enterprise Informatization LECTURE Piotr Zabawa, PhD. Eng. IBM/Rational Certified Consultant e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa/en 07.10.2011 Lecture 7 Aspect-Oriented Programming
More informationMore Refactoring s: Aspect Oriented Programming with AspectJ
More Refactoring s: Aspect Oriented Programming with AspectJ 1 Geeta Bagade, 2 Dr. Shashank Joshi 1 Ph.D. Scholar, 2 Professor/Ph.D Guide Bharati Vidyapeeth, Pune, India ABSTRACT: Even though Object Oriented
More informationThe Process of Software Architecting
IBM Software Group The Process of Software Architecting Peter Eeles Executive IT Architect IBM UK peter.eeles@uk.ibm.com 2009 IBM Corporation Agenda IBM Software Group Rational software Introduction Architecture,
More informationCourse 6 7 November Adrian Iftene
Course 6 7 November 2016 Adrian Iftene adiftene@info.uaic.ro 1 Recapitulation course 5 BPMN AOP AOP Cross cutting concerns pointcuts advice AspectJ Examples In C#: NKalore 2 BPMN Elements Examples AOP
More informationAbout Us. Services CONSULTING OUTSOURCING TRAINING MENTORING STAFF AUGMENTATION 9/9/2016
About Us Incorporated in January, 2003 QA and QC in expertise focused on functional, performance and application security validation HPE Software Gold Partner, HPE Authorized Software Support Partner &
More informationHow to Harvest Reusable Components in Existing Software. Nikolai Mansurov Chief Scientist & Architect
How to Harvest Reusable Components in Existing Software Nikolai Mansurov Chief Scientist & Architect Overview Introduction Reuse, Architecture and MDA Option Analysis for Reengineering (OAR) Architecture
More informationTopic 01. Software Engineering, Web Engineering, agile methodologies.
Topic 01 Software Engineering, Web Engineering, agile methodologies. 1 What is Software Engineering? 2 1 Classic Software Engineering The IEEE definition: Software Engineering is the application of a disciplined,
More informationParallel Code Smells: A Top 10 List
Parallel Code Smells: A Top 10 List Luc Bläser Hochschule für Technik Rapperswil Multicore@Siemens 8 Feb. 2017, Nuremberg Code Smells Symptoms in code Indicators of potential design flaws Partly curable
More informationThe software lifecycle and its documents
The software lifecycle and its documents Supplementary material for Software Architecture course B. Meyer, May 2006 Lifecycle models Origin: Royce, 1970, Waterfall model Scope: describe the set of processes
More informationManuel Oriol, CHCRC-C, Software Testing ABB
Manuel Oriol, CHCRC-C, 08.11.2017 Software Testing Slide 1 About me 1998 2004 2005 2008 2011 Slide 2 Introduction Why do we test? Did you have to deal with testing in the past? Slide 3 Ariane 5 http://www.youtube.com/watch?v=kyurqduyepi
More informationSoftware Engineering
Software Engineering Lecture 13: Testing and Debugging Testing Peter Thiemann University of Freiburg, Germany SS 2014 Recap Recap Testing detect the presence of bugs by observing failures Recap Testing
More informationAnalyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern
Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern Deepali A. Bhanage 1, Sachin D. Babar 2 Sinhgad Institute of Technology,
More informationLanguage Oriented Modularity: From Theory to Practice
Language Oriented Modularity: From Theory to Practice Arik Hadas Dept. of Mathematics and Computer Science The Open University of Israel Joint Work With: David H. Lorenz Language Oriented Modularity (LOM)
More informationTest Automation Strategies in Continuous Delivery. Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions
Test Automation Strategies in Continuous Delivery Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions The world of application is going through a monumental shift.. Evolving
More informationWeaving Rewrite-Based Access Control Policies
Weaving Rewrite-Based Access Control Policies Anderson Santana de Oliveira a, Eric Ke Wang ab, Claude Kirchner a, Hélène Kirchner a INRIA & LORIA The University of Hong Kong FMSE, 2007 Oliveira, Wang,
More informationAOP Tutorial. Written By: Muhammad Asif. Department of Computer Science, Virtual University of Pakistan
AOP Tutorial Written By: Muhammad Asif. Department of Computer Science, Virtual University of Pakistan Table of Contents 1.0 INTRODUCTION... 3 2.0 SCOPE AND OBJECTIVE... 4 3.0 MOTIVATION... 5 4.0 HISTORY...
More informationExamples. Object Orientated Analysis and Design. Benjamin Kenwright
Examples Object Orientated Analysis and Design Benjamin Kenwright Outline Revision Questions Group Project Review Deliverables Example System Problem Case Studey Group Project Case-Study Example Vision
More information10. Software Testing Fundamental Concepts
10. Software Testing Fundamental Concepts Department of Computer Science and Engineering Hanyang University ERICA Campus 1 st Semester 2016 Testing in Object-Oriented Point of View Error Correction Cost
More informationLesson Plan for semester Started w.e.f (8 th Sem)
Lesson Plan for semester Started w.e.f. 01.01.19 (8 th Sem) Subject: Cloud Computing Name of Institute: Seth Jai Parkash Mukand Lal Institute of Engineering & Technology, Radaur Name of teacher with designation:
More information