Introduction
System
design:
System
design is process of defining the elements of the system such as the
architecture,
Modules
and components, the different interfaces of those components and the data that
goes
Through
that system. It is meant to satisfy specific needs and requirements of a
business or organization
Through
the Engineering of a coherent and well-running system.
3.2.
System Decomposition/Modularization:
In
system design decomposition is the separate of system into simpler or basic
sub-
Systems.
As many experienced designers know, it is often difficult task to create an
optimal
Decomposition
of a system. It is often as much a people problem as a technical problem.
An
optimal decomposition requires gathering all the necessary requirements from
people
And then
using those requirements do design the appropriate decomposition of system and
sub-
Systems.
It is also often difficult to know if you have all the requirements. And, give
you actually have all the requirements; it is difficult to create an
decomposition.
Modularization
Is a technique to divide a software system into multiple discrete and
Independent
modules, which are expected to be capable of carrying out task(s)
independently.
These
modules may work as basic construct for the entire software. Designers tend to
design
Modules
such that they can be executed and/or compiled separately independently.
Modular
design unintentionally follows the rules of ‘divide and conquer’ problem-
Solving strategy this is because they are many other
benefits attached with the modular design
of
software.
Advantage
of Modularization;
·
Smaller components are easier to maintain
·
Program can be divided based on functional aspects
·
Desired level of abstraction can be brought in the
program
·
Components with high cohesion can be re-used again
·
Concurrent execution can be made possible
·
desired from security aspect
Following
is the design decomposition of our Projects
Fig
4 Functional Decomposition:
3.3
Concurrency Control
All
software’s are meant to be executed sequentially. By sequential execution we
mean
That the
coded instruction will be executed one after another implying only one portion
of
Program
being activated at any given time. Say, Software has multiple modules, and then
only
One of
all the modules can be found active at
any time of execution.
In
system design , Concurrency is implemented by splitting the software into
multiple
Independent
units of execution, Like modules and executing them in parallel. In other
words,
Concurrency
provides capability to the software to execute more than one part of code in
Parallel
to each other.
It is
necessary for the programmers and designers to recognize those modules, which
can be made parallel execution.
Example:
The
spell check features in word processor is a module of software, which run
Alongside
the word processor itself.
3.4
Hardware and Software Mapping
By mean
of Hardware and software mapping we mean that what kinds of hardware and
Software
we have used to develop our project.
Following are The details of Hardware and
Software
we have used.
3.4.1
Hardware
Ø Windows
Ø RAM 2GB
Ø Processor 2.40
GHZ
Ø Hard Disk 500GB
Testing
5.1.
Introduction
1. The
process of executing a system with the intent of finding an error.
2.
Testing is defined as the process in which defects are identified, isolated, subjected
for
Rectification
and ensured that the product is defect free in order to produce the quality
product and
Hence
costumer satisfaction.
3.
Quality is defined as justification of the requirements.
4.
defect is nothing but deviation from the requirements.
5.
Defect is nothing but bug.
6.
Testing --- The presence of bugs.
7.
testing can demonstrate the presence of bugs, but not their absence.
8.
Debugging and testing is not the same thing.
9.
testing is a systematic attempt to break a program or theAUT.
5.2
Testing Methodologies;
·
Black
box testing; is
the testing process in which tester can perform testing on an
Application
without having any internal structural knowledge of application.
Usually
test Engineers are involved in the Black Box Testing.
·
White
box Testing: is
the testing process in which tester can perform testing on an
Application
with having internal structural knowledge.
Usually
the developer are involved in white box testing.
·
Gray
Box Testing: is
the process in which the combination of black box
White
box tonics are used.
5.3
Software testing Life Cycle (STLC)
Software
life cycle models describe phases of the software cycle and and the order in
which whose
Phase
are executed. Each phase produces deliverable required by the next phase in the
Life
Cycle.
Requirements are translated into design. Code is produced according to the
design which
is
Called development phase. After coding and development the testing verifies the
deliverable of
the
implementation phase against requirements.
There
are following six phases in every software development life Cycle Model;
1.
Requirement gathering and analysis
2.
2. Design
3.
Implementation or coding
4.
Testing
5.
Deployment
6.
Maintenance
1)
Requirement
gathering and analysis:
Business requirements are gathered in this phase
This
phase is the main focus of the project managers and stake holders. Meeting with
managers
Stack
holders and users are held in order to determine the requirements like; Who is
going to use
The
system? How will they use the system? What data should be input into the
system? What
Data
should be output by the system? These are general questions that get answered
during a
Requirement
gathering phase. After Requirement gathering these requirements are analyzed.
5.4
Test planning:
·
Test plan is defined as a strategic document with
describes the procedure how to
Perform
various testing on the total application in the most efficient way.
·
This document involves the scope of testing.
·
Objective of testing.
·
Area that need to be tested.
·
Area that should not be tested.
·
Scheduling resources planning.
5.5
Types of testing:
Regression
Testing: Is one
of the best and important testing . regression testing is the
Process
in which the functionality, Which is already tested before, is once again
tested
Whenever
some new change is added in order to check whether the existing functionality
Remains
same.
Re
Testing: is the
process in which testing is performed on some functionality
Which is
already tested before to make sure that the defects are reproducible and to
rule out the
Environments
issues if at all any defects are there.
Static
Testing: Is the
testing, which is performed on an application when it is not been
Executed
ex: GUI, document Testing.
Dynamic
Testing: Is the
testing which is performed on an application when it is being
Executed
ex: Functional Testing
Alpha
Testing: it is a
type of user acceptance testing, which is conducted on a
Application
when it is just before released to the costumer.
Beta
testing: It is a
type of UAT that is conducted on an
application when it is released
To the
costumer, when deployed into in real time environment and being accessed by the
Real
time users.
Installation
Testing: It is
the process of testing which tester try to install or try to
Deploy
the module into the corresponding environment by following the guidelines.
Produced
in the deployment document and check whether the installation is successful or
not
Their
validity and the possibility of incorporating the requirements in the system to
be development is also studied.
Finally
a requirement Specification Document is
created which serves the purpose of guideline
For the next
phase of the model.
2)
Design: In this phase the system and
software design is prepared from the requirement.
Specification
which were studied in the first phase. System design helps in specifying
hardware
And
system requirements and also helps in defining overall system architecture. The
System
Design
Specifications serve as input for the next phase of the model.
In
this phase the testers come up with the test strategy, Where they mention what
to test, how
To
test.
3)
Implementation/Coding: On receiving system design
Documents, The work is divided in
A modules/units and
actual coding is started. Since, In this phase the code is produced so it is
the
Main focus for the
developer. This is the longest phase of the software development life cycle
.
4)
Testing: After the code is developed it
is tested against the requirements to
make sure that
The
product is actually solving the needs addressed and gathered during the
requirement phase.
During
this phase all types of functional testing like unit testing, integration
testing, system
Testing,
acceptance testing are done as well as non functional testing are also done.
5)
Deployment: After successful testing the
product is delivered/ deployed to the costumer for
Their
use. As soon as the product is given to the costumers they will first to do
beta testing. If
Any
changes required or if any bugs are caught, then they will report it to the
engineering
Team.
Once those changes are made or the bugs are fixed then the final deployment
will happen.
6)
Maintenance: Once when the costumer starts
using the developed system then the actual
Problems
comes up and needs to be solved from time to time. This process where the care
is taken
For
the developed product is known as Maintenance.