Undergraduate university projects

Final year project as part of undergraduate BSc in Software Engineering.

Language used: C++

Application: Network News Reader NNTP

More info about project:

As part of my undergraduate degree in Software Engineering my final year project involved a software development of a win-forms style client (networking orientated) application which communicated with a remote server written in C++. The development process followed a waterfall model design. This included a list of requirements, design, implementation, testing and maintenance. The typical win-form controls such as listviews, buttons, combo-boxes, text-boxes were used for the user interface presentation layer.

Screenshots:

News-server interface

Newsgroup interface:

Creating a new message

Network architecture

Server­client model

The model helps to explain the connection links between a client machine and a server host machine.There are two processes involved in the model; one takes place on the client machine and the other on the server machine.

For communication to take place between the two machines, messages are sent by the client machine over the network to the server machine. The client machine will wait for a response back from the server, which is normally a reply message. If the message previously sent by the client is successfully understood by the server, it will carry out the requested task by the client and send back an appropriate reply to the client. Therefore, the server will play a passive role in the communication process, whereas the client is more active. The reason behind this is that the server basically waits for the client to ask a question, and the server answers the question, providing that it understands it.

It is important to note the words successfully understood, because the server will only understand certain key commands. Most of these commands which allows the client to communicate with server machines can be found in Request for Comment documents.

As you can see from the diagram below, the network plays an integral part in the link between a client machine and server machine. The network in this context could be the internet or an internal Local Area Network found in a business or even in a university.

Programming IDE - Borland C++ Builder

Win-form controls:

Debugging errors within the applications code was easy to do with the IDE. The standard debugging tools such as; step over, trace into, run to cursor and add breakpoint were easy to use. These tools helped a lot in identifying errors within the code. One criticism is of the help section of Borland c++ Builder IDE. It was not very informative in terms of the amount of details provided, more specifically in explaining how to use a certain feature. When compared to the Microsoft Visual Studio IDE it lacked information in certain areas.

I managed to work around this ‘problem’, by posting questions in the many newsgroups devoted to Borland. Thus, I am very grateful to those who answered my questions especially the posters in the newsgroup ‘borland.public.cppbuilder.students’.

Last updated on 6 Jan 2009
Published on 6 Jan 2009