Viputhanath Pirakasam BT/BSCIT/UWIC/01/07: Cardiff Metropolitan University Assignment Cover Sheet

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 44

Cardiff Metropolitan University

Assignment Cover Sheet


Student Details ( Student should fill the content)

Name Viputhanath Pirakasam


Student ID BT/BSCIT/UWIC/01/07
Scheduled unit details

Unit code CIS6003


Unit title Advanced Programming
Unit enrolment details Year 3

Study period 2017

Lecturer Abdul Cader Mohamed Nafress


Mode of delivery Full Time

Assignment Details

Nature of the Assessment Course work

Topic of the Case Study A Softwaret Project Management System


Learning Outcomes covered 1,2,3

Word count 6000


Due date / Time 19th August 2017
Extension granted? Yes No Extension Date 10th Sep 2017
Is this a resubmission? Yes No Resubmission Date

Declaration

I certify that the attached material is my original work. No other person’s work or ideas have been used
without acknowledgement. Except where I have clearly stated that I have used some of this material
elsewhere, I have not presented it for examination / assessment in any other course or unit at this or
any other institution

Name/Signature P. Viputhanath Date 09 / 09 / 2017


Submission

Return to:

Result

Marks by 1st Signature of the 1st Assessor Agreed Mark


Assessor

Marks by2nd Signature of the 2nd Assessor


Assessor

Comments on the Agreed Mark.


For Office use only (hard copy assignments)

Receipt date Received by

STUDENT NAME: STUDENT NUMBER:

Module Number & Title: Semester:

Assignment Type & Title:

For student use: Critical feedback on the individual progression towards achieving the assignment
outcomes

For the Assessors’ feedback


Indicate the Task number strength and Weaknesses and the marks for each task

Task Strengths (1st Assessor) Strengths (2nd Assessor)


No/Questi
on No

Task No / Weaknesses (1st Assessor) Weaknesses (2nd Assessor)


Question
No
Areas for future improvement

Comments by 1st Assessor Comments by 2nd Assessor

Marks

Task Marks by Marks by Marks by IV (if IV comments (If Any)


/Question 1st Assessor 2nd any)
No Assessor

Total Marks

Name and the Signature of the Date:


1st Assessor

Name & Signature of the Date :


2ndAssessor :

Name & Signature of the IV: (If


Date :
any)

Upon successful completion of this module, you will have demonstrated:

 Demonstrate fluency in contemporary programming languages, development tools and


environments.

 Evaluate and demonstrate the theory and concepts of contemporary/industry standard


programming and design in the software development life cycle.

 Demonstrate awareness of industry standards of professional and ethical software


development, software carpentry and codemanship.

Milestone 1: Coursework – A Softwaret Project Management System – 100 Marks

Scenario

The ABC is a Software development company which provides various short and long term projects
for small and medium level companies. The IS coordinator of the company currently stores the
employee, project and client details in excel files. He also needs to provide updated information
about the above details to manager of ABC. The existing system is not efficient and causes lots of
delays and errors. The coordinator faces difficulties in searching records and getting the status of the
project when necessary. Also it is difficult to provide information to management when needed.
Therefore the management decided to develop a system to replace the existing manual system and
ease workload of coordinator in this context.

Assume that you’re a software developer hired to complete this software system. You are supposed
to create an error free and effective system with user friendly interfaces, appropriate messages, and
database oriented. Use web based Java technologies to automate the above scenario.

Students are free to make necessary assumption on system design & granting access permissions
according to the scenario, but all suggestions must be well explained with the valid reasons.

Provide a well-designed, user friendly system addressing the following features:


● System should have differential access rights to the system users.
● Interactive user friendly interfaces
● Clear implementation of the business flow via the system.
● Design & implement suitable sets of reports, which you think will add more value to
the entire business
● Use test driven development and include test classes to test your application

Students are free to make necessary assumption on system design & granting access
permissions other than mentioned within the scenario, but all suggestions must be well
explained with the valid reasons.

Students can add any functionality which will enhance the system and make the
proposed solution more comprehensive.

Use Harvard referencing to properly acknowledge all the external sources you use.

Your tasks

Tasks

a) Provide a requirement specification for the proposed system.(6 marks)


b) Provide the UML diagrams for the given problem with clear explanations on the design
decisions. Derive detailed Use Case diagram, Class diagram & a sequence diagram.
Whenever necessary document the relevant assumptions you made. (9 Marks)
c) There are many system design patterns available in system development. Critically
evaluate singleton, factory and abstract factory design patterns and apply the most
suitable design pattern for your system development.(15 Marks)

d) Develop an interactive set of interfaces to get the necessary user inputs. Make sure to
implement proper validation mechanisms in order to restrict invalid entries to the
system. Come up with suitable set of reports, which you will think add more value to
your system
i. Your program must have a clear, three-tiered organization. That is the program
should have distinct and separate data access, business logic, and user interface
layers.
ii. Your program should make use of a proper database to store information
(30 Marks)
e) Document the test plan and explain how you used test driven development in this
scenario. This includes test rationale, test plan, test data and proper application of the
test plan (LO II) (10 Marks.)

f) Create user and technical documentation for the developed solution.(10 Marks)

g) Critically evaluate your ethical considerations in developing the solution as well as


justify the tools and function you have used to achieve software carpentry and
codemanship.
(20 marks.)

Guidelines for the report format


Paper A4
Margins 1.5” left, 1” right, top and bottom
Page numbers – bottom, right
Line spacing 1.5
Font
Headings 14pt, Bold
Normal 12pt
Font face- Times New Roman
Referencing and in-text citation should be done strictly using Harvard Referencing System.

Marking Scheme

Part (a) contains 8 marks

Criteria Marks
Out of 6
 Functional requirement specification

3
 Nonfunctional requirement specification

Part (b) each contain 9 marks

Diagrams should be evaluated according to the following criteria.

Marks
Criteria
Out of 9
Proper use of Object Oriented Design Methodology

Use case Diagram


 Identification of correct use cases
 Identification of correct Actors and associations
Sequence Diagram
 Implementing identified set of use cases (about 3) as
sequence diagrams. 1-3

Class Diagram
 Identification of associated methods, with correct signatures
and attributes in each class
 Correct identification of relationships

Average Design
 Clear identification of private, public access modifiers & it
is visible in the class diagram
 Accurate use of <<include> <<extend>> stereo types in use
case diagram
 Appropriate use of lifelines, messages and objects in
proposed sequence diagrams
4-6
 Correct use of UML notations with minor mistakes
Evaluation
 Student has given basic description about the design and
given a reasonable justification
 Effective judgements have been made about the content and
levels of information to be included

Excellent Design
 Highly detailed diagram
 Use of OO concepts clearly visible
 Backed by relevant assumptions
7-9
 Multiplicity, navigability aggregation & compositions
visible in class diagrams
 Excellent use of UML notation
Evaluation
 Good justification of the design
 Judge validity of results
 Use critical reflection to evaluate the work and justify with
valid explanations
Fluency (Of design)
 Evidence of critical analysis on different perspectives
covering how, use case, class & sequence diagrams support
in designing.

Part (c) contains 15 marks

Criteria Marks
Out of 15
Identify the different types of design 1-5
patterns and there advantages
Apply the suitable design patterns for 5-10
system development
Critically evaluate the impact of design 11-15
patterns

Part (d) contains 30 marks

Criteria Marks
Out of 30
Excellent 21-30
 More sophisticated UI,
 Complex functionality (Email alerts/SMS/Innovative aspects)
 3- tier architecture should exit

 Appropriate use of more sophisticated database features (e.g.


use of stored procedures / functions / triggers to implement
business rules)
 Reports being proposed to facilitate decision making.
 Effective use of sessions / cookies
Good 9-20
 Make a good attempt to follow the three tier architecture.
 More sophisticated database design and queries
 More sophisticated data representation (e.g. several classes at
business logic level)
 Separate UI windows for entering results and viewing overall
scores.
Pass 0-8
 Basic data management system features .
 Use a database (simple design)
 Have simple Web user interface

Part (e) contains 10 marks

Test Rationale (3 marks)


 Provide a concise rationale for the approach adopted. Discuss how you are going to
use test driven development.

Devise your test data (2 marks)


 Derive test data for the system.

Produce and apply a test plan (5 marks)


 Create test classes for your system

 You are to carry out relevant tests and provide documentation detailing the tests
used to verify your system.

 Demonstrate that the code passes all the tests (use screen-grabbing software and
insert images into your submission).

 Evaluation of overall success or failure and lessons learned.

 Traceability showing how each requirement is met by the design.

Part (f) contains 10 marks

Criteria Marks
Out of 10
Professional standard of documentation 7-10
with screen shots & good explanation
High standard of documentation with 5-7
screen shots & average explanations
Acceptable standard of documentation 3-5
with poor explanations
Errors in the documentation 0-3

Part (g) contains 20 marks

Criteria Marks
Out of 20
 Identify ethical issues relevant to the case study.
 Analyze the ethical considerations
 Justify the chosen considerations. 6
 Justify the tools and functions used to achieve software
carpentry in your development.
7
 Justify the tools and functions used to achieve software
codemanship in your development.
7
A SOFTWARE PROJECT MANAGEMENT
SYSTEM FOR ABC COMPANY

VIPUTHANATH PIRAKASAM
Registration Number: BT/BSCIT/UWIC/01/07

NAME OF THE LECTURER

MR. A.C.M NAFREES

2017

ICBT BATTICALOA CAMPUS


ACKNOWLEDGEMENT

I take this opportunity to express my gratitude to everyone who supported me to make this
project successful. I wish to thanks to Mr. A.C.M Nafrees and Mr. Prabu, the Supervisors who
gave me guidance, appropriate knowledge, assistance and feedbacks when necessary to do the
project in a better way.

I am grateful to the Academic staff of the ICBT Batticaloa Campus for their advices,
suggestions and resources provided and to Cardiff Metropolitan University that provided the
best educational environment and clear objectives for presenting my skills and knowledge.

As an Employee I like to thank all my colleagues in Dialog Axiata PLC of Sri Lanka who
gave me their hand in need for the problems occurred in analyzing, implementing testing and
documentation. Thank you very much!
TABLE OF CONTENTS
ACKNOWLEDGEMENT ..................................................................................................... 11
TABLE OF CONTENTS ....................................................................................................... 12
TABLE OF FIGURE ............................................................................................................. 13
CONTENTS OF TABLE ....................................................................................................... 14
EXECUTIVE SUMMARY ................................................................................................... 15
INTRODUCTION ................................................................................................................. 16
REQUIREMENT SPECIFICATION .................................................................................... 17
FUNCTIONAL REQUIREMENTS .................................................................................. 17
NON-FUNCTIONAL REQUIREMENTS ........................................................................ 18
SYSTEM DESIGN ................................................................................................................ 18
UML DIAGRAMS ................................................................................................................ 19
USE CASE DIAGRAM ..................................................................................................... 19
CLASS DIAGRAM ........................................................................................................... 23
SEQUENCE DIAGRAM................................................................................................... 24
DESIGN PATTERNS ............................................................................................................ 25
SINGLETON ..................................................................................................................... 26
FACTORY ......................................................................................................................... 26
ABSTRACT FACTORY ................................................................................................... 27
THREE TIER ARCHITECHURE ......................................................................................... 28
DATABASE CONNECTIVITY ........................................................................................... 28
TESTING ............................................................................................................................... 28
USER MANUAL ................................................................................................................... 33
TECHNICAL DOCUMENTATION ..................................................................................... 37
INTRODUCTION ............................................................................................................. 37
HOW TO OPEN SUPPORTING FILE ............................................................................. 37
CONCLUSION ...................................................................................................................... 40
CRITICAL EVALUATION OF DEVELOPED SYSTEM................................................... 41
REFERENCES ...................................................................................................................... 42
TURNITIN REPORT ........................................................................................................... 43
TABLE OF FIGURE
Figure 1: Use Case Diagram for Employee Management ..................................................... 20
Figure 2: Use Case Diagram for Project Management .......................................................... 21
Figure 3: Client Management Use Case Diagram ................................................................. 23
Figure 4: Client Management Use Case Diagram ................................................................. 23
Figure 5: Sequence Diagram for Coordinator Login ............................................................. 25
Figure 6: Login ...................................................................................................................... 34
Figure 7: Wrong ..................................................................................................................... 34
Figure 8: Main Page ............................................................................................................... 35
Figure 9: User details ............................................................................................................. 35
Figure 10: View report ........................................................................................................... 35
Figure 11: Add Employee ...................................................................................................... 36
Figure 12: Add Project ........................................................................................................... 36
Figure 13: Add Client ............................................................................................................ 37
Figure 14: Open webpage ....................................................................................................... 37
Figure 15: Connect the Database ........................................................................................... 38
Figure 16: Create table ........................................................................................................... 38
Figure 17:Enter the URL ....................................................................................................... 38
Figure 18: View the web application system ......................................................................... 39
Figure 19: Siebel (Dialog Axiata Plc).................................................................................... 41
CONTENTS OF TABLE
Table 1: Actors of employee management ............................................................................ 19
Table 2 : Use cases of employee management ...................................................................... 19
Table 3: Actors of project management ................................................................................. 20
Table 4: Use cases of project management ............................................................................ 21
Table 5: Actors of client management ................................................................................... 22
Table 6: Use cases of client management .............................................................................. 22
Table 7: Class diagram for Employee management .............................................................. 23
Table 8: Test case for Employee login module ..................................................................... 31
Table 9: Test case for Register New Employee module ........................................................ 31
Table 10: Test case for Employee status change module ...................................................... 32
Table 11: Test case for Update Employee Data module........................................................ 32
Table 12: Test case for search record .................................................................................... 32
Table 13 Test case for Register new project .......................................................................... 33
EXECUTIVE SUMMARY

ABC Software Development Company is providing various short and long term projects for
small and medium level companies with its core business and growth primarily deriving from
projects, client management, and employee management services. The Group is well-
established entity, operating for few decades as a successful business containing a vast product
portfolio and client basis, consisted of private sector as well as the Government. Currently the
group which consists with adopting a manual process with full of documentation. Employees
have to submit the paper/electronic documents to the top management of each group and the
Group for data verification. Mainly adopting this manual process, Group's top management
taking a long lead time on creating various reports. As well as management has to face so
many difficulties while taking the managerial decisions from the generated reports which are
crucial to the survival of group of companies. The Software Project management System is
suggested to solve most of the difficulties faced by the group management as well as the group
employees, By using the suggested system Employees will be able to enter the data which
required by the group Management. Also by using the system privileged employees and
management will be able to generate different reports according to their requirements by few
clicks.

The group manager can view the current progress of the all activities, current positions of each
company through the dashboard. The detail information is available in the system and also
can convert them into hard copies quickly. The methodology used for the development of the
system is Three-tiered architecture is a software architectural pattern MVC and it is allowed
the use of Object Oriented System Development employing Unified Modeling Language
(UML) for system designing. The web based system has been implemented using JSP as the
server side language together with MySQL as the database server and Apache as the web
server. Web application has been developed by using HTML, CSS, Javascript, jQuery.
Further, Dreamweaver and Netbeans IDE were aided for designing and development. By using
the new management system ABC Company is being able to overcome their main drawbacks
such as long time in generating various management reports, poor management control,
communication problems and many more issues. The system will help ABC Company to drive
the establishment to a new level where getting a competitive advantage to the group.
INTRODUCTION

Through the discovery of wheel, man has become more interested and enthusiastic to learn
from the environment. By means of the growth of human civilization man has come to a period
called “Industrial revolution”. All the business was more income oriented and found that they
were poor in managing fake and unethical behavior of competitors’ activities, unpredicted
situations of internal customers and external customers. Taking right decision at right time
could win the business goals. For that, business went on seeking solutions for the perfect
decision making and the solution was information.

In the current context information playing a more crucial part in the business environment,
from the entering a new market, commencing a new business to the existence of the firm,
information became a key factor.

Consider about the client, ABC Software Development Company is providing various short
and long term projects for small and medium level companies. The IS coordinator of the group
mainly faces difficulties in searching records and getting the status of the project when
necessary. Also it is difficult to provide information to management when needed. Currently
the client is unable to accurately identify the current situation of each projects and reasons
behind the poor system which affect the total group crucially. Therefore the management
decided to develop a system to replace the existing manual system and ease workload of
coordinator in this context.

Due to the poor system the company unable to achieve their goals, the quality of the service
expected, effective handling of customer complaints and these have been directed for
dissatisfied employees in the group. Through Softwaret Project Management System for ABC
Group project, it is intended to increase efficiency and effectiveness to help and overcome
current problems the group is facing today, with an automotive and eased access process.
REQUIREMENT SPECIFICATION
In here gathered requirements are mainly categorized as functional and nonfunctional
requirements to give the idea about required hardware and software.

FUNCTIONAL REQUIREMENTS

Main functional requirements gathered for this system;

Company Operation - Selected Employees from the company should be able to do the
requested functionalities for the group.

ABC Company - Manager can add employee details to the system, while coordinator can
manage employee details. Both Manager and coordinator will have access to the company
report generating module.

ABC Company - Manager can add project details to the system, while coordinator can manage
projects details. Both Manager and coordinator will have access to the company report
generating module.

ABC Company - Manager can add client details to the system, while coordinator can update
client details. Both Manager and coordinator will have access to the company report
generating module.

Employee management - System coordinator will be given access to the register new employees
to the organization and give relevant privileges for them and update their details.

Report generation -Function to produce various types of data analysis by the authorized parties.
Support to generate reports according to various administrative perspectives.

Backups- Implement a method to take backups in order to recover data when a data loss occurs.
Implement, at least at a basic level, certain security features to prevent unauthorized user
authentication to the database.

Privilege levels –Every authorized employee will be able to the given privileges. Each privilege
and its tasks are clearly stated such as any user cannot interfere with other tasks.
NON-FUNCTIONAL REQUIREMENTS

Following requirements are termed as Non-Functional requirements. So they are difficult to verify
and these are general goals which is vital for the success of the system. According to the client
their non-functional requirements are as follows.

Security-Since employee‘s personal information is recorded and the company data assets are
saved within the system, Therefore security is essential.

Availability-System and its databases will be available at 24/7 and information has to be provided
to the users when needed.

Privacy-Since information only for the authorized parties it should be made sure that these do not
leak out to the other people.

User Friendliness-Users who are not familiar with website application might visit find trouble.
Therefore User Friendliness and attractiveness is an essential factor.

Response time-System user does not want to have to wait excessively.

Manageability-It can be expensive to keep a system up and running if it requires lots of


administrative maintenance. It's then interesting to keep the administration costs down.

SYSTEM DESIGN
This can be identified as the ELABORATION PHASE where the designing and development
of the solution being carried out based on the requirements identified. Typically the initial
solution must be refined and organized into smaller sub systems, with specifications for how
the sub systems will interfere with each other. UML diagrams such as sequence diagrams,
class diagrams and use case diagrams are used for this purpose as well as designed the User
interfaces.
Systems design process is defining the architecture, interfaces, modules, data and
components for a system to fulfill identified requirements. For notations Edraw max and
MS Visio used to design below some diagrams.
UML DIAGRAMS

USE CASE DIAGRAM

EMPLOYEE MANAGEMENT

This module deals with adding, updating, searching and deleting employees. Both manager
and coordinator will have access to manage employees but manager only able to add employee
details.
Table 1: Actors of employee management

ACTOR DESCRIPTION

Manager The manager can make all the activities accessible for employee
management.

Coordinator The Coordinator can make all the activities accessible for employee
management without adding employee details.

Table 2 : Use cases of employee management

USECASE DESCRIPTION

Insert Employee Employee’s details will be added to the system such as the
Employee Title, Employee First Name, Last Name, Employee
NIC No, Employee DOB, Employee Email, Employee No,
Employee Contact, Employee Designation, and Employee
Registration Date.

Update Employee If any stored employee’s information different in database,


possible to changed and saved in the system then it will be
updated further.

Get Employee Can get an existing employee’s details from the database when a
Details particular employee is selected from the list of them.

View Employees Can view all the employees in one table who already saved in the
system.

Search Employees Can search the employees by using their NIC number or
employee number.
Figure 1: Use Case Diagram for Employee Management

PROJECT MANAGEMENT

This module related to adding, deleting, searching and updating projects. Both manager and
coordinator will have access to manage projects but manager only able to add project details.

Table 3: Actors of project management

ACTOR DESCRIPTION

Manager The manager can make all the activities accessible for project
management.

Coordinator The Coordinator can make all the activities accessible for project
management without adding project details.
Table 4: Use cases of project management

USECASE DESCRIPTION

Insert Project Project’s details will be added to the system such as the Project
Name, Project Client, Project Category, Allocated Employee,
Estimated Duration, Starting Date, Estimated Cost, and Project
Payment Amount will be collected.

Update Project If any stored project’s information different in database, possible


to changed and saved in the system then it will be updated further.

Get Project Details Can get an existing project’s details from the database when a
particular project is selected from the list of them.

View All Project Can view all the projects in one table which already saved in the
system.

Search Project Can search the projects by using that Name.

Figure 2: Use Case Diagram for Project Management


CLIENT MANAGEMENT

This module related to adding, deleting, searching and updating clients. Both manager and
coordinator will have access to manage clients but manager only able to add client details.

Table 5: Actors of client management

ACTOR DESCRIPTION

Manager The manager can make all the activities accessible for client
management.

Coordinator The Coordinator can make all the activities accessible for client
management without adding client details.

Table 6: Use cases of client management

USECASE DESCRIPTION

Insert Client Client’s details will be added to the system such as the Client
Name, Client Contact No, Client Email Address and Client
Officer Name will be collected.

Update Client If any stored client’s information different in database, possible


to changed and saved in the system then it will be updated further.

Get Client Details Can get an existing client’s details from the database when a
particular client is selected from the list of them.

View All Client Can view all the clients in one table which already saved in the
system.

Search Client Can search the projects by using that Client Name.
Figure 3: Client Management Use Case Diagram

CLASS DIAGRAM

Figure 4: Client Management Use Case Diagram

Table 7: Class diagram for Employee management

Employee

 ID: int
 Emptitle: String
 Empfname: String
 Emplname: String
 Empnic: String
 Empdob: String
 Empemail: String
 Empdesignation: String
 Empregdate: String
 Empno: String
 Empcontact: String

+ Emp ()

+ Emp (int, String, String, String, String, String, String, String,


String, String, String)

 setID (int): void


 getID (): int
 setEmptitle (String): void
 getEmptitle (): String
 setEmpfname (String): void
 getEmpfname (): String
 setEmplname (String): void
 getEmplname (): String
 setEmpnic (String): void
 getEmpnic (): String
 setEmpdob (String): void
 getEmpdob (): String
 setEmpemail (String): void
 getEmpemail ():String
 setEmpdesignation (String): void
 getEmpdesignation (): String
 setEmpregdate (String): void
 getEmpregdate (): String
 setEmpno (String): void
 getEmpno (): String
 setEmpcontact (String): void
 getEmpcontact (): String

SEQUENCE DIAGRAM

Coordinator Login
Figure 5: Sequence Diagram for Coordinator Login

DESIGN PATTERNS
The design patterns interactions, reusable solutions for experience and programming problems
improved day by day. The style of design is not something we can simply insert into the class
or library of the system that is a lots of new to compare that, to run without any errors or
correct state with template. This is not an exact language. Most languages (if not all languages)
should be able to achieve a good design style, depending on the language function. More
importantly, any style of design can be a double edged sword - if it is carried out into the
incorrect place, then it may be terrible and bring you a lot of trouble. But, in the exact place
to perform, in time, it may be your Savior (Bautista, 2010). Stated by dofactory there are 23
patterns categorized into three (Design Patterns, 2017);

1. Creational: Factory, Singleton, Prototype, Builder, and Abstract Factory.


2. Structural: Bridge, Flyweight, Decorator, Composite, Proxy, Adapter and Facade
3. Behavioral: Template Method and Visitor, Memento, Mediator, State, Iterator, Observer,
Command, Strategy, Interpreter, Chain of Resp.
SINGLETON
 Confirms a class has only one occasion

 Offers a solo point of reference

Use

 There must be exactly one instance of a class.

 May provide synchronous access to avoid deadlocks.

 Very common in GUI toolkits, to specify the connection to the OS/Windowing system

Benefits

 Controls access to a scarce or unique resource

 Helps avoid a central application class with various global object references

 Subclasses can have different implementations as required. Static or global references


don’t allow this

 Multiple or single instances can be allowed

Example

 A status bar is required for the application, and various application pieces need to be
able to update the text to display information to the user. However, there is only one
status bar, and the interface to it should be limited. It could be implemented as a
Singleton object, allowing only one instance and a focal point for updates. This would
allow updates to be queued, and prevent messages from being overwritten too quickly
for the user to read them.

Implementation

 Generally, a single instance is held by the object, and controlled by a single interface.

 Sub classing the Singleton may provide both default and overridden functionality
FACTORY
“The factory method pattern is a creational design pattern which does exactly as it sounds: it's
a class that acts as a factory of object instances”

The key objective of this model is to summarize the creation process that can encompass
dissimilar categories in a solo function. By providing the correct context for the factory type,
you can return the correct object.

When we have a superclass with several subcategories and use the factory design pattern based
on the input, we need to return a subclass. This model is responsible for classifying the course
from the client program to the factory class.
Use

The best time to use the factory method is when you have several different forms of a single
entity. Suppose you have a button class, this class has different variables like ImgeButton,
InputButton and FlashButon. Depending on the location, you may have to create a different
button - where you can use the factory to create a button for you!

Benefits

 Factory design pattern provides approach to code for interface rather than implementation.

 Factory pattern removes the instantiation of actual implementation classes from client code.
Factory pattern makes our code more robust, less coupled and easy to extend. For example,
we can easily change PC class implementation because client program is unaware of this.

 Factory pattern provides abstraction between implementation and client classes through
inheritance

ABSTRACT FACTORY
 Central interface for creating objects

 Uses ONLY a high level reference.

 Declares an interface for each kind of widget

 Concrete subclasses have implementation details

 Compile Time vs. Dynamic Creation

Use

 A system is independent of items, their creation and representation

 Multiple item families or types are required

 Related items must be used together

 Only class interfaces, not implementations, are required. Example – libraries

Consequences

 Benefits:

o Isolates concrete classes

o Items easily exchanged

o Promotes item consistency

 Drawback:
o New object support may be difficult.

o Abstract Factory & all subclasses may need to be extended

Implementation

 A factory may be a singleton (also a pattern)

 A single make Object () method could return various types. This reduces interfaces,
but the client can’t safely determine concrete object type.

 Classic trade off: Interface simplicity vs. Object Knowledge.


THREE TIER ARCHITECHURE

The three-tier structure includes the use of three separate layers for development. These layers
include Presentation layer, Data access layer, and Business logic layer. The visualization layer
consists of all the user interaction of the user interface framework. The data access layer
consists of all kinds of databases that interact with the database. Three-tier architecture has
advantages and disadvantages. They will be mentioned below.

DATABASE CONNECTIVITY

Database connection of a system is very important because it is the communicating agent


between database and the application. Wamp server and mysql used to establish the
connection between the server and database host, username and password. When need to
access the database to do any changes very simply.

TESTING
Introduction

Most important thing in software development is that the software we produce should satisfy
customer requirements. And also the system we develop should enrich with good quality and
reliability. In order to assure the standards and completeness of the system few methods of
testing were applied throughout the software development process. After confirming that the
system performs well according to the evaluation steps, ultimate output release to the
customers.

5.1 Types of Testing

Following testing were used to evaluate the Inter Company Management system.

o Unit Testing
o Integration Testing

o System Testing

o User acceptance Testing

o White-box Testing

o Black-box Testing

 Unit Testing

Unit testing is applied for every units of the program while developing the project. It is very
important because it can identify errors that occur inside the boundary of the module.

 Integration Testing

Integration Testing is based on functional specification of the system. Integration testing is


carried out after completing the modules and unit testing.

Ex: After login to the system the user directs into Homepage.

 System Testing

System testing is done after the completion of Integration testing. System checks whether the
system meets customer requirements after integrating the system components, databases and
hardware components. Security checking, resource utilizing checking, performance checking
are done through the system testing process.

 Black Box testing

Black-box testing is a method of software testing that examines the functionality of an application
based on the specifications. It is also known as Specifications based testing. Independent Testing
Team usually performs this type of testing during the software testing life cycle. This method of
test can be applied to each and every level of software testing such as unit, integration, system and
acceptance testing (Black Box Testing, 2017).

 White Box testing

White-box testing (also known as clear box testing, glass box testing, transparent box testing, and
structural testing) is a method of testing software that tests internal structures or workings of an
application, as opposed to its functionality (i.e. black-box testing). In white-box testing an internal
perspective of the system, as well as programming skills, are used to design test cases. The tester
chooses inputs to exercise paths through the code and determine the appropriate outputs. This is
analogous to testing nodes in a circuit, e.g. in-circuit testing (ICT).

Test plans and Test cases


The goal of test planning is to establish the list of tasks that, if performed, will identify all of the
requirements that have not been met in the software. The main work product is the test plan. There
are many standards that can be used for developing test plans.

The test plan represents the overall approach to the test. In many ways, the test plan serves as a
summary of the test activities that will be performed. It shows how the tests will be organized, and
outlines all of the testers‘ needs that must be met in order to properly carry out the test. The test
plan is especially valuable because it is not a difficult document to review, so the members of the
company and management can inspect it.

The bulk of the test planning effort is focused on creating the test cases. A test case is a description
of a specific interaction that a tester will have, in order to test a single behavior of the software.
Test cases are very similar to use cases, in that they are step-by-step narratives that define a specific
interaction between the user and the software. However, unlike use cases, they contain references
to specific features of the user interface. The test case contains actual data that must be entered
into the software and the expected result that the software must generate.

Login module

Test No Description Expected Result Remarks

Enter the correct username


01 Show homepage pass
and password

Enter the correct username Error notification saying wrong


02 pass
and not password password

Enter the correct password Error notification saying wrong


03 pass
and not username username

Enter Both wrong username Error notification saying wrong


04 pass
and password username and password

Error notification saying


Try to logging using empty
05 username and password fields are pass
username and password
empty
Try to logging using username Error notification saying
06 pass
and empty password password fields is empty

Try to logging using password Error notification saying


07 pass
and empty username username fields is empty
Table 8: Test case for Employee login module

Register New Employee

Test No Description Expected Result Remarks

01 Fill all the empty fields and click Display alert “Successfully Added pass
“Add Employee button” New Employee”

02 Click “Add Employee”‖ button Notification appears near to the pass


without fill empty fields each and every empty field.

03 Trying to add less than 4 digits Notification appears near first pass
Employee first name name field saying error

04 Trying to add less than 4 digits Notification appears near Last pass
Employee Last Name Name field saying error

05 Trying to add NIC without Notification appears near NIC field pass
Entering correct Numeric and saying error
non-numeric characters

06 Trying to add future date for DOB Notification appears near DOB pass
field saying error

07 Add Email address without @ Notification appears near Email pass


symbol or correct domain name address field saying error

08 Add different password for the Notification appears near Re- pass
Re-password filed password field saying error

09 Trying to add greater than or less Notification appears near contact pass
than 10 digits for contact no no field saying error
textbox

10 Trying to non-numeric characters System automatically reject pass


for the contact no textbox Non-numeric characters

11 Trying to add future date for Notification appears near pass


Registration date Registration date field saying error
Table 9: Test case for Register New Employee module
Employee status change

Test No Description Expected Result Remarks

01 Click “change status” button in Status list appear pass


specific row of the Employee
table

02 Click “change Employee status” Change the status of the employee, pass
after selecting the required status. confirmation alert appear and
change the employee status in the
employee table

03 Click “cancel” button after Exit from the deletion pass


selecting the required status.
Table 10: Test case for Employee status change module
Update Employee Data

Test No Description Expected Result Remarks

01 Enter search string to search Results appear in results table pass

02 Click “select” button inside the Loads Employee data into the pass
“status change Select” column of employee management form fields
the specific row in the results
table

03 Click “Edit” button bellow the Update the specific row by pass
form after editing relevant form appearing success notification
and filling any available empty
fields

04 Click “Edit” button With an Notification appears near pass

empty form filling empty field


Table 11: Test case for Update Employee Data module
Search record

Test No Description Expected Result Remarks

01 Enter part of the text going to Preview of relevant rows pass


search

02 Enter part of the complete text Preview of relevant rows pass


going to search
Table 12: Test case for search record
Register New Project

Test No Description Expected Result Remarks

01 Fill all the empty fields and click Display alert “successfully Added pass
“Add Project” ‖ button New Project”

02 Click “Add Project”‖ button Notification appears near to the pass


without fill empty fields each and every empty field.

03 Trying to add less than 4 digits Notification appears near Project pass
Project name name field saying error

04 Trying to add future date for Notification appears near Project Pass
Project starting date starting date field saying error

05 Add Email address without @ Notification appears near Email pass


symbol or correct domain name address field saying error
Table 13 Test case for Register new project

Acceptance testing

The system that we are developing is useless if it is not accepted by the client. Each and every
function that is included in this system should have the ability of satisfying the customer
requirements precisely. To achieve that task we need to evaluate the system with the help of
users and should identify the parts of the system that need to modify or change. Users can be
selected from the real environment that enrolls with the similar scenarios relevant to the end
users of the system. By using test cases that has already defined with other testing methods,
we can evaluate the system as it satisfies end user requirements.

USER MANUAL

This website developed to provide various short and long term projects for small and medium level
companies.

This operator manual delivers commands on the best way to utilize the administration
framework and delivers screenshots of the program so that it will be much easier for the
customers to use this website. All instruction and structures to use this website will be clarified
in this user manual.
Figure 6: Login

“Enter the Username and “Click Log in button to enter


Password” into the main page”

When user entered invalid username and password below error message will appear.

Figure 7: Wrong
User entered correct username and password below main page will appear.

Figure 8: Main Page

Fill all the details and


click Add User to save
user

Figure 9: User details

Figure 10: View report


Figure 11: Add Employee

Figure 12: Add Project


Figure 13: Add Client

TECHNICAL DOCUMENTATION

INTRODUCTION
ABC Software Development Company is providing various short and long term projects for
small and medium level companies. “This technical documentation will clarify how to do the
technical operations of the web application like installation etc. This document is formed to
support the technical operations that has to be completed to keep and run the application.”
HOW TO OPEN SUPPORTING FILE

Click on webpages and will


appear all the JSP and HTML
files then double to open.

Figure 14: Open webpage


“Right click on the connect
jdbc:mysql://localhost:3306
/black
?zeroDateTimeBehavior=co
nvert ToNull [black on
Default schema] file.”
Figure 15: Connect the Database

“Create table for all webpage”

Figure 16: Create table

“Enter the
localhost:8080/Name of
Figure 17:Enter the URL the website”
Figure 18: View the web application system
CONCLUSION

The requirements were analyzed to identify the basic functions and most important functions
for the web application. The basic thing in here is generation of necessary reports from the
organized data effectively using this system instead of manual system (Excel). Different
access provided users depending on their tasks mainly project management, client
management and employee management. There are two main user types are implemented to
maintain the system, manager and coordinator login. Manager have full access but for
coordinator not provided adding access. The logins have variable levels of access and the
levels can be able to change manually.

Inter company management and communication was one of the main problem faced by the
client was solved by the system. This system has to be feasible for modifications in any time
according to the user requirements. The accessibility of the system was secured as expected.

The system is designed to use with ease with simple user interfaces which allows input,
output data from the core MySQL database. They are optimized to provide the best results
efficiently where no errors occurring. The data belongs to three different groups are stored in
the database according to the user. They can be retrieved easily and can generate reports.
Based on the client‘s reactions and comments regarding the report generating it was felt
that the function was flourish.
Dashboard will be designed in order to give a fair knowledge about the current situation of
the processes handle by the system by providing smart graphs with past and future statistical
information. Messages about employees and scheduled works also shown in dashboard which
was planned to give the user a summary of everything just after logged into the system.
Passwords and usernames will be hashed using SHA1 and the system will work against SQL
Injection. Sessions will be precisely defined per each page in order to avoid unauthorized
access. New encryption functions will be added with the deviations of the technology.
In addition to user logins, the system allows the administrator to prepare for probable threats
of system crash by allowing periodical backups. Should the system crash, it can be restored
by the click of a button. However, the system should have been backed up at least once to
restore in order to securing the whole system in order to protect the stored data. The backing
up process will be successfully added to the system in future.
CRITICAL EVALUATION OF DEVELOPED SYSTEM
JSP programming language is used to implement the web application. Therefore
MySQL database and the Apache server used to handle the database a n d store
data that could be retrieved later use. The provided in the WAMP Server was used to
connect the database with the project coding. WAMP Server and the NetBeans were
used to handle the implementation of the system which is basically carrying the
designing part of the system. Coding was conducted under some general constraints
and rules as it is very much essential to maintain the same quality in every module to
avoid malfunctions and defects.

There are no any commercially available inter company management systems. But
there are some customized software solutions available in the different companies.

Siebel used in the Dialog Axiata Plc intranet for


inter connecting few departments such as group
service delivery, network operation and
management, department of sales and marketing.

Figure 19: Siebel (Dialog Axiata Plc)

Seibel is one of the commercial available CRM applications and the client
requirements are exceeding Seibel and also client cannot afford the cost for the Seibel.
Client has experienced Seibel software but he has showed following issues in that,
which should be corrected in the developed system;

 System can‘t be able to use without an internet connection up to some extent.

 System privileges aren‘t customizable. Any user can‘t give any privilege from
the front end with respect to the requirement.

 If the user forgot the password, there is no any proper solution to reset it without
contacting system administrator.

 Same data can be able to enter to the system without any error.

 No Proper validation mechanism available eg: - mobile no.

Page | 41
REFERENCES
Bautista. (2010, August 02). code.tutsplus.com. Retrieved from A Beginner’s Guide to
Design Patterns: http://code.tutsplus.com/articles/a-beginners-guide-to-design-
patterns--net-12752
Black Box Testing. (2017, August 05). Retrieved from www.tutorialspoint.com:
www.tutorialspoint.com/software_testing_dictionary/black_box_testing.htm
Danley, C. (2017, August 15). The Factory Pattern. Retrieved from carldanley.com:
https://carldanley.com/js-factory-pattern/
Design Patterns. (2017, August 04). Retrieved from www.dofactory.com:
http://www.dofactory.com/net/design-patterns
dofactory. (2017, August 03). Abstract Factory. Retrieved from www.dofactory.com:
http://www.dofactory.com/net/abstract-factory-design-pattern
jQuery. (2017, August 12). Retrieved from Jquery.com: https://jquery.com
MVC Architecture. (2017, August 01). Retrieved from Tutorialspoint.com:
http://www.tutorialspoint.com/struts_2/basic_mvc_architecture.htm
MVC Architecture. (2017, August 08). Retrieved from www.tutorialspoint.com:
http://www.tutorialspoint.com/struts_2/basic_mvc_architecture.htm
Singleton Pattern. (2017, August 03). Retrieved from www.codeproject.com:
http://www.codeproject.com/Articles/307233/Singleton-Pattern-Positive-and-
Negative-Aspects
Software Testing. (2017, August 14). Retrieved from www.softwaretestinghelp.com:
http://www.softwaretestinghelp.com/samplebug-report/
UML - Use Case Diagrams. (2017, August 10). Retrieved from
www.tutorialspoint.com:
http://www.tutorialspoint.com/uml/uml_use_case_diagram.htm

Page | 42
TURNITIN REPORT

Page | 43
Page | 44

You might also like