Software Engineering Lectures
Software Engineering Lectures
Software Engineering, 7th edition. Chapter 1 Slide 1
Planned Contents
Introduction to SE
Socio technical Systems
Critical Systems
Software Processes
Project management
Software requirements
Requirement engineering process
Architectural Design
Object oriented Design
User interface Design
Verification and validation
Software Testing
Software Engineering, 7th edition. Chapter 1 Slide 2
Evaluation Components
Quizzes – 10%
Assignments – 10%
Mid-term – 20%
Final – 60%
Software Engineering, 7th edition. Chapter 1 Slide 3
Reference Book
Software Engineering by Sommerville, 7th Edition
Software Engineering, 7th edition. Chapter 1 Slide 4
An Introduction to Software
Engineering
Software Engineering, 7th edition. Chapter 1 Slide 5
Objectives
To introduce software engineering and to explain
its importance
To set out the answers to key questions about
software engineering
To introduce ethical and professional issues and
to explain why they are of concern to software
engineers
Software Engineering, 7th edition. Chapter 1 Slide 6
Topics covered
Software Engineering, 7th edition. Chapter 1 Slide 7
Software engineering
The economies of ALL developed nations are
dependent on software.
More and more systems are software controlled
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 Engineering, 7th edition. Chapter 1 Slide 8
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.
Software Engineering, 7th edition. Chapter 1 Slide 9
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?
Software Engineering, 7th edition. Chapter 1 Slide 10
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?
Software Engineering, 7th edition. Chapter 1 Slide 11
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.
Software Engineering, 7th edition. Chapter 1 Slide 12
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.
Software Engineering, 7th edition. Chapter 1 Slide 13
What is the difference between software
engineering and computer science?
Software Engineering, 7th edition. Chapter 1 Slide 14
What is the difference between software
engineering and system engineering?
Software Engineering, 7th edition. Chapter 1 Slide 15
What is a software process?
A set of activities whose goal is the development
or evolution of software.
Generic activities in all software processes are:
• Specification - what the system should do and its
development constraints
• Development - production of the software system
• Validation - checking that the software is what the
customer wants
• Evolution - changing the software in response to
changing demands.
Software Engineering, 7th edition. Chapter 1 Slide 16
What is a software process model?
A simplified representation of a software process,
presented from a specific perspective.
Examples of process perspectives are
• Workflow perspective - sequence of activities;
• Data-flow perspective - information flow;
• Role/action perspective - who does what.
Generic process models
• Waterfall;
• Iterative development;
• Component-based software engineering.
Software Engineering, 7th edition. Chapter 1 Slide 17