My Programming Work

Java programming

UML


Java Programming

The Masters qualification in Computer Science at the University of Birmingham focused heavily on software programming using Sun Microsystems' Java . Although not as powerful as C++ it is an object orientated language that is primarily aimed for use over the World Wide Web. Java also has its advantages, being platform independent, free to use, compatible across different architectures it has become a programming language of choice for many companies/institutions.

More information on this excellent book Having read several books on programming using Java, the best one to my knowledge is "The Object Of Java; using software engineering principles" by David Riley. Rather than just diving straight into writing nonsensical code this book teaches about the structure of code with analogies of real-world examples applying software-enginnering principles from the ground up and encompasses UML to to create sound software.



In my mind, this is the book of choice for anyone just learning to program using Java, introducing important aspects to lay a solid foundation upon which to build on. This is an introductory text-book that doesn't delve into multi-threading or any advanced topics, but it will give the reader a sound understanding of programming using Java.

Once the basic knowledge of Java programming is known, it is vital that the programmer familiarise themselves with the Java Application Programming Interface (API). This is a collection of programming classes already specified by the makers of Java; Sun Microsystems which allows the user to use pre-defined instructions to program literally anything.

Get JCreator from the official web site A good software editing program is also needed to facilitate programming. At the University of Birmingham we were introduced to Xemacs and Emacs which provided syntax highlighting and line numbering. One of my personal favourites is JCreator. It provides syntax highlighting, brace matching, project templates, code-completion, debugger interface, wizards and a fully customizable user interface. Everything a programmer needs!



UML

If there is one more aspect that must be learnt to become an excellent object orientated programmer it would be knowledge of the Unified Modelling Language (UML). This was not taught as part of the Masters Course, and many academic institutions do not teach it. UML is vital to producing sound and efficient software.

Pictures and diagrams assists in the design process of many different artefacts be it clothing, building houses or the storyboard of movies. Software systems also need to be visualised using pictures and diagrams before being created in order to be structured correctly. UML is a visual language that uses the pictures and diagrams to portray relationships and connections in order to develop sound software systems.

Lines, rectangles, ovals and other shapes make up the graphical elements of UML. These graphical elements are labelled with words providing additional information. It's a formal language which has its own set of rules governing how it can and should be used. Since all programming languages are made up of elements together with a set of rules defining how exactly these elements can be combined to make software programs.

Buy it from Amazon I have read Schaums Outlines:UML by Bennet et al. which highlights 3 main aims;
  • To provide a guide to UML, condensing the material in the UML Specfication
  • Presents practical case studies illustrating the above
  • Provide several practical examples and exercises so the reader becomes fluent at using UML


  • The key features of the notation of each kind of diagram used in UML have been described and the notational conventions that they share have been shown. Two major case studies have been used to illustrate the usage of UML along with 'How To' sections in each of the 16 chapters. The case studies provide worked examples both within and at the end of the chapter and exercises with the aim that the rich quantity of material in them will be developed by the reader to get more practical experience. The examples of the case studies cover business modelling, information system development and real-time system development.





    Home My Background My Philosophy My Work History My Programming Work Contact Me