Software Engineering: Referred Textbook: Software Engineering: A Practitioner's Approach, 7/e, by Roger S. Pressman
Software Engineering: Referred Textbook: Software Engineering: A Practitioner's Approach, 7/e, by Roger S. Pressman
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 .
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
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 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.
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.
SOFTWARE ENGINEERING
20
CHAPTER 1
Thank you