How Does The Client-Server Model Work? Client-Server Internet
How Does The Client-Server Model Work? Client-Server Internet
The Client-server model is a distributed application structure that partitions tasks or workloads
between the providers of a resource or service, called servers, and service requesters called clients.
In the client-server architecture, when the client computer sends a request for data to the server
through the internet, the server accepts the requested process and delivers the data packets
requested back to the client. Clients do not share any of their resources. Examples of the Client-
Server Model are Email, World Wide Web, etc.
In this article, we are going to take a dive into the Client-Server model and have a look at how
the Internet works via, web browsers. This article will help us have a solid WEB foundation and help
us easily work with WEB technologies.
• Client: When we say the word Client, it means to talk of a person or an organization using a
particular service. Similarly in the digital world, a Client is a computer (Host) i.e. capable of
receiving information or using a particular service from the service providers (Servers).
• Servers: Similarly, when we talk about the word Servers, It means a person or medium that
serves something. Similarly in this digital world, a Server is a remote computer that provides
information (data) or access to particular services.
2}*Reference Architectures in Software Engineering*
M4
1 software maintainence
Software maintenance is a continuous process that occurs throughout the entire life cycle of the
software system.
• The goal of software maintenance is to keep the software system working correctly,
efficiently, and securely, and to ensure that it continues to meet the needs of the users.
• This can include fixing bugs, adding new features, improving performance, or updating the
software to work with new hardware or software systems.
• It is also important to consider the cost and effort required for software maintenance when
planning and developing a software system.
• It’s also important to have a clear and well-defined maintenance plan that includes regular
maintenance activities, such as testing, backup, and bug fixing.
1. Bug Fixing: The process of finding and fixing errors and problems in the software.
2. Enhancements: The process of adding new features or improving existing features to meet
the evolving needs of the users.
3. Performance Optimization: The process of improving the speed, efficiency, and reliability of
the software.
4. Porting and Migration: The process of adapting the software to run on new hardware or
software platforms.
5. Re-Engineering: The process of improving the design and architecture of the software to
make it more maintainable and scalable.
6. Documentation: The process of creating, updating, and maintaining the documentation for
the software, including user manuals, technical specifications, and design documents.
2}
Software Evolution is a term that refers to the process of developing software initially, and then
timely updating it for various reasons, i.e., to add new features or to remove obsolete functionalities,
etc. This article focuses on discussing Software Evolution in detail.
The software evolution process includes fundamental activities of change analysis, release planning,
system implementation, and releasing a system to customers.
1. The cost and impact of these changes are accessed to see how much the system is affected
by the change and how much it might cost to implement the change.
2. If the proposed changes are accepted, a new release of the software system is planned.
3. During release planning, all the proposed changes (fault repair, adaptation, and new
functionality) are considered.
4. A design is then made on which changes to implement in the next version of the system.
5. The process of change implementation is an iteration of the development process where the
revisions to the system are designed, implemented, and tested.
1. Change in requirement with time: With time, the organization’s needs and modus Operandi
of working could substantially be changed so in this frequently changing time the
tools(software) that they are using need to change to maximize the performance.
2. Environment change: As the working environment changes the things(tools) that enable us
to work in that environment also changes proportionally same happens in the software
world as the working environment changes then, the organizations require reintroduction of
old software with updated features and functionality to adapt the new environment.
3. Errors and bugs: As the age of the deployed software within an organization increases their
preciseness or impeccability decrease and the efficiency to bear the increasing complexity
workload also continually degrades. So, in that case, it becomes necessary to avoid use of
obsolete and aged software. All such obsolete Pieces of software need to undergo the
evolution process in order to become robust as per the workload complexity of the current
environment.
4. Security risks: Using outdated software within an organization may lead you to at the verge
of various software-based cyberattacks and could expose your confidential data illegally
associated with the software that is in use. So, it becomes necessary to avoid such security
breaches through regular assessment of the security patches/modules are used within the
software. If the software isn’t robust enough to bear the current occurring Cyber attacks so it
must be changed (updated).
5. For having new functionality and features: In order to increase the performance and fast
data processing and other functionalities, an organization need to continuously evolute the
software throughout its life cycle so that stakeholders & clients of the product could work
efficiently.
m
m5
1verrification an validation
Verification Validation
It consists of checking of
It consists of execution of program
Human or documents/files and is performed by
and is performed by computer.
Computer human.
Error Focus Verification is for prevention of errors. Validation is for detection of errors.
Verification Validation
2 component sw
Component Testing is a type of software testing in which usability of each individual component is
tested. Along with the usability test, behavioral evaluation is also done for each individual
component. To perform this type of testing, each component needs to be in independent state and
also should be in controllable state. Each component of the software should be user comprehensible.
Assume in a software application consists of five components. The testing of each component is
done independently by the tester as part of the development cycle before integration testing is
performed on it. It helps in saving time by finding the bugs at a very early stage in the cycle. Test
structure tools or debugging tools are used for this type of testing as this is performed by
programmers on the code written by them and with the support of IDE. Defects detected during
component testing are fixed as soon as possible when they are found without maintaining the
records.
Component testing has an important role in finding the issue. Before processing with the integration
testing, component testing is performed in order to ensure that each component of the application is
working correctly and as per requirement.
• Requirement Analysis:
User requirement related to each component is observed.
• Test Planning:
Test is planned according to the analysis of the requirements of the user.
• Test Specification:
In this section it is specified that which test case must be run and which test case should be
skipped.
• Test Execution:
Once the test cases are specified according to the user requirements, test cases are
executed.
• Test Recording:
Test recording is the having record of the defects that are detected.
• Test Verification:
Test verification is the process to determine whether the product meet specification.
• Completion:
This is the last phase of the testing process in which the result is analyzed.