Complete Unit-1 Notes
Complete Unit-1 Notes
Program: B. Tech
Course Code:BTCS3503
Course Name: Software Testing and
Quality Assurance
School of Computing Science and Engineering
Course Name: Software Engineering
Course Outcomes :
Recommended Books
Text books
Reference Book
• Fundamentals of Software Engineering: Rajib Mall, PHI, 2005.
• Software Engineering, A Precise Approach, Pankaj Jalote, Wiley India,2010.
• Software Engineering: A Primer, Waman S Jawadekar, Tata McGraw-Hill, 2008.
Views
Models
Controllers
Services
Plugins
APIs
Software Components
1.Views
• User interface components for different
requests, views and scenarios.
• For example, difficult components can be used
to display the same information in a web page
and mobile app.
Software Components
2. Models
Components that handle requests or events
including business rules and data processing.
For example, a model might handle a bill
payment request for an internet banking
website.
Software Components
3.Controllers
• A controller is a component that decides what
components to call for a particular request or event.
• For example, a controller might dynamically load
different views for a bill payment on factors such
as language, transaction status or channel.
Software Components
4.Data Access Objects
databases.
System Software
Application Software
Engineering / Scientific Software
Embedded Software
Product-line Software
Web Apps (Web Applications)
AI Software
SOFTWARE CRISIS
SOFTWARE CRISIS
Size: Software is becoming more expensive and more complex with the growing
complexity and expectation out of software. For example, the code in the consumer
product is doubling every couple of years.
Quality: Many software products have poor quality, i.e., the software products defects
after putting into use due to ineffective testing technique. For example, Software testing
typically finds 25 errors per 1000 lines of code.
Cost: Software development is costly i.e. in terms of time taken to develop and the
money involved. For example, Development of the FAA's Advanced Automation
System cost over $700 per lines of code.
SOFTWARE CRISIS
Delayed Delivery: Serious schedule overruns are common. Very often the software
takes longer than the estimated time to develop, which in turn leads to cost shooting up.
For example, one in four large-scale development projects is never completed.
These are not isolated incidents:
disciplined and quantifiable approach. For preventing software crisis, there are
some guidelines:
• Software validation: The software must be validated to ensure that it does what
• Software evolution: The software must evolve to meet changing client needs.
Software process:
Programming
Is concerned with
development including
What is Quality?
Quality is defined as the product or services that
should be "fit for use and purpose."
Quality is all about meeting the needs and
expectations of customers concerning functionality,
design, reliability, durability, and price of the product.
Software Quality Attributes
2. Maintainability
easy to upgrade for new features and new technologies from time to time.
output.
porting.
5. Correctness
If system is using all the available resources then the user will
get degraded performance failing the system for efficiency. If
system is not efficient then it can not be used in real-time
applications.
Software Quality Attributes
7. Integrity or Security
9. Flexibility
development way.
SDLC Phases
SDLC Models
Sequential model
Waterfall model.
V-model.
Incremental model
Incremental model.
Spiral model
RAD(Rapid application development) model.
Waterfall Model
Integration and Testing − All the units developed in the implementation phase
are integrated into a system after testing of each unit. Post integration the
entire system is tested for any faults and failures.
Deployment of system − Once the functional and non-functional testing is
done; the product is deployed in the customer environment or released into the
market.
Maintenance − There are some issues which come up in the client environment.
To fix those issues, patches are released. Also to enhance the product some
better versions are released. Maintenance is done to deliver these changes in the
customer environment.
Program Name: B. Tech Program Code:CSE
School of Computing Science and Engineering
Course Name: Software Engineering
ADVANTAGES
A waterfall model is easy to implementation.
It helps to find errors earlier
Easy to understand, easy to use.
Works well when quality is more important than cost or schedule
Documentation is produced at every stage of a waterfall model
allowing people to understand what has been done.
Disadvantages
It is only suitable for the small size projects.
Constant testing of the design is needed.
If requirements may change the Waterfall model may not work.
Difficult to estimate time and cost for each stage of the
development process.
Adjust scope during the life cycle can kill a project
PROTOTYPE MODEL
• A prototyping model suggest that before carrying out the
development of the actual software, a working prototype of
the system should be built.
• A prototype is a toy implementation of the system.
• Prototype is a working model of software with some limited
functionality.
• Prototyping is used to allow the users evaluate the developer
proposals and try them out before implementation.
• By using this prototype, customer can understand the
requirements of desired system and also the customer can get
an “actual feel” of the system. It is an attractive idea for
complex and bigger systems.
Program Name: B.Tech
School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
PROTOTYPE MODEL
PROTOTYPE MODEL
PROTOTYPE MODEL
Quick design
When requirements are known, a quick design for the system is
created. It is not a detailed design , it includes the important
aspects of the system, which gives an idea of the system to the
user.
PROTOTYPE MODEL
Build prototype:
Information gathering from quick design is modified to form a
prototype .It represents a ‘rough’ design of the required system.
PROTOTYPE MODEL
Prototype refinement:
Once the user evaluate the prototype, it is refined according to
the requirements .
When the user is satisfied to the developed prototype , a final
system is developed based on the final prototype ,
which is developed by the iterative method means we design
the system according to the final prototype , after that
implement , test the product to find the error and at last we
maintain the system.
PROTOTYPE MODEL
Advantages
• User early in the process , enabling early assessment and
increasing the user confidence
• Better implementation of the requirements.
• It helps in reducing the risk associated to the project.
• Improving communication between developer and user
SPIRAL MODEL
SPIRAL MODEL
Objectives determination and identify alternative solutions:
Requirements are gathered from the customers and the
objectives are identified, elaborated and analyzed at the start of
every phase. Then alternative solutions possible for the phase
are proposed in this quadrant.
Identify and resolve Risks: During the second quadrant all the
possible solutions are evaluated to select the best possible
solution. Then the risks associated with that solution is identified
and the risks are resolved using the best possible strategy. At the
end of this quadrant, Prototype is built for the best possible
solution.
SPIRAL MODEL
Develop next version of the Product:
During the third quadrant, the identified features are developed
and verified through testing. At the end of the third quadrant,
the next version of the software is available.
SPIRAL MODEL
Important aspects
– Adjustments to the project plan
– Cost and schedule are adjusted based on feedback
– The number of iterations will be adjusted by project
manager.
• Every version will get built and delivered to customer who can
then use it instead of waiting for the complete system.
• Large project
• Chance to experiment with a partially developed software
• Elicit user requirements during the delivery of different
versions of the software
• Reducing the chances of errors
• Avoids the need to commit large resources
TOPICS TO BE COVERED
MODULARIZATION
ADVANTAGE OF MODULARIZATION
STRUCTURE CHART
MODULE
CONDITIONAL CALL
DATA FLOW
PHYSICAL STORAGE
PSEUDO CODE
Pseudocode
While the power of 2 is not larger than 1000
keep on getting the values of the power of 2.
C++ statement
int product = 2;
while ( product <= 1000 )
product = 2 * product;
REFERENCES