SEN Chapter 3

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 22

Domain Analysis

• Domain analysis is the identification, analysis and


specification of common requirement from a specific
domain analysis, typically for reuse on multiple
projects within that application domain
• i.e it identify common objects, classes,
subassemblies and frameworks.
• Steps:-
1. Define domain to be investigated
2. Collect respective sample of application in the
domain
3. Analyze each application in the sample
4. Develop analysis model for the objects.
Domain Analysis
Fundamental Design concept
• The software design concept simply means the
idea or principle behind the design.
• It describes how you plan to solve the problem of
designing software.
• The software design concept provides a
supporting and essential structure or model for
developing the right software.
Fundamental Design concept
1. Abstraction:-
Abstraction simply means to hide the details to
reduce complexity and increases efficiency or
quality.
The solution should be described in broad ways that
cover a wide range of different things at a higher
level of abstraction and a more detailed
description of a solution of software should be
given at the lower level of abstraction.
Fundamental Design concept
A. Functional abstraction:
This involves the use of parameterized subprograms.
Functional abstraction can be generalized as collections of
subprograms referred to as 'groups'.

• It decide which subprogram or routine are visible or invisible


within a group or with other group

B. Data abstraction: This involves specifying data that describes a


data object. For example,
• the data object window encompasses a set of attributes
(window type, window dimension) that describe the window
object clearly.
• for example flower have set of attributes like color, type, size
Fundamental Design concept
C. Control abstraction: This states the desired
effect, without stating the exact mechanism of
control. For example, if and while statements in
programming languages (like C and C++) are
abstractions of machine code implementations,
which involve conditional instructions.
Fundamental Design concept
2. Information Hiding
-only required information is transferred between
modules.
Hide unnecessary details
Fundamental Design concept
3. structure/architecture
- It refer structure of the system.
- It consist of several regarding a program / system ,
the attributes ( properties of those components
and the relationship among them .
- The software architecture helps the software
engineers in the process of analyzing the software
- design
- Task important :-
i. Stakeholder communicate with each other
ii. Design first – coding and test later
Fundamental Design concept
4.Modularity
• Modularity can be achieved by the process of dividing the
software into components which are uniquely named and
addressable .
• A complex system ( huge application ) is partitioned into a
set of discrete modules in such a manner that one should be
able to develop those modules independent of each other .
• After development is completed , the modules are
integrated to form an entire project .
• One has to remember that as the number of modules a
system is divided into increases , it becomes easy to handle
the software but it also increases the effort required to
integrate the modules .
Fundamental Design concept
The process of modularizing a design helps to plan
the development in a more efficient way ,
accommodate changes without difficulty , conduct
testing and debugging effectively as well as
efficiently , and carry out the maintenance work
without adversely affecting the functionality of the
software .
Fundamental Design concept
5.Concurrency:-
It is important to utilize the resources efficiently as
much as possible .
For this purpose multiple tasks must be executed
concurrently .
This aspect makes concurrency one of the important
concepts of software design .
Every system should be designed in such a manner
that it should facilitate multiple processes to
execute concurrently.
Software Testing
“software testing is a process of executing software system with
intent of finding gap , errors or missing requirement.
- It improve quality of the software.
Objectives of testing process are as follows: (1) Finding defects which
are created by developer while developing software. (i) Providing
information about quality of software under test. (i) To ensure that
system meets the business and the user requirements. (iv) To gain
customer's confidence by providing them a qualitative product.
Advantages of Software Testing There are several advantages of
software testing as follows: (i) Testing reduces the possibility of
software failure by removing errors which leads to software failure.
(ii) Testing process removes maximum possible errors from software
and helps to deliver qualitative software to customer. (ii) Testing
ensures correctness and completeness of software along with quality.
Software Testing process or Software testing life cycle
“software testinf process contains number of activities with the help
of software tester can verify the software
Software Testing process or Software testing life cycle
A. Requirement analysis:-
- In this first phase of the STLC, the test team
reviews the Functional Requirements Document
(FRD) to determine what is testable.
- FRD contains list of functional and non functional
requirement
- By studying the requirements, the test team gets
a good understanding of the scope and the types
of the testing to be done.
Software Testing process or Software testing life cycle
B. Test planning:-
- Test Planning is the most important phase of the
STLC, where all testing strategy is defined.
- What to test, how the test needs to be done, and
who’s going to test it? These are the things
determined during the test planning phase.
- In this phase, also, the Test Lead will determine the
effort and cost estimates for the testing portion of
the project.
- The result of the Test Planning phase will be the Test
Plan and the Testing Effort Estimation document.
Software Testing process or Software testing life cycle
C. Test case development:-
-The goal of this phase is to determine “how” to
test.
- Depending on the context of the project, either
test cases or test scenarios will be developed here.
- It decide all test data is determined reviewed.
- Test cases and test scripts are output of this phase
Software Testing process or Software testing life cycle
D. Test environment setup:-
- It’s the configuration of software and/or hardware
on which the testing team is to perform the tests.
- Test environment created parallel with test case
development phase
- After setup of environment testing can be
implanted.
Software Testing process or Software testing life cycle
E. Test execution:-
Once the environment is setup, the test strategy is
determined, and the test plan is approved, it’s time to run
the tests.
-This method finds the most defects in the shortest time.
- The testers will execute each test, comparing the results to
the expected results, and marking it as pass, fail, or skip.
-If the test fails, the tester should document
what actually happened during the test.
- Then development team fixed the problem and solve the
problem. Once the defect is fixed by the development team,
then the same test case can be rerun based on your test
plan.
Software Testing process or Software testing life cycle
F. Test cycle closure:
Once all the tests cases are run, the QA Test Lead
should confirm all required testing has been
completed.
This involves an analysis of defects found and other
metrics such as how many passed/failed/skipped
test cases
Black box and white box testing
Black box and white box testing

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy