• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Passed SCJD - URLyBird 1.3.1 362/400

 
Bartender
Posts: 3648
16
Android Mac OS X Firefox Browser Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello all, I passed SCJD (URLyBird 1.3.1) today (362/400). The distribution is as follow:
General Consideration: 99/100
Documentation: 70/70
OO Design: 30/30
GUI: 39/40
Locking: 44/80
Data class: 40/40
Network Server: 40/40
Total: 362/400

Overall I could have done better in locking section. This is because I used my customized class to keep track of locked records instead of using standard Java API. Anyway for me. Below are my pointers:

Generation Considerations
* use Sun coding standards
* think like a junior programmer in areas of design and coding logic
Don't know why that single point got deducted?

Documentation
* user guide = HTML format, screen shots for everything (errors, app windows etc), provide quick start guide
* javadoc = provide javadoc comments for private members/classes, generate javadoc comments for protected/public members/classes
* choices.txt = describe requirements, assumptions, use cases, architecture, networking, participants, each layer of the app

OO Design
* uses 3-tier architecture: GUI, service layer, data layer
* separate each class accordingly to responsibilities as much as possible
* package source code/classes accordingly to as if it is 3-tier app (I have 4 packages: client, data, server, helper)
* no anonymous inner classes
* inner classes are all private
* group helper classes into its own package

GUI
* use Swing Action rather than ActionListener interface
* have menu bar, JTable, button panel, status bar
* buttons in the button panel and the menu items in the menu bar are controlled by list selection model and some "actions" are disabled by default until a table row is selected
* use table cell rederers to position/align numbers and dates
* no column sorting for table
* provide refresh view button/action to get latest data's image
* provide create, delete, check out functions in the GUI
* status bar display message as user operates the app (eg when such and such window opens)
* status bar display number of connected users (for network mode only) - use Swing Timer to update, act as server keep-alive
* provide tool tips for table columns and rows
* use my own table model (inherits AbstractTableModel)
* position window in the middle of the user computer's screen (using ToolKit)
* didn't use GrigBagLayout, only BorderLayout, FlowLayout and at times GridLayout

Locking / Data Class
* have my own interface extending Sun provided interface
* Data class implements my own interface (extended one)
* use my own class to manage locked records (didn't use standard Java API)
* act as service layer (interface LocalService) in stand-alone mode - delegate to Data class
* Data class is singleton

Network Server
* use RMI
* didn't use rmic to explicitly generate stubs
* act as service layer (interface RemoteService) in networked mode - delegate to Data class
* display connection and disconnection messages
* provide server connection checking when clients connect (if server IP/port are correct)
* provide server shutdown using shutdown hook


Thanks to all the people who helped me during the assignment.
 
Author
Posts: 3473
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Congrats
 
author and cow tipper
Posts: 5009
1
Hibernate Spring Tomcat Server
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Conratulations! And thanks for the great feedback.

-Cameron McKenzie
 
Ranch Hand
Posts: 1936
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Congrats
 
Ranch Hand
Posts: 1880
Firefox Browser Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
congrats!!
 
reply
    Bookmark Topic Watch Topic
  • New Topic