Software development with Java

How do teams of professional software developers work together when creating complex software systems? How can the development process be partitioned to enable different people to work on different tasks, and what techniques can assist the individuals involved?

In this module you will be introduced to object-oriented approaches to software development that are widely applicable in the creation of software that meets the needs of its users: from small, simple systems to large, complex ones. These approaches take you from an analysis of what is required of a system through its specification, design and implementation. They include concepts such as use case design; the construction of structural and dynamic models; and the specification of classes. You will also be introduced to the role of user interface design within software development, and to some key aspects of testing software.

Using paper-based materials and computer-based practical exercises you will learn about fundamental software development ideas, illustrated by small sample systems. You will participate in the development of these systems through examples and guided exercises. You will discover how to develop a software system by creating models using the industry standard Unified Modelling Language (UML). You will apply and extend your understanding of object-orientated technology and of Java, and will implement code using NetBeans, a widely used integrated development environment from Oracle (previously Sun Microsystems). As well as learning techniques and processes that you can use when developing your own software, you will meet concepts that underpin the theory of software development, such as software development methods and reusable software components.

Block 1 begins by introducing the common phases of object-oriented software development, taking an introductory look at how these phases can be combined to form different software development methods. Requirements specification is introduced as an initial development phase followed by the creation of an initial model of the software structure, incorporating elements such as class diagrams and invariants.

Block 2 sets the scene for object-oriented design by introducing the design and implementation of component-based software. Generic ideas such as cohesion and coupling are discussed, as well as the role of object-oriented concepts such as encapsulation, and Java-specific concepts such as access modifiers. You will then look in detail at determining how a system will work, employing sequence diagrams to create and compare different designs.

Block 3 will show you how to take the designs for a system and use them as a basis on which to implement and test the system. Some key ideas in human-computer interaction are then introduced.

Block 4 pursues the concept of graphical use interface (GUI) development and you will participate in the design of GUIs for the sample systems. Java event handling and GUI facilities are reviewed, and example GUIs are constructed using NetBeans’ GUI design facilities.

Knowledge andunderstanding

  • To know and understand principles, conceptsand techniques associated with object-oriented softwaredevelopment, includinguser interface development.

Cognitive skills

  • The ability to analyseand specify requirements.
  • The ability to applythe analyticalskills of analysis anddesign.
  • The ability to identify key elements of problems and apply problem-solving techniques in designing an appropriate model.

Key skills

  • To improvepersonal learningand performance.
  • The ability to communicateeffectively aboutobject-oriented software development and user interfaces.
  • The ability to provideappropriate, effective documentation for thedevelopment process.

Practical and/or professional skills

  • The ability to applythe practicalskills neededinmost programming workplaces.
  • To have an awareness of the software development process.
  • To have an awarenessofissues relatingtothe design of graphical user interfaces.
  • The ability to useprogramming skillsappropriatetoatask.
  • The ability to use a Java integrated development environment(IDE).
  • The ability to plan a complex task.


About this course:
UK Credits = 30 (15 ECTS)
Course code M256
Credits 30
OU Level 2
SCQF level 8
FHEQ level 5
Course work includes:
4 Tutor-marked assignments (TMAs)
My Results
Final Grade Pass

Leave a Reply