You are on page 1of 43

SE-200

Software Engineering
About Myself

Dr. Qurat-ul-Ain, PhD


Office: High Performance Computing (HPC) lab near Seminar Hall
Email: qain.dphd18seecs@seecs.edu.pk

• National University of Sciences and Technology (NUST)


• PhD in Computer Science
• Energy Forecasting and Decision Making using Data Analytics
in Smart Grid

2
About Myself

PhD Research
❖ Forecasting of Electricity Generation and
Consumption using Statistical and Deep
Learning methods
❖ Effective Load Management using Fuzzy
Logic system

3
Publications

4
About Yourself

❖ Your Name and its meaning


❖ Where you grew up
❖ Last Educational Degree: A-Levels, FSc?
❖ What do you want to do after completing
your degree
❖ A fun fact about you!

5
About the course
SE-200 Software Engineering

❖3 credit hours
❖ Timings:
o Tuesday 10:00 am – 11:50 am
o Thursday 09:00 am – 09:50 am
❖ Venue:
o UG Block #6

❖ LectureSlides/Books/Additional Readings
→ Check LMS
❖ Always use the latest version of slides for
your Mid/ESE. 7
Course Objectives

❖ Tostudy various software development


models and phases of software
development life cycle
○ project management
○ change control
○ process management
○ software development
○ testing

8
Learning Outcomes
❖ Understand key principles and processes
of software engineering
❖ Use appropriate approaches and methods
for software development
❖ Analyze the system developed using a
suitable approach
❖ Understand the responsibility and
apply the societal and legal issues for
professional software engineering
practices
❖ Communicate efficiently and express
ideas in discussions and negotiations 9
Textbooks

❖ Software Engineering, 10th Edition, Ian


Sommerville, Addison-Wesley, 2015
❖ Software Engineering: A Practitioner's
Approach 8th Edition, R.S. Pressman,
McGraw-Hill, 2010

10
Grading Criteria

Assessments Weightage
Quizzes: 10%
Assignments 10%
Project 10%
Mid Semester Exam (MSE) 30%
End Semester Exam (ESE) 40%
Total 100%

11
Quiz Policy
❖ Surprise quizzes!
❖ The question framed is to test the
concepts involved in last few lectures.
❖ Missed quizzes will not be
retaken/compensated.
❖ Quiz marks is a way to honor punctual
and regular students.
❖ Bonus: Any student with attendance at
least 80%, will get bonus marks by
replacement of the minimum quiz score
by the maximum. 12
Project Policy

❖ Form a group of 3 members


❖ Select a software project from
NSTP/SDGs (approval required)
❖ Apply different stages of Software
Development Life Cycle for your
project
❖ Submit project deliverables
❖ Present it!

13
Assignment Policy
❖ Thecourse website (LMS) will be the
primary source submitting assignments.

❖ Late Submissions
○ Late submission will get a 0% penalty up to
one day late. (don’t avail this grace period)
○ –30% penalty for more than 1 day late (No
acceptation after 2 days from deadline)
○ Email instructor at least 03 days before the
deadline, if case of any genuine reason.

14
Plagiarism Policy
❖ Collaboration and group work is
encouraged but each student is required
to submit his/her own contribution(s). You
must cite and acknowledge all sources of
information in your assignments.
❖ Cheating and plagiarism will not be
tolerated and will lead to strict penalties
including zero marks in assignments as
well as referral to the Dean for
appropriate action(s).
❖ ChatGPT is allowed for the constructive
works. 15
Objectives

✓ Professional Software
Engineering and its
Importance

✓ Guidelines for
Software Engineering
Ethics
What is Software?

Computer Software Software


programs and products may products may
associated be developed be
documentation for a particular
customer or
for a general
market
Generic - developed to be sold to a
range of different customers
• Examples – PC software such as
graphics programs, project
management tools; CAD software;
software for specific markets such as
appointments systems for dentists.
Customized - developed for a single
customer according to their specification
• Examples – embedded control
systems, air traffic control software,
traffic monitoring systems.
17
What is wrong with this picture?

18
Software is Critical : Power

19
Source: https://en.wikipedia.org/wiki/Northeast_blackout_of_2003
Software is Critical : Defense
Quoting an Air Force lieutenant general,
“The only thing you can do with an F-22
that does not require software is take a
picture of it.”

[ Crouching Dragon, Hidden Software: Software in DOD Weapon Systems (Ferguson,


20
IEEE Software, 2001) ]
Software is Critical : Transportation

21
Software is Critical : Transportation

22
Software is Critical : Privacy

• Name, SSN, DOB,


Address, CC#

❖ “I didn't have to do anything fancy,” the


researcher told Motherboard, explaining
that the site was vulnerable to a basic
“forced browsing” bug. The researcher
requested anonymity out of professional
concerns. “All you had to do was put in a
search term and get millions of results, just
instantly” they said. 23
Software is Critical : Space

❖ The European Space


Agency’s Ariane 5
Flight 501 was
destroyed 40 seconds
after takeoff (June 4,
1996).
❖ The bug? Bad
conversion of double
to short, leading to an
overflow.
24
Software is Critical : Healthcare

❖ Therac-25 radiation therapy machine


❖ accidents of massive overdoses of
radiation
❖ Because of concurrent programming
errors, it gave its patients radiation doses
that were hundreds of times greater than
normal, resulting in death or injury
25
Software is Critical : COVID-19

26
Attributes of Good Software
Product Description
characteristic
Maintainability Software should be written in such a way so that it can
evolve to meet the changing needs of customers.
Dependability and Software dependability includes a range of
security characteristics 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.
27
What is
Software
Engineering?
Software Engineering

My favorite operational definition of


engineering is 'design under constraint.'

Engineering is creating, designing what
can be, but it is constrained by nature, by
cost, by concerns of safety, reliability,
environmental impact, manufacturability,
maintainability, and many other such
'ilities.'
[Bill Wulf, NAE President, The Urgency of Engineering Education Reform, 2008]
29
Software Engineering

[Software “
Engineering
Establishment and use of sound
is] The

engineering principles in order to obtain


economically software that is reliable
and works efficiently on real machines.

[Bauer 1975, S. 524]

30
❖ The economies of
ALL developed
nations are
dependent on
software.
❖ More and more
systems are
software
controlled

31
Cost of Software Engineering
Roughly 60% of costs
are development costs,
40% are testing costs.

Maintenance accounts
for about 70 – 90% of
the total lifecycle
budget of software
project. 32
Software Engineering Activities
❖a sequence of activities that leads to the
production of a software product

❖4 Fundamental Activities
1. Specification - what the system should
do and its development constraints
2. Development - production of the software
system
3. Validation - checking that the software is
what the customer wants
4. Evolution - changing the software in
response to changing demands
33
Challenges in Software Engineering
❖ Legacy Systems
○ Old, valuable systems must be maintained
and updated

❖ Heterogeneity/Diversity
○ systems are required to operate as distributed
systems across networks including different
types of computer and mobile devices. 34
Challenges in Software Engineering
❖ Delivery
○ There is increasing pressure for faster
delivery of software

❖ Business and social change


○ Business and society changes quickly as
emerging economies develop and new
technologies become available.

❖ Security and trust


○ As software is intertwined with all aspects of
our lives 35
Software Engineering : Diversity

❖ Stand-alone applications
○ These are application systems that run on
a local computer, such as a PC. They
include all necessary functionality and do
not need to be connected to a network.

❖ Interactive transaction-based applications


○ Applications that execute on a remote
computer and are accessed by users from
their own PCs or terminals. These include
web applications such as e-commerce
applications.
36
Software Engineering : Diversity

❖ Embedded control systems


○ These are software control systems that
control and manage hardware devices.
Numerically, there are probably more
embedded systems than any other type of
system.

❖ Batch processing systems


○ These are business systems that are
designed to process data in large batches.
They process large numbers of individual
inputs to create corresponding outputs.
37
Software Engineering : Diversity

❖ Entertainment systems
○ These are systems that are primarily for
personal use and which are intended to
entertain the user.

❖ Systems for modeling and simulation


○ These are systems that are developed by
scientists and engineers to model physical
processes or situations, which include
many, separate, interacting objects.
38
Software Engineering : Diversity

❖ Data collection systems


○ These are systems that collect data from
their environment using a set of sensors
and send that data to other systems for
processing.

❖ Systems of systems
○ These are systems that are composed of a
number of other software systems.

39
Software Engineering : Diversity
❖ Applications: web, smartphone
❖ System software: operating systems, compilers
❖ Communications: routers, telephone switches
❖ Data processing: telephone billing, pensions
❖ Real time: air traffic control
❖ Embedded software: device drivers, controllers
❖ Mobile devices: digital camera, GPS, sensors
❖ Information systems: databases, digital libraries
❖ Offices: word processing, video conferences
❖ Scientific: simulations, weather forecasting
❖ Graphical: film making, design
❖ etc., etc., etc., ....

40
Difference between CS and SE

❖ Computer science is concerned with


theory and fundamentals; software
engineering is concerned with the
practicalities of developing and delivering
useful software

41
Summary

❖ Essential software product attributes are


maintainability, dependability and
security, efficiency and acceptability.
❖ Software engineering is an engineering
discipline that is concerned with all
aspects of software production.
○ software processes
○ challenges

42
Thanks!
Any comment/questions?

43

You might also like