-1-|Page
-2-|Page
-3-|Page
LEARNING OUTCOME 1: ANALYZE SYSTEM BACKEND
Gathering FURPS(Functionality, Usability, Reliability, Performance and
Supportability) of computer systems software Requirements
Definition of key terms
Backend: The back end refers to parts of a computer application or a program's code that
allow it to operate and that cannot be accessed by a user (The backend is the server side of
the website).
Frontend: The front end is the part of the website users can see and interact with such as
the graphical user interface (GUI) and the command line including the design, navigating
menus, texts, images, videos, etc.
System: Is a collection of components that work together to realize some objectives
Is a set of connected things or devices which operate together, as parts of mechanism or
interconnecting network; a complex whole, which are organized for a common purpose.
-4-|Page
Categories of systems:
1. Natural systems
Natural systems are systems that have not been established by man (not
created by human being). They exist in nature to accomplish their goals. These
systems are divided into three categories:
Stellar Systems: galaxies (the very large group of stars in the universe), solar
system etc...
Geological systems: rivers, mountains etc...
Molecular systems: organization of complex atoms
Respiratory systems
2. Artificial systems (human made systems):
Artificial systems are systems made by people (created by human being).Those systems are
divided into five systems which are:
- Social systems: organizations, doctrines, etc…
- Transportation Systems: networks of highways, air transport and so on.
- Communication systems: telephone, telefax etc…
- Industrial systems: mining, assembly lines etc…
- Financial Systems: Accounting, inventory, ledgers
Server: A server is a hardware device or software that processes requests sent over a
network and replies to them (A Server is a program or a device that provides functionality
for called clients which are other programs or devices).
Client: is the device that submits a request and waits for a response from the server.
-5-|Page
Database: A database is a collection of data that is organized, which is also called structured
data. It can be accessed or stored in a computer system. It can be managed through
a Database Management System (DBMS).
Operating System: An Operating System (OS) is software that manages and handles the
hardware and software resources of a computer system. It provides interaction between
users of computers and computer hardware. An operating system is responsible for managing
and controlling all the activities and sharing of computer resources.
System Development Life Cycle (SDLC): is an organizational process of developing and
maintaining systems. It provides a well-structured framework that gives an idea, of how to
build a system. It consists of steps as follows – Plan, Analyze, Design, Develop, Implement and
Maintain.
API (Application Programming Interface): is a collection of communication protocols
and subroutines used by various programs to communicate between them.
-6-|Page
An API helps two programs or applications to communicate with each other by providing
them with the necessary tools and functions.
JSON: JSON stands for JavaScript Object Notation. It is a format for structuring data. This
format is used by different web applications to communicate with each other. It stores all the
data in an array so that data transfer makes easier.
Framework: A framework is like a structure that provides a base for the application
development process (is a structure that you can use to build software). With the help of a
framework, you can avoid writing everything from scratch.
-7-|Page
Frameworks provide a set of tools and elements that help in the speedy development
process. It acts like a template that can be used and even modified to meet the project
requirements.
The web development frameworks can be divided into two:
Front-end frameworks (Angular, VueJS, Bootstrap)
Back-end frameworks (Ruby on Rails, Django, Spring Boot).
UML: Unified Modeling Language (UML) is a general-purpose modeling language in the field
of software engineering that aims to set standard ways to visualize the design of a system.
UML guides the creation of multiple types of diagrams such as interaction, structure, and
behavior diagrams. A sequence diagram is the most commonly used interaction diagram.
UML is not a programming language, it is rather a visual language.
We use UML diagrams to portray the behavior and structure of a system.
FURPS: FURPS is an acronym for Functionality, Usability, Reliability, Performance and
Supportability of computer systems software. This model has been employed extensively to
classify the functional and non-functional requirements of systems.
F – Functionality – Describes the main operational functions or requirements
of the system or release. What is it going to do for the user?
-8-|Page
U – Usability – Defines its aesthetics and accessibility, how the human and
machine interfaces are accessed and laid out.
R – Reliability – Details the reliability, robustness and fault tolerance of the
system. How critically important is the system availability?
P – Performance – Is the level of performance and efficiency. Here speed,
power consumption capacity and scalability are all important factors. How
quickly is the new system required to respond to a request and to what level
of accuracy?
S – Supportability – Discusses the maintainability of the system, its modularity
and how easily it may be upgraded, enhanced and repaired.
System development life cycle (SDLC)
Definition:
Is an organizational process of developing and maintaining systems.
System development life cycle means combination of various activities. In other words we can say
that various activities put together are referred as system development life cycle. In the System
Analysis and Design terminology, the system development life cycle also means software
development life cycle.
Benefits of SDLC:
It helps in system study
It helps in system planning
It simplifies work
It helps in time management
It helps in system implementation
Better management control over the entire project.
Transparency and visibility of all the processes.
Clarity of requirements.
A single vision of a product for all the parties involved.
-9-|Page
Predictable results in terms of time, costs, and deliverables.
Phases of SDLC
Following are the different phases of system development life cycle:
Preliminary study
Feasibility study
Detailed system study
System analysis
System design
Coding
Testing
Implementation
Maintenance
PROPER DESCRIPTION OF SYSTEM DEVELOPMENT LIFE CYCLE PHASES
a) Preliminary System Study
This is a brief investigation of the system under consideration and gives a clear picture of
what actually the physical system is.
In practice, the initial system study involves the preparation of a ‘System Proposal’ which
lists the Problem Definition, Objectives of the Study, Terms of reference for Study,
Constraints,and Expected benefits of the new system, etc.
- 10 - | P a g e
In summary, we would say that system study phase passes through the following steps:
Problem identification and project initiation
Background analysis
Inference or findings (system proposal)
b) Feasibility Study
Definition: The feasibility study is basically an analysis and evaluation of a proposed
project/system in the light of its workability, meeting user’s requirements, effective use
of resources and of course, the cost effectiveness.
In the process of feasibility study, the cost and benefits are estimated with greater accuracy to
find the Return on Investment (ROI). These are categorized as technical, operational, economic
and schedule feasibility.
Objectives of feasibility study are listed below:
• To analyze whether the software will meet organizational requirements
• To determine whether the software can be implemented using the current
technology and within the specified budget and schedule
• To determine whether the software can be integrated with other existing
software.
The types of feasibility study:
Operational feasibility:
Is intended to see whether, it is possible to meet user’s requirements.
In Operational Feasibility degree of providing service to requirements is analyzed
along with how much easy product will be to operate and maintenance after
deployment.
Economic feasibility:
Is intended to see whether the system is financially feasible.
And also evaluate if the system will generate income/profit/benefit/gain,
- 11 - | P a g e
i.e., to see whether project will be beneficial in terms of finance for organization
or not.
Technical feasibility:
Assess resources (hardware/software/people) and technology.
In Technical Feasibility current resources both hardware software along with
required technology are analyzed/assessed to develop project.
Schedule feasibility:
In Schedule Feasibility Study mainly timelines/deadlines is analyzed for proposed
project which includes how many times teams will take to complete final project
which has a great impact on the organization as purpose of project may fail if it
can’t be completed on time.
Time constraints
Legal feasibility:
It is studied subjected to constraints of law or legal requirements
This includes analyzing barriers of legal implementation of project, data
protection acts or social media laws, project certificate, license, copyright etc.
Cultural feasibility:
Is subjected to society believes
c) Detailed System Study:
The detailed investigation of the system is carried out in accordance with the objectives of the proposed
system. This involves detailed study of various operations performed by a system and their relationships
within and outside the system. During this process, data are collected on the available files, decision points
and transactions handled by the present system. Interviews, on-site observation and questionnaire are
the tools used for detailed system study. Using the following steps it becomes easy to draw the exact
boundary of the new system under consideration:
- Keeping in view the problems and new requirements
- Workout the pros and cons including new areas of the system
- 12 - | P a g e
d) System Analysis
Definition:
System analysis is a process of collecting factual data, understand the processes
involved, identifying problems and recommending feasible suggestions for
improving the system functioning.
This involves studying the business processes, gathering operational data, understand
the information flow, finding out bottlenecks and evolving solutions for overcoming the
weaknesses of the system so as to achieve the organizational goals. System Analysis also
includes subdividingof complex process involving the entire system, identification of data
store and manual processes.
The major objectives of systems analysis are to find answers for each business process:
What is being done, How is it being done, Who is doing it, When is he doing it, Why is it
being done andHow can it be improved?
e) System Design
Definition:
Is the process of planning a new system or one to replace or complement an existing
system,
Means system planning,
Is the process of structuring the system features,
Is the process of defining elements of a system like modules, architecture, components
and their interfaces and data for a system based on the specified requirements
Based on the user requirements and the detailed analysis of the existing system, the new
system must be designed. This is the phase of system designing. It is the most crucial
phase in the developments of a system. The logical system design arrived at as a result
of systems analysis is converted into physical system design.
- 13 - | P a g e
There are several tools and techniques used for describing the system design of the
system. Thesetools and techniques are:
o Flowchart
o Data flow diagram (DFD)
o Data dictionary
o Structured English
o Decision table
o Decision tree
The system design involves:
i. Defining precisely the required system output
ii. Determining the data requirement for producing the output
iii. Determining the medium and format of files and databases
iv. Devising processing methods and use of software to produce output
v. Determine the methods of data capture and data input
vi. Designing Input forms
vii. Designing Codification Schemes
viii. Detailed manual procedures
ix. Documenting the Design
f) Coding
The system design needs to be implemented to make it a workable system. This demands
the coding of design into computer understandable language, i.e., programming
language.
This is also called the programming phase in which the programmer converts the program
specifications into computer instructions, which we refer to as programs.
- 14 - | P a g e
g) Testing
Before actually implementing the new system into operation, a test run of the system is done for
removing the bugs, if any. The output of the test run should match the expected results.
Sometimes, system testing is considered a part of implementation process.
Using the test data following test run are carried out:
Program test
System test
Program test: When the programs have been coded, compiled and brought to working
conditions,they must be individually tested with the prepared test data. Any undesirable
happening must be noted and debugged (error corrections).
System Test: After carrying out the program test for each of the programs of the system
and errorsremoved, then system test is done. At this stage the test is done on actual data.
The complete system is executed on the actual data. At each stage of the execution, the
results or output of the system isanalyzed.
During the result analysis, it may be found that the outputs are not matching the
expected output of the system. In such case, the errors in the particular programs are
identified and are fixed and further tested for the expected output.
When it is ensured that the system is running error-free, the users are called with their
own actualdata so that the system could be shown running as per their requirements.
h) Implementation
After having the user acceptance of the new system developed, the implementation
phase begins. Implementation is the stage of a project during which theory is turned into
practice.
The major steps involved in this phase are:
i. Acquisition and Installation of Hardware and Software
- 15 - | P a g e
ii. Conversion
iii. User Training
iv. Documentation
The hardware and the relevant software required for running the system must be made
fully operational before implementation. The conversion is also one of the most critical
and expensive activities in the system development life cycle. The data from the old
system needs to be convertedto operate in the new format of the new system.
The database needs to be setup with security and recovery procedures fully defined.
During this phase, all the programs of the system are loaded onto the user’s computer.
After loading the system, training of the user starts.
Main topics of such type of training are:
How to execute the package
How to enter the data
How to process the data (processing details)
How to take out the reports
After the users are trained about the computerized system, working has to shift from manual
tocomputerized working. The process is called ‘Changeover’.
Changeover: Is the process of migrating/shifting from old/manual/existing system to the
new/computerized/proposed system.
The following strategies are followed for changeover of the system:
(i) Direct Changeover: This is the complete replacement of the old system by the new system.
Itis a risky approach and requires comprehensive system testing and training.
(ii) Parallel run: In parallel run both the systems, i.e., computerized and manual, are
executed simultaneously for certain defined period. The same data is processed
by both the systems. This strategy is less risky but more expensive because of the
following:
- 16 - | P a g e
Manual results can be compared with the results of the computerized system.
The operational work is doubled.
Failure of the computerized system at the early stage does not affect the
working of the organization, because the manual system continues to work,
as it used to do.
(iii) Pilot run: In this type of run, the new system is run with the data from one or more
of the previous periods for the whole or part of the system. The results are
compared with the old systemresults. It is less expensive and risky than parallel run
approach. This strategy builds the confidence and the errors are traced easily
without affecting the operations.
The documentation of the system is also one of the most important activities in
the system development life cycle. This ensures the continuity of the system.
There are generally two types of documentation prepared for any system. These
are:
User or Operator Documentation
System Documentation
The user documentation is a complete description of the system from the users’
point of view detailing how to use or operate the system. It also includes the major
error messages likely to be encountered by the users. The system documentation
contains the details of system design, programs, their coding, system flow, data
dictionary, process description, etc. This helps to understand the system and
permit changes to be made in the existing system to satisfy new user needs.
i) Maintenance:
Is necessary to eliminate errors in the system during its working life and to tune
the system to any variations in its working environments. It has been seen that
there are always some errors found in the systems that must be noted and
corrected. It also means the review of thesystem from time to time. The review of
- 17 - | P a g e
the system is done for:
a. Knowing the full capabilities of the system
b. Knowing the required changes or the additional requirements
c. Studying the performance.
If a major change to a system is needed, a new project may have to be set up to carry
out thechange. The new project will then proceed through all the above life cycle phases.
There are different SDLC models
Description of System Development Life Cycle models
Waterfall model
Agile model
V-Shaped model
Spiral model
Prototyping
1. Waterfall model
The waterfall model is a linear, sequential approach to the software
development life cycle (SDLC) that is popular in software engineering
and product development,
Is a systematic and sequential approach towards software
development,
Is a classic approach/methodology by which a phase is completed
before initiating the next one in sequential manner used in SDLC.
Phases of waterfall model:
- 18 - | P a g e
Requirements analysis: focused on system study/feasibility study/system analysis
System design: system planning
Coding: this is the programming phase
Testing: removing errors/bugs by making program tests/system tests,…
Implementation: phase where all theories are turned into practice/product
release/conversion/user training/documentation
Maintenance: all activities intended to turn the system into the good working conditions:
by removing errors occurred/to tune the system to any variations in its working
environments.
Projects which not focus on changing the requirements, for example, projects initiated from a
request for proposals (RFPs), the customer has a very clear documented requirements.
ADVANTAGES DISADVANTAGES
Easy to explain to the users. Assumes that the requirements of a
Structures approach. system can be frozen.
Stages and activities are well defined.
- 19 - | P a g e
Helps to plan and schedule the project. Very difficult to go back to any stage
Verification at each stage ensures early after it finished.
detection of errors/misunderstanding. A little flexibility and adjusting scope is
Each phase has specific deliverables. difficult and expensive.
Costly and required more time, in
addition to the detailed plan.
2. Agile model
It is based on iterative and incremental development, where requirements and solutions evolve
through collaboration between cross-functional teams.
Figure 1 Agile model
It can be used with any type of the project, but it needs more engagement from the customer
and to be interactive. Also, we can use it when the customer needs to have some functional
requirement ready in less than three weeks and the requirements are not clear enough. This will
enable more valuable and workable piece for software early which also increases the customer
satisfaction.
ADVANTAGES DISADVANTAGES
- 20 - | P a g e
Decrease the time required to avail Scalability.
some system features. The ability and collaboration of the
Face to face communication and customer to express user needs.
continuous inputs from customer Documentation is done at later stages.
representative leaves no space for Reduce the usability of components.
guesswork. Needs special skills for the team.
The end result is the high-quality
software in the least possible time
duration and satisfied customer.
3. V-Shaped model
It is an extension of the waterfall model, instead of moving down in a linear way, the process
steps are bent upwards after the implementation and coding phase, to form the typical V shape.
The major difference between the V-shaped model and waterfall model is the early test planning
in the V-shaped model.
Figure 2 V-Shaped model
Software requirements clearly defined and known
Software development technologies and tools are well-known
- 21 - | P a g e
ADVANTAGES DISADVANTAGES
Simple and easy to use Very inflexible, like the waterfall model.
Each phase has specific deliverables. Adjusting scope is difficult and
Higher chance of success over the expensive.
waterfall model due to the development The software is developed during the
of test plans early on during the life implementation phase, so no early
cycle. prototypes of the software are
Works well for where requirements are produced.
easily understood. The model doesn’t provide a clear path
Verification and validation of the for problems found during testing
product in the early stages of product phases.
development. Costly and required more time, in
addition to a detailed plan
4. Spiral model
This model of development combines the features of the prototyping model and the waterfall
model. The spiral model is favored for large, expensive, and complicated projects. This model
uses many of the same phases as the waterfall model, in essentially the same order, separated
by planning, risk assessment, and the building of prototypes and simulations.
- 22 - | P a g e
Figure 3 Spiral model
It is used in the large applications and systems which built-in small phases or segments.
ADVANTAGES DISADVANTAGES
Estimates (i.e. budget, schedule, etc.) High cost and time to reach the final
become more realistic as work product.
progressed because important issues Needs special skills to evaluate the risks
are discovered earlier. and assumptions.
Early involvement of developers. Highly customized limiting re-usability
Manages risks and develops the system
into phases.
- 23 - | P a g e
5. Prototyping
Prototyping: The prototyping methodology performs the analysis, design, and implementation
phases concurrently, and all three phases are performed repeatedly in a cycle until the system is
completed.
The prototyping process consists of the following: (1) identify the user's basic requirements; (2)
develop a working prototype; (3) use the prototype, and (4) revise and enhance the prototype.
Figure 4 Prototyping
ADVANTAGES DISADVANTAGES
Reduced time and costs, but this can be Insufficient analysis. User confusion of
a disadvantage if the developer loses prototype and finished system.
time in developing the prototypes. Developer misunderstanding of user
Improved and increased user objectives.
involvement. Excessive development time of the
prototype.
It is costly to implement the prototypes
- 24 - | P a g e
6. Iterative Model
The activities of phases for planning, analysis and design are repeated until a solid system design
is developed before developing the system.
Figure 5 Iterative Model
Backend development Technologies
Python and its Frameworks…..
PHP and its Frameworks ….
JAVA and its Frameworks ….
JavaScript and its frameworks …
Ruby and its Framework…..
REFERENCES:
1. https://www.geeksforgeeks.org/operating-systems/?ref=header_search
- 25 - | P a g e