Computer Network tutorial provides basic and advanced concepts of Data Communication & Networks (DCN). Our Computer Networking Tutorial is designed for beginners and professionals.
Our Computer Network tutorial includes all topics of Computer Network such as introduction, features, types of computer network, architecture, hardware, software, internet, intranet, website, LAN, WAN, etc.
What is Computer Network?
A computer network is a set of devices connected through links. A node can be computer, printer, or any other device capable of sending or receiving the data. The links connecting the nodes are known as communication channels.
Computer Network uses distributed processing in which task is divided among several computers. Instead, a single computer handles an entire task, each separate computer handles a subset.
Following are the advantages of Distributed processing:
Security: It provides limited interaction that a user can have with the entire system. For example, a bank allows the users to access their own accounts through an ATM without allowing them to access the bank's entire database.
Faster problem solving: Multiple computers can solve the problem faster than a single machine working alone.
Security through redundancy: Multiple computers running the same program at the same time can
2. SOFTWARE RELIABILITY
● The probability of failure-free operation of a computer
program in a specified environment for a specified time
● Reliability is the probability that a system performs
correctly during a specific time duration.
Objective of Reliability:
● To find the permanent structure of repeating failures.
● To find the number of failures occurring is the specific
period of time.
● To discover the main cause of failure.
● To conduct performance testing of various modules of
software product after fixing defects.
3. MEASUREMENT OF RELIABILITY
● Mean Time Between Failures (MTBF):
Measurement of reliability testing is done in terms of mean
time between failures (MTBF).
● Mean Time To Failure (MTTF):
The time between two consecutive failures is called as mean
time to failure (MTTF).
● Mean Time To Repair (MTTR):
The time taken to fix the failures is known as mean time to
repair (MTTR).
MTBF = MTTF + MTTR
5. TYPES OF SOFTWARE MAINTENANCE
● Software maintenance is the process of changing, modifying,
and updating software to keep up with customer needs.
● Software maintenance is done after the product has launched
for several reasons including improving the software overall,
correcting issues or bugs, to boost performance, and more.
● Using the right software maintenance techniques and strategies
is a critical part of keeping any software running for a long
period of time and keeping customers and users happy.
● Software maintenance is a part of the Software Development Life
Cycle. Its primary goal is to modify and update software
application after delivery to correct errors and to improve
performance. Software is a model of the real world. When the
real world changes, the software require alteration wherever
possible.
6. Need for Maintenance
Software Maintenance is needed for:-
● Correct errors
● Change in user requirement with time
● Changing hardware/software requirements
● To improve system efficiency
● To optimize the code to run faster
● To modify the components
● To reduce any unwanted side effects.
8. 1. Corrective Maintenance
● Corrective maintenance aims to correct any remaining errors
regardless of where they may cause specifications, design,
coding, testing, and documentation, etc.
● This includes modifications done in order to fix problems
● Corrective maintenance deals with the repair of defects found in
day-to-day system functions
2. Adaptive Maintenance
● It contains modifying the software to match changes in the
ever-changing environment.
● This includes modifications applied to keep the software
product up-to-date
● Adaptive maintenance is the implementation of changes in a part of
the system, which has been affected by a change that occurred in
some other part of the system
9. 3. Preventive Maintenance
● It involves the concept of reengineering & reverse engineering in
which an old system with old technology is re-engineered using
new technology. This maintenance prevents the system from
dying out.
● This includes modifications done in order to keep the software
usable over long period of time
● It includes new features, new user requirements for refining the
software and improve its reliability and performance.
● This includes changing the functionalities of as per the user’s
changing needs
10. 4. Perfective Maintenance
● It defines improving processing efficiency or performance
or restricting the software to enhance changeability. This
may contain enhancement of existing system functionality,
improvement in computational efficiency, etc.
● Modifications to prevent future problems of software
● It aims to attend problems, which are not significant at this
moment but may cause serious issues in future
● It comprises documentation updating, code optimization
and code restructuring.
11. RE-ENGINEERING
When we need to
update the software
to keep it to the current
market, without
impacting its
functionality, it is
called software
re-engineering
It is a process where
the design of software
is changed and
programs are
re-written Reverse
Engineering
Forward
Engineering
12. Legacy software cannot keep tuning with the
latest technology available in the market
⚫ For example, initially UNIX was developed in
assembly language. When language C came into
existence, UNIX was re-engineered in C, because
working in assembly language was difficult.
Other than this, sometimes programmers notice
that few parts of software need more
maintenance than others and they also need
re-engineering
13. Obtain
specifications of
existing software
Reverse
Engineering
Change program
and/or data
structure
Program
Restructuring
Get
re-engineered
software
developed
Forward
Engineering
Decide what to re-engineer.
Is it whole software or a part
of it?
Perform Reverse
Engineering, in order to
obtain specifications of
existing software
Restructure Program if
required
For example, changing
function-oriented programs
into object-oriented programs
and restructure data as
required
Apply Forward engineering
concepts in order to get
re-engineered software
14. REVERSE ENGINEERING
● Reverse engineering can extract design information from
source code
● Software Reverse Engineering is a process of recovering the
design, requirement specifications and functions of a
product from an analysis of its code.
● The purpose of reverse engineering is to facilitate the
maintenance work by improving the understandability of a
system and to produce the necessary documents for a legacy
system.
● This kind of engineering is often referred to as backward
engineering.
15. Reverse Engineering Goals:
● Cope with Complexity.
● Recover lost information.
● Detect side effects.
● Facilitate Reuse.
16.
17. Steps of Software Reverse Engineering:
1. Collection Information:
This step focuses on collecting all possible information
(i.e., source design documents etc.) about the software.
2. Examining the information:
The information collected in step-1 as studied so as to get
familiar with the system.
3. Extracting the structure:
This step concerns with identification of program structure
in the form of structure chart where each node corresponds
to some routine.
18. 4. Recording the functionality:
During this step processing details of each module of the
structure, charts are recorded using structured language like
decision table, etc.
5. Recording data flow:
From the information extracted in step-3 and step-4, set of data
flow diagrams are derived to show the flow of data among the
processes.
6. Recording control flow:
High level control structure of the software is recorded.
19. 7. Review extracted design:
Design document extracted is reviewed several times to ensure
consistency and correctness. It also ensures that the design
represents the program.
8. Generate documentation:
Finally, in this step, the complete documentation including SRS,
design document, history, overview, etc. are recorded for future use.
20. FORWARD ENGINEERING
● Forward engineering is a process of obtaining desired software
from the specifications, which were brought by reverse
engineering
● Forward engineering is a method by which we can create an
application according to the given requirements.
21. ● In most cases, forward engineering does not simply create a
modern equivalent of an older program
● Rather, new user and technology requirements are integrated into
the reengineering effort
● The redeveloped program extends the capabilities of the older
application
● Forward engineering is same as software engineering process
with only one difference it is carried out always after reverse
engineering
● Another word for forward engineering is Reclamation or
Renovation.
● Here, forward engineering's primary goal is to fulfil the
re-engineering process to meet the needs of new consumers.
22. WHAT IS QUALITY?
Quality
Developed product meets it’s specification
Quality Management
Ensuring that required level of product quality is
achieved
Defining procedures and standards
Applying procedures and standards to the product and
process
Checking that procedures are followed
Collecting and analysing various quality data
23. SOFTWARE QUALITY MANAGEMENT
SYSTEM
● Software quality management also called Software quality
assurance.
● It is an umbrella activity that is applied throughout the software
process
● It is planned and systematic pattern of activities necessary to
provide high degree of confidence in the quality
● Software quality management consist
○ An SQA process
○ Specific quality assurance and quality control tasks
○ Effective software engineering practice
○ Control of all software work products
○ A procedure to ensure compliance with software development
standards
○ Measurement and reporting mechanisms
24. SQA ACTIVITIES
Prepare an SQA plan for a project
Participate in the development of the project’s software
process description
Review software engineering activities to verify compliance
with the defined software process
SQA produces high quality software.
SQA is beneficial for better reliability.
Improving the process of creating software.
Improves the quality of the software.
Ensure that deviations in software work and work products
are documented and handled according to a documented
procedure
25. Activities of Software Quality Management:
● Quality Assurance - QA aims at developing Organizational
procedures and standards for quality at Organizational
level.
● Quality Planning - Select applicable procedures and
standards for a particular project and modify as required to
develop a quality plan.
● Quality Control - Ensure that best practices and standards
are followed by the software development team to produce
quality products.
26. THE QUALITY STANDARDS: ISO 9000
● In order to bring quality in product and service, many
organizations are adopting Quality Assurance System
● ISO(International Standards Organization) standards are
issued by the International for Standardization (ISO) in
Switzerland
● ISO declared its 9000 series of standards in 1987
● The ISO 9000 standard determines the guidelines for
maintaining a quality system.
● The ISO standard mainly addresses operational methods and
organizational methods such as responsibilities, reporting,
etc.
● ISO 9000 defines a set of guidelines for the production
process and is not directly concerned about the product itself.
28. The ISO 9000 series of standards is based on the assumption
that if a proper stage is followed for production, then good
quality products are bound to follow automatically.
1. ISO 9001:
● Proper documentation is an important part of an ISO 9001
Quality Management System.
● ISO 9001 is the quality assurance standard that applies to
software engineering
● It includes, requirements that must be present for an effective
quality assurance system
● ISO 9001 standard is applicable to all engineering discipline
● This standard applies to the organizations engaged in design,
development, production, and servicing of goods
29. 2. ISO 9002:
● This standard applies to those organizations which do not design
products but are only involved in the production.
● Examples of these category industries contain steel and car
manufacturing industries that buy the product and plants designs
from external sources and are engaged in only manufacturing those
products.
● Therefore, ISO 9002 does not apply to software development
organizations.
3. ISO 9003:
● This standard applies to organizations that are involved only in the
installation and testing of the products.
30. SIX SIGMA
● Six Sigma is the process of producing high and improved
quality output
● Six Sigma is a disciplined, data-driven approach and
methodology for eliminating defects in any process - from
manufacturing to transactional and from product to service
● To achieve six sigma, a process must not produce more than
3.4 defects per million opportunities
● Six Sigma is a set of techniques driven by quality-control
methodology and has its main focus on identifying and
eliminating errors.
31. ● Six sigma have two methodologies.
1. DMAIC : Used to enhance an existing business process.
(Define, Measure, Analyze, Improve, Control)
2. DMADV : used to create new product designs or process designs.
(Define, Measure, Analyze, Design, Verify)
32. DMAIC
● Define: Define the problem or process to improve upon
related to the customer and goals
● Measure: How can you measure this process in a
systematic way?
● Analyze: Analyze the process or problem and identify the
way in which it can be improved. What are the root causes
of problems within the process?
● Improve: Once you know the causes of the problems,
present solutions for them and implement them.
● Control: Utilize Statistical Process Control to continuously
measure your results and ensure you are improving
33. DMADV
● Define: Define the problem or process to improve upon related
to the customer and goals
● Measure: How can you measure this process in a systematic
way?
● Analyze: Analyze the process or problem and identify the way
in which it can be improved. What are the root causes of
problems within the process?
● Design: Avoid root causes of defects and meet the customer
requirements
● Verify: To verify the process, compare the process with the
standard plan and find differences
Example of Six Sigma Company
For over 100 years they have delivered food to every part of the
city, earning them a Six Sigma rating (a Forbes rating of 99.9 %
which means one error in 6 million transactions).
34. CMM (CAPABILITY MATURITY MODEL)
● CMM was developed by the Software Engineering Institute (SEI).
● Capability maturity model (CMM) that defines key activities
required at different levels of process maturity.
● It is not a software process model. It is a framework that is used
to analyze the approach and techniques followed by any
organization to develop software products.
● It also provides guidelines to further enhance the maturity of
the process used to develop those software products.
35. Key Process Areas (KPA’s):
● Each of these KPA’s defines the basic requirements
❖ The 5 levels of CMM are as follows:
Level 1: Initial.
• The software process is characterized as ad hoc and
occasionally
• Few processes are defined and success depends on individual
effort
• No KPA’s defined
36. Level 2: Repeatable
• The necessary process discipline is in place to repeat earlier
successes on Project
• Experience with earlier projects is used for managing new
similar natured projects.
Key Process Areas (KPA’s):
● Project Planning
● Configuration Management
● Requirements Management
● Software Quality Assurance
37. Level 3: Defined
• The software process for both management and engineering
activities is documented, standardized and integrated
• At this level, documentation of the standard guidelines and
procedures takes place.
• This level includes all characteristics defined for level 2
Key Process Areas (KPA’s):
● Peer Reviews
● Intergroup Coordination
● Organization Process Definition
● Organization Process Focus
● Training Programs
38. Level 4: Managed
• Detailed measures of the software process and product
quality are collected
• This level includes all characteristics defined for level 3
Key Process Areas (KPA’s):
● Software Quality Management
● Quantitative Management
39. Level 5: Optimizing
• This level includes all characteristics defined for level 4
• This is the highest level of process maturity in CMM and
focuses on continuous process improvement in the
organization using quantitative feedback.
Key Process Areas (KPA’s):
● Process Change Management
● Technology Change Management
● Defect Prevention
40. SQA PLAN
● The SQA Plan provides a road map for establishing software
quality assurance
● The plan serves as a template for SQA activities that are instituted
for each software project
SQA Plan consist:
● The purpose and scope of the plan
● A description of all software engineering work products (e.g., models,
documents, source code).
● All applicable standards that are applied during the software process
● The tools and methods that support SQA actions and tasks
● Methods for assembling and maintaining all SQA-related records
● Organizational roles and responsibilities relative to product quality
41. The SQA Plan contains the following sections:
1. Purpose
2. Reference
3. Software configuration management
4. Problem reporting and corrective action
5. Tools, technologies, and methodologies
6. Code control
7. Records: Collection, maintenance, and retention
8. Testing methodology
42. THE SCM PROCESS
The SCM (Software Configuration Management) is a set of
activities that have been developed to manage change
throughout the software life cycle
43. 1. Planning and Identification Process
● This is the initial level of the SCM process to planning
properly for the development of the application and
identifies the configuration items as per the scope of the
project.
● To start meeting and welcome to change requests are the
basic criteria for this process.
● The project management plan is the input for this process and
approval of the plan is the exit criteria.
44. 2. Version Control Process
Version control is important when you are working on a software
project over time.
● Many source and documentation files.
● The files change during development.
● You need to keep track of the different version of each file, and
possibly roll back to an earlier version.
● The version control indicates to store the different versions of
development/configuration by changing the scope or
requirements or code or software environment.
● This process provides several versions of that software product.
45. ● A version control system implements or is directly integrated
with four major capabilities:
1. A project database that stores all relevant configuration
objects,
2. A version management capability that stores all version of
configuration object,
3. A make facility that enables the software engineer to
collect all relevant configuration objects, and
4. Construct a specific version of the software.
46. 3. Change Control Process
● This process the new change request created by the client to
change some configurations on the software product
● i.e. to add or remove or edit on the configuration items as the
request is received by the team.
● As per approval of the change request the application will
develop and the request will be closed on status.
● Change Control in software development refers to the
transition from an existing state of the software product to
another improved state of the product.
● CCP (Change Control Process) mainly identifies, documents,
and authorizes changes to a software application.
47. Process of Change Management :
When any software application/product goes for any changes, it
undergoes a series of sequential processes as follows:
● Creating a request for change
● Reviewing and assessing a request for change
● Planning the change
● Testing the change
● Creating a change proposal
● Implementing changes
● Reviewing change performance
● Closing the process
48.
49. Importance of Change Management :
● For improving performance
● For increasing engagement
● For enhancing innovation
● For including new technologies
● For implementing new requirements
● For reducing cost
Source of Change :
● Business reorganization
● New Market conditions
● New equipment
● Fixing any bugs/errors
● New customer needs
● Performance or reliability improvement
50. 4. Configuration Audit
● Configuration auditing is an SQA activity that helps to ensure
that quality is maintained as changes are made.
5. Status Reporting
● Configuration Status reporting (sometimes also called status
accounting) providing accurate status and current
configuration data to developers, testers, end users,
customers and stakeholders through admin guides, user
guides, FAQs, Release Notes, Installation Guide, Configuration
Guide, etc.
51. USER INTERFACE DESIGN
User interface is the front-end application view to which user
interacts in order to use the software.
The software becomes more popular if its user interface is:
● Attractive and Simple to use
● Responsive in short time
● Clear to understand
● Consistent on all interface screens
Types of User Interface
There are two main types of User Interface:
● Text-Based User Interface or Command Line Interface
● Graphical User Interface (GUI)
52. 1. Text-Based User Interface: This method relies primarily on
the keyboard. A typical example of this is UNIX.
Advantages
● Many and easier to customizations options.
● Typically capable of more important tasks.
Disadvantages
● Relies heavily on recall rather than recognition.
● Navigation is often more difficult.
53. Graphical User Interface (GUI): GUI relies much more heavily on
the mouse. A typical example of this type of interface is any
versions of the Windows operating systems.
Advantages
● Less expert knowledge is required to use it.
● The user may switch quickly from one task to another and can
interact with several different applications.
Disadvantages
● Typically decreased options.
● Usually less customizable. Not easy to use one button for tons
of different variations.
54. GUI Characteristics:
● Windows: Multiple windows allow different information to be
displayed simultaneously on the user's screen.
● Icons: Icons different types of information. On some systems,
icons represent files. On other icons describes processes.
● Menus: Commands are selected from a menu rather than typed
in command language.
● Pointing: A pointing device such as a mouse is used for
selecting choices from a menu or indicating items of interests
in a window.
● Graphics: Graphics elements can be mixed with text or the same
display.
56. WEB APPLICATION
Definition of Web-application:
A web-application is an application program that is usually
stored on a remote server, and users can access it through
the use of Software known as web-browser.
It is a type of computer program that usually runs with the
help of a web browser and also uses many web technologies
to perform various tasks on the internet.
58. 1. In general, a user sends a request to the web-server using web
browsers such as Google Chrome, Microsoft Edge, Firefox, etc over
the internet.
2. Then, the request is forwarded to the appropriate web application
server by the web-server.
3. Web application server performs the requested operations/ tasks like
processing the database, querying the databases; produces the result
of the requested data.
4. The obtained result is sent to the web-server by the web application
server along with the requested data/information or processed data.
5. The web server responds to the user with the requested or processed
data/information and provides the result to the user's screen .
60. Interface Design
● One of the challenges of interface design for WebApps is the nature
of the user’s entry point.
Aesthetic Design
● Also called graphic design, is an artistic offer that complements
the technical aspects of WebApp design.
Content Design
● Generate content and design the representation for content to be
used within a WebApp.
Architecture Design
● It is tied to the goals established for a WebApp, the content to be
presented, the users who will visit, and the navigation that has been
established.
Component-Level Design
● Establish data interfaces with external corporate systems.
Navigation Design
● Define navigation pathways that enable users to access WebApp
content and functions.
61. CONCEPTUAL AND TECHNICAL DESIGN
ACCESSING A FUNCTION
What is Software Design?
● Software design is a process to convert the user requirements
into client requirements user interface form, that helps the
software developer in coding and implementation.
● The software design deals with portraying the client’s
requirement which is described in Software Requirement
Specification (SRS) document into a user interface form.
● To transform requirements into a working system designers
must satisfy both customers and therefore the system builders.
● The customers should understand what the system is to try to
do. At an equivalent time, the system builders must understand
how to try to.
62. A software design has two parts :
1. Conceptual Design :
● Conceptual design is an initial/starting phase in the process
of planning, during which the broad outlines of function and
sort of something are coupled.
● It tells the customers that what actually the system will do.
● It is written in the customer’s language and designed
according to the client’s requirements.
● It shows the conceptual model i.e, what should a system look
like.
● It describes that what will happen to the data in the system.
● It starts when a system requirement comes and the phase
looks for a potential solution.
● At the end of this phase, the solutions to the problems are
sent for review.
63. 2. Technical Design :
● A Technical design is a phase in which the event team writes
the code and describes the minute detail of either the whole
design or some parts of it.
● It tells the designers that what actually the system will do.
● It describes any other thing that converts the requirements
into a solution to the customer’s problem.
● It describes the functions or methods of the system.
● It shows the data flow and the structure of the data.
● It includes the functioning and working of the conceptual
design.
● It starts after setting the system requirements.
● At the end of this phase, and after analyzing the technical
design, the specification is initiated.