Top Banner
1 Object-Oriented Software Development Project Aaron Christopher
40

1 Object-Oriented Software Development Project Aaron Christopher.

Dec 19, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 Object-Oriented Software Development Project Aaron Christopher.

1

Object-Oriented Software Development Project

Aaron Christopher

Page 2: 1 Object-Oriented Software Development Project Aaron Christopher.

2

Project Overview

• Kind of like SourceForge• Allow developers to catalog their software,

source code and documentation for use by other developers

• Also provide mechanism for publishing a virtual appliances that run the software on its intended platform.

• Users of the system can connect to the appliances and use the software live in their browser through a client application implemented as an applet.

Page 3: 1 Object-Oriented Software Development Project Aaron Christopher.

3

Project Breakdown

• The complete system is broken into three subsystems– The Desktop Sharing System– The Server (the scope for today)– The Client

Page 4: 1 Object-Oriented Software Development Project Aaron Christopher.

4

Some Java Technologies Used by the Server

• Multiple Threads and Synchronization• Blocking TCP/IP Sockets from the java.net

package• Object Streams and Serialization• Embedded Apache Derby Database

– A small footprint open source SQL database– Can be run in embedded mode in java

applications and accessed using JDBC– All database code runs in your process

Page 5: 1 Object-Oriented Software Development Project Aaron Christopher.

5

Actors Overview

Page 6: 1 Object-Oriented Software Development Project Aaron Christopher.

6

Top Level Use Case

Page 7: 1 Object-Oriented Software Development Project Aaron Christopher.

7

Deployment Diagram

Page 8: 1 Object-Oriented Software Development Project Aaron Christopher.

8

Add New Modules

Page 9: 1 Object-Oriented Software Development Project Aaron Christopher.

9

End Session

Page 10: 1 Object-Oriented Software Development Project Aaron Christopher.

10

Facilitate Use Of Live Modules

Page 11: 1 Object-Oriented Software Development Project Aaron Christopher.

11

File Transfers

Page 12: 1 Object-Oriented Software Development Project Aaron Christopher.

12

Join Collaborative Session

Page 13: 1 Object-Oriented Software Development Project Aaron Christopher.

13

List Active Sessions

Page 14: 1 Object-Oriented Software Development Project Aaron Christopher.

14

Client Log In

Page 15: 1 Object-Oriented Software Development Project Aaron Christopher.

15

Manage Collaborative Sessions

Page 16: 1 Object-Oriented Software Development Project Aaron Christopher.

16

Manage Software Modules

Page 17: 1 Object-Oriented Software Development Project Aaron Christopher.

17

Manage Single User Sessions

Page 18: 1 Object-Oriented Software Development Project Aaron Christopher.

18

New Collaborative Session

Page 19: 1 Object-Oriented Software Development Project Aaron Christopher.

19

New Private Collaborative Session

Page 20: 1 Object-Oriented Software Development Project Aaron Christopher.

20

Client Authentication

Page 21: 1 Object-Oriented Software Development Project Aaron Christopher.

21

Client Authentication

Page 22: 1 Object-Oriented Software Development Project Aaron Christopher.

22

Database Interaction

Page 23: 1 Object-Oriented Software Development Project Aaron Christopher.

23

Direct Session Message

Page 24: 1 Object-Oriented Software Development Project Aaron Christopher.

24

Client File Download

Page 25: 1 Object-Oriented Software Development Project Aaron Christopher.

25

Module File Download

Page 26: 1 Object-Oriented Software Development Project Aaron Christopher.

26

File Transfers

Page 27: 1 Object-Oriented Software Development Project Aaron Christopher.

27

Join Collaborative Session

Page 28: 1 Object-Oriented Software Development Project Aaron Christopher.

28

Leave Session

Page 29: 1 Object-Oriented Software Development Project Aaron Christopher.

29

Module List Request

Page 30: 1 Object-Oriented Software Development Project Aaron Christopher.

30

Server Overview

Page 31: 1 Object-Oriented Software Development Project Aaron Christopher.

31

Session Control

Page 32: 1 Object-Oriented Software Development Project Aaron Christopher.

32

Session List Request

Page 33: 1 Object-Oriented Software Development Project Aaron Christopher.

33

Start Collaborative Session

Page 34: 1 Object-Oriented Software Development Project Aaron Christopher.

34

Text Messaging

Page 35: 1 Object-Oriented Software Development Project Aaron Christopher.

35

Client File Upload

Page 36: 1 Object-Oriented Software Development Project Aaron Christopher.

36

Message Polymorphism

Client To Server Messages Server To Client Messages

Message Interfaces

Page 37: 1 Object-Oriented Software Development Project Aaron Christopher.

37

Inheritance Among Session Types

Page 38: 1 Object-Oriented Software Development Project Aaron Christopher.

38

Singleton Design Pattern

Page 39: 1 Object-Oriented Software Development Project Aaron Christopher.

39

MVC Pattern

• Model• View• Controller

A simple diagram depicting the relationship between the Model, View, and Controller.

Note: the solid lines indicate a direct association, and the dashed lines indicate an indirect association (e.g., observer pattern).

Source: http://en.wikipedia.org/wiki/Model-view-controller

Page 40: 1 Object-Oriented Software Development Project Aaron Christopher.

40

Ostermiller Utilities

• http://ostermiller.org/utils/• Circular Byte Buffer for inter-thread

communication (can be bounded or infinite). Beats Java’s Piped IO Streams by far!

• More Intuitive String Tokenizer– Java (java.util.StringTokenizer)

• A,B,,D tokenizes to “A”,”B”,”D” (3 tokens ignoring the missing string)

– Ostermiller (com.Ostermiller.util.StringTokenizer)• A,B,,D tokenizes to “A”,”B”,””,”D” (4 tokens including an

empty string)