Software Engineering: Referred Textbook: Software Engineering: A Practitioner's Approach, 7/e, by Roger S. Pressman

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

SOFTWARE ENGINEERING

Referred Textbook: Software Engineering: A


Practitioner’s Approach, 7/e , by Roger S. Pressman

CHAPTER 1
Outline
• What is software
• Software products
• Importance of software
• Good software
• Software costs
• Software features & applications
• Software categories

SOFTWARE ENGINEERING
2
CHAPTER 1
What is Software?
• 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

SOFTWARE ENGINEERING
3
CHAPTER 1
What is Software?
• The product that software professionals build and then
support over the long term.

• Software includes:
1. instructions (computer programs) that when executed provide desired
features, function, and performance;
2. data structures that enable the programs to effectively store and
manipulate information;
3. documentation that describes the operation and use of the programs.

SOFTWARE ENGINEERING
4
CHAPTER 1
Software products
• Generic products
– Stand-alone systems that are marketed and sold to
any customer who wishes to buy them.
• Examples – PC software such as editing, graphics programs,
project management tools; CAD software; software for
specific markets such as appointments systems for dentists.
• Customized products
– Software that is commissioned by a specific customer
to meet their own needs.
• Examples – embedded control systems, air traffic control
software, traffic monitoring systems.
SOFTWARE ENGINEERING
5
CHAPTER 1
Why Software is Important?
• The economies of ALL developed nations are dependent
on software.
• More and more systems are software controlled (
transportation, medical, telecommunications, military,
industrial, entertainment,)
• Software engineering is concerned with theories,
methods and tools for professional software
development.
• Expenditure on software, represents a significant
fraction of national product in all developed countries.
SOFTWARE ENGINEERING
6
CHAPTER 1
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.
SOFTWARE ENGINEERING
7
CHAPTER 1
What are the attributes of good software?
 The software should deliver the required functionality
and performance to the user and should be
maintainable, dependable and usable.
1. Maintainability
• Software must evolve to meet changing needs

2. Dependability
• Software must be trustworthy

3. Efficiency
• Software should not make wasteful use of system resources

4. Usability
• Software must be usable by the users for which it was designed

SOFTWARE ENGINEERING
8
CHAPTER 1
Software costs
• It is the dominant in computer system costs.
– The costs of software on a PC are often greater than the
hardware cost.
• Software costs more to maintain than it does to develop.
– For systems with a long life, maintenance costs may cost several
times more than development costs.
• Software engineering is concerned with cost-effective
software development.

SOFTWARE ENGINEERING
9
CHAPTER 1
Features of Software?
• Software features/characteristics makes it
different from other things human being can
build.

SOFTWARE ENGINEERING C
10
CHAPTER 1
Features of Software?
• Features of Logical System:
(1) - A Software is developed/engineered, and it is not
manufactured in the classical sense which has quality problem.

SOFTWARE ENGINEERING
11
CHAPTER 1
Features of Software?
• Features of Logical System:
(2) – A Software doesn't "wear out.” but it fails (due to change).
- A Hardware has bathtub curve of failure rate ( high failure
rate in the beginning, then drop to steady state, then cumulative
effects of dust, vibration, abuse occurs).

SOFTWARE ENGINEERING
12
CHAPTER 1
Features of Software?
• Features of Logical System:
(3) - Although the industry is moving toward component-based
construction (e.g. standard screws and off-the-shelf integrated
circuits), most software continues to be custom-built.
- Modern reusable components encapsulate data and
processing into software parts to be reused by different programs.
- Example: graphical user interface, windows, pull-down
menus in library etc.

SOFTWARE ENGINEERING
13
CHAPTER 1
Software Applications
1. System software:
– such as compilers, editors, file management utilities
2. Application software:
– stand-alone programs for specific needs.
3. Engineering/scientific software:
– Characterized by “number crunching”algorithms. such as
automotive stress analysis, molecular biology, orbital dynamics etc
4. Embedded software
– resides within a product or system. (key pad control of a
microwave oven, digital function of dashboard display in a car)
SOFTWARE ENGINEERING
14
CHAPTER 1
Software Applications
5. Product-line software
– focus on a limited marketplace to address mass consumer
market. (word processing, graphics, database management)
6. WebApps (Web applications)
– network centric software. As web 2.0 emerges, more
sophisticated computing environments is supported integrated
with remote database and business applications.
7. AI (Artificial Intelligence)
– software uses non-numerical algorithm to solve complex
problem. Robotics, expert system, pattern recognition game
playing
SOFTWARE ENGINEERING
15
CHAPTER 1
Software—New Categories
• Open world computing — universal, distributed computing due to wireless
networking. How to allow mobile devices, personal computer, enterprise
system to communicate across vast network.
• Net-sourcing — the Web as a computing engine. How to architect simple and
sophisticated applications to target end-users worldwide.
• Open source — ”free” source code open to the computing community
(a blessing, but also a potential curse!)
– Data mining
– Grid computing
– Cognitive machines
– Software for nanotechnologies

SOFTWARE ENGINEERING
16
CHAPTER 1
Software Engineering Definition
• It is a collection of techniques, methodologies
and tools that help with the production of
– a high quality software system
– within budget
– Meeting the deadline

• while change occurs

SOFTWARE ENGINEERING
17
CHAPTER 1
Importance of Software Engineering
• More and more, individuals and society rely on
advanced software systems.
• We need to be able to produce reliable and trustworthy
systems economically and quickly.
• It is usually cheaper, in the long run, to use software
engineering methods and techniques for software
systems rather than just write programs as if it was a
personal programming project.
• For most types of system, the majority of costs are
costs of changing the software after it has gone into use.

SOFTWARE ENGINEERING
18
CHAPTER 1
FAQ about software engineering

Question Answer

What is software? Computer programs, data structures and associated


documentation. Software products may be developed
for a particular customer or may be developed for a
general market.

What are the attributes of good software? Good software should deliver the required
functionality and performance to the user and should
be maintainable, dependable and usable.

What is software engineering? Software engineering is an engineering discipline


that is concerned with all aspects of software
production.
What is the difference between software Computer science focuses on theory and
engineering and computer science? fundamentals; software engineering is concerned
with the practicalities of developing and delivering
useful software.
What is the difference between software System engineering is concerned with all aspects of
engineering and system engineering? computer-based systems development including
hardware, software and process engineering.
Software engineering is part of this more general
process.

SOFTWARE ENGINEERING APPLICATION


19
DEVELOPMENT CHAPTER 1
Essential attributes of good software
Product characteristic Description

Maintainability Software should be written in such a way so that it can evolve to


meet the changing needs of customers. This is a critical attribute
because software change is an inevitable requirement of a changing
business environment.

Dependability and security Software dependability includes a range of characteristics including


reliability, security and safety. Dependable software should not cause
physical or economic damage in the event of system failure.
Malicious users should not be able to access or damage the system.

Efficiency Software should not make wasteful use of system resources such as
memory and processor cycles. Efficiency therefore includes
responsiveness, processing time, memory utilisation, etc.

Acceptability Software must be acceptable to the type of users for which it is


designed. This means that it must be understandable, usable and
compatible with other systems that they use.

SOFTWARE ENGINEERING
20
CHAPTER 1
Thank you

SOFTWARE ENGINEERING APPLICATION


21
DEVELOPMENT CHAPTER 1

You might also like