0% found this document useful (0 votes)
11 views24 pages

SLM - Unit 11

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 24

Fundamentals of Information Technology Unit 11

Unit 11 Software Design, Development and Testing


Structure:
11.1 Introduction
Objectives
11.2 Requirement Analysis
11.3 Software Design Process
11.4 Models for System Development
Waterfall Model
Agile Methodology
Spiral Model
V - Model
11.5 Software Testing Life Cycle
11.6 Software Testing
11.7 Software Paradigms
11.8 Programming Methods
11.9 Software Applications
11.10 Summary
11.11 Terminal Questions
11.12 Answers

11.1 Introduction
In the previous unit we have seen various computer software, system
software, application software, proprietary software and open source
software. In this unit, we will study the requirement analysis, design
process, system development of various models like waterfall, agile, spiral
and V-model. We will also study the software testing life cycle, various types
of software testing, software paradigms, programming methods and
software applications. The software life cycle is a view of activities that
occur during the process of software development. For example, if you
consider human life cycle (infant, child, adult and senior citizen); it helps to
understand the basic activities and characteristics of humans as they
progress.
Objectives:
 explain analysis and design of software
 explain various models for system development
 describe various steps involved in software testing life cycle
Sikkim Manipal University B2071 Page No.: 213
Fundamentals of Information Technology Unit 11

 define various types of software testing


 list software paradigms
 discuss on various programming methods
 list various software applications

11.2 Requirement Analysis


Requirement analysis is the first stage in the software development process.
During the requisites-accumulating phase, the needs of the company are
outlined; this includes a list of requirements. Managers and users (and in
some cases, clients) make their “wish-lists” about what they would like the
software to do. Analyst ask questions to the client about the intended use of
the software, what type of information will be processed, how the software
should handle the information, and how the information can be accessed in
the system. Requirement analysis means performing the various tasks to
make sure the requirements that you have captured are feasible, valid,
compatible and consistent. Finally, a Requirement Analysis document is
created which serves as a guideline for the next phase of the model.
The requirements for the product are usually defined in the form of
documentation, written in English or any other language. There is no
programming done at this stage. List of requirements are written in such a
way that they are easy to understand by the programmers. In general, the
person who writes the list of requirements is called business analysts.
Business analysts are not programming specialists.
Requirement analysis is an iterative process. Business analyst has to
analyze these requirements. As each requirement is analyzed, it generally
leads to further questions, this requires business analyst to review further
until all relevant issues are cleared.
Self-Assessment Questions
1. In ______________ phase, list of requirements are gathered.
2. In requirement analysis phase, Business analyst has to analyze the
requirements. (True/False)
3. Requirement analysis is an _________ process.

Sikkim Manipal University B2071 Page No.: 214


Fundamentals of Information Technology Unit 11

11.3 Software Design Process


Software design is the process by which a manager creates a description of
a software object, intended to accomplish goals, using a set of primitive
components and subject to constraints. Software design refers to the activity
following requirements specification and before programming, as a formal
software engineering process.
Design is far less logical than requirement analysis but a far more creative
step. In this phase, a logical system is built which fulfils the given
requirements. Design phase of software development deals with
transforming the customer’s requirements into a detailed system design.
Design is the phase that requires the physical decisions about the system
like programming language to use, which database to select (oracle,
Sybase), and how screens and reports will be identified. The design phase
can also include decisions about hardware. The design process is an
iterative process, which could require multiple sessions with users using a
trial and error approach until the correct user interface has been completed.
Design document outlines the specifications for software to provide a
roadmap for developers. It is produced early in the process of developing
software and may be modified in response to changing circumstances and
needs. The design documentation is designed for internal use and is usually
not circulated outside the design team and in the offices of the client.
Components of the software design document outline shows that what the
product is supposed to do and how it is supposed to do it. This includes the
underlying architecture of the program along with all the features the
developers need to include in the product. Documentation shows about the
graphical interface, and how users will interact with the program, in order to
offer guidance to programmers as it moves through each phase of
development.
A team can be involved in the creation of a software design document. They
check for various needs and concerns to make sure that the document is
complete and confirm that it accurately represents the needs of the clients.
The goal is to create a single uniform guide for members of the team to use.
This ensures consistency in the development process, because everyone is
using the same reference document when they design and implement
features.

Sikkim Manipal University B2071 Page No.: 215


Fundamentals of Information Technology Unit 11

A general model of a software design is a directed graph. The target of the


design process is the creation of such a graph without inconsistencies.
Nodes in this graph represent entities in the design entities such as process
function or types. The link represents relation between these design entities
such as calls, uses and so on. Software designers do not arrive at a finished
design graph immediately but develop the design iteratively through a
number of different versions. The design process involves adding formality
and detail as the design is developed with constant backtracking to correct
earlier, less formal, designs.
The following points show the design activities.
1. Architectural designs the sub-systems making up the system and their
relationships are identified and documented.
2. Abstract specification for each sub-system, an abstract specification of
the services it provides and the constraints under which it must operate
is produced.
3. Interface design for each sub-system, its interface with other sub-
systems is designed and documented. This interface specification must
be unambiguous as it allows the sub-system to be used without
knowledge of the sub-system operation.
4. Component design Services are allocated to different components and
the interfaces of these components are designed.
5. Data structure design the data structures used in the system
implementation is designed in detail and specified.
6. Algorithm design the algorithms used to provide services are designed
in detail and specified.

Self-Assessment Questions
4. In ____________ phase, customer requirements are transformed into
a system design.
5. In design phase, identifying the programming language, database and
hardware decisions are taken. (True/False)

Sikkim Manipal University B2071 Page No.: 216


Fundamentals of Information Technology Unit 11

11.4 Models for System Development


Software development projects are complex. To deal with these
complexities, many developers follow a core set of development principles.
These principles define the field of software engineering. A major
component of this field is the life cycle model. The life cycle model describes
steps to follow when developing software from the initial stage to the
release, maintenance, and subsequent upgrading of the software. Many
different life cycle models have advantages and disadvantages in terms of
time-to-release, quality, and risk management. The life cycle model is a
foundation for the entire development process.
Lifecycle in simple terms refers to the sequence of changes from one form
to another. All life cycle models take a project through several phases:
requirements-gathering phase, design phase, development or
implementation phase and testing phase. The requirements gathered during
the requirements phase is translated to design, which is then translated into
working software code during the implementation phase. The software code
is verified against the requirements during the testing phase. Figure 11.1
shows a general Software Development Life Cycle (SDLC).

Figure 11.1: General Software Development Life Cycle


There are various software development life cycle models defined and
designed which are followed during software development process. Each
process model follows a series of steps unique to its type, in order to ensure
success in process of software development. Following are some software
development life cycle models:
 Waterfall model
 Agile model
 Spiral Model
 V - Model

Sikkim Manipal University B2071 Page No.: 217


Fundamentals of Information Technology Unit 11

11.4.1 Waterfall Model


The waterfall model is a common life cycle model. It is also known as linear-
sequential life cycle model. This life cycle is simple and easy to understand.
Each phase in this model commences only if the previous phase is entirely
completed. This life cycle model is used where the requirements are clearly
known. If the software development tool is well known, then the waterfall life
cycle model is used.
The project begins with the requirement analysis planning. The project
planning is done in this phase. After completing the requirement analysis,
the design of the project begins. Once the design is completed, coding of
the project begins. After completing the coding, the code is integrated and
testing is done. The system is installed after the testing is completed. The
final phase of the life cycle is the operation and maintenance of the system.
Figure 11.2 shows a waterfall model.

Figure 11.2: Waterfall Model

Advantages and disadvantages of waterfall lifecycle model:


Advantages:
 This model is very simple and easy to use.
 Easy to manage because each phase has specific deliverables and
review process.
Sikkim Manipal University B2071 Page No.: 218
Fundamentals of Information Technology Unit 11

 Suitable for small projects where requirements are known clearly.


 The phases are processed and completed one at a time.
Disadvantages
 The scope is adjusted during the life cycle which can badly impact the
project.
 Not a good model for complex and object-oriented projects.
 High amounts of risk and uncertainty.
 This model is not suitable for long-term projects.
11.4.2 Agile Methodology
Agile methodology is described as “iterative” and “incremental.” In waterfall,
development teams have only one chance to get each phase of a project. In
an agile methodology, every phase of development that is requirements,
design, and so on is continually revisited. Agile Methods break the product
into small incremental builds. These builds are provided in iterations. Each
iteration is about one to three months. The team’s work cycle is limited to
three months and the team re-evaluates project. This “inspect-and-adapt”
approach to development greatly reduces development costs and time to
market.
In Agile methodology teams can develop software at the same time they are
gathering requirements. Agile development helps companies build the right
product. Agile allows teams to continuously replan their release to optimize
its value throughout development, allowing them to be as competitive as
possible in the marketplace. Every iteration involves teams working
simultaneously on various areas like planning, requirements analysis,
design, coding, and testing. At the end of the iteration a working product is
delivered to the customer. Figure 11.3 shows an agile model

Sikkim Manipal University B2071 Page No.: 219


Fundamentals of Information Technology Unit 11

Figure 11.3: Agile Model

The advantages and disadvantages of agile model are:


Advantages
 This model is very simple and easy to use.
 Easy to manage because this model breaks the product in to small
modules.
 Suitable for fixed or changing requirements.
 Resource requirements are minimum.
 Enables concurrent development
Disadvantages
 This model is not suitable for handling complex dependencies.
 Depends heavily on customer interaction, so if customer is not clear,
team can be driven in the wrong direction.
 More risk of sustainability, maintainability and extensibility.

11.4.3 Spiral Model


The spiral model is applicable to projects where new technologies are used.
The spiral model mainly focuses on risk analysis. The spiral life cycle model

Sikkim Manipal University B2071 Page No.: 220


Fundamentals of Information Technology Unit 11

has four phases. They are – planning, risk analysis, development and
evaluation. Software projects repeatedly pass through all these phases in
iterations. The project life cycle moves in a spiral in spiral model. The
baseline spiral starts in the planning phase and ends at the evaluation
phase.
In spiral model, the software project passes through all the phases in the life
cycle. Each phase has some specific activity to perform. The requirements
for the project are gathered in the planning phase. The risks and alternative
solutions are identified in the risk analysis phase. At the end of the risk
analysis phase, a prototype is produced. In the development phase, the
software is developed and the testing is done at the end of this phase. In the
evaluation phase the customer evaluates the project before it continues to
the next spiral. Figure 11.4 shows a spiral model.

Figure 11.4: Spiral Model

The advantages and disadvantages of the spiral model are:


Advantages
 Risk analysis is too high in this life cycle model.
 Used for large and critical projects.
 Software is developed in the early stage of the life cycle.

Sikkim Manipal University B2071 Page No.: 221


Fundamentals of Information Technology Unit 11

Disadvantages
 This model is costly to use and implement.
 Success of the project depends on the risk analysis phase.
 Not suitable for small projects.
11.4.4 V-Model
The extension of Waterfall model is the V-Model. V-Model is also called as
verification and validation model. In V-Shape life cycle model, the execution
happens in a sequential manner. In this model, the testing phase is planned
in parallel with all the phases (requirement analysis, high level design, low
level design and coding or implementation.). V-model joins coding phase on
both the sides, one side is verification phase and other side is validation
phase.
Under V-Model, the corresponding testing phase of the development phase
is planned in parallel. So there are Verification phases on one side of the
V. and Validation phases on the other side. Coding phase joins the two
sides of the V-Model.
During implementation or coding phase, at the bottom of the V model coding
is performed. Once coding is complete, development progresses up the
right side of the V model, moving through the test plans developed during
the earlier phases. If a problem arises during a testing phase, the life-cycle
reverts back to its corresponding development phase. Figure 11.5 shows a
V-Model of SDLC.

Figure 11.5: V-Model of SDLC

Sikkim Manipal University B2071 Page No.: 222


Fundamentals of Information Technology Unit 11

The advantages and disadvantages of V-Model SDLC are:


Advantages
 This model is very simple and easy to use.
 Suitable for small projects where requirements are known clearly.
 The risk in the model is low because the test plans are prepared at the
early stage
Disadvantages
 In the later stage of development process, it is difficult to change or add
requirements.
 The risk in the model is high, if proper test planning is not done.
 This model is not suitable for complex projects.
Self-Assessment Questions
6. SDLC stands for _________________.
7. Mention any two software development life cycle models.
8. __________ model is used where the requirements are clearly known.
9. Agile methodology is described as _____________ and ___________.
10. The spiral model mainly focuses on ___________.
11. In _______model, test plans are prepared early in the process.

11.5 Software Testing Life Cycle


The Software Testing Life Cycle (STLC) is basically a step-by-step process
used for testing any software before it is fit for final production. The different
stages in software testing life cycle are carried out in an orderly manner and
the final results which are obtained decide if the software is viable as a
product or not. If the software is found short on any of the parameters after
extensive testing, then the appropriate improvements can be made.
Figure 11.6 shows a Software Testing Life Cycle.

Sikkim Manipal University B2071 Page No.: 223


Fundamentals of Information Technology Unit 11

Figure 11.6: Software Testing Life Cycle

Requirement Analysis
Requirement Analysis is the very first step in the Software Testing Life
Cycle (STLC). In this step the Quality Assurance (QA) team understands
the requirement in terms of what will be tested and figures out the testable
requirements. Quality Assurance means preventing failures or errors in the
product. If any requirement is missing or not understood, then quality
assurance team follows up with the different stakeholders like Business
Analyst, System designer, Client, Technical Manager or Technical Lead and
others to better understand the detail knowledge of requirement.
Test Planning
Test planning is the most important phase of the software testing life cycle
where all testing strategy is defined. Test strategy is one which describes
the testing approach. This phase is also called as test strategy phase. In
this phase, based on company policy, the test manager or test lead is
involved to determine the effort and estimate the cost for the entire project.

Sikkim Manipal University B2071 Page No.: 224


Fundamentals of Information Technology Unit 11

Then the team starts preparing the test plan based on the requirement
analysis. The result of test planning phase is presented in the tested plan or
test strategy and testing effort estimation documents. Quality assurance
teams can start with test case development activity, once test planning
phase is completed.
Test Case Development
A test case is a set of conditions under which a tester will determine
whether one of its component feature is working. Once the test plan is
completed, the test case development is started. This is the phase of STLC
where the testing team writes down the detailed test cases and the team
prepares the test data. Once the test cases are ready, these test cases are
reviewed by the quality assurance team and also the Requirement
Traceability Matrix (RTM) is prepared. The Requirement Traceability Matrix
is a format for tracking requirements where each test case is mapped with
the requirements.
Test Environment Setup
An important part of the software testing life cycle is setting up the test
environment. Test environment setup means arrangement of software,
hardware and the associated environment settings required to run the test
cases. This is independent activity and can be started parallel with test case
development. Depending on company policy, the test designer creates the
testing environment. Meanwhile testing team prepares the test cases to
check the readiness of the test environment setup.
Test Execution
Once the preparation of test case development and test environment setup
is completed then test execution phase can be started. In this phase, the
testing team starts executing test cases based on prepared test planning
and prepared test cases in the prior step.
Once the test case is passed then same can be marked as Passed. If any
test case is failed then corresponding bug can be reported to developer
team through bug tracking system and bug can be linked to the
corresponding test case for further analysis. A bug is an error or failure or
fault. Ideally every failed test case should be associated with at least a
single bug or error. Using this linking we can get the failed test case with

Sikkim Manipal University B2071 Page No.: 225


Fundamentals of Information Technology Unit 11

bug associated with it. Once the bug is fixed by development team, the
same test case can be executed based on your test planning.
Due to any bug, if any of the test cases are blocked then such test cases
can be marked as blocked. A bug report can be prepared based on how
many test cases passed, not run, blocked and failed. Once the errors are
fixed, some failed, not run or blocked test cases can be executed again to
retest the functionality.
Test Cycle Closure
In test cycle closure, based on company policy, the manager or senior
manager conducts the meeting to check what all went well, which area
needs to be improved and taking the lessons from current STLC as input to
upcoming test cycles, which will help to improve STLC process.
Self-Assessment Questions
12. STLC stands for ______________.
13. ___________ is a step-by-step process used for testing any software.
14. A ___________ is a set of conditions under which a tester will
determine whether one of its features is working.
15. The ________________ is a format for tracking requirements where
each test case is mapped with the requirement.

11.6 Software Testing


Software testing is the process of executing a program with the intent of
finding errors or failures or faults. In other words software testing is a
verification and validation process. Verification is the process to make sure
that the product satisfies the conditions imposed at the start of the
development phase. Verification includes checking for code, documentation,
and so on. Verification is done by developers. Validation is the process to
make sure that the product satisfies the specified requirements at the end of
the development phase. Validation occurs after verification and mainly
involves the checking of the overall product. Validation is done by testers.

Following are the types of Software Testing.


 Black Box Testing
 White Box Testing
 Integration Testing

Sikkim Manipal University B2071 Page No.: 226


Fundamentals of Information Technology Unit 11

 System Testing
 Performance Testing
 Acceptance Testing
 Regression Testing
Black Box Testing
Black Box Testing is also called as functional testing. In this testing, the
tester just focuses on inputs and outputs of the software system without
having any internal knowledge of the program. Black box testing is often
used for validation.
White Box Testing
White box testing is a testing technique that takes internal logic and
structure of the code into account. White box testing is also called as
structural testing or glass box testing or open box testing or unit testing. In
order to perform white box testing on an application, the tester needs to
possess knowledge of the internal working of the code. The tester needs to
have a look inside the source code and find out which part of the code is
behaving inappropriately. White box testing is often used for verification.
Integration Testing
Integration testing is testing in which individual software modules are
combined and tested as a group to produce output.
System Testing – System testing is the testing to make sure that by
keeping the software in different environments (for example, Operating
Systems) it still works. System testing is done with full system
implementation and environment.
Performance Testing – Term often used interchangeably with ‘stress’ and
‘load’ testing. It is done to check whether system meets performance
requirements. Different performance and load tools are used to do this.
Acceptance Testing – Acceptance testing is basically done by the user to
make sure that the delivered product meets the user requirements and
works as per the user’s expectations.
Regression Testing – Regression testing is the testing carried out to
ensure that modifications made to fix the errors are not impacting on the
previously working functionality.

Sikkim Manipal University B2071 Page No.: 227


Fundamentals of Information Technology Unit 11

Self-Assessment Questions
16. ___________ is the process of executing a program with the intent of
finding errors or failures or faults.
17. ___________ is the process to make sure that the product satisfies the
specified requirements at the end of the development phase.
18. Mention any two types of testing
19. In __________ testing, tester does not require internal knowledge of
the program, just focuses on inputs and outputs.
20. In __________ testing, tester requires internal knowledge of the
program.
21. In _____________ testing, modifications made to the program to fix the
errors are not impacting on the previously working functionality.

11.7 Software Paradigms


Models of structuring software development processes are called
"paradigms." Paradigms, chosen by the supplier, apply to the structuring of
software development activities. Paradigm selection is an essential part of a
supplier’s software planning process. The supplier frequently documents
key information, including descriptions of software development
approaches, in a plan. This plan is usually called the Software Development
Plan (SDP). The paradigm means that shares a common characteristic of
an entity. An entity is a thing with distinct and independent existence. A
paradigm is a Greek word and its meaning is a pattern. The basics of a
paradigm was examined by various authors. Thomas Kuhn was one of the
foremost users of the word (paradigm), who authored the book “The
structure of Scientific Revolution’’. The notation of the paradigm was utilized
by Thomas Kuhn as a part of his assumptions and theories, which
influenced that view.

Many paradigms are used in programming. These are the three classic
programming paradigms:
1. Imperative Paradigms
2. Functional Paradigms
3. Logic Paradigms
1. Imperative Paradigms – The imperative paradigm is also called as an
algorithmic paradigm. In the algorithmic paradigm a program consists of
data and an algorithm that is a sequence of commands that manipulate
Sikkim Manipal University B2071 Page No.: 228
Fundamentals of Information Technology Unit 11

the data. The data at a particular point of time defines the state of the
program. The state of the program changes as the commands are
executed in sequence. In the memory the data is stored. Imperative
programming languages provide variables to refer to the memory
locations. In this language you need to specify the steps to solve a
problem (for example addition of two numbers).
2. Functional Paradigms – The functional paradigm is based on
mathematical functions. Functional programming paradigms treat values
as single entities. Unlike variables, values are never modified. Instead,
values are transformed into new values. Computations of functional
languages are performed largely by applying functions.
3. Logic Paradigms – In this paradigm we express computation
exclusively in terms of mathematical logic. While the functional paradigm
emphasizes the idea of a mathematical function, the logic paradigm
focuses on predicate logic, in which the basic term is a relation. Logic
languages are useful for expressing problems where it is not clear what
the functions should be. For example consider the ‘uncle relationship’: a
given person can have many uncles, and another person can be uncle
to many nieces and nephews.
Self-Assessment Questions
22. _________ shares common characteristics of an entity.
23. __________ was one of the foremost user of the word (paradigm), who
composed the book “the structure of Scientific Revolution’’.
24. Mention any two programming paradigms
25. The imperative paradigm is also called as ____________.

11.8 Programming Methods


Computer programming is a sequence of instructions written by the
computer programming language to perform a specific task by the
computer. In computer program the word source code is frequently used.
Source code is the human readable instructions that a programmer writes.
Source code is the only stage where a programmer can read and modify a
computer program. Many programming methods are used to write a
program. The following are some commonly used programming methods:
 Structured programming
 Object-Oriented Programming(OOP)

Sikkim Manipal University B2071 Page No.: 229


Fundamentals of Information Technology Unit 11

Structured Programming – Structured programming is a programming


paradigm aimed at improving the clarity, quality, and development time of a
computer program by making extensive use of subroutines, block structures
and for and while loops in contrast to using simple tests and jumps such as
the goto statement which could lead to "spaghetti code" which is difficult
both to follow and maintain.
Structured programming was initially proposed by Corrado Bohm and
Guiseppe Jacopini. The two mathematicians showed that any computer
program can be composed with only three structures: decisions, sequences,
and loops. The most widely recognized technique utilized was produced by
Dijkstra. In this model the developer differentiates programs into
subsections that each has only one point of access and one point of exit.
Structured programming frequently employs a top-down design model, in
which developers map out the overall program structure into separate
subsections.
Structured programming, sometimes known as modular programming, is a
subset of procedural programming that enforces a logical structure on the
program being written to make it more efficient and easier to understand
and modify. Certain languages such as Ada, Pascal, and dBASE are
designed with features that encourage or enforce a logical program
structure.
Program flow follows a simple hierarchical model that employs looping
constructs such as "for," "repeat," and "while." Use of the "Go To" statement
is discouraged.
Virtually any language can use structured programming techniques to avoid
common pitfalls of unstructured languages. Unstructured programming must
rely upon the discipline of the developer to avoid structural problems, and as
a consequence may result in poorly organized programs. Most modern
procedural languages include features that encourage structured
programming. Object-oriented programming can be thought of as a type of
structured programming, uses structured programming techniques for
program flow, and adds more structure for data to the model.

Object-Oriented Programming (OOP) – It is a programming language


model organized around "objects" rather than "actions" and data rather than

Sikkim Manipal University B2071 Page No.: 230


Fundamentals of Information Technology Unit 11

logic. An “object” is a software bundle of related state and behavior.


Software objects are often used to model the real-world objects that you find
in everyday life. Historically, a program has been viewed as a logical
procedure that takes input data, processes it, and produces output data.
The programming challenge was seen as how to write the logic, not how to
define the data.
Object-oriented programming takes the view that what we really care about
are the objects we want to manipulate rather than the logic required to
manipulate them. Examples of objects range from human beings (described
by name, address, and so on) to buildings and floors (whose properties can
be described and managed) down to the little widgets (widget is an element
of a graphical user interface (gui) that displays information or provides a
specific way for a user to interact with the operating system and application)
on a computer desktop (such as buttons and scroll bars).
Simula was the first object-oriented programming language. Java, Python,
C++, Visual Basic .NET and Ruby are the most popular OOP languages
today. The Java programming language is designed especially for use in
distributed applications on corporate networks and the Internet. Ruby is
used in many Web applications. Curl, Smalltalk, Delphi and Eiffel are also
examples of object-oriented programming languages.
Key features of Object Oriented Programming (OOP):
 Object
 Class
 Data Hiding and Encapsulation
 Dynamic Binding
 Message Passing
 Inheritance
 Polymorphism
Object: The object is a collection of a number of entities. Objects take up
space in the memory. Objects are instances of classes. When a program is
executed, the objects interact by sending messages to one another. Each
object contains data and code to manipulate the data. Objects can interact
without having known details of each other’s data or code.

Sikkim Manipal University B2071 Page No.: 231


Fundamentals of Information Technology Unit 11

Class: Class is a collection of objects of similar type. Objects are variables


of the type class. Once a class has been defined, we can create any
number of objects belonging to that class. Example: grapes, bananas and
orange are the member of class fruit. Example: Fruit Orange; in the above
statement object mango is created which belong to the class fruit. NOTE:
Classes are user defined data types.
Data Abstraction and Encapsulation: Combining data and functions into a
single unit called class and the process of doing so is known as
Encapsulation. Data encapsulation is important feature of a class. The class
contains both data and functions. Data is not accessible from the outside
world and only those functions which are present in the class can access
the data. The insulation of the data from direct access by the program is
called data hiding or information hiding. Hiding the complexity of the
program is called Abstraction and only essential features are represented.
Dynamic Binding: Refers to the linking of a function call with a function
definition is called binding and when it is taking place at run time called
dynamic binding.
Message Passing: The process by which one object can interact with other
object is called message passing.
Inheritance: It is the process by which object of one class acquires the
properties or features of objects of another class. The inheritance provides
the idea of reusability. This means that we can add additional features to an
existing class without modifying it. This is possible by driving a new class
from the existing one. The new class will have the combined features of
both the classes. Example: Robine is a part of the class flying bird which is
again a part of the class bird.
Polymorphism: A Greek term means the ability to take more than one
form. An operation may exhibit different behaviors in different instances.
The behavior depends upon the types of data used in the operation. For
example, Operator overloading and Function overloading

Sikkim Manipal University B2071 Page No.: 232


Fundamentals of Information Technology Unit 11

11.9 Software Applications


An application or app is a type of software that allows you to perform
specific tasks. Applications for desktop or laptop computers are called
desktop applications, and those for mobile devices are called mobile apps.
There are various types of software applications. The following are some of
commonly used softwares.
System software: System software is a type of computer program that is
designed to run a computer's hardware and application programs. The
system software is the interface between the hardware and user
applications. Some examples of system software are operating system,
compilers and many more.
Business Software: Business software is software that is used for
business purposes. The term is often used more specifically for software
that helps a business to accomplish specific goals through the applied
principles that the software supports. Business information processing is the
largest single software application area. Discrete systems like payroll,
accounts receivable/payable have evolved into Management Information
Systems (MIS) software that accesses one or more large databases
containing business information. Applications in this area restructure
existing data in a way that facilitates business operations or management
decision making.
Personal computer software: Day to day useful applications like word
processing, spreadsheets, multimedia, database management, personal
and business financial applications are some of the common examples for
personal computer software.
Artificial Intelligence software: Artificial intelligence (AI) is an area of
computer science that emphasizes the creation of intelligent machines that
work and reacts like humans. Some of the activities computers with artificial
intelligence are designed for include: Speech recognition, Learning,
Planning and Problem solving. Artificial Intelligence software makes use of
non numerical algorithms to solve complex problems that are not amenable
to computation or straightforward analysis. Expert systems, also called
knowledge based systems. Some of the examples of artificial intelligence
software are pattern recognition, game playing and so on.

Sikkim Manipal University B2071 Page No.: 233


Fundamentals of Information Technology Unit 11

Self-Assessment Questions
26. ____________ is the only stage where a programmer can read and
modify a computer program.
27. Mention any two programming methods.
28. Mention any two software applications.

11.10 Summary
Let us recapitulate the important points covered in the unit:
 The first stage of software development process is requirement analysis.
 In design phase, the customer requirements are transformed into a
detailed system design.
 Each process model follows a series of steps unique to its type, in order
to ensure success in process of software development.
 Various Software Development Life Cycle models: Waterfall Model,
Agile Methodology, Spiral and V – Model
 The different stages of software testing life cycle are: Requirement
Analysis, Test Planning, Test Case Development, Test environment
setup, Test Execution and Test Cycle Closure
 Software testing is the process of executing a program with the intent of
finding errors or failures or faults.
 Types of software testings are: Black Box Testing, White Box Testing,
Integration Testing, System Testing, Stress Testing, Performance
Testing, Acceptance Testing and Regression Testing.
 Paradigm means that share a common characteristics of an entity.
Thomas Kuhn was one of the foremost users of the word (paradigm),
who composed the book “the structure of Scientific Revolution’’.
 Commonly used programming paradigms are: Imperative Paradigms,
Functional Paradigms and Logic Paradigms.
 Computer programming is a sequence of instructions written by using a
Computer Programming Language to perform a specific task by the
computer.
 Common methods used in programming are: Structured programming
and Object-Oriented Programming (OOP).

Sikkim Manipal University B2071 Page No.: 234


Fundamentals of Information Technology Unit 11

 Types of softwares are: System Software, Business Software, Personal


Computer Software and Artificial Intelligence Software.

11.11 Terminal Questions


1. What is requirement analysis and design?
2. Briefly explain various models for software development.
3. Explain Software Testing Life Cycle.
4. Briefly explain various types of software testing.
5. Explain various methods of programming paradigms.

11.12 Answers
Self-Assessment Questions
1. Requirement Analysis
2. True
3. Iterative
4. Design
5. True
6. Software Development Life Cycle
7. Waterfall Model and Agile Methodology
8. Waterfall Model
9. Iterative and Incremental.
10. Risk Analysis
11. V-Model
12. Software Testing Life Cycle
13. STLC
14. Test case
15. Requirement Traceability Matrix
16. Software testing
17. Validation
18. Black box testing and white box testing
19. Black box testing
20. White box testing
21. Regression
22. Paradigm
23. Thomas kuhn
24. Imperative paradigms and functional paradigms

Sikkim Manipal University B2071 Page No.: 235


Fundamentals of Information Technology Unit 11

25. Algorithmic paradigm


26. Source code
27. Structured programming and Object-Oriented Programming(OOP)
28. System software and artificial intelligence software.
Terminal Questions
1. The first stage of software development process is requirement
analysis. (Refer to section 11.2 )
In design phase, the customer requirements are transformed into a
detailed system design. (Refer to section 11.3)
2. To deal with the software development complexities, many developers
follow a core set of development principles. (Refer to section 11.4)
3. For testing any software in STLC, it is basically a step-by-step process.
(Refer section 11.5)
4. Types of software testing’s are: Black Box Testing, White Box Testing,
Integration Testing, System Testing, Stress Testing, Performance
Testing, Acceptance Testing and Regression Testing. (Refer to
section 11.6)
5. Models of structuring software development processes are called
"paradigms." Paradigm is Greek word and its meaning is pattern. (Refer
to section 11.7)

Sikkim Manipal University B2071 Page No.: 236

You might also like