FYPTemplate
FYPTemplate
Dear Students
This guide is prepared to help the students in preparing their final year project reports.
Report writing is one of the primary professional responsibility of a practising software
engineer. The final report of any project is not just a formality. It is a primary product of
the engineering efforts and is often the basis for evaluation of the software engineer’s
professional abilities. The report is also a service to the software community who needs
the information regarding that particular software. The report should stand on its own
and it should include all the necessary sections, targeting at a reader who does not
necessarily have any prior knowledge about the project or the technology involved in it.
The sections in italics of this format report are instructions that you are supposed to
follow. The other sections are meant as information that will help you to meet the
minimum requirement of the report. The first portion of this report elaborates on the
generic issues involved in report writing such as intellectual property, plagiarism,
formatting etc.
The target audience of these project reports is bachelor level CS(SE) student who only
has basic knowledge of the computer science field. You should therefore assume that
the reader is someone who does not know anything about your project but who may
refer your work in his or her own project. Your report should therefore include all the
details about the ‘what?’, ‘why?’ and ‘how?’.
To ensure the reports are easy to read with consistent format, it is very important that
students follow the instructions while writing the report. You have taken several courses
to improve your English writing skills during the BS(CS)/BS(SE) program. You are
supposed to follow the elements and techniques you have learnt in those courses
especially the knowledge you have gained in “Technical Report Writing” should be
evident in all versions of your repors.
1
Capital University of Science and Technology, Islamabad Department of Computer Science
Submission Process
It is the reasonability of the project supervisor to make sure that the template is followed
during the documentation of the different phases of the project. This is a generic
document and it can be changed as per the project requirement but only with the
approval of the project supervisor. You should focus on completing the artifacts
provided in this guideline without worrying about the size of the report. This document
must be submitted to the project coordinator on the due date with proper approval from
the supervisor and co-supervisor. Failure to follow this guideline will result in the
cancelation of the project. The document will be reviewed by supervisor as well as your
English instructor and accepted only when its soundness satisfies both of them.
Following portions of the report must be completed at each step of the projects.
Artefact Completion Stage
Chap 1 of v 1.0 Proposal Defense
Project Types
There are two types of Final Year Project: the Development Project and the Research project.
● Development Projects
The objective of this type of the project is to develop a system that meets a set of user
needs. This may take many forms such as a server, a program, a library, a collection
of programs, an embedded system, plug-ins, modification to existing software etc.
The focus of this project is on the sound software engineering principles and
functionality of the software you have produced. Your project will be evaluated in
terms of how well it meets the user needs, how well is it tested and the user
friendliness of the interface.
● Research Project
2
Capital University of Science and Technology, Islamabad Department of Computer Science
The objective of the research-oriented project is to solve a research problem. This may
take the form of evaluating the effectiveness of existing solutions, modify existing
solutions or developing a new solution to the problem.
The focus of this project is on the sound experimental technique, and evaluating the
solution thoroughly. You will do a background research into the domain are and develop
a basis of your work. The success of your solution will be evaluated on the basis of
understanding and use of experimental methods as well as evaluation methodology of
your solution.
You should discuss this question with your supervisor at the proposal defence stage of
the project to decide whether your project is a research oriented or a development
project.
● Paraphrased text: sections of your writing that are based on research (not
common knowledge) but written in your own words (not in quotes
● Facts and Figures: numbers, percentages, and facts that have been collected
by an exclusive source (such as during an experiment or poll)
● Theories, methods, and ideas: any original idea or thought that you find during
your research and present in your writing
● Images, graphs, illustrations: always follow copyright rules when using images,
including those you find online
Paraphrased text, facts and figures, theories, methods and ideas, Images, graphs
and illustrationsall should be referenced with symbols [ ] as shown in above
example. In order to have an accurate record of what you have researched and
therefore an accurate reference, it is important that you write down the details of
your sources as you study. You should keep a complete list of references as
presented in the last section of this report template.
b) Be familiar in the area that you are talking about. By understanding the subject,
you are more likely to write in your own words, rather than restate someone else's
definition of this subject. Look for information on the topic you want to write about.
This can be on the Internet or in books, although books are almost always more
authoritative than the Internet.
c) When in doubt, give credit. Mention the source inside your paraphrase:
"According to Richard Feynman, quantum electrodynamics can be described using
path integral formulations."
Spelling
There is no excuse for spelling mistakes in any report as spelling errors create a bad
impression. Always use a spell checker; they are invaluable for picking up typographical
errors as well as genuine spelling mistakes. Note that spelling checkers cannot detect
cases where the wrong word happens to be a real word e.g. from – form. So a careful
proof read is necessary.
4
Capital University of Science and Technology, Department of Computer
Writing in the third person
We would strongly advise to write FYP report in the third person. This provides a
greater sense of objectivity and distance as the focus is on what is being said rather
than who is saying it. To write in the third person, you write as if you are an outsider
reporting on the aims, methods and outcomes of your project, rather than writing as
though they are happening to you. First person pronouns such as "I" and "We" are
replaced with third person pronouns such as "the project leader/team", "he/she, "it" and
"they".
● Use 1- or 1-1/2-inch margins for all four margins of the report. You might want to
use a 1-1/2-inch margin at the top and 1-inch margins for the left, right, and
bottom.
● Generally use double-spaced typing except in those areas where single spacing
is shown (for example, in the transmittal letter, descriptive abstract, figure titles,
short vertical lists, and items in the information-sources list).
● Either underline the words but not the Roman/Arabic numeral, OR bold the entire
heading including the numeral.
● Leave 3 blank lines between first-levels and the first line of text.
Second-Level Headings
Third-Level Headings
Follow these guidelines for third-level headings:
● Make third-levels sentence-style.
Page-Numbering Style
6
Capital University of Science and Technology, Department of Computer
● All pages within the front and back covers are, but the page number is not always
displayed.
● All pages coming before page 1 of the introduction use lowercase Roman
numerals.
● All pages beginning with page 1 of the introduction use with Arabic numerals.
● Page numbers are not displayed on the transmittal letter, title page, and first
page of the table of contents, page 1 of the introduction, and the appendix divider
page.
● There are several choices of pagination style for the main-text pages:
● Center page numbers at the bottom (halfway between the last text line
and the bottom edge of the paper).
● Place page numbers in the top right corner (on the right margin, halfway
between the top text line and the top edge of the paper). Do not display
page numbers on any page with a centered (first-level) heading (display it
centered at the bottom).
● Some word-processing software causes problems in implementing these
pagination guidelines; let your instructor know.
7
Capital University of Science and Technology, Department of Computer
8
Capital University of Science and Technology, Department of Computer
Project Title v X.0
Name 1 (Reg1)
Name2 (Reg2)
Fall-2018
Supervised By
Supervisor Name
PROJECT REPORT
TITLE
SUPERVISOR NAME
MEMBERS’ SIGNATURES
Supervisor’s Signature
10
Capital University of Science and Technology, Department of Computer
Capital University of Science and Technology, Department of Computer
APPROVAL CERTIFICATE
This project, entitled as “Menu Drive (Insert Your Project Title Here) ” has been
approved for the award of
Committee Signatures:
Supervisor:
(Mr.Qamar Uz Zaman)
Project Coordinator:
Head of Department:
1
Capital University of Science and Technology, Department of Computer
DECLARATION
I/We, hereby, declare that “No portion of the work referred to, in this project has been
submitted in support of an application for another degree or qualification of this or any
other university/institute or other institution of learning”. It is further declared thatthis
undergraduate project, neither as a whole nor as a part thereof has been copied out
from any sources, wherever references have been provided.
MEMBERS’ SIGNATURES
1
Capital University of Science and Technology, Department of Computer
ACKNOWLEDGEMENTS
It is usual to thank those individuals who have provided particularly useful assistance,
technical or otherwise, during your project. Your supervisor will obviously be pleased to
be acknowledged as he or she will have invested quite a lot of time overseeing your
progress.
1
Capital University of Science and Technology, Department of Computer
DEDICATION
This is an optional section
In this section you dedicate your project to anybody that you feel motivates
you for hard work and putting effort for successful life.
1
Capital University of Science and Technology, Department of Computer
Executive Summary
This should be not more than one page in length (200 words approx.). The summary should
allow the reader who is unfamiliar with the work to gain a swift and accurate impression of what
the project is about, how it arose and what has been achieved.
1
Capital University of Science and Technology, Department of Computer
Table of Contents
This should give a complete list of what the report contains starting with the abstract (the
title page is not included in the contents list).
CHAPTER 1
INTRODUCTION
1.1. PROJECT INTRODUCTION
1.2. EXISTING EXAMPLES / SOLUTIONS
1.3. BUSINESS SCOPE
1.4. Useful TOOLS AND TECHNOLOGIES
1.5. PROJECT WORK BREAK DOWN
1.6. PROJECT TIME LINE
CHAPTER 2
REQUIREMENT SPECIFICATION AND ANALYSIS
2.1. FUNCTIONAL REQUIREMENTS
2.2. NON-FUNCTIONAL REQUIREMENTS
2.3. SELECTED FUNCTIONAL REQUIREMENTS
2.4. SYSTEM USE CASE MODELING
2.5. SYSTEM SEQUENCE DIAGRAM
2.6. DOMAIN MODEL
CHAPTER 3
SYSTEM DESIGN
3.1. LAYER DEFINITION
3.1.1. Presentation LAYER
3.1.2. Business LOGIC LAYER
3.1.3. DATABASE LAYER
3.2. SOFTWARE ARCHITECTURE
3.3. CLASS DIAGRAM
3.4. SEQUENCE DIAGRAM
3.5. ENTITY RELATIONSHIP DIAGRAM
3.6. DATABASE SCHEMA
3.7. USER INTERFACE DESIGN
1
Capital University of Science and Technology, Department of Computer
CHAPTER 4
SOFTWARE DEVELOPMENT
4.1. CODING STANDARDS
4.1.1. INDENTATION
4.1.2. DECLARATION:
4.1.3. STATEMENT STANDARDS
4.1.4. NAMING CONVENTIONS:
4.2. DEVELOPMENT ENVIRONMENT
4.3. DATABASE MANAGEMENT SYSTEM
4.4. SOFTWARE DESCRIPTION
CHAPTER 5
SOFTWARE TESTING
5.1. TESTING METHODOLOGY
5.2. TESTING ENVIRONMENT
5.2.1. TEST CASES
5.2. Testing Results
CHAPTER 6
SOFTWARE DEPLOYMENT
6.1. INSTALLATION/DEPLOMENT PROCESS DESCRIPTION
CHAPTER 7
PROJECT EVALUATION
7.1. PROJECT EVALUATION REPORT
1
Capital University of Science and Technology, Department of Computer
List of Figures
If the report contains figures or tables a list of these should be provided. The list should
give the table or figure number, the title of the table or figure and the page number. If
only a few tables and figures are present, they may be treated on one page. Remember
that all figures and tables used must be referred in the text. For example “The class
diagram shown in Figure 2.1 ”
1
Capital University of Science and Technology, Department of Computer
LIST OF TABLES
Table 2.1: Functional Requirements
Table 2.2: Functional and Non-Functional Requirement
Table 2.1: Use Case 1
Table 2.2: Use Case 1
Table 3.1: Data Dictionary
1
Capital University of Science and Technology, Department of Computer
This page is kept blank
2
Capital University of Science and Technology, Department of Computer
Chapter 1
Introduction
A good introduction should tell the reader what the project is about without assuming
special knowledge and without introducing any specific material that might obscure
the overview. Introduction is mostly written for readers’ who are not experts of the
field.
● Introduction of the beneficiary of the project: In this section you will describe the
organization for which you intend to build this project. The origination could be a
company or a single user who would benefit from your application in a particular
way.
In this section you are supposed to provide the survey of the existing systems or
products that belong to the same domain that you have indentified in the previous
section. This survey should include history and working details of prominent
systems/products that solve the similar problem that you intend to solve. You should
select a relevant case study carefully and also identify any short comings or all those
features that are missing in the existing solutions and you intend to provide in your
project.
2
Capital University of Science and Technology, Department of Computer
1.3. Business Scope
This section will describe the project from the business point of view. It will identify its
business potential with the target market.
You can identify the additional potential customers and emphasize on the possibility
of deploying this project as a commercial product. You can identify the effort and cost
of all the additional resources you need in your project to achieve this aim.
This section should mention possible technologies that could be used during the designing,
development and testing of your project.
You should mention the technologies that you intend to use with a brief but technical
justification for your decision. Your discussion should include
1. What programming language is you using and why?
2. Which development environment do you intend to use and why?
3. What database (if any) is you using and why?
4. Which operating systems will support your software?
5. What network protocol (if any) is implemented and why?
22
Capital University of Science and Technology, Islamabad Department of Computer Science
Initial Requir of
Detail Identifi ER Archit ectur e
requir cation
ed Diagr am
Class Diagra m
M M
o o
d d
u u
l
e
1 e
St
u
de 2
n S
t
u
d
e
n
You are supposed to provide work breakdown structure of your project along with the
assignment details that which group member will be performing which tasks.
2
Capital University of Science and Technology, Department of Computer
Chapter 2
The emphasis of this chapter is on getting an idea of what the requirements are for the
intended software. Students who are doing a research related project would provide literature
survey for their problems. They are expected to understand the relevant papers and provide
summary of the existing work presented in each research paper. Such students should consult
their project supervisor for the detailed instructions related to this chapter.
You should write SRS in precise, clear and plain language so that it can be reviewed
by a business analyst or customer representative with minimal technical expertise.
However it also contains analytical models (use case diagrams, entity relationship
diagrams, data dictionary etc.), which can be used for the detailed design and the
development of the software system.
Requirement Specification
Requirements specification involves frequent communication with system users to determine
specific feature expectations, resolution of conflict or ambiguity in requirements as demanded
by the various users or groups of users and documentation of all aspects of the project
development process from start to finish. Requirements are a description of how a system
should behave or a description of system properties or attributes. It can alternatively be a
statement of 'what' an application is expected to do.
2
Capital University of Science and Technology, Department of Computer
The Functional Requirements Specification documents the operations and activities that a
system must be able to perform. The Functional Requirements Specification is described in
such a way that anyone from non-technical audience can understand. Readers should
understand the system, but no particular technical knowledge should be required to
understand the document.
● Functional Requirements should include:
● Descriptions of data to be entered into the system
● Descriptions of operations performed by each screen
● Descriptions of work-flows performed by the system
● Descriptions of system reports or other outputs
● Who can enter the data into the system
● How the system meets applicable regulatory requirements
Table 2.1: Functional Requirements
Non-functional requirements cover all the remaining requirements, which are not covered
by the functional requirements. They specify criteria that judge the operation of a system,
rather than specific behaviors, for example: “Modified data in a database should be updated
for all users accessing it within 2 seconds”. Some typical non-functional requirements
include performance, scalability, availability, reliability, maintainability, usability and
security.
You are supposed to discuss both the functional and non-functional requirement
for your project in the Part 1 mid term report. Functional requirements describe
what the system should do while non-functional requirements describe how the
system works. The Format for presenting these requirements is given in Table 2.
2
Capital University of Science and Technology, Department of Computer
1
2
3…
2
Capital University of Science and Technology, Department of Computer
Figure 2.1: Sample Use case Diagram
Describe the use case (expected behavior of the software) in the form of steps and
sub steps in the format given below. You should also proved a brief description of
user interface that will satisfy the requirement of each use case
2
Capital University of Science and Technology, Department of Computer
Table 2.1: Use Case 1
Use Case
Name:
Actors:
Description:
Trigger:
Preconditions:
Post conditions:
Alternative Flows:
Exceptions:
2
Capital University of Science and Technology, Department of Computer
2.5. System Sequence diagrams
Sequence diagrams are created to show the sequence of events among user and the system to
complete an action / use case. A sample is presented in Fig 2.2.
You are required to provide SSD of all the uses cases that you have provided above.
2
Capital University of Science and Technology, Department of Computer
2.6. Domain Model
Part of your initial architectural modeling efforts, particularly for a business application, will
likely include the development of high-level domain model as you see in Fig. 2.3. This
model should be very slim, capturing the main business entities and the relationships
between them. Some people consider this type of model to be
3
Capital University of Science and Technology, Department of Computer
Chapter 3
System Design
The purpose of this chapter is to provide information that is complementary to the code.
Without an adequate design that delivers required function as well as quality attributes, the
project will fail. But communicating architecture to its stakeholders is as important a job as
creating it in the first place.
There are two views that are considered while defining software architecture. There are
specific design artifacts that belong to each view. Description of such artifacts is given below.
You may select the artifacts depending on the nature of your project.
● Structural View
o Architecture diagram
o Module structure diagram
o Component diagram
o Class diagram
● Behavioral View
o Sequence diagram
o Activity diagram
o State machine diagram
3
Capital University of Science and Technology, Department of Computer
Design pattern is a description or template for how to solve a problem that can be used in
many different situations. Object-oriented design patterns typically show relationships and
interactions between classes or objects, without specifying the final application classes or
objects that are involved.
It is important that you justify its design, for example, by discussing the implications of
constraints on your solution and different design choices, and then giving reasons for
making the choices you did. At each stage of the design you should mention what
kind of design patters have you followed while designing your system. You should
identify which design pattern among the existing patterns are you following while
designing your project.
3
Capital University of Science and Technology, Department of Computer
Figure 3.1: Software Architecture Diagram
3
Capital University of Science and Technology, Department of Computer
Figure 3.2: Class Diagram
You can use a class diagram to illustrate the relationships between the classes, and
the sequence diagram lets you show the messages sent among the instances of
these classes and the order in which they are sent. When an object sends a
message to another object, it implies that the two classes have a relationship that
must be shown on a class diagram.
3
Capital University of Science and Technology, Department of Computer
Figure 3.3: Sequence Diagram
.At this stage you may not be able to provide a comprehensive ERD therefore you may
provide the refined ERD later in design chapter of the document where you will
provide the fully attributed ERD such as primary keys, cardinality constraints etc.
3
Capital University of Science and Technology, Department of Computer
Figure 3.4: Entity Relationship Diagram
A database schema represents the logical configuration of all or part of a relational database. It
can exist both as a visual representation and as a set of rules known as integrity constraints that
govern a database. These rules are expressed in a data definition language, such as SQL. A
database schema indicates how the entities that make up the database relate to one another,
including tables, views, stored procedures,
3
Capital University of Science and Technology, Department of Computer
and more. A database scheme includes information related to primary and secondary keys,
normalization and indexing.
You may present database scheme using front end tool of any DBMS or any other design tools
such as Visio or Enterprise Architecture. A sample database scheme is shown in Fig. 3.5.
.
Figure 3.5: Database Schema
3
Capital University of Science and Technology, Department of Computer
You should describe the UI design in such a way that it remains simple and
consistent along different views. Common GUI elements are shown in the Fig. 3.6.
You should describe the UI design of each page.
3
Capital University of Science and Technology, Department of Computer
Example Login Page as shown in Fig. 3.7 will contain one text field and one
password field. Max length of text field is 8 and min is 4 whereas maximum length off
password is 6 and minimum is 3.
If you use COTS (Components Off the Shelf, also named SOUP, Software Of
Unknown Provenance), list them here.
3
Capital University of Science and Technology, Department of Computer
Chapter 4
Software Development
The Implementation section is similar to the Specification and Design section in that it
describes the system, but it does so at a finer level of detail, down to the code level. This
section is about the realization of the concepts and ideas developed earlier. It can also describe
any problems that may have arisen during implementation and how you dealt with them.
Make sure that the system design corresponds to the implementation of the
project. If there is no relationship between design and implementation, it may
downgrade your score in FYP.
You should also mention any unforeseen problems you encountered when implementing the
system and how and to what extent you overcame them. Common problems are:
● Difficulties involving existing software, because of e.g.,
● Its complexity,
● Lack of documentation;
● Lack of suitable supporting software
● Overambitious project aims.
A seemingly disproportionate amount of project time can be taken up in dealing with such
problems. The Implementation section gives you the opportunity to show where that most of
the effort has been spent.
4
Capital University of Science and Technology, Department of Computer
4.2. Development Environment
In this section you will provide the reason behind using all the existing tools and technologies
that you may have used during the development of your project. This includes development
environment that you have used. How have you deployed the development environment?
What different kind of packages you have used? Are there any third party libraries involved
etc?
In this section you will identify major modules of the software that you have produced. You
will show the class diagram of these major modules for this section. Typical subheadings of
this section can be
Login process
Loading Data
Data processing
Report generation
…..
Moreover you will also discuss the logic that you have implemented in the code of those
modules with the help of code snippets as shown below in the examples. Do not attempt to
describe all the code in the system, and do not include large pieces of code in this section.
● Are especially critical to the operation of the system.
● You feel might be of particular interest to the reader for some reason
● Illustrate a nonstandard or innovative way of implementing an algorithm, data structure,
etc.
Snippet 1
#define SWAP(type, x, y) \
do { \
type temp;
4
Capital University of Science and Technology, Department of Computer
temp = x;
x = y;
y = temp; \
} while(1)
Description: This function takes 2 arguments. Then we have an infinite loop that swaps
the value of the two passed variables.
You are not allowed to include the complete source code of the software how ever you can
include important functions of your major modules to discuss the logic of your code.
Snippet 2
#define pop(type, Top) \
type temp;
temp = Top.item;
Top = Top.next;
return temp;
Description: This function pops the top of the stack. It places the top pointer to the next item
of the stack and return the popped item..
You are not allowed to include the complete source code of the software how ever you can
include important functions of your major modules to discuss the logic of your code.
4
Capital University of Science and Technology, Department of Computer
Chapter 5
Software Testing
Software Testing is the most crucial part of Software Development Process. It is the
investigation or evaluation of a software component, improving them, and finding bugs and
defects. Testing is usually done by executing a system in such a way that it identifies any
gaps, errors, or missing requirements in contrary to the actual requirements.
It is essential to have a testing plan in place to ensure that the product delivered is robust and
stable, and is delivered on a predictable timeline.
In this section you will discuss the reason of various testing techniques that you have
used to test the software you have created such as integration testing, component
testing and system testing etc.
Describe and discuss the reason to use the selected testing environment.
4
Capital University of Science and Technology, Department of Computer
You should describe how you demonstrated that the system works as intended (or
not, as the case may be). Include comprehensible summaries of the results of all
critical tests that were carried out. You might not have had the time to carry out any
full rigorous tests you may not even got as far as producing a testable system.
However, you should try to indicate how confident you are about whatever you have
produced, and also suggest what tests would be required to gain further confidence
● Test Case 1
● Test case description
● How test case was generated
● Expected result of the test case
● Actual result of the test case
Chapter 6
Software Deployment
4
Capital University of Science and Technology, Department of Computer
6.1. Installation / Deployment Process Description
In this section you have to provide step-by-step guide for the installation of the
software produced with the help of screen shots.
4
Capital University of Science and Technology, Department of Computer
Chapter 7
Project Evaluation
This chapter includes the examiners evaluation report, including the points to be
revised/included along with the selected requirements in the next iteration.
Examiner Name:
S. No. Suggestion
1 Entity relation should be labeled.
2 Sequence diagram should be split.
3 English sentence structure should be improved.
4 Formatting should be improved.
5 Naming conventions are not followed in code artifacts.
6 Indention rules are not followed as described in chapter 4
7 Test cases for the incorrectbehavior to be included.
8 Test cases should be added to test remaining functionalities.
Signature
4
Capital University of Science and Technology, Department of Computer
● References
All the documents, papers, articles and WebPages that you have taken help from must be cited in
the references section
Book
Author(s), Book Title. Place of publication: Publisher, year, volume, page number(s).
Example: [1] W.K. Chen, Linear Networks and Systems. Belmont, CA: Wadsworth, 1993, pp. 123- 35.
Webpage
Author(s) and/or organization, date of publish or date the page was last updated, title of web page
document, website address that provides a direct link to the document, and the date you last accessed the
document
Example: Winston, J 1999, A look at referencing, AAA Educational Services, accessed 20 October
2015, <http://www.aaa.edu.au/aaa.html>. United Nations Web Services 2006,
Research Paper
Author(s), "Article title, Journal Title, vol., no., page number(s), Month year.
Example: [2] G. Pevere, "Infrared Nation, International Journal of Infrared Design, vol. 33, pp. 56- 99,
Jan. 1979.
If you need to reference any item that is not the the list, you should consult IEEE citation format
available at the following link http://library.queensu.ca/book/export/html/5846
4
Capital University of Science and Technology, Department of Computer
Appendix
User Manual of the software
4
Capital University of Science and Technology, Department of Computer