100% found this document useful (1 vote)
423 views32 pages

Unit - 1-1.software Components, Software Characteristics, Software Crisis, Software Engineering Processes

The document provides information about a course on Software Engineering and Testing Methodologies. Specifically, it includes: - The course code and name - 6 course outcomes covering topics like software development processes, requirements elicitation, software reliability, testing principles, and quality assurance - The name of the faculty member teaching the course - An introduction to topics that will be covered like software components, characteristics, the software crisis, and software development life cycle models

Uploaded by

Shivendra Tiwari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
423 views32 pages

Unit - 1-1.software Components, Software Characteristics, Software Crisis, Software Engineering Processes

The document provides information about a course on Software Engineering and Testing Methodologies. Specifically, it includes: - The course code and name - 6 course outcomes covering topics like software development processes, requirements elicitation, software reliability, testing principles, and quality assurance - The name of the faculty member teaching the course - An introduction to topics that will be covered like software components, characteristics, the software crisis, and software development life cycle models

Uploaded by

Shivendra Tiwari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 32

School of Computing

Science and Engineering

Program: B. Tech
Course Code:BTCS3502
Course Name: Software Engineering &
Testing Methodologies
School of Computing Science and Engineering
Course
ourse Code
Code ::BTCS3502
BTCS3502 Course
Course Name:
Name: Software
Software Engineering
Engineering &
& Testing
Testing Methodologies
Methodologies

Course Outcomes :
CO’S
TITLE

CO1
Understand the key concerns that are common to all software
development processes.
CO2
Select appropriate process models, approaches and techniques
to manage a given software development process.
CO3
Able to elicit requirements for a software product and translate
these into a documented design.
CO4
Recognize the importance of software reliability and how we
can design dependable software, and what measures are used.
CO5
Understand the principles and techniques underlying the
process of inspecting and testing software and making it free of
errors and tolerable.
CO6
Understand the Software Quality Assurance (SQA) architecture
and identify Software quality management standards and
procedures

Faculty Name: Ms.Deepika Program Name: B.tech


Introduction to Software Engineering

• Software Components, Software Characteristics,


Software Crisis, Software Engineering Processes,
Similarity and Differences from Conventional
Engineering Processes, Software Quality Attributes.
Software Development Life Cycle (SDLC) Models:
Water Fall Model, Prototype Model, Spiral Model,
Evolutionary Development Models, Iterative
Enhancement Models
Software Components

 Software Components are parts of a system or


applications. Components are a means of breaking
the complexity of software into manageable parts.
 Each component hides the complexity of its
implementation behind an interface.
 Components can be swapped in and out like
interchangeable parts of a machine.
Software Components

This reduces the complexity of software development, maintenance, operations and support and

allows the same code to be reused in many places.

The following are illustrative examples of a component.

Views

 Models

Controllers

Data Access Objects

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

• A data access object provides an abstract interface for


databases.

• In theory, this allows you to switch to a different database


without the application needing to know. This shows the
power of a component based approach as dramatic changes
can be confined to a relatively small section of a code base.
Software Components

5. Services

• A service is a component that is deployed independently.

• For example, a bank might deploy a market data service to cloud


infrastructure. This service would provide stock market data to a variety
of stock trading system and applications.

• Services allow for extremely resilient applications.

• For example, if an application doesn't get a response from a service, it


can try again and be directed to a completely different instance.
Software Components

6. Plugins
 Components designed to extend the
functionality of an application or system.
 For example, a plugin for a media player to
visualize music.
Software Components

7.APIs
• A component that can be reused across multiple
systems and applications can be packaged and
distributed as an API.
• For example, an open source API to connect to a
particular database.
Software Characteristics

• Software is defined as collection of computer programs,


procedures, rules and data.

• Software Characteristics are classified into six major components:


– Functionality
– Reliability
– Efficiency
– Usability
– Maintainability
– Portability
SoftwareCharacteristics
Software Characteristics

Functionality:-It refers to the degree of


performance of the software against its
intended purpose. Required functions are:
Software Characteristics

• A set of attribute that bear on capability of


software to maintain its level of performance
under the given condition for a stated period
of time. Required functions are:
Software Characteristics

Efficency :-It refers to the ability of the software to


use system resources in the most effective and
efficient manner.
• the software should make effective use of
storage space and executive command as per
desired timing requirement.
Software Characteristics

Usability:-It refers to the extent to which the


software can be used with ease.
• the amount of effort or time required to learn
how to use the software.
Software Characteristics

Maintainability:-It refers to the ease with which


the modifications can be made in a software
system to extend its functionality, improve its
performance, or correct errors.

Required functions are:


Software Characteristics

Portability:-A set of attribute that bear on the


ability of software to be transferred from one
environment to another, without or minimum
changes.
• Required functions are:
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.
Software Crisis
These are not isolated incidents:
IBM survey of 24 companies developing distributed systems:
 55% of the projects cost more than expected

 68% overran their schedules


 88% had to be substantially redesigned
Solution of Software Crisis

There is no single solution to the crisis. one possible solution of software crisis

is Software Engineering because software engineering is a systematic, disciplined

and quantifiable approach. For preventing software crisis, there are some guidelines:

 Reduction in software over-budget

 The quality of software must be high

 Less time needed for software project

 Experience working team member on software project

 Software must be delivered


Software Engineering Process
Software Engineering Process
• A software process is the set of activities and associated outcome that produce a

software product. Software engineers mostly carry out these activities.

• Software specifications: The functionality of the software and constraints on its

operation must be defined.

• Software development: The software to meet the requirement must be produced.

• Software validation: The software must be validated to ensure that it does what

the customer wants.

• Software evolution: The software must evolve to meet changing client needs.


Software process
Software process:
Software engineering process is the glue that holds:
 Technology together

 enables rational and timely development of computer software.

Software engineering process is a framework of a set of key process areas.


Large software systems often:

Do not provide the desired functionality


Take too long to build
Cost too much to build
Require too much resources (time, space) to run
Cannot evolve to meet changing needs

• For every 6 large software projects that become operational, 2 of them are
canceled

• On the average software development projects overshoot their schedule by half

• 3 quarters of the large systems do not provide required functionality


I
 project management, budget and schedule control.
 applications of technical methods
 product quality control
 Identify new problems and solutions in software production.
 Study new systematic methods, principles, approaches for system analysis,
design, implementation, testing and maintenance.
 Provide new ways to control, manage, and monitor software process.
 Build new software tools and environment to support software engineering.
Major Goals

 To increase software productivity and quality.

 To effectively control software schedule and planning.


 To reduce the cost of software development.

 To meet the customers’ needs and requirements.


 To enhance the conduction of software engineering process.

 To improve the current software engineering practice.


 To support the engineers’ activities in a systematic and efficient manner.
References

1. Software Engineering: A practitioner’s Approach,


Roger S Pressman, Sixth Edition. McGraw-Hill
International Edition, 2005.
2. Software Engineering: Ian Summerville, Seventh
Edition, Pearson Education, 2004.
3. Daniel Galin, “Software Quality Assurance”, Pearson
Publication, 2009.

You might also like