Se 1

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

Software Engineering Concepts

Course Information
 Course Title: Software Engineering Concepts
 Course code: CSC291
 Credit hours: 3
 Semester: Spring 2023
 Email: ashfaq.ahmed@ciitwah.edu.pk
Course Evaluation
 Evaluation

 Quizzes - 15%
 Assignments - 10%
 Midterm Exams - 25%
 Finals - 50%
Course Description
 This course introduces software engineering as a
discipline. It starts with a general introduction on the
evolution of the discipline, then introduces the
software life-cycle, software processes, requirement
analysis, design, implementation, testing.
 This course covers the various Software Development
Processes and requires students to appreciate and
apply various aspects of software engineering
principles. Classical Software Development Life-cycles
from waterfall, spiral, incremental, evolutional to
recent lean, agile methods and component-based
systems are covered. Special emphasis is put on
quality and process improvement models.
BOOKS
 Course Books
 Software Engineering, Ian Sommerville Addison
Wesley, 10th Edition
 Software Engineering: A Practitioner's Approach,
Roger Pressman,8th Edition
 Reference Books
 Software Engineering, Theory and Practice by Pfleeger,
3rd Edition.
 Applying UML Patterns by Craig Larman
Lecture #01
Outline
 Nature of Software
 Changing nature of Software
What is Science?
 Science, in the broadest sense, refers to any systematic
knowledge or practice.
 Science refers to a system of acquiring knowledge based on the
scientific method, as well as to the organized body of knowledge
gained through such research.
What is Science

Research Process
What is Science?
What is Engineering?

• “Engineering can be defined as the application of practical


and scientific knowledge to the solving of a problem through
the use of methodological process”.
Science vs Engineering
 Knowledge  Application of knowledge
 Science seeks to explain  Engineering seeks to
phenomena through apply natural laws to the
theory, hypothesis, and solution of practical
experiment, in an effort problems.
to ascertain natural laws.  For example, chemical
 For example, chemistry engineering might use the
investigates the structure results of chemistry to
of chemicals and their come up with a better way
interactions. of refining gasoline.
Computer Science as a Science
 Theory
 Computability, automata, discrete computational
structures
 Algorithm Analysis
 Hypothesis
 That a certain algorithm will solve a problem
 Experiment
 Run a program implementing the algorithm
Computer Science and Software
Engineering (Difference)
Computer Add Customers
Science

Customer

Theory of Algorithms & Programming


Computation Data Languages
Structures
Problem

Software
Engineering

Tools and Techniques


to Solve Problem
What is Software?
 It is general term for various kinds of programs
used to operate computers and related devices.

 Program is set of instructions.

 Software is set of programs.


Definition of Software Engineering
• The process of solving customers’ problems by
the systematic development and evolution (well
understood techniques in an organized and
disciplined way) of large, high-quality software
systems (Teamwork and co-ordination, division
of work) within cost, time and other constraints
(Finite resources, estimates cost and time).
Software Project Success Triangle

Failure

et

Tim
dg
Bu
Success

e
Scope
Software Engineering Layers

Software engineering encompasses a process,


methods for managing and engineering software,
and tools.
Software vs Hardware
 Software: Intangible  Hardware: Tangible
parts of computer parts of computer
 Software is a logical  Hardware is a physical
system element. system element
 Software is developed or  Hardware is
engineered. manufactured in the
classical sense.
Failure curve for hardware
 Hardware wears out with time.
 The relationship shown is called the “bathtub
curve”.
Failure rate curve for software
 Software does not “wear out” but it does
deteriorate.
 The relationship is shown through “idealized
curve” and “actual curve”.
“Wear out” aspect
 When a hardware component wears out, it is
replaced by a spare part. There are no software
spare parts.
 Every software failure indicates an error in design
or in the process through which design was
translated into machine executable code.
 Therefore, the software maintenance tasks that
accommodate requests for change involve
considerably more complexity than hardware
maintenance.
Software Application Domains (7
categories)
 System software
 Application software
 Engineering/scientific software
 Embedded software
 Product-line software
 Web applications
 Artificial intelligence software

Read from Software Engineering book in detail


(Roger Pressman)
Legacy Software
 Legacy software systems were developed
decades ago and have been continually modified
to meet changes in business requirements and
computing platforms.

 The proliferation of such systems is causing


headaches for large organizations who find them
costly to maintain and risky to evolve.
Q&A

You might also like