Presentation is loading. Please wait.

Presentation is loading. Please wait.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

Similar presentations


Presentation on theme: "August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences."— Presentation transcript:

1 August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences Costin Bădică and Sorin Ilie University of Craiova Faculty of Automation, Computers and Electronics Computers and Information Technology Department

2 August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering 2 Talk Outline Introduction Overview Experience Conclusions

3 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

4 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

5 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

6 August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering 6 Overview – Prerequisites Location in curricula:  Main trunk  3 rd year, 6 th 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

7 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

8 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

9 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

10 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

11 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.CDK5 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)

12 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)

13 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

14 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?

15 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 agentAgent 1Agent 2Agent 3

16 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.

17 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.

18 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

19 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

20 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

21 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

22 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

23 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

24 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.

25 August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering 25


Download ppt "August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences."

Similar presentations


Ads by Google