Lecture 01-Introduction
Lecture 01-Introduction
Introduction
Software Engineering
COSC-1104
Lecture 01 Introduction 1
Introduction About
Instructor
• Ms. Humaira Anwer
• MS (CSE) - College of E&ME, NUST, Islamabad.
• PhD (CSE)- College of E&ME, NUST, Islamabad.
Lecture 01 Introduction 2
Textbook for this Course
• Software Engineering by Ian Sommerville, 10th Ed.
Lecture 01 Introduction 3
Today’s Agenda
• Evaluation Methods
• Basic Ground Rules
• Introduction to Software Engineering
• Need of Software Engineering
• Characteristics of Good Software
• Software Costs
• Software Project Failure
• Software Products
• Scope of this course
• Purpose of this course
Lecture 01 Introduction 4
EVALUATION METHODS
• Mid Term……………………………………………………….. 25%
• Final Term………………………………………………………. 50%
• Sessional………………………………………………………… 25%
• Quizzes…………………………………………………….. 7.5%
• Assignments…………………………………………….. 7.5%
• Term Project…………………………………………….. 10%
• Presentations
• Class behavior
• Attendance must be maintained as per rule (>=75%)
Lecture 01 Introduction 5
BASIC GROUND RULES
• Attendance in lecture is compulsory
• If you decide to attend the lecture then:
• Do not talk with your friends during lecture
• Switch off your mobiles!!
• Ask Relevant questions but please put your hand up
• No Plagiarism Whatsoever!!!
Lecture 01 Introduction 6
INTRODUCTION
Lecture 01 Introduction 7
Introduction
• The term software engineering is composed of two
words:
• Software and
• Engineering.
Lecture 01 Introduction 8
Software
• Software is more than just a program code.
• A program is an executable code, which serves
some computational purpose.
• Software is considered to be a collection of:
1. Executable programming code,
2. Associated libraries and
3. Documentations.
• Software, when made for a specific requirement is
called software product.
Lecture 01 Introduction 9
Engineering
• Engineering on the other hand, is all about
developing products, using well-defined, scientific
principles and methods.
Lecture 01 Introduction 10
Software Engineering
• Software Engineering as an engineering branch associated
with the development of software product using well-
defined scientific principles, methods and procedures.
• The outcome of software engineering is an efficient and
reliable software product.
Lecture 01 Introduction 11
Need of Software
Engineering
• The need of software engineering arises because of
higher rate of change in user requirements and
environment on which the software is working.
• Large Software
• Scalability
• Cost
• Dynamic Nature
• Quality Management
Lecture 01 Introduction 12
Characteristics of Good
Software
• A software product can be judged by what it offers
and how well it can be used. This software must
satisfy on the following grounds:
• Operational
• Transitional
• Maintenance
Lecture 01 Introduction 13
Operational
• This tells us how well software works in operations.
It can be measured on:
• Budget
• Usability
• Efficiency
• Correctness
• Functionality
• Dependability
• Security
• Safety
Lecture 01 Introduction 14
Transitional
• This aspect is important when the software is
moved from one platform to another:
• Portability
• Interoperability
• Reusability
• Adaptability
Lecture 01 Introduction 15
Maintenance
• This aspect briefs about how well a software has
the capabilities to maintain itself in the
everchanging environment:
• Modularity
• Maintainability
• Flexibility
• Scalability
Lecture 01 Introduction 16
Essential attributes of
good software
Product characteristic Description
Lecture 01 Introduction 17
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.
Lecture 01 Introduction 18
Software project failure
Lecture 01 Introduction 19
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 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.
Lecture 01 Introduction 20
Product Specification
• Generic products
• The specification of what the software should do is
owned by the software developer and decisions on
software change are made by the developer.
• Customized products
• The specification of what the software should do is
owned by the customer for the software and they make
decisions on software changes that are required.
Lecture 01 Introduction 21
Frequently asked questions about software
engineering
Question Answer
Lecture 01 Introduction 22
Frequently asked questions
about software
engineering
Question Answer
What are the key challenges facing Coping with increasing diversity, demands for reduced
software engineering? delivery times and developing trustworthy software.
What are the costs of software Roughly 60% of software costs are development costs,
engineering? 40% are testing costs. For custom software, evolution
costs often exceed development costs.
What are the best software engineering While all software projects have to be professionally
techniques and methods? managed and developed, different techniques are
appropriate for different types of system. For example,
games should always be developed using a series of
prototypes whereas safety critical control systems require
a complete and analyzable specification to be developed.
You can’t, therefore, say that one method is better than
another.
What differences has the web made to The web has led to the availability of software services
software engineering? and the possibility of developing highly distributed
service-based systems. Web-based systems
development has led to important advances in
programming languages and software reuse.
Lecture 01 Introduction 23
Importance of Software
Engineering
• More and more, individuals and society rely on
advanced software systems.
• Quicker, reliable and trustworthy systems are required.
• It is usually cheaper, in the long run, to use software
engineering methods and techniques for software
systems rather than just write the programs as if it
was a personal programming project.
• For most types of system, the majority of costs are
the costs of changing the software after it has gone
into use.
Lecture 01 Introduction 24
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 in all developed
countries.
Lecture 01 Introduction 25