2. Agenda
What is Software?
Component of Software
Types of Software
What is Good Software?
Attributes of Software
Role of Software
What is Software Engineering?
5. Essential Components of Software
• Instructions
- Functionality
- Performance
• Data Structure
-Essential
components
-Maintains the data
-Program logic
-Design
• Documents
-User manual
-Design manual
6. What is Software?
“Software is a set of instructions to acquire inputs and to
manipulate them to produce the desired output in terms
of functions and performance as determined by the
user of the software. It also include a set of documents,
such as the software manual , meant for users to
understand the software system.”
9. System Software
Real-time Software
Business Software
Scientific and Engineering Software
Embedded Software
Artificial Intelligence (AI) Software
Personal computer Software
Internet Software
Based on the Function Domain
10. System Software
• A collection of programs written
to service other
programs at system level.
• Provide interface to the other
application
For example : compiler,
operating systems.
11. • Programs that monitor/analyze/
control real world events as they occur.
Input data
Analyze the data
Take appropriate action
For example :Air traffic control system, Flood
control system, Network management system.
Real-time Software
12. Business Software
• Software use is most prevalent in this
application
• Programs that access, analyze and
process
business information.
For example : Payroll system, Sales
analysis system etc.,
13. Scientific and Engineering Software
• Scientific nature of the
Computation they perform
• Software using different science
and applications. System
Simulation, Computer-Aided
Design.
• For example : Auto CAD,MAT Lab
etc.,
14. • Embedded software resides in read-only memory and
is used to control products and systems for the
consumer and industrial markets.
• It has very limited and esoteric functions and control
capability.
Embedded Software
15. Embedded Software
• Resides in Read only
memory
• It gives products an
intelligent look
• For example: ATMs, Cell
phones, Printers,
Calculators, etc.,
16. Artificial Intelligence (AI) Software
• Programs make use of AI techniques and methods to
solve complex
• problems. Active areas are expert systems, pattern
recognition, games
For example : Manufacturing
robots, Smart assistants,
Social media monitoring
17. Internet Software
• Programs that support
internet accesses and
applications.
For example : search
engine, browser, e-
commerce software,
authoring tools.
18. Classes of Application Software
Application is a program or group of programs designed
for end users
For example : of an application include a word processor,
a spreadsheet, an accounting application, a web browser,
an email client, a media player, a file viewer, simulators,
a console game or a photo editor.
Software is classified into two classes
Generic Software
Customized Software
19. Generic Software is designed for broad customer market
whose requirements are very common, fairly stable and well
understood by the software engineer.
Customized Software is developed for a customer where
domain , environment and requirements are being unique to
that customer and cannot be satisfied by generic products.
Classes of Application Software
20. What is Good Software?
“Software has number of attributes which decide whether
it is a good or bad . The definition of a good software
changes with the person who evaluates it. The software is
required by the customer , used by the end users of an
organization and developed by software engineer .
Each one will evaluate the different attributes differently
in order to decide whether the software is good."
21. What are the attributes of good
software?
• The software should deliver the required functionality and
performance to the user and should
Maintainability
Correctness
Reusability
Reliability
Portability
Efficiency
22. Maintainability
• Allows organizations to
identify improvement areas
as well as determine the
value supplied by current
applications or during
development changes.
24. Reusability
• The ease with which software can
be reused in developing other
software
• The use of existing asset in some
from within the software product
development process
• Assets are products and by-
products of the software
development life cycle and
include code, software
components, test suites, deigns
and documentation.
25. Reliability
• The frequency and criticality of
software failure, when failure
is an unacceptable effect or
behavior occurring under
permissible operating
conditions.
• The probability of failure free
software operation for a
specified period of time in a
specified environment.
26. Portability
• Measure of how easily an
application can be
transferred from one
computer environment to
another.
27. Efficiency
• Ability to avoid wasting materials,
energy, efforts, money, and time in
doing something or in producing a
desired results.
• In a more general sense, it is the
ability to do things well,
successfully, and without waste.
28. Why we need of Software ?
•
Each device needs at least one corresponding device
drive, because a computer typically has at minimum
at least one input device and at least one output
device, a computer typically needs more than one
device driver
29. What is Engineering?
• Engineering is the application of scientific and
practical knowledge in order to invent, design, build,
maintain and improve systems, processes, etc.,
30. Software engineering methods provide the technical
“how to” for building software.
Methods --> how to encompass a broad array of
tasks:- requirements analysis, design, coding, testing,
and maintenance
Software engineering methods rely on a set of basic
principles.
What is Software Engineering?
31. What is Software Engineering?
• A systematic collection of good program development
practices and techniques.
• The essence of all past programming experiences and
innovations for writing good quality programs in cost-
effective and efficient ways have been systematically
organized into a body of knowledge.
• This knowledge forms the foundation of the software
engineering principles.
32. 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.
Major Role Software Engineering?