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 MessagesServer 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:
40 Ostermiller Utilities 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)