0% found this document useful (0 votes)
6 views25 pages

Lecture 01-Introduction

The document is an introductory lecture on Software Engineering by Ms. Humaira Anwer, outlining the course structure, evaluation methods, and essential characteristics of good software. It emphasizes the importance of software engineering in developing reliable and efficient software products while addressing the need for systematic approaches due to changing user requirements. Key topics include software costs, project failures, and the distinction between generic and customized software products.

Uploaded by

uzair durrani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views25 pages

Lecture 01-Introduction

The document is an introductory lecture on Software Engineering by Ms. Humaira Anwer, outlining the course structure, evaluation methods, and essential characteristics of good software. It emphasizes the importance of software engineering in developing reliable and efficient software products while addressing the need for systematic approaches due to changing user requirements. Key topics include software costs, project failures, and the distinction between generic and customized software products.

Uploaded by

uzair durrani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 25

Lecture 01

Introduction
Software Engineering
COSC-1104

Ms. Humaira Anwer


[email protected]

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.

• Can be reached at:


[email protected]
• Student Meeting Hours (Tue-Fri 0800 Hrs. to 1000 Hrs. )

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.

• IEEE defines software engineering as: The


application of a systematic, disciplined, quantifiable
approach to the development, operation and
maintenance of software.

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

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 Software dependability includes a range of characteristics
security 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.

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

INCREASING SYSTEM FAILURE TO USE SOFTWARE


COMPLEXITY ENGINEERING METHODS

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

What is software? Computer programs 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 are the fundamental software Software specification, software development, software
engineering activities? validation and software evolution.
What is the difference between software Computer science focuses on theory and fundamentals;
engineering and computer science? 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.

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

You might also like