SE Chapter 1
SE Chapter 1
SE Chapter 1
1
What is
Software?
The product that software professionals build and then support
over the long term.
Software encompasses: (1) instructions (computer programs)
that when executed provide desired features, function, and
performance; (2) data structures that enable the programs to
adequately store and manipulate information and (3)
documentation that describes the operation and use of the
programs.
2
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(computer-aided
design(architecture design)) software; software for specific
markets such as appointments systems for dentists.
• Customized products
– Software that is commissioned(command or authorization) by
a specific customer to meet their own needs.
– Examples – embedded control systems, air traffic control
software, traffic monitoring systems.
3
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 GNP(Gross national product) in all
developed countries.
Software costs
• Software costs often dominate 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 be several times
development costs.
• Software engineering is concerned with cost-
effective software development.
Features of Software?
• Its characteristics that make it different from other things human being
build.
Features of such logical system:
• Software is developed or engineered, it is not manufactured in the
classical sense which has quality problem.
• Software doesn't "wear out.” but it deteriorates (due to change).
• 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.( Software
construction, reuse, maintenance )
6
Wear vs.
Deterioration
increased failure
rate due to side effects
Failure
rate
change
actual curve
idealized curve
Time
7
Software Engineering Definition
definition:
a branch of computer science that deals with the design, implementation,
and maintenance of complex computer programs
A Layered Technology
tools
methods
process model
a “quality” focus
Any engineering approach must rest on organizational commitment to quality
which fosters a continuous process improvement culture.
Process layer as the foundation defines a framework with activities for
effective delivery of software engineering technology. Establish the context
where products (model, data, report, and forms) are produced, milestone are
established, quality is ensured and change is managed.
Method provides technical how-to’s for building software. It encompasses
many tasks including communication, requirement analysis, design modeling,
program construction, testing and support.
Tools provide automated or semi-automated support for the process and 9
methods.
Challenge in large projects
• Developing large /complex software application
is very challenging
Effort intensive
High Cost
Long development time
Changing Needs for your
High risk of failure, maintenance , Performance
FAQs about software engineering
• What is software?
• What is software engineering?
• What is the difference between software
engineering and computer science?
• What is the difference between software
engineering and system engineering?
• What is a software process?
• What is a software process model?
FAQs about software engineering
• What are the costs of software engineering?
• What are software engineering methods?
• What is CASE (Computer-Aided Software
Engineering)
• What are the attributes of good software?
• What are the key challenges facing software
engineering?
What is software?
• Computer programs and associated documentation such as
requirements, design models and user manuals.
• Software products may be developed for a particular
customer or may be developed for a general market.
• Software products may be
– Generic - developed to be sold to a range of different customers e.g.
PC software such as Excel or Word.
– Bespoke (custom) - developed for a single customer according to their
specification.
• New software can be created by developing new programs,
configuring generic software systems or reusing existing
software.
What is software engineering?
• Software engineering is an engineering
discipline that is concerned with all aspects of
software production.
• Software engineers should adopt a systematic
and organised approach to their work and use
appropriate tools and techniques depending
on the problem to be solved, the development
constraints and the resources available.
What is the difference between software engineering and
computer science?
Iterative development
0 25 50 75 1 00
0 25 50 75 1 00
0 25 50 75 100
• Myth 2: Until I get the program running, I have no way of assessing its quality.
• Reality: technical review are a quality filter that can be used to find certain classes of software
defects from the inception of a project.
• Many people recognize the fallacy of the myths. Regrettably, habitual attitudes and
methods foster poor management and technical practices, even when reality
dictates a better approach .
27