The Open University | OU LIBRARY
TM420-426 The IT and Computing Project
Home
TM421 / M301 Project
TM422 / M358 Project
TM423 / T305 Project
TM426 / T396 Project
TM427 / M360 Project
 

TM421 The M301 Project

(2006 presentation)

Project title: Software Development in Java: the specification, design and implementation of a real world software application


Two sample project descriptions are given below.

Sample project description 1

Specific title

The development of a portable TFTP client

Description

[594 words]

Portable/mobile devices are beginning to play an increasing role in modern use of Internet technology. Some of these devices will need to download information when they connect to a network. I am planning to develop a portable package that can be used to download files over the Internet to a remote device.

The package will be developed in such a way that it will contain subsystems of reusable components. The package will be implemented in Java and these subsystems will be Java classes that can be easily integrated into larger systems in order to supply a file transfer service.

There will be both a server and a client supplied as part of the package.

·         The client will only request files for transfer.

·         The server will only accept requests for transfer.

The classes will not concern themselves with the authentication of either the server or the client. To allow for wide usage the package will implement the Trivial File Transfer Protocol (TFTP) as described in RFC1350. The TFTP is a simple protocol that uses datagrams for communication.

Project scope

Classes implementing both a server and a client will be built.

The client will be used only to request files. A request to the client to either read or write to a file will be regarded as an error.

The server will be used only to supply files. A request to write to the server will be regarded as an error.

The package will use the networking classes supplied as part of the standard Java API in the package java.net for the network transport. The Java API supplies support for the use of datagrams. A datagram is a packet sent using the user datagram protocol (UDP). The UDP protocol is connectionless and does not guarantee delivery. Ensuring delivery and sequencing of packets is the responsibility of the application. Correctly implementing this will be an important part of the project.

The first part of the project will be a domain analysis of the problem using UML to build a model of the TFTP client/server interaction. Once a reasonable model has been built, work will start on the design of the classes needed to build the client. An incremental approach to the design and development will be adopted. Initial design and development will focus on functionality to open a connection.

Part of the project will be:

1    A simple graphical test harness for the client package. The harness will allow a user to open a connection to a server and view and save a down loaded file. It will allow the user to enter the name of the TFTP client and the file to be downloaded to it. The user will also be able to specify the directory in which the file is to be stored.

2    A simple test harness for the server that will start the server and display the activity of the server. The activity will be displayed in a window and show for each connection: the IP address of the client; the name of the file requested; the time transfer starts; the time transfer is completed.

The use of Java as the implementation language has two main advantages:

1    The resulting compiled code will be portable between many different types of hardware and operating systems.

2    Java already provides classes to handle the underlying network protocol.

The first deliverable is a simple model of the client–server interaction, built with UML. The final deliverable will include the Java package containing both the server and the client classes together with appropriate test harnesses.

Project schedule

Start date: February 200x           End date: December 200x

Total time allocation: 260 hours

Fixed intermediate and final deadlines and approximate time allocation

TMA 01

[the cut-off date]

48 hours

TMA 02

[the cut-off date]

48 hours

TMA 03

[the cut-off date]

60 hours

Report submission

[the cut-off date]

84 hours

TMA 04

[the cut-off date]

20 hours

Not indicated on the above: group and individual tutorial meetings

Month

Planned activity

February

Read project briefing notes.

Identify requirements for project lifecycle, deadlines, deliverables etc.

Determine project topic and initiate requirements gathering.

March

Review M301 material.

Identify appropriate background reading.

Produce TMA 01.

April

Rework proposal following comments from tutor.

Identify skills weaknesses.

Plan detailed project schedule.

Finalize analysis of requirements.

May

Detailed flowchart modelling.

Ensure weak skills areas are supported.

Finalize project plan.

Summarize background reading (probably focused on TFTP and Java API).

Produce TMA 02.

June

Further flowchart modelling – paper walkthrough to ensure specified requirements can be met.

Start to specify test scenarios

Ensure familiarity with features/facilities of Java API.

July

Finalize model and program package (expected slippage).

Initial implementation work (expected slippage).

Produce TMA 03.

Examine first draft.

August

Review system specification and Java package following tutor review.

Update and extend first draft implementation.

September

Implementation and review of product, including collection of test results, should be ongoing (expected slippage point).

Start work on project report – plan content and structure and document background reading.

October

Decide on what is implementable in remaining time.

Consolidate existing work – design freeze, implementation should focus on essential incomplete features and prioritize remaining activities.

Assemble and organize material for appendixes – deigns, code, test results etc.

Evaluation of product, process and project.

Ongoing project report work – should be almost complete for last week of October.

Proofreading.

November

Complete remaining implementation and documentation.

Revise project report entirely.

Submit project report.

December

Produce TMA 04.

End.

Project and product documentation, record keeping, reading, etc. will form background activities taking place as the project progresses – the TMA submission dates will be a good time to review and summarize these background tasks.

Bibliography

Comer, D.E. (2000) Internetworking with TCP/IP Vol.1: Principles, Protocols, and Architecture, 4th edn, Prentice Hall, ISBN 0130183806.

British Computer Society (1998) Data Protection – Everybody’s Business: A Practical Guide for Professionals and Business Managers, ISBN 1902505042.

Hughes, M., Shoffner, M. and Hamner, D. (1999) Java Network Programming, 2nd edn, Manning, ISBN 188477749X.

http://www.omg.org (Accessed October 2003. Website of the Object Management Group – contains links to UML pages.)

http://www.faqs.org/rfcs (Accessed October 2003. A source of RFCs and other Internet-related documents.)

I am using the text Internetworking with TCP/IP Vol.1: Principles, Protocols, and Architecture as a primary source of information relating to the Internet and the various standard protocols that are used. This text provides coverage not only of the protocols themselves but also examples of how these protocols can be implemented. The advantage of this text is that it covers not only the standard Internet protocols but also the use of the Java networking and I/O APIs.

This text has given me a good understanding of the IP transport protocols TCP and UDP. I will need this understanding of how the UDP protocol is used for my project. I will get insights into the techniques that can be used by studying the protocols such as Finger DNS and HTTP that are discussed in this book. When I come to the implementation stage of the project I expect the practical approach adopted here will be very useful in helping me develop a robust application.

Equipment or software

No additional software or hardware will be used beyond the standard course hardware and software packages. The project involves the development of a standard Java package which can be implemented using the features and facilities found in the M301 course software.


Sample project description 2

Specific title

SHUDBUR - Simulated Home Use to Deter BURglars

Description

[693 words]

I want to investigate whether I could develop a product to help deter burglars. This project would develop the ideas to the point where I could approach a company who would then take the product further, or a venture capitalist who would invest in my taking the idea further.

The idea is to use my home computer to control my home lights to give the appearance I am at home while in fact I am away and the house is empty. Some people put simple timers on wall sockets to switch lights on and off to give this appearance, but something more sophisticated is needed to give the real appearance of somebody watching TV, then switching it off, moving around the house, going to bed, and so on.

I need to investigate the requirements for such a system, and the potential market, and will do this by interviewing friends and colleagues at work. To be able to do this effectively I will need to study requirements analysis methods, and select some appropriate method. I am attracted by focus groups, ever since I was involved in such a focus group to determine the potential for a proposed new database product from Oracle. I will also talk to one or two suppliers of home security systems. Should the sequence of lights be variable from day to day, should they be subject to random variations, should they still be able to run even though somebody is in the house and overriding the simulator?

I will also investigate the technical feasibility of such a system. How could my home computer actually switch on and off mains electricity circuits? I will need to investigate special-purpose devices and how these might be controlled through a local area network. How could my home computer communicate with local devices in the home? I have searched the Internet for standards for connecting devices in the home, and have found some solutions. I will investigate this further so that my proposal can conform to a suitable standard. Could I buy a board to add to my PC that conformed, and could I control my lights and similar devices?

I will then model the proposed system using UML. I will develop a Use Case Model to capture the various user actions necessary to set up and control the system. I will produce a preliminary class model that will in effect be a meta-model for a house and the devices that will be controlled within it. To test this I will develop an instance model for my own house and the actual devices I would want to control if I did build this. I will then carry through my design into a full set of sequence diagrams, but do not expect to produce any state diagrams. I will plan an initial set of tests.

If this idea were to be carried through into a product, I expect a special-purpose control panel would need to be built. I won’t have time or the facilities to build one, but I would like to do some experimental designs on paper that would be simple enough for even the most technically unsophisticated to use. I want to do a good job here, and will follow up some of the literature on human–computer interface design that my course referred to. I will evaluate my ideas using a few of the people who earlier helped me with my requirements analysis.

Finally, if time permits, I would like to build an actual prototype of the software using Java. This should be viewed as an optional item in a time-boxed development.

Having read about time-boxing, I have been really impressed; it seems such a great idea. I have set up my project schedule using time-boxing of each stage, with some mandatory results I must produce, and some optional results I will only achieve if the mandatory activities proceed more-or-less to plan. What I am proposing here is to use time-boxing recursively, so the whole project becomes time-boxed by the time allowed for the project, with the activities described earlier being mandatory, and the final building of the prototype being the optional activity.

Project schedule

Start date: February 200x           End date: December 200x

Total time allocation: 260 hours

Fixed intermediate and final deadlines and approximate time allocation

TMA 01

[the cut-off date]

48 hours

TMA 02

[the cut-off date]

48 hours

TMA 03

[the cut-off date]

60 hours

Report submission

[the cut-off date]

84 hours

TMA 04

[the cut-off date]

20 hours

Not indicated on the above: group and individual tutorial meetings

Timebox (TB)

Core activities

Optional activities

TB1

Technical feasibility

40–50 hours

April/May

Revise communication systems from M301.

Investigate networking system for home use, focusing on systems that use the electricity mains circuits.

Identify suitable devices for switching mains.

Procure sample devices and install and prove their capabilities.

Write short report on technical feasibility.

Produce TMA 02.

Produce simple demonstration of home switching system.

TB2

Requirements elicitation

40–50 hours

June/July

Revise M301 material and study textbooks on requirements elicitation.

Prepare for focus group interviews.

Conduct focus group with five friends.

Conduct focus group with five colleagues.

Carry out structured interview with two suppliers of home security products.

Prepare statement of requirements.

Produce TMA 03.

Conduct further focus group interviews with other groups of friends.

Conduct further focus group interviews with other groups of colleagues.

TB3

Requirements specification

60–70 hours

August/September

Revise UML modelling in M301, and study d’Souza and Wills.

Produce Class model for system.

Produce instance model for my home.

Produce Use Case model.

Review with one focus group.

Prepare report on UML models.

Review with other focus groups.

Produce sequence diagrams.

TB4

User control panel design

20–25 hours

September/October/November

Study HCI design in Nielsen and other texts.

Develop two alternative layouts.

Evaluate layouts with one focus group.

Prepare report on Panel Design.

Develop further alternative layouts.

Evaluate with further focus groups.

TB5

Implementation if time available

October/November

Produce sequence diagrams.

Code critical parts of system in Java.

Write report on implementation.

Code whole system in Java.

Fully test system.

TB6

Integrate material from earlier stages to produce project report.

 

December

Produce TMA 04.

End.

 

Project and product documentation, record keeping, reading, etc. will form background activities taking place as the project progresses – the TMA submission dates will be a good time to review and summarize these background tasks.

Bibliography

D’Souza, D.F. and Wills, A.C. (1999) Objects, Components and Frameworks with UML: The Catalysis Approach, Addison-Wesley, ISBN 0201310120.

Nielsen, J. (1993) Usability Engineering, Academic Press Professional, ISBN 0125184069.

Stapleton, J. (1997) DSDM: Dynamic Systems Development Method, Addison Wesley, ISBN 0201178893.

Vaughn, S., Schumm, J.S. and Sinagub, J. (1996) Focus Group Interviews in Education and Psychology, Thousand Oaks, CA, SAGE Publications, ISBN 0803958927.

Focus groups are covered in just under three pages (214–217) in Nielsen’s book Usability Engineering, seen as a means of usability assessment. The description of focus groups is very rudimentary, and there is really not enough information there on which to base my own use of focus groups. The text by Vaughn et al was therefore very welcome. This is an excellent book and having now read it I feel confident about running a number of focus groups to elicit my requirements, and then later evaluate these. The book tells me how to prepare for a focus group interview, establishing the purpose, objectives and criteria of the study, developing a sampling plan and moderator’s guide and other activities. It then tells me how to run the interview, keeping appropriate records. Finally it tells me how to analyse the data collected, and combine it with other data, notably from quantitative methods. Altogether this is going to be very useful during my requirements-gathering phase.

Equipment or software

I will use the M301 software package Rational Rose to develop my UML models. I will develop Java code using the M301 IDE. So far, everything is standard.

I expect to procure specialist hardware as part of my evaluation of the technical feasibility of the idea – this is likely to mean adding a board to my PC, installing appropriate drivers, and developing a little software to control one or more of the lights in my house. I do not expect my tutor to be able to help me here, and will instead turn to colleagues at my work.

Back to top of page

mixed communications image