KF7010 Program Design and Implementation
COURSEWORK ASSESSMENT SPECIFICATION Module Title: KF7010 Program Design and Implementation Module Code: KF7010 Academic Year: 2019-2020 Coursework Title: Program Design and Implementation Northumbria university
1. Learning Outcomes
All the module learning objectives are covered by this assignment:
- Demonstrate a systematic understanding of the principles, knowledge and skills required to design, implement, test and document programs written in an object-oriented language.
- Demonstrate a critical understanding of the essential principles and practices relating to object-oriented programming, including the need for standards, principles of quality, and appropriate software support.
- Critically evaluate the methods and conceptual tools used in developing solutions to programming problems.
- Analyse, specify, design, implement and test a high-level solution to a programming problem using object-oriented and general imperative programming language constructs, using appropriate documentation standards and software tools.
- Effectively communicate development of a solution to a programming problem, including critical evaluation
The work is set in Week 06 of the module by which time you will have covered enough to make a start on the work.
2. Scope
The assignment is an individualassignment.
You will be provided with some initial program source code and a compiled version of the program as described in the section below.
You must extend the program to meet the specification below.
What follows is a detailed discussion of the program and how it is modelled and its functions, you will need to look very closely at the specification for the object-orientated (OO) programs you are to create.
3. Assignment
3.1 The Server-Client Model
In this assignment, you will be provided with a set of client-server codes, which allow you to communicate from a computer to another computer. You will be asked to add extra codes to read data from one computer and transfer it via network to another computer. The system architecture can be shown in the figure below.
To allow a client application to connect with a server, usually you need to provide the address of the server, which includes two parts,
- IP address such as 144.122.11.01
- Port number, such as 8080
This will allow a communication channel to be established between the server and the client. You don’t need to fully understand these client-server codes and the provided codes given you as a test platform for your OO programming skills.
Fig.1 Client-Server Model
3.2. The Tasks
Based on the BlueJ platform, the challenge is to develop the software that will,
- enable the chat communication between server and client;
- provide a log system to store the chat in both client and server side, so that each time the system can load the previous dialogues into the window;
- load the initial data from a local file into the memory and transfer it to the server side via the network, and
- process it on the server side and save the process records in a log file.
Fig.2 and 3 illustrate the user interface of the client-server system.
You are asked to write a report explaining the functionality and solutions to various aspects of the program with regard to OO programming skills. The report should not exceed 4000 words.
3.3. Functional Specification
The tasks you are required to implement are as follows,
- You are going to build up a client-server application to enable communication between two sides; the server will allow multiple clients to connect to the chat room.
- The server side will record all events and chats in a log file for records.
- The server will be allowed to set its port number, and a button to start/stop.
- Each client will set up a unique ID and a unique log file, to store its communication records.
- The client side may have following GUI functions:
- A text input box of the server IP address.
- A text input box of the targeted server port.
- A text input box of the client name.
- A text input box of chat messages.
- A button to log in/out (or two buttons separately)
- A button to find out who are in the chat room and print out all clients.
- You are also required to develop a test plan and test the functionality of your client classes. A test report will be included in your submission
4 Deliverables
4.1. General Points
- The development of your codes is based on object-orientated model, and you MUST make use of classes in developing your system. Each will have its own methods and properties though they could inherit from other classes.
- All interactions must be made via a GUI. You may design the GUI as you see fit: see the example depicted in Figure 2 and 3.
- You might consider writing a custom dialogue to input the user’s preference and other information. This will require a little investigation on your part.
- The program should consist of a number of classes each with well-defined functionality. There should be a driver class to set things going; a GUI class to provide the user interface; a class and subclasses for the sensory data reading.
- The code you produce must adhere to the published course coding standards. Marks are awarded for code quality.
- You will be expected to test parts of your program against a suitable set of situations. In the documentation you should describe your testing plan and results; also include your test results as screen shots as evidence.
4.2. Design
You must produce design documentation. This will include a class diagram for the system, a short explanation as to the general purpose of each of the classes you have produced and a justification for any design decisions you have made.
4.3. Implementation
You must provide listings for your program. The code must adhere to the object-orientated style standards as defined for the module.
4.4 Testing
You are expected to test your code using the strategies studied during the module.
The testing section of your documentation indicates the approach you have taken to verifying and validating your system. Just as you should not convey the design of your system by presenting the code or even listing the classes, you should not merely list the tests performed. Rather, discuss how tests were selected, why they are sufficient, why a reader should believe that no important tests were omitted, and why the reader should believe that the system will really operate as desired when in use.
- Strategy: An explanation of the overall strategy for testing: Black box and/or white box, integration, kinds of test beds or test drivers used, sources of test data, test suites. You might want to use different techniques (or combinations of techniques) in different parts of the program. In each case, justify your decisions.
- Test Data: A set of tables showing the test data you used for each class, etc. The format of the test documentation should be as follows: for each test case in the tables,
- a unique test ID
- a brief description of the purpose of the test
- the pre-conditions for running the test
- the test data
- the expected result
4.5. Reflection
You must provide a final critical evaluation of your work. The reflection section is where you can generalise from specific failures or successes to rules that you or others can use in future software development. What surprised you most? What do you wish you knew when you started? How could you have avoided problems that you encountered during development?
- Evaluation: What you regard as the successes and failures of the development: unresolved design problems, performance problems, etc. Identify which features of your design are the important ones. Point out design or implementation techniques that you are particularly proud of. Discuss what mistakes you made in your design, and the problems that they caused.
- Lessons: What lessons you learned from the experience: how you might do it differently a second time round, and how the faults of the design and implementation may be corrected. Describe factors that caused problems such as missed milestones or to the known bugs and limitations.
- Known Bugs and Limitations: In what ways does your implementation fall short of the specification? Be precise. Although you will lose points for bugs and missing features, you will receive partial credit for accurately identifying those errors, and the source of the problem.
This reflection should be 1 to 2 pages long.
4.6. Deliverables
Submit a zip archive containing the following items:
- Your source code with comments;
- The executable application.
- A document in pdf format containing
- Design documentation as specified above;
- Test documentation as specified above;
- Your reflection report as specified above.
A links will be provided on the eLP (BlackBoard) for you to upload this zip.
5. Collaboration and Academic Integrity
- You can discuss work, but submitted work MUST be your own.
- You can use some public domain code, but it must be clearly referenced. It must be a very small component (less than 5%) of the submitted assignment. Generally, it will NOT attract marks.
- The assignments are designed to allow YOU to demonstrate YOUR achievement of learning outcomes.
- You can NOT use the work of your fellow students.
- You are advised to read the University regulations concerning academic misconduct.
6. Marking Scheme
Introduction The marking for the assignment is designed to reflect the general guidance given on the University’s web site for the assessment of postgraduate work. Some modifications to the generic criteria have been made to better reflect the nature of the assignment.
70-100 Distinction Excellent work providing evidence to a very high level of the knowledge, understanding and skills appropriate to level 7. All learning outcomes met, many at high level. Marks at the high end of this range indicate outstanding work where all learning outcomes are met at a high level. Excellent in all the specific areas of the assessment criteria listed below for the assignment; evidence of successful independent learning as demonstrated by the implementation of optional features in the program; use of up-to- date material from a variety of sources; critical evaluation and creative use of theory.
60-69 Commendation Commendable work providing evidence to a high level of the knowledge, understanding and skills appropriate to level 7. All learning outcomes met, many are more than satisfied. Good in all or most of: the specific assessment criteria listed below for the assignment; evidence of independent learning; critical evaluation and creative use of theory.
55-59 Pass Satisfactory work providing evidence of the knowledge, understanding and skills appropriate to level 7. All learning outcomes are met. Satisfactory in all or most of the assessment criteria listed below.
50-54 Pass Adequate work providing evidence of the knowledge, understanding and skills appropriate to level 7 but only at a bare pass level. All learning outcomes are met (or nearly met and balanced by strengths elsewhere). Adequate in all of (or most of, with balancing strength elsewhere) of the criteria listed below.
40-49 Fail The program fails to achieve the basic pass criteria specified below.Work is not acceptable in providing evidence of the knowledge, understanding and skills appropriate to level 7. May be adequate in some but not all of the assessment criteria listed below.
1-39 Fail Work is not acceptable and provides little evidence of the knowledge, understanding and skills appropriate to level 7. Few of the learning outcomes are met. Inadequate in terms of the various criteria given below as a basis for judging the work.
0 Fail Work not submitted OR Work giving evidence of serious academic misconduct OR Work showing no evidence of the knowledge, understanding and skills appropriate to level 7. None of the learning outcomes are met
Specific Criteria
- Basic functionality and code quality: 15%
- Model provides a basic functional application;
- Coding standards;
- Well commented
- Quality of design and implementation 25%
- OO aspects
- Methods
- Properties
- GUI 20%
- Internal structure
- Action Listeners
- Graphical elements
- Testing 20%
- Adequacy
- Functionality
- Justification
- Report 20%
- Class diagram and description of classes
- Evaluation
- Lessons learnt
- Bugs and limitations
Feedback will be provided within three weeks after the submission timeline, mostly by e-mail or by eLP.
Submission Timeline
This is an individual assignment. Complete all the tasks listed above. The
report needs to be submitted via eLP. The submission time is as follows,
Thursday 16th Jan 2020 by 16:00
7. Feedback Techniques used in this Module
Individual written feedback will be provided for the assessment. Feedback will be given for each element of the marking scheme.
8. Return of Feedback
Marks and written feedback for the assignment will be returned within thee working weeks after the submission deadline.
9. Late Submission
Unapproved late submission may cause the deduction of your marks. You can find more details at https://www.northumbria.ac.uk/about-us/universityservices/academic-registry/quality-and-teachingexcellence/assessment/guidance-for-students/
10. Failure to Submit
Note that failure to submit work will result in a record of incomplete (IC) for the assessment component. Referral in that component will then be required. You can find more details at https://www.northumbria.ac.uk/about-us/universityservices/academic-registry/quality-and-teachingexcellence/assessment/guidance-for-students/
11. Referencing Style
Any commonly used referencing style is acceptable as long as it is used correctly and consistently. For technical work of this nature you might prefer to use Harvard style.
12. Academic Integrity
You must adhere to the university regulations on academic conduct. Formal inquiry proceedings will be instigated if there is any suspicion of plagiarism or any other form of misconduct in your work. Refer to the University’s Assessment Regulations for Taught Awards if you are unclear as to the meaning of these terms. The latest copy is available on the University website. More details can be found at: https://www.northumbria.ac.uk/aboutus/university-services/academic-registry/quality-and-teachingexcellence/assessment/guidance-for-students/