Unit - 1-1.software Components, Software Characteristics, Software Crisis, Software Engineering Processes
Unit - 1-1.software Components, Software Characteristics, Software Crisis, Software Engineering Processes
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
This reduces the complexity of software development, maintenance, operations and support and
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
5. Services
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
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
There is no single solution to the crisis. one possible solution of software crisis
and quantifiable approach. For preventing software crisis, there are some guidelines:
• For every 6 large software projects that become operational, 2 of them are
canceled