SlideShare a Scribd company logo
1 of 55
System development life cycle
UNIT – IV
An effective System Development Life Cycle (SDLC) should result in a high quality system that meets
customer expectations, reaches completion within time and cost evaluations, and works effectively and
efficiently in the current and planned Information Technology infrastructure.
System Development Life Cycle (SDLC) is a conceptual model which includes policies and procedures for
developing or altering systems throughout their life cycles.
SDLC is used by analysts to develop an information system. SDLC includes the following activities −
•requirements
•design
•implementation
•testing
•deployment
•operations
•maintenance
Phases of SDLC
Systems Development Life Cycle is a systematic approach which explicitly breaks down the work into phases
that are required to implement either new or modified Information System.
Feasibility Study or Planning
•Define the problem and scope of existing system.
•Overview the new system and determine its objectives.
•Confirm project feasibility and produce the project Schedule.
•During this phase, threats, constraints, integration and security of system are also considered.
•A feasibility report for the entire project is created at the end of this phase.
Analysis and Specification
•Gather, analyze, and validate the information.
•Define the requirements and prototypes for new system.
•Evaluate the alternatives and prioritize the requirements.
•Examine the information needs of end-user and enhances the system goal.
•A Software Requirement Specification (SRS) document, which specifies the software, hardware, functional,
and network requirements of the system is prepared at the end of this phase.
System Design
•Includes the design of application, network, databases, user interfaces, and system interfaces.
•Transform the SRS document into logical structure, which contains detailed and complete set of
specifications that can be implemented in a programming language.
•Create a contingency, training, maintenance, and operation plan.
•Review the proposed design. Ensure that the final design must meet the requirements stated in SRS
document.
•Finally, prepare a design document which will be used during next phases.
Implementation
•Implement the design into source code through coding.
•Combine all the modules together into training environment that detects errors and defects.
•A test report which contains errors is prepared through test plan that includes test related tasks such as
test case generation, testing criteria, and resource allocation for testing.
•Integrate the information system into its environment and install the new system.
Maintenance/Support
•Include all the activities such as phone support or physical on-site support for users that is required once the
system is installing.
•Implement the changes that software might undergo over a period of time, or implement any new
requirements after the software is deployed at the customer location.
•It also includes handling the residual errors and resolve any issues that may exist in the system even after
the testing phase.
•Maintenance and support may be needed for a longer time for large systems and for a short time for smaller
systems.
Life Cycle of System Analysis and Design
The following diagram shows the complete life cycle of the system during analysis and design phase.
InformationGathering Techniques
The main aim of fact finding techniques is to determine the information requirements of an organization
used by analysts to prepare a precise SRS understood by user.
Ideal SRS Document should −
•be complete, Unambiguous, and Jargon-free.
•specify operational, tactical, and strategic information requirements.
•solve possible disputes between users and analyst.
•use graphical aids which simplify understanding and design.
There are various information gathering techniques −
• Interviewing
Systems analyst collects information from individuals or groups by interviewing. The analyst can be formal,
legalistic, play politics, or be informal; as the success of an interview depends on the skill of analyst as
interviewer.
It can be done in two ways −
•Unstructured Interview − The system analyst conducts question-answer session to acquire basic
information of the system.
•Structured Interview − It has standard questions which user need to respond in either close (objective) or
open (descriptive) format.
Advantages of Interviewing
•This method is frequently the best source of gathering qualitative information.
•It is useful for them, who do not communicate effectively in writing or who may not have the time to
complete questionnaire.
•Information can easily be validated and cross checked immediately.
•It can handle the complex subjects.
•It is easy to discover key problem by seeking opinions.
•It bridges the gaps in the areas of misunderstandings and minimizes future problems.
Questionnaires
This method is used by analyst to gather information about various issues of system from large number of
persons.
There are two types of questionnaires −
•Open-ended Questionnaires − It consists of questions that can be easily and correctly interpreted. They
can explore a problem and lead to a specific direction of answer.
•Closed-ended Questionnaires − It consists of questions that are used when the systems analyst
effectively lists all possible responses, which are mutually exclusive.
Advantages of questionnaires
•It is very effective in surveying interests, attitudes, feelings, and beliefs of users which are not co-located.
•It is useful in situation to know what proportion of a given group approves or disapproves of a particular
feature of the proposed system.
•It is useful to determine the overall opinion before giving any specific direction to the system project.
•It is more reliable and provides high confidentiality of honest responses.
•It is appropriate for electing factual information and for statistical data collection which can be emailed
and sent by post.
Review of Records, Procedures, and Forms
Review of existing records, procedures, and forms helps to seek insight into a system which describes the
current system capabilities, its operations, or activities.
Advantages
•It helps user to gain some knowledge about the organization or operations by themselves before they impose
upon others.
•It helps in documenting current operations within short span of time as the procedure manuals and forms
describe the format and functions of present system.
•It can provide a clear understanding about the transactions that are handled in the organization, identifying
input for processing, and evaluating performance.
•It can help an analyst to understand the system in terms of the operations that must be supported.
•It describes the problem, its affected parts, and the proposed solution.
Observation
This is a method of gathering information by noticing and observing the people, events, and objects. The
analyst visits the organization to observe the working of current system and understands the
requirements of the system.
Advantages
•It is a direct method for gleaning information.
•It is useful in situation where authenticity of data collected is in question or when complexity of certain
aspects of system prevents clear explanation by end-users.
•It produces more accurate and reliable data.
•It produces all the aspect of documentation that are incomplete and outdated.
System Analysis & Design - System Planning
Systems development is systematic process which includes phases such as planning, analysis, design,
deployment, and maintenance. Here, in this tutorial, we will primarily focus on −
•Systems analysis
•Systems design
Systems Analysis
It is a process of collecting and interpreting facts, identifying the problems, and decomposition of a system into
its components.
System analysis is conducted for the purpose of studying a system or its parts in order to identify its
objectives. It is a problem solving technique that improves the system and ensures that all the components of
the system work efficiently to accomplish their purpose.
Analysis specifies what the system should do.
Systems Design
It is a process of planning a new business system or replacing an existing system by defining its components
or modules to satisfy the specific requirements. Before planning, you need to understand the old system
thoroughly and determine how computers can best be used in order to operate efficiently.
System Design focuses on how to accomplish the objective of the system.
System Analysis and Design (SAD) mainly focuses on −
•Systems
•Processes
•Technology
What is a System?
The word System is derived from Greek word Systema, which means an organized relationship between
any set of components to achieve some common cause or objective.
A system is “an orderly grouping of interdependent components linked together according to a plan to
achieve a specific goal.”
Constraints of a System
A system must have three basic constraints −
•A system must have some structure and behavior which is designed to achieve a predefined objective.
•Interconnectivity and interdependence must exist among the system components.
•The objectives of the organization have a higher priority than the objectives of its subsystems.
Properties of a System
A system has the following properties −
Organization
• Organization implies structure and order. It is the arrangement of components that helps to achieve
predetermined objectives.
• Interaction
It is defined by the manner in which the components operate with each other.
For example, in an organization, purchasing department must interact with production department and payroll with
personnel department.
• Interdependence
Interdependence means how the components of a system depend on one another. For proper functioning, the
components are coordinated and linked together according to a specified plan. The output of one subsystem is the
required by other subsystem as input.
• Integration
Integration is concerned with how a system components are connected together. It means that the parts of the
system work together within the system even if each part performs a unique function.
Objective
The objective of system must be central. It may be real or stated. It is not uncommon for an organization to
state an objective and operate to achieve another.
The users must know the main objective of a computer application early in the analysis for a successful design
and conversion.
Elements of a System
The following diagram shows the elements of a system −
Feasibility Study
Feasibility Study can be considered as preliminary investigation that helps the management to take decision
about whether study of system should be feasible for development or not.
•It identifies the possibility of improving an existing system, developing a new system, and produce refined
estimates for further development of system.
•It is used to obtain the outline of the problem and decide whether feasible or appropriate solution exists or not.
•The main objective of a feasibility study is to acquire problem scope instead of solving the problem.
•The output of a feasibility study is a formal system proposal act as decision document which includes the
complete nature and scope of the proposed system.
Steps Involved in Feasibility Analysis
The following steps are to be followed while performing feasibility analysis −
•Form a project team and appoint a project leader.
•Develop system flowcharts.
•Identify the deficiencies of current system and set goals.
•Enumerate the alternative solution or potential candidate system to meet goals.
•Determine the feasibility of each alternative such as technical feasibility, operational feasibility, etc.
•Weight the performance and cost effectiveness of each candidate system.
•Rank the other alternatives and select the best candidate system.
•Prepare a system proposal of final project directive to management for approval.
Role of System Analyst
The system analyst is a person who is thoroughly aware of the system and guides the system development
project by giving proper directions. He is an expert having technical and interpersonal skills to carry out
development tasks required at each phase.
He pursues to match the objectives of information system with the organization goal.
Main Roles
•Defining and understanding the requirement of user through various Fact finding techniques.
•Prioritizing the requirements by obtaining user consensus.
•Gathering the facts or information and acquires the opinions of users.
•Maintains analysis and evaluation to arrive at appropriate system which is more user friendly.
•Suggests many flexible alternative solutions, pick the best solution, and quantify cost and benefits.
•Draw certain specifications which are easily understood by users and programmer in precise and detailed
form.
•Implemented the logical design of system which must be modular.
•Plan the periodicity for evaluation after it has been used for some time, and modify the system as needed.
Data Flow Diagram
Data flow diagram is graphical representation of flow of data in an information system. It is capable of
depicting incoming data flow, outgoing data flow and stored data. The DFD does not mention anything about
how data flows through the system.
There is a prominent difference between DFD and Flowchart. The flowchart depicts flow of control in
program modules. DFDs depict flow of data in the system at various levels. DFD does not contain any
control or branch elements.
Types of DFD
Data Flow Diagrams are either Logical or Physical.
•Logical DFD - This type of DFD concentrates on the system process, and flow of data in the system.For
example in a Banking software system, how data is moved between different entities.
•Physical DFD - This type of DFD shows how the data flow is actually implemented in the system. It is more
specific and close to the implementation.
DFD Components
DFD can represent Source, destination, storage and flow of data using the following set of components -
•Entities - Entities are source and destination of information data. Entities are represented by a rectangles with
their respective names.
•Process - Activities and action taken on the data are represented by Circle or Round-edged rectangles.
•Data Storage - There are two variants of data storage - it can either be represented as a rectangle with absence
of both smaller sides or as an open-sided rectangle with only one side missing.
•Data Flow - Movement of data is shown by pointed arrows. Data movement is shown from the base of arrow as
its source towards head of the arrow as destination.
Entity-Relationship Model
Entity-Relationship model is a type of database model based on the notion of real world entities and
relationship among them. We can map real world scenario onto ER database model. ER Model creates a set
of entities with their attributes, a set of constraints and relation among them.
ER Model is best used for the conceptual design of database. ER Model can be represented as follows :
•Entity - An entity in ER Model is a real world being, which has some properties called attributes. Every
attribute is defined by its corresponding set of values, called domain.
•For example, Consider a school database. Here, a student is an entity. Student has various attributes like
name, id, age and class etc.
•Relationship - The logical association among entities is called relationship. Relationships are mapped
with entities in various ways. Mapping cardinalities define the number of associations between two entities.
•Mapping cardinalities:
• one to one
• one to many
• many to one
• many to many
Data Dictionary
Data dictionary is the centralized collection of information about data. It stores meaning and origin of data, its
relationship with other data, data format for usage etc. Data dictionary has rigorous definitions of all names in
order to facilitate user and software designers.
Data dictionary is often referenced as meta-data (data about data) repository. It is created along with DFD (Data
Flow Diagram) model of software program and is expected to be updated whenever DFD is changed or updated.
Requirement of Data Dictionary
The data is referenced via data dictionary while designing and implementing software. Data dictionary removes
any chances of ambiguity. It helps keeping work of programmers and designers synchronized while using same
object reference everywhere in the program.
Data dictionary provides a way of documentation for the complete database system in one place. Validation of
DFD is carried out using data dictionary.
Contents
Data dictionary should contain information about the following
Data Flow
Data Structure
Data Elements
Data Stores
Data Processing
A Decision Tree offers a graphic read of the processing logic concerned in a higher cognitive process and
therefore the corresponding actions are taken. The perimeters of a choice tree represent conditions and
therefore the leaf nodes represent the actions to be performed looking at the result of testing the condition.
Decision Tree
A decision tree is a graph that always uses a branching method in order to demonstrate all the possible
outcomes of any decision. Decision Trees are graphical and show a better representation of decision
outcomes. It consists of three nodes namely Decision Nodes, Chance Nodes, and Terminal Nodes.
Types of the decision tree:
•Categorical variable decision tree
•Continuous variable decision tree
Benefits:
•A decision tree is simple to comprehend and use.
•New scenarios are simple to add.
•Can be combined with other decision-making methods.
•Handling of both numerical and categorial variables
•The classification does not require many computations.
•Useful in analyzing and solving various business problems.
Drawbacks:
•They are inherently unstable, which means that a slight change in the data can have a result in a change in
the structure of the optimal decision tree, and they are frequently wrong.
•These are less suitable for estimation tasks where the outcome required is the value of a continuous
variable.
•The alternative options perform better with the same data. A random forest of decision trees can be used as
a replacement but it is not as straightforward to comprehend as a single decision tree.
•Calculations can become quite complicated, especially when several values are uncertain and/or multiple
outcomes are related.
. Decision Table: Decision Table is just a tabular representation of all conditions and actions.
Decision Trees are always used whenever the processing logic is very complicated and involves
multiple conditions. The main components used for the formation of the Data Table are Conditions
Stubs, Action Stubs, and rules.
Types of decision tables:
•Extended entry table
•Limited entry table
Benefits:
•Visualization of Cause and effect relationships in the table.
•Easy to understand
•In the case of a complex table, it can be readily broken down into simpler tables.
•Tables are formatted consistently.
•Suggestions of possible actions need to be taken from the summarized outcomes of a situation.
•In these tables, semi-standardized languages might be used.
•Table users are not necessarily know how to use a computer.
Drawbacks:
•Decision tables are not well suited to large-scale applications. There is a requirement of splitting huge
tables into smaller ones to eliminate redundancy.
•The complete sequence of actions is not reflected in the decision tables.
•A partial solution is presented.
Testing and Implementation Testing
Testing Software Testing is the process of executing a program or system with the intent of finding errors.
The scope of software testing often includes examination of code as well as execution of that code in various
environments and conditions. Testing stages of the project can be explained as below and system was
tested for all these stages.
● Component or unit testing - Individual components are tested independently; - Components may be
functions or objects or coherent groupings of these entities.
● System testing - Testing of the system as a whole. Testing of emergent properties is particularly important.
● Acceptance testing - Testing with customer data to check that the system meets the customer’s needs
Black Box Testing
Black Box Testing is testing without the knowledge of the internal workings of the item being tested. When
black box testing is applied to software engineering, the tester selects valid and invalid input and what the
expected outputs should be, but not how the program actually arrives at those outputs. Black box testing
methods include equivalence partitioning, boundary value analysis, all-pairs testing, fuzz testing, model-
based testing, traceability matrix, exploratory testing and specification-based testing. This method of test
design is applicable to all levels of software testing: unit, integration, functional testing, system and
acceptance. Black box testing is a type of software testing in which the functionality of the software is not
known. The testing is done without the internal knowledge of the products.
Black Box Testing Type
The following are the several categories of black box testing:
1.Functional Testing
2.Regression Testing
3.Nonfunctional Testing (NFT)
Functional Testing: It determines the system’s software functional requirements.
Regression Testing: It ensures that the newly added code is compatible with the existing code. In other
words, a new software update has no impact on the functionality of the software. This is carried out after a
system maintenance operation and upgrades.
Nonfunctional Testing:Nonfunctional testing is also known as NFT. This testing is not functional testing o
Advantages of Black Box Testing:
•The tester does not need to have more functional knowledge or programming skills to implement the Black
Box Testing.
•It is efficient for implementing the tests in the larger system.
•Tests are executed from the user’s or client’s point of view.
•Test cases are easily reproducible.
•It is used in finding the ambiguity and contradictions in the functional specifications.
Disadvantages of Black Box Testing:
•There is a possibility of repeating the same tests while implementing the testing process.
•Without clear functional specifications, test cases are difficult to implement.
•It is difficult to execute the test cases because of complex inputs at different stages of testing.
•Sometimes, the reason for the test failure cannot be detected.
•Some programs in the application are not tested.
•It does not reveal the errors in the control structure.
•Working with a large sample space of inputs can be exhaustive and consumes a lot of time.
White Box Testing
White box testing (glass box testing) strategy deals with the internal data structures and algorithms. The tests
written based on the white box testing strategy incorporate coverage of the code written, branches, paths,
statements and internal logic of the code etc. These testers require programming skills to identify all paths through
the software. Types of white box testing includes code coverage ( creating tests to satisfy some criteria of code
coverage.),mutation testing methods, fault injection methods, static testing. White box testing techniques analyze
the internal structures the used data structures, internal design, code structure and the working of the software
rather than just the functionality as in black box testing. It is also called glass box testing or clear box testing or
structural testing.
Working process of white box testing:
•Input: Requirements, Functional specifications, design documents, source code.
•Processing: Performing risk analysis for guiding through the entire process.
•Proper test planning: Designing test cases so as to cover entire code. Execute rinse-repeat until error-free
software is reached. Also, the results are communicated.
•Output: Preparing final report of the entire testing process.
Advantages:
1.White box testing is very thorough as the entire code and structures are tested.
2.It results in the optimization of code removing error and helps in removing extra lines of code.
3.It can start at an earlier stage as it doesn’t require any interface as in case of black box testing.
4.Easy to automate.
Disadvantages:
1.Main disadvantage is that it is very expensive.
2.Redesign of code and rewriting code needs test cases to be written again.
3.Testers are required to have in-depth knowledge of the code and programming language as opposed to black
box testing.
4.Missing functionalities cannot be detected as the code that exists is tested.
5.Very complex and at times not realistic.
Comparison - Black Box Testing Vs White Box Testing
. No. Black Box Testing White Box Testing
1.
It is a way of software testing in which the internal structure or the program or the code is hidden
and nothing is known about it.
It is a way of testing the software in which the tester has
knowledge about the internal structure or the code or the
program of the software.
2. Implementation of code is not needed for black box testing. Code implementation is necessary for white box testing.
3. It is mostly done by software testers. It is mostly done by software developers.
4. No knowledge of implementation is needed. Knowledge of implementation is required.
5. It can be referred to as outer or external software testing. It is the inner or the internal software testing.
6. It is a functional test of the software. It is a structural test of the software.
7. This testing can be initiated based on the requirement specifications document.
This type of testing of software is started after a detail
design document.
8. No knowledge of programming is required. It is mandatory to have knowledge of programming.
9. It is the behavior testing of the software. It is the logic testing of the software.
10. It is applicable to the higher levels of testing of software.
It is generally applicable to the lower levels of software
testing.
11. It is also called closed testing. It is also called as clear box testing.
12. It is least time consuming. It is most time consuming.
13. It is not suitable or preferred for algorithm testing. It is suitable for algorithm testing.
14. Can be done by trial and error ways and methods.
Data domains along with inner or internal boundaries can
be better tested.
15. Example: Search something on google by using keywords Example: By input to check and verify loops
Types of Testing
Unit Testing is a type of software testing where individual units or components of a software are tested.
The purpose is to validate that each unit of the software code performs as expected. Unit Testing is done
during the development (coding phase) of an application by the developers. Unit Tests isolate a section of
code and verify its correctness. A unit may be an individual function, method, procedure, module, or object.
Unit testing is first level of testing done before integration testing. Unit testing is a WhiteBox testing
technique that is usually performed by the developer. Though, in a practical world due to time crunch or
reluctance of developers to tests, QA engineers also do unit testing.
Why perform Unit Testing?
Unit Testing is important because software developers sometimes try saving time doing minimal unit
testing and this is myth because inappropriate unit testing leads to high cost Defect fixing during System
Testing, Integration Testing and even Beta Testing after application is built. If proper unit testing is done in
early development, then it saves time and money in the end.
1.Unit tests help to fix bugs early in the development cycle and save costs.
2.It helps the developers to understand the testing code base and enables them to make changes quickly
3.Good unit tests serve as project documentation
4.Unit tests help with code re-use. Migrate both your code and your tests to your new project. Tweak the
code until the tests run again.
Unit Testing Advantage
•Developers looking to learn what functionality is provided by a unit and how to use it can look at the unit
tests to gain a basic understanding of the unit API.
•Unit testing allows the programmer to refactor code at a later date, and make sure the module still works
correctly (i.e. Regression testing). The procedure is to write test cases for all functions and methods so
that whenever a change causes a fault, it can be quickly identified and fixed.
•Due to the modular nature of the unit testing, we can test parts of the project without waiting for others to
be completed.
Unit Testing Disadvantages
•Unit testing can’t be expected to catch every error in a program. It is not possible to evaluate all
execution paths even in the most trivial programs.
•Unit testing by its very nature focuses on a unit of code. Hence it can’t catch integration errors or broad
system level errors.
What is Integration Testing?
Integration Testing is defined as a type of testing where software modules are integrated logically
and tested as a group. A typical software project consists of multiple software modules, coded by
different programmers. The purpose of this level of testing is to expose defects in the interaction
between these software modules when they are integrated
Types of Integration Testing
Software Engineering defines variety of strategies to execute Integration testing, viz.
• Big Bang Approach :
• Incremental Approach: which is further divided into the following
• Top Down Approach
• Bottom Up Approach
• Sandwich Approach – Combination of Top Down and Bottom U
Big Bang Testing
Big Bang Testing is an Integration testing approach in which all the components or modules are integrated
together at once and then tested as a unit. This combined set of components is considered as an entity while
testing. If all of the components in the unit are not completed, the integration process will not execute.
Advantages:
•Convenient for small systems.
Disadvantages:
•Fault Localization is difficult.
•Given the sheer number of interfaces that need to be tested in this approach, some interfaces link to be
tested could be missed easily.
•Since the Integration testing can commence only after “all” the modules are designed, the testing team will
have less time for execution in the testing phase.
•Since all modules are tested at once, high-risk critical modules are not isolated and tested on priority.
Peripheral modules which deal with user interfaces are also not isolated and tested on priority.
Incremental Testing
In the Incremental Testing approach, testing is done by integrating two or more modules that are logically
related to each other and then tested for proper functioning of the application. Then the other related modules
are integrated incrementally and the process continues until all the logically related modules are integrated
and tested successfully.
Incremental Approach, in turn, is carried out by two different Methods:
•Bottom Up
•Top Down
Bottom-up Integration Testing
Bottom-up Integration Testing is a strategy in which the lower level modules are tested first. These tested
modules are then further used to facilitate the testing of higher level modules. The process continues until
all modules at top level are tested. Once the lower level modules are tested and integrated, then the next
level of modules are formed.
Advantages:
•Fault localization is easier.
•No time is wasted waiting for all modules to be developed unlike Big-bang approach
Disadvantages:
•Critical modules (at the top level of software architecture) which control the flow of application are tested last
and may be prone to defects.
•An early prototype is not possible
Top-down Integration Testing
Top Down Integration Testing is a method in which integration testing takes place from top to bottom
following the control flow of software system. The higher level modules are tested first and then lower level
modules are tested and integrated in order to check the software functionality. Stubs are used for testing if
some modules are not ready.
Advantages:
•Fault Localization is easier.
•Possibility to obtain an early prototype.
•Critical Modules are tested on priority; major design flaws could be found and fixed first.
Disadvantages:
•Needs many Stubs.
•Modules at a lower level are tested inadequately.
Testing Strategies in Software Engineering
Here are important strategies in software engineering:
Unit Testing: This software testing basic approach is followed by the programmer to test the unit of the
program. It helps developers to know whether the individual unit of the code is working properly or not.
Integration testing: It focuses on the construction and design of the software. You need to see that the
integrated units are working without errors or not.
System testing: In this method, your software is compiled as a whole and then tested as a whole. This
testing strategy checks the functionality, security, portability, amongst others.
Program Testing
Program Testing in software testing is a method of executing an actual software program with the aim of
testing program behavior and finding errors. The software program is executed with test case data to analyse
the program behavior or response to the test data. A good program testing is one which has high chances of
finding bugs.
What are the benefits of Software Testing?
•Cost-Effective: It is one of the important advantages of software testing. Testing any IT project on time
helps you to save your money for the long term. In case if the bugs caught in the earlier stage of software
testing, it costs less to fix.
•Security: It is the most vulnerable and sensitive benefit of software testing. People are looking for
trusted products. It helps in removing risks and problems earlier.
•Product quality: It is an essential requirement of any software product. Testing ensures a quality
product is delivered to customers.
•Customer Satisfaction: The main aim of any product is to give satisfaction to their customers. UI/UX
Testing ensures the best user experience
The different types of tests
1. Unit tests
Unit tests are very low level and close to the source of an application. They consist in testing individual
methods and functions of the classes, components, or modules used by your software. Unit tests are
generally quite cheap to automate and can run very quickly by a continuous integration server.
2. Integration tests
Integration tests verify that different modules or services used by your application work well together. For
example, it can be testing the interaction with the database or making sure that micro services work together
as expected. These types of tests are more expensive to run as they require multiple parts of the application
to be up and running.
3. Functional tests
Functional tests focus on the business requirements of an application. They only verify the output of an
action and do not check the intermediate states of the system when performing that action.
There is sometimes a confusion between integration tests and functional tests as they both require multiple
components to interact with each other. The difference is that an integration test may simply verify that you
can query the database while a functional test would expect to get a specific value from the database as
defined by the product requirements.
4. End-to-end tests
End-to-end testing replicates a user behavior with the software in a complete application environment. It verifies
that various user flows work as expected and can be as simple as loading a web page or logging in or much
more complex scenarios verifying email notifications, online payments, etc...
End-to-end tests are very useful, but they're expensive to perform and can be hard to maintain when they're
automated. It is recommended to have a few key end-to-end tests and rely more on lower level types of testing
(unit and integration tests) to be able to quickly identify breaking changes.
5. Acceptance testing
Acceptance tests are formal tests that verify if a system satisfies business requirements. They require the entire
application to be running while testing and focus on replicating user behaviors. But they can also go further and
measure the performance of the system and reject changes if certain goals are not met.
6. Performance testing
Performance tests evaluate how a system performs under a particular workload. These tests help to measure
the reliability, speed, scalability, and responsiveness of an application. For instance, a performance test can
observe response times when executing a high number of requests, or determine how a system behaves with a
significant amount of data. It can determine if an application meets performance requirements, locate
bottlenecks, measure stability during peak traffic, and more.
Thank You

More Related Content

Similar to SDLC

a123.pdf
a123.pdfa123.pdf
a123.pdfAhTh3
 
2 System development life cycle has six stages of creating a sys.docx
2 System development life cycle has six stages of creating a sys.docx2 System development life cycle has six stages of creating a sys.docx
2 System development life cycle has six stages of creating a sys.docxtamicawaysmith
 
System Development Life_IntroductionCycle.pdf
System Development Life_IntroductionCycle.pdfSystem Development Life_IntroductionCycle.pdf
System Development Life_IntroductionCycle.pdfpncitechnologies
 
Software Development Life Cycle (SDLC).pptx
Software Development Life Cycle (SDLC).pptxSoftware Development Life Cycle (SDLC).pptx
Software Development Life Cycle (SDLC).pptxsandhyakiran10
 
Requirement Analysis
Requirement AnalysisRequirement Analysis
Requirement AnalysisSADEED AMEEN
 
Computer Studies POWERPOINT.pptx
Computer Studies POWERPOINT.pptxComputer Studies POWERPOINT.pptx
Computer Studies POWERPOINT.pptxMemoryIhemba
 
Cibm workshop2 chapter ten
Cibm  workshop2 chapter tenCibm  workshop2 chapter ten
Cibm workshop2 chapter tenShaheen Khan
 
Expert system (unit 1 & 2)
Expert system (unit 1 & 2)Expert system (unit 1 & 2)
Expert system (unit 1 & 2)Lakshya Gupta
 
CH01_Foundation of Systems Development.pptx
CH01_Foundation of Systems Development.pptxCH01_Foundation of Systems Development.pptx
CH01_Foundation of Systems Development.pptxNoharaShinnosuke2
 
Hsc project management 2015
Hsc project management 2015Hsc project management 2015
Hsc project management 2015greg robertson
 
Hi600 m1 u1_part1_instslides
Hi600 m1 u1_part1_instslidesHi600 m1 u1_part1_instslides
Hi600 m1 u1_part1_instslidesljmcneill33
 

Similar to SDLC (20)

a123.pdf
a123.pdfa123.pdf
a123.pdf
 
2 System development life cycle has six stages of creating a sys.docx
2 System development life cycle has six stages of creating a sys.docx2 System development life cycle has six stages of creating a sys.docx
2 System development life cycle has six stages of creating a sys.docx
 
System Development Life_IntroductionCycle.pdf
System Development Life_IntroductionCycle.pdfSystem Development Life_IntroductionCycle.pdf
System Development Life_IntroductionCycle.pdf
 
Sdlc1
Sdlc1Sdlc1
Sdlc1
 
Software Development Life Cycle (SDLC).pptx
Software Development Life Cycle (SDLC).pptxSoftware Development Life Cycle (SDLC).pptx
Software Development Life Cycle (SDLC).pptx
 
22-REQUIREMENT.ppt
22-REQUIREMENT.ppt22-REQUIREMENT.ppt
22-REQUIREMENT.ppt
 
unit2.pptx
unit2.pptxunit2.pptx
unit2.pptx
 
Requirement Analysis
Requirement AnalysisRequirement Analysis
Requirement Analysis
 
Presentation2
Presentation2Presentation2
Presentation2
 
SDLC
SDLCSDLC
SDLC
 
Computer Studies POWERPOINT.pptx
Computer Studies POWERPOINT.pptxComputer Studies POWERPOINT.pptx
Computer Studies POWERPOINT.pptx
 
Development Guideline
Development GuidelineDevelopment Guideline
Development Guideline
 
Cibm workshop2 chapter ten
Cibm  workshop2 chapter tenCibm  workshop2 chapter ten
Cibm workshop2 chapter ten
 
Expert system (unit 1 & 2)
Expert system (unit 1 & 2)Expert system (unit 1 & 2)
Expert system (unit 1 & 2)
 
CH01_Foundation of Systems Development.pptx
CH01_Foundation of Systems Development.pptxCH01_Foundation of Systems Development.pptx
CH01_Foundation of Systems Development.pptx
 
Concepts of information system
Concepts of information systemConcepts of information system
Concepts of information system
 
Chap05
Chap05Chap05
Chap05
 
Hsc project management 2015
Hsc project management 2015Hsc project management 2015
Hsc project management 2015
 
Ch12
Ch12Ch12
Ch12
 
Hi600 m1 u1_part1_instslides
Hi600 m1 u1_part1_instslidesHi600 m1 u1_part1_instslides
Hi600 m1 u1_part1_instslides
 

Recently uploaded

Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxvipinkmenon1
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxPoojaBan
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)dollysharma2066
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 

Recently uploaded (20)

Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptx
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 

SDLC

  • 1. System development life cycle UNIT – IV
  • 2. An effective System Development Life Cycle (SDLC) should result in a high quality system that meets customer expectations, reaches completion within time and cost evaluations, and works effectively and efficiently in the current and planned Information Technology infrastructure. System Development Life Cycle (SDLC) is a conceptual model which includes policies and procedures for developing or altering systems throughout their life cycles. SDLC is used by analysts to develop an information system. SDLC includes the following activities − •requirements •design •implementation •testing •deployment •operations •maintenance
  • 3. Phases of SDLC Systems Development Life Cycle is a systematic approach which explicitly breaks down the work into phases that are required to implement either new or modified Information System.
  • 4. Feasibility Study or Planning •Define the problem and scope of existing system. •Overview the new system and determine its objectives. •Confirm project feasibility and produce the project Schedule. •During this phase, threats, constraints, integration and security of system are also considered. •A feasibility report for the entire project is created at the end of this phase.
  • 5. Analysis and Specification •Gather, analyze, and validate the information. •Define the requirements and prototypes for new system. •Evaluate the alternatives and prioritize the requirements. •Examine the information needs of end-user and enhances the system goal. •A Software Requirement Specification (SRS) document, which specifies the software, hardware, functional, and network requirements of the system is prepared at the end of this phase.
  • 6. System Design •Includes the design of application, network, databases, user interfaces, and system interfaces. •Transform the SRS document into logical structure, which contains detailed and complete set of specifications that can be implemented in a programming language. •Create a contingency, training, maintenance, and operation plan. •Review the proposed design. Ensure that the final design must meet the requirements stated in SRS document. •Finally, prepare a design document which will be used during next phases.
  • 7. Implementation •Implement the design into source code through coding. •Combine all the modules together into training environment that detects errors and defects. •A test report which contains errors is prepared through test plan that includes test related tasks such as test case generation, testing criteria, and resource allocation for testing. •Integrate the information system into its environment and install the new system.
  • 8. Maintenance/Support •Include all the activities such as phone support or physical on-site support for users that is required once the system is installing. •Implement the changes that software might undergo over a period of time, or implement any new requirements after the software is deployed at the customer location. •It also includes handling the residual errors and resolve any issues that may exist in the system even after the testing phase. •Maintenance and support may be needed for a longer time for large systems and for a short time for smaller systems.
  • 9. Life Cycle of System Analysis and Design The following diagram shows the complete life cycle of the system during analysis and design phase.
  • 10. InformationGathering Techniques The main aim of fact finding techniques is to determine the information requirements of an organization used by analysts to prepare a precise SRS understood by user. Ideal SRS Document should − •be complete, Unambiguous, and Jargon-free. •specify operational, tactical, and strategic information requirements. •solve possible disputes between users and analyst. •use graphical aids which simplify understanding and design.
  • 11. There are various information gathering techniques − • Interviewing Systems analyst collects information from individuals or groups by interviewing. The analyst can be formal, legalistic, play politics, or be informal; as the success of an interview depends on the skill of analyst as interviewer. It can be done in two ways − •Unstructured Interview − The system analyst conducts question-answer session to acquire basic information of the system. •Structured Interview − It has standard questions which user need to respond in either close (objective) or open (descriptive) format.
  • 12. Advantages of Interviewing •This method is frequently the best source of gathering qualitative information. •It is useful for them, who do not communicate effectively in writing or who may not have the time to complete questionnaire. •Information can easily be validated and cross checked immediately. •It can handle the complex subjects. •It is easy to discover key problem by seeking opinions. •It bridges the gaps in the areas of misunderstandings and minimizes future problems.
  • 13. Questionnaires This method is used by analyst to gather information about various issues of system from large number of persons. There are two types of questionnaires − •Open-ended Questionnaires − It consists of questions that can be easily and correctly interpreted. They can explore a problem and lead to a specific direction of answer. •Closed-ended Questionnaires − It consists of questions that are used when the systems analyst effectively lists all possible responses, which are mutually exclusive.
  • 14. Advantages of questionnaires •It is very effective in surveying interests, attitudes, feelings, and beliefs of users which are not co-located. •It is useful in situation to know what proportion of a given group approves or disapproves of a particular feature of the proposed system. •It is useful to determine the overall opinion before giving any specific direction to the system project. •It is more reliable and provides high confidentiality of honest responses. •It is appropriate for electing factual information and for statistical data collection which can be emailed and sent by post.
  • 15. Review of Records, Procedures, and Forms Review of existing records, procedures, and forms helps to seek insight into a system which describes the current system capabilities, its operations, or activities. Advantages •It helps user to gain some knowledge about the organization or operations by themselves before they impose upon others. •It helps in documenting current operations within short span of time as the procedure manuals and forms describe the format and functions of present system. •It can provide a clear understanding about the transactions that are handled in the organization, identifying input for processing, and evaluating performance. •It can help an analyst to understand the system in terms of the operations that must be supported. •It describes the problem, its affected parts, and the proposed solution.
  • 16. Observation This is a method of gathering information by noticing and observing the people, events, and objects. The analyst visits the organization to observe the working of current system and understands the requirements of the system. Advantages •It is a direct method for gleaning information. •It is useful in situation where authenticity of data collected is in question or when complexity of certain aspects of system prevents clear explanation by end-users. •It produces more accurate and reliable data. •It produces all the aspect of documentation that are incomplete and outdated.
  • 17. System Analysis & Design - System Planning Systems development is systematic process which includes phases such as planning, analysis, design, deployment, and maintenance. Here, in this tutorial, we will primarily focus on − •Systems analysis •Systems design Systems Analysis It is a process of collecting and interpreting facts, identifying the problems, and decomposition of a system into its components. System analysis is conducted for the purpose of studying a system or its parts in order to identify its objectives. It is a problem solving technique that improves the system and ensures that all the components of the system work efficiently to accomplish their purpose. Analysis specifies what the system should do.
  • 18. Systems Design It is a process of planning a new business system or replacing an existing system by defining its components or modules to satisfy the specific requirements. Before planning, you need to understand the old system thoroughly and determine how computers can best be used in order to operate efficiently. System Design focuses on how to accomplish the objective of the system. System Analysis and Design (SAD) mainly focuses on − •Systems •Processes •Technology
  • 19. What is a System? The word System is derived from Greek word Systema, which means an organized relationship between any set of components to achieve some common cause or objective. A system is “an orderly grouping of interdependent components linked together according to a plan to achieve a specific goal.” Constraints of a System A system must have three basic constraints − •A system must have some structure and behavior which is designed to achieve a predefined objective. •Interconnectivity and interdependence must exist among the system components. •The objectives of the organization have a higher priority than the objectives of its subsystems.
  • 20. Properties of a System A system has the following properties − Organization • Organization implies structure and order. It is the arrangement of components that helps to achieve predetermined objectives. • Interaction It is defined by the manner in which the components operate with each other. For example, in an organization, purchasing department must interact with production department and payroll with personnel department. • Interdependence Interdependence means how the components of a system depend on one another. For proper functioning, the components are coordinated and linked together according to a specified plan. The output of one subsystem is the required by other subsystem as input. • Integration Integration is concerned with how a system components are connected together. It means that the parts of the system work together within the system even if each part performs a unique function.
  • 21. Objective The objective of system must be central. It may be real or stated. It is not uncommon for an organization to state an objective and operate to achieve another. The users must know the main objective of a computer application early in the analysis for a successful design and conversion. Elements of a System The following diagram shows the elements of a system −
  • 22. Feasibility Study Feasibility Study can be considered as preliminary investigation that helps the management to take decision about whether study of system should be feasible for development or not. •It identifies the possibility of improving an existing system, developing a new system, and produce refined estimates for further development of system. •It is used to obtain the outline of the problem and decide whether feasible or appropriate solution exists or not. •The main objective of a feasibility study is to acquire problem scope instead of solving the problem. •The output of a feasibility study is a formal system proposal act as decision document which includes the complete nature and scope of the proposed system.
  • 23. Steps Involved in Feasibility Analysis The following steps are to be followed while performing feasibility analysis − •Form a project team and appoint a project leader. •Develop system flowcharts. •Identify the deficiencies of current system and set goals. •Enumerate the alternative solution or potential candidate system to meet goals. •Determine the feasibility of each alternative such as technical feasibility, operational feasibility, etc. •Weight the performance and cost effectiveness of each candidate system. •Rank the other alternatives and select the best candidate system. •Prepare a system proposal of final project directive to management for approval.
  • 24. Role of System Analyst The system analyst is a person who is thoroughly aware of the system and guides the system development project by giving proper directions. He is an expert having technical and interpersonal skills to carry out development tasks required at each phase. He pursues to match the objectives of information system with the organization goal. Main Roles •Defining and understanding the requirement of user through various Fact finding techniques. •Prioritizing the requirements by obtaining user consensus. •Gathering the facts or information and acquires the opinions of users. •Maintains analysis and evaluation to arrive at appropriate system which is more user friendly. •Suggests many flexible alternative solutions, pick the best solution, and quantify cost and benefits. •Draw certain specifications which are easily understood by users and programmer in precise and detailed form. •Implemented the logical design of system which must be modular. •Plan the periodicity for evaluation after it has been used for some time, and modify the system as needed.
  • 25. Data Flow Diagram Data flow diagram is graphical representation of flow of data in an information system. It is capable of depicting incoming data flow, outgoing data flow and stored data. The DFD does not mention anything about how data flows through the system. There is a prominent difference between DFD and Flowchart. The flowchart depicts flow of control in program modules. DFDs depict flow of data in the system at various levels. DFD does not contain any control or branch elements. Types of DFD Data Flow Diagrams are either Logical or Physical. •Logical DFD - This type of DFD concentrates on the system process, and flow of data in the system.For example in a Banking software system, how data is moved between different entities. •Physical DFD - This type of DFD shows how the data flow is actually implemented in the system. It is more specific and close to the implementation.
  • 26. DFD Components DFD can represent Source, destination, storage and flow of data using the following set of components - •Entities - Entities are source and destination of information data. Entities are represented by a rectangles with their respective names. •Process - Activities and action taken on the data are represented by Circle or Round-edged rectangles. •Data Storage - There are two variants of data storage - it can either be represented as a rectangle with absence of both smaller sides or as an open-sided rectangle with only one side missing. •Data Flow - Movement of data is shown by pointed arrows. Data movement is shown from the base of arrow as its source towards head of the arrow as destination.
  • 27. Entity-Relationship Model Entity-Relationship model is a type of database model based on the notion of real world entities and relationship among them. We can map real world scenario onto ER database model. ER Model creates a set of entities with their attributes, a set of constraints and relation among them. ER Model is best used for the conceptual design of database. ER Model can be represented as follows :
  • 28. •Entity - An entity in ER Model is a real world being, which has some properties called attributes. Every attribute is defined by its corresponding set of values, called domain. •For example, Consider a school database. Here, a student is an entity. Student has various attributes like name, id, age and class etc. •Relationship - The logical association among entities is called relationship. Relationships are mapped with entities in various ways. Mapping cardinalities define the number of associations between two entities. •Mapping cardinalities: • one to one • one to many • many to one • many to many
  • 29. Data Dictionary Data dictionary is the centralized collection of information about data. It stores meaning and origin of data, its relationship with other data, data format for usage etc. Data dictionary has rigorous definitions of all names in order to facilitate user and software designers. Data dictionary is often referenced as meta-data (data about data) repository. It is created along with DFD (Data Flow Diagram) model of software program and is expected to be updated whenever DFD is changed or updated. Requirement of Data Dictionary The data is referenced via data dictionary while designing and implementing software. Data dictionary removes any chances of ambiguity. It helps keeping work of programmers and designers synchronized while using same object reference everywhere in the program. Data dictionary provides a way of documentation for the complete database system in one place. Validation of DFD is carried out using data dictionary. Contents Data dictionary should contain information about the following Data Flow Data Structure Data Elements Data Stores Data Processing
  • 30. A Decision Tree offers a graphic read of the processing logic concerned in a higher cognitive process and therefore the corresponding actions are taken. The perimeters of a choice tree represent conditions and therefore the leaf nodes represent the actions to be performed looking at the result of testing the condition. Decision Tree A decision tree is a graph that always uses a branching method in order to demonstrate all the possible outcomes of any decision. Decision Trees are graphical and show a better representation of decision outcomes. It consists of three nodes namely Decision Nodes, Chance Nodes, and Terminal Nodes. Types of the decision tree: •Categorical variable decision tree •Continuous variable decision tree
  • 31. Benefits: •A decision tree is simple to comprehend and use. •New scenarios are simple to add. •Can be combined with other decision-making methods. •Handling of both numerical and categorial variables •The classification does not require many computations. •Useful in analyzing and solving various business problems. Drawbacks: •They are inherently unstable, which means that a slight change in the data can have a result in a change in the structure of the optimal decision tree, and they are frequently wrong. •These are less suitable for estimation tasks where the outcome required is the value of a continuous variable. •The alternative options perform better with the same data. A random forest of decision trees can be used as a replacement but it is not as straightforward to comprehend as a single decision tree. •Calculations can become quite complicated, especially when several values are uncertain and/or multiple outcomes are related.
  • 32. . Decision Table: Decision Table is just a tabular representation of all conditions and actions. Decision Trees are always used whenever the processing logic is very complicated and involves multiple conditions. The main components used for the formation of the Data Table are Conditions Stubs, Action Stubs, and rules. Types of decision tables: •Extended entry table •Limited entry table
  • 33. Benefits: •Visualization of Cause and effect relationships in the table. •Easy to understand •In the case of a complex table, it can be readily broken down into simpler tables. •Tables are formatted consistently. •Suggestions of possible actions need to be taken from the summarized outcomes of a situation. •In these tables, semi-standardized languages might be used. •Table users are not necessarily know how to use a computer. Drawbacks: •Decision tables are not well suited to large-scale applications. There is a requirement of splitting huge tables into smaller ones to eliminate redundancy. •The complete sequence of actions is not reflected in the decision tables. •A partial solution is presented.
  • 34. Testing and Implementation Testing Testing Software Testing is the process of executing a program or system with the intent of finding errors. The scope of software testing often includes examination of code as well as execution of that code in various environments and conditions. Testing stages of the project can be explained as below and system was tested for all these stages. ● Component or unit testing - Individual components are tested independently; - Components may be functions or objects or coherent groupings of these entities. ● System testing - Testing of the system as a whole. Testing of emergent properties is particularly important. ● Acceptance testing - Testing with customer data to check that the system meets the customer’s needs
  • 35. Black Box Testing Black Box Testing is testing without the knowledge of the internal workings of the item being tested. When black box testing is applied to software engineering, the tester selects valid and invalid input and what the expected outputs should be, but not how the program actually arrives at those outputs. Black box testing methods include equivalence partitioning, boundary value analysis, all-pairs testing, fuzz testing, model- based testing, traceability matrix, exploratory testing and specification-based testing. This method of test design is applicable to all levels of software testing: unit, integration, functional testing, system and acceptance. Black box testing is a type of software testing in which the functionality of the software is not known. The testing is done without the internal knowledge of the products.
  • 36. Black Box Testing Type The following are the several categories of black box testing: 1.Functional Testing 2.Regression Testing 3.Nonfunctional Testing (NFT) Functional Testing: It determines the system’s software functional requirements. Regression Testing: It ensures that the newly added code is compatible with the existing code. In other words, a new software update has no impact on the functionality of the software. This is carried out after a system maintenance operation and upgrades. Nonfunctional Testing:Nonfunctional testing is also known as NFT. This testing is not functional testing o
  • 37. Advantages of Black Box Testing: •The tester does not need to have more functional knowledge or programming skills to implement the Black Box Testing. •It is efficient for implementing the tests in the larger system. •Tests are executed from the user’s or client’s point of view. •Test cases are easily reproducible. •It is used in finding the ambiguity and contradictions in the functional specifications. Disadvantages of Black Box Testing: •There is a possibility of repeating the same tests while implementing the testing process. •Without clear functional specifications, test cases are difficult to implement. •It is difficult to execute the test cases because of complex inputs at different stages of testing. •Sometimes, the reason for the test failure cannot be detected. •Some programs in the application are not tested. •It does not reveal the errors in the control structure. •Working with a large sample space of inputs can be exhaustive and consumes a lot of time.
  • 38. White Box Testing White box testing (glass box testing) strategy deals with the internal data structures and algorithms. The tests written based on the white box testing strategy incorporate coverage of the code written, branches, paths, statements and internal logic of the code etc. These testers require programming skills to identify all paths through the software. Types of white box testing includes code coverage ( creating tests to satisfy some criteria of code coverage.),mutation testing methods, fault injection methods, static testing. White box testing techniques analyze the internal structures the used data structures, internal design, code structure and the working of the software rather than just the functionality as in black box testing. It is also called glass box testing or clear box testing or structural testing.
  • 39. Working process of white box testing: •Input: Requirements, Functional specifications, design documents, source code. •Processing: Performing risk analysis for guiding through the entire process. •Proper test planning: Designing test cases so as to cover entire code. Execute rinse-repeat until error-free software is reached. Also, the results are communicated. •Output: Preparing final report of the entire testing process.
  • 40. Advantages: 1.White box testing is very thorough as the entire code and structures are tested. 2.It results in the optimization of code removing error and helps in removing extra lines of code. 3.It can start at an earlier stage as it doesn’t require any interface as in case of black box testing. 4.Easy to automate. Disadvantages: 1.Main disadvantage is that it is very expensive. 2.Redesign of code and rewriting code needs test cases to be written again. 3.Testers are required to have in-depth knowledge of the code and programming language as opposed to black box testing. 4.Missing functionalities cannot be detected as the code that exists is tested. 5.Very complex and at times not realistic.
  • 41. Comparison - Black Box Testing Vs White Box Testing . No. Black Box Testing White Box Testing 1. It is a way of software testing in which the internal structure or the program or the code is hidden and nothing is known about it. It is a way of testing the software in which the tester has knowledge about the internal structure or the code or the program of the software. 2. Implementation of code is not needed for black box testing. Code implementation is necessary for white box testing. 3. It is mostly done by software testers. It is mostly done by software developers. 4. No knowledge of implementation is needed. Knowledge of implementation is required. 5. It can be referred to as outer or external software testing. It is the inner or the internal software testing. 6. It is a functional test of the software. It is a structural test of the software. 7. This testing can be initiated based on the requirement specifications document. This type of testing of software is started after a detail design document. 8. No knowledge of programming is required. It is mandatory to have knowledge of programming. 9. It is the behavior testing of the software. It is the logic testing of the software. 10. It is applicable to the higher levels of testing of software. It is generally applicable to the lower levels of software testing. 11. It is also called closed testing. It is also called as clear box testing. 12. It is least time consuming. It is most time consuming. 13. It is not suitable or preferred for algorithm testing. It is suitable for algorithm testing. 14. Can be done by trial and error ways and methods. Data domains along with inner or internal boundaries can be better tested. 15. Example: Search something on google by using keywords Example: By input to check and verify loops
  • 42. Types of Testing Unit Testing is a type of software testing where individual units or components of a software are tested. The purpose is to validate that each unit of the software code performs as expected. Unit Testing is done during the development (coding phase) of an application by the developers. Unit Tests isolate a section of code and verify its correctness. A unit may be an individual function, method, procedure, module, or object. Unit testing is first level of testing done before integration testing. Unit testing is a WhiteBox testing technique that is usually performed by the developer. Though, in a practical world due to time crunch or reluctance of developers to tests, QA engineers also do unit testing. Why perform Unit Testing? Unit Testing is important because software developers sometimes try saving time doing minimal unit testing and this is myth because inappropriate unit testing leads to high cost Defect fixing during System Testing, Integration Testing and even Beta Testing after application is built. If proper unit testing is done in early development, then it saves time and money in the end.
  • 43. 1.Unit tests help to fix bugs early in the development cycle and save costs. 2.It helps the developers to understand the testing code base and enables them to make changes quickly 3.Good unit tests serve as project documentation 4.Unit tests help with code re-use. Migrate both your code and your tests to your new project. Tweak the code until the tests run again.
  • 44. Unit Testing Advantage •Developers looking to learn what functionality is provided by a unit and how to use it can look at the unit tests to gain a basic understanding of the unit API. •Unit testing allows the programmer to refactor code at a later date, and make sure the module still works correctly (i.e. Regression testing). The procedure is to write test cases for all functions and methods so that whenever a change causes a fault, it can be quickly identified and fixed. •Due to the modular nature of the unit testing, we can test parts of the project without waiting for others to be completed. Unit Testing Disadvantages •Unit testing can’t be expected to catch every error in a program. It is not possible to evaluate all execution paths even in the most trivial programs. •Unit testing by its very nature focuses on a unit of code. Hence it can’t catch integration errors or broad system level errors.
  • 45. What is Integration Testing? Integration Testing is defined as a type of testing where software modules are integrated logically and tested as a group. A typical software project consists of multiple software modules, coded by different programmers. The purpose of this level of testing is to expose defects in the interaction between these software modules when they are integrated
  • 46. Types of Integration Testing Software Engineering defines variety of strategies to execute Integration testing, viz. • Big Bang Approach : • Incremental Approach: which is further divided into the following • Top Down Approach • Bottom Up Approach • Sandwich Approach – Combination of Top Down and Bottom U
  • 47. Big Bang Testing Big Bang Testing is an Integration testing approach in which all the components or modules are integrated together at once and then tested as a unit. This combined set of components is considered as an entity while testing. If all of the components in the unit are not completed, the integration process will not execute. Advantages: •Convenient for small systems. Disadvantages: •Fault Localization is difficult. •Given the sheer number of interfaces that need to be tested in this approach, some interfaces link to be tested could be missed easily. •Since the Integration testing can commence only after “all” the modules are designed, the testing team will have less time for execution in the testing phase. •Since all modules are tested at once, high-risk critical modules are not isolated and tested on priority. Peripheral modules which deal with user interfaces are also not isolated and tested on priority.
  • 48. Incremental Testing In the Incremental Testing approach, testing is done by integrating two or more modules that are logically related to each other and then tested for proper functioning of the application. Then the other related modules are integrated incrementally and the process continues until all the logically related modules are integrated and tested successfully. Incremental Approach, in turn, is carried out by two different Methods: •Bottom Up •Top Down Bottom-up Integration Testing Bottom-up Integration Testing is a strategy in which the lower level modules are tested first. These tested modules are then further used to facilitate the testing of higher level modules. The process continues until all modules at top level are tested. Once the lower level modules are tested and integrated, then the next level of modules are formed.
  • 49. Advantages: •Fault localization is easier. •No time is wasted waiting for all modules to be developed unlike Big-bang approach Disadvantages: •Critical modules (at the top level of software architecture) which control the flow of application are tested last and may be prone to defects. •An early prototype is not possible
  • 50. Top-down Integration Testing Top Down Integration Testing is a method in which integration testing takes place from top to bottom following the control flow of software system. The higher level modules are tested first and then lower level modules are tested and integrated in order to check the software functionality. Stubs are used for testing if some modules are not ready. Advantages: •Fault Localization is easier. •Possibility to obtain an early prototype. •Critical Modules are tested on priority; major design flaws could be found and fixed first. Disadvantages: •Needs many Stubs. •Modules at a lower level are tested inadequately.
  • 51. Testing Strategies in Software Engineering Here are important strategies in software engineering: Unit Testing: This software testing basic approach is followed by the programmer to test the unit of the program. It helps developers to know whether the individual unit of the code is working properly or not. Integration testing: It focuses on the construction and design of the software. You need to see that the integrated units are working without errors or not. System testing: In this method, your software is compiled as a whole and then tested as a whole. This testing strategy checks the functionality, security, portability, amongst others. Program Testing Program Testing in software testing is a method of executing an actual software program with the aim of testing program behavior and finding errors. The software program is executed with test case data to analyse the program behavior or response to the test data. A good program testing is one which has high chances of finding bugs.
  • 52. What are the benefits of Software Testing? •Cost-Effective: It is one of the important advantages of software testing. Testing any IT project on time helps you to save your money for the long term. In case if the bugs caught in the earlier stage of software testing, it costs less to fix. •Security: It is the most vulnerable and sensitive benefit of software testing. People are looking for trusted products. It helps in removing risks and problems earlier. •Product quality: It is an essential requirement of any software product. Testing ensures a quality product is delivered to customers. •Customer Satisfaction: The main aim of any product is to give satisfaction to their customers. UI/UX Testing ensures the best user experience
  • 53. The different types of tests 1. Unit tests Unit tests are very low level and close to the source of an application. They consist in testing individual methods and functions of the classes, components, or modules used by your software. Unit tests are generally quite cheap to automate and can run very quickly by a continuous integration server. 2. Integration tests Integration tests verify that different modules or services used by your application work well together. For example, it can be testing the interaction with the database or making sure that micro services work together as expected. These types of tests are more expensive to run as they require multiple parts of the application to be up and running. 3. Functional tests Functional tests focus on the business requirements of an application. They only verify the output of an action and do not check the intermediate states of the system when performing that action. There is sometimes a confusion between integration tests and functional tests as they both require multiple components to interact with each other. The difference is that an integration test may simply verify that you can query the database while a functional test would expect to get a specific value from the database as defined by the product requirements.
  • 54. 4. End-to-end tests End-to-end testing replicates a user behavior with the software in a complete application environment. It verifies that various user flows work as expected and can be as simple as loading a web page or logging in or much more complex scenarios verifying email notifications, online payments, etc... End-to-end tests are very useful, but they're expensive to perform and can be hard to maintain when they're automated. It is recommended to have a few key end-to-end tests and rely more on lower level types of testing (unit and integration tests) to be able to quickly identify breaking changes. 5. Acceptance testing Acceptance tests are formal tests that verify if a system satisfies business requirements. They require the entire application to be running while testing and focus on replicating user behaviors. But they can also go further and measure the performance of the system and reject changes if certain goals are not met. 6. Performance testing Performance tests evaluate how a system performs under a particular workload. These tests help to measure the reliability, speed, scalability, and responsiveness of an application. For instance, a performance test can observe response times when executing a high number of requests, or determine how a system behaves with a significant amount of data. It can determine if an application meets performance requirements, locate bottlenecks, measure stability during peak traffic, and more.