1 object-oriented software development project aaron christopher

40
1 Object-Oriented Software Development Project Aaron Christopher

Post on 19-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

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.

3

Project Breakdown

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

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

5

Actors Overview

6

Top Level Use Case

7

Deployment Diagram

8

Add New Modules

9

End Session

10

Facilitate Use Of Live Modules

11

File Transfers

12

Join Collaborative Session

13

List Active Sessions

14

Client Log In

15

Manage Collaborative Sessions

16

Manage Software Modules

17

Manage Single User Sessions

18

New Collaborative Session

19

New Private Collaborative Session

20

Client Authentication

21

Client Authentication

22

Database Interaction

23

Direct Session Message

24

Client File Download

25

Module File Download

26

File Transfers

27

Join Collaborative Session

28

Leave Session

29

Module List Request

30

Server Overview

31

Session Control

32

Session List Request

33

Start Collaborative Session

34

Text Messaging

35

Client File Upload

36

Message Polymorphism

Client To Server Messages Server To Client Messages

Message Interfaces

37

Inheritance Among Session Types

38

Singleton Design Pattern

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

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)