august 30, 2013 13th workshop software engineering education and reverse engineering1 distributed...
TRANSCRIPT
![Page 1: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/1.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
1
Distributed Network Applications Development -- Educational Experiences
Costin Bădică and Sorin Ilie
University of CraiovaFaculty of Automation, Computers and
ElectronicsComputers and Information Technology
Department
![Page 2: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/2.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
2
Talk Outline
Introduction
Overview
Experience
Conclusions
![Page 3: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/3.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
3
Introduction - Motivation
CS curricula recommendations are continuously developed by ACM and IEEE
CS Body Knowledge (2013) 18 Knowledge Areas KA
Knowledge Units KU Topics Learning Outcomes
Levels of mastery: Familiarity Usage Assessment
![Page 4: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/4.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
4
Introduction - Motivation
Knowledge Areas Updates: KA: Networking and Communication (NC)
It was split, because of growth and divergence, and part of it was included in PBD
KA: Platform-Based Development (PBD) New KA, mainly from NC
KA: Parallel and Distributed Computing (PD) New KA, collected topics previously distributed in
other KAs
![Page 5: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/5.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
5
Introduction - Motivation
Distributed Networks Application Development
New course introduced in 2002
It was planned to address the requirements of introducing students to the principles, methods and technologies of distributed software development
Alignment as much as possible with CS curricula recommendations from ACM and IEEE
![Page 6: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/6.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
6
Overview – Prerequisites
Location in curricula: Main trunk 3rd year, 6th semester
No mandatory prerequisites. All the courses before DNAD are in the main trunk, i.e. they are mandatory by default
Some courses must be passed before DNAD: Operating systems Object-oriented programming
Courses that benefit from DNAD: Electronic Commerce Web Application Design
![Page 7: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/7.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
7
Overview - Goals
To introduce the principles of distributed software
To introduce the basic technologies of distributed software with a focus on core middleware technologies based on Internet
To provide an opportunity to obtain practical experience in applying these techniques for programming small-scale distributed software applications
![Page 8: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/8.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
8
Overview – Topics I
Distributed systems Definition, classification and characteristics
Models of DS Physical, architectural, fundamental
Inter-process communication in DS TCP, UDP, group communication
Core technologies for Web-based DS HTML/CSS, XML, HTTP, Web clients and
servers Servlets and Apache/Tomcat
![Page 9: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/9.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
9
Overview – Topics II
Object-based DS and RMI Design of RMI Programming Java RMI
P2P systems Structured and unstructured
Agent-based DS FIPA and JADE
Web Services Concepts and standards Axis2
![Page 10: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/10.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
10
Overview – Relation to CS BK
KA: Networking and Communication (NC) KU: NC/Networked Applications
KA: Platform-Based Development (PBD) PBD/Introduction PBD/Web Platforms PBD/Mobile Platforms
KA: Parallel and Distributed Computing (PD) PD/Distributed Systems PD/Cloud Computing
![Page 11: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/11.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
11
Overview – Structure
No single textbook, although a good base is the CDK5 book.
2 modules: Course (4 ECTS - European Credit
Transfer and Accumulation System points)
Project (1 ECTS points) Both have a duration of 14
weeks: Course: 2 h lectures/week (28h) + 2
h lab/week (28h - mandatory) Project: 1 h project/week (14h)
![Page 12: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/12.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
12
Overview – Grading
Final exam (60%) Questionnaire (30%)
Knowledge questions Apply skills (30%)
Exercise: design a small-scale distributed software application
Laboratory assignments (40%) 5 assignments (8% each)
![Page 13: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/13.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
13
DNAD 2011/2012
41 enrolled students
1 student withdrew
32 did less than half of the laboratory assignment work
![Page 14: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/14.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
14
Sample Knowledge Questions Enumerate 3 architectural patterns of DS?
Define communication cost of a distributed algorithm?
What is the role of the dispatcher object in RMI?
When is interaction history necessary in request-reply protocol?
![Page 15: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/15.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
15
‘Apply skills’ Exercise
Each Agent is specialized in performing a single type of task Tasks are ‘injected’ by Source agent. Results are returned to
Source agent. Each Agent has an Executor and a Transceiver. The Executor can be free or busy. Transceiver gets a task from left Agent, assigns them to the
Executor if it is free or passes it to the right Agent if Executor is busy. If there is no left Agent it returns error to the right Agent.
Transceiver returns to the left Agent any message received from the right Agent.
Agent types? Interaction protocols? Agent behaviors? DS with 2 agents specialized in t1 and 2 agents specialized in t2.
Source randomly injects 3 messages with task t1 and 2 messages with task t2 at each 1ms.
Source agent
Agent 1 Agent 2 Agent 3
![Page 16: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/16.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
16
Laboratory Assignments
Initiate a ping protocol between distributed software entities using the following technologies: Java Sockets Java RMI Java Servlets Web services JADE agents
Bonus challenges = tasks for extra credit send an e-mail invoke a service that gives location by IP etc.
![Page 17: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/17.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
17
Project Assignment I
Each student had to implement a FIPA protocol of his/her choice using the technology of their choice.
The number of interacting entities had to be varied from 10, 50, 100, 500, until loss of messages or other fatal error occur.
The students must deliver a technical report including their conclusions and experimental data.
![Page 18: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/18.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
18
Project Assignment II
The program must execute and the student must be able to answer a simple question to determine code ownership, in order for the project to be evaluated. The grade is then based on the quality of the report, covering: Structure Readability Experiment description including experimental
data
![Page 19: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/19.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
19
Lab Progress Monitoring Column height increases when student gets
credit for his/her work. Making progress public generates competition
![Page 20: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/20.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
20
Exam Grades
Average grade for exam 8.1 All students passed 11 marks of 10
![Page 21: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/21.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
21
Conclusions – Students Liked
The first labs where they got very detailed instructions
Knowing their grades in real time and monitoring their progress
Receiving personal attention from the lab assistant
The bonus challenges for extra credit in lab assignments
![Page 22: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/22.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
22
Conclusions – Students Hated
The increasingly vague programming instructions in the presentation of lab assignments
That the documentation of the project was the main criteria of evaluation of their work
Writing the documentation of the project When lab assistant answered their questions
with other questions Getting points deducted when presenting their
work late
![Page 23: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/23.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
23
Conclusions – Difficulties
Writing a proper documentation
Performing experiments and collecting experimental data
Implementing anything without very specific instructions
![Page 24: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/24.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
24
Other Conclusions
Maybe the grades are were a bit high, although we think that the course was successful as all the students passed.
The students do not achieve good practical results unless they are guided at each step with detailed instructions.
For motivation we plan to challenge students with 1-2 more practical laboratory assignments.
Students perform very weak in writing the project report. They preferred a lower grade rather than spending more time to improve the project report.
![Page 25: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences](https://reader034.vdocuments.us/reader034/viewer/2022051621/5697bf8b1a28abf838c8b0c9/html5/thumbnails/25.jpg)
August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering
25