CSC291 - Software Engineering Concepts
Lecture 1
Introduction
2/18/2025 CSC291 - Software Engineering Concepts 2
Course Objectives
• This course introduces the different software process
models by illustrating its phases and principles of software
engineering.
• Topics include:
• Overview of Software Engineering;
• Software Process Models;
• Requirement Engineering Concepts;
• Software Design;
• Design Modeling;
• Software Quality Engineering;
• Software Project Management;
• Software Maintenance and Software Evolution.
2/18/2025 CSC291 - Software Engineering Concepts 3
Text Books
• Software Engineering: A Practitioner’s Approach
by Roger S. Pressman (Latest Edition)
• Software Engineering by Ian Sommerville (Latest
Edition)
2/18/2025 CSC291 - Software Engineering Concepts 4
Course Website
• Visit the following link:
https://sites.google.com/cuilahore.edu.pk/sec/home
❑Course Handbook
❑Deadlines & Important Information
❑Course Material (Lecture Notes and reference material)
❑Assignments
2/18/2025 CSC291 - Software Engineering Concepts 5
Course Assessment/Grading
Quizzes (Min 4) → 15 %
Assignments (Min 4) → 10%
Mid Exam → 25%
Final EXAMS → 50%
Important Guidelines:
• No credit for copied or late submissions or handwritten
Assignments.
• No relaxation for students found cheating in any quiz or
exam.
• At least 80% attendance is mandatory.
• To get good grade you must attend all lectures and perform
good in all course assessments.
2/18/2025 CSC291 - Software Engineering Concepts 6
Rules
• Mobile phones – Silent or switch off
• Arrive on time in class
• If you do not understand a point, raise your hand
and ask me to explain or contact during office
hours
• No disturbance!!!! No Misconduct!!!!
• REMEMBER: Your first priority must be your
studies
2/18/2025 CSC291 - Software Engineering Concepts 7
What is Software?
• Software is a set of items or objects that form a
“configuration” that includes
➢programs
➢documents
➢data ...
2/18/2025 CSC291 - Software Engineering Concepts 8
What is Software?
We can define it as:
• Program (Computer Programs) that when executed
provide
• Desired features
• Functions and
• Performance.
• The data on which the program operates is also
considered as a part of the software.
• Documents that describe the use of the Programs.
2/18/2025 CSC291 - Software Engineering Concepts 9
What is Software?
• Software is engineered
• Software doesn’t wear out
• Software is complex
2/18/2025 CSC291 - Software Engineering Concepts 10
Role of Software
A person might be involved with software more than 100 times, often
without even realizing that.
We might use a computer
• To check email or weather
• Kitchen appliances
• Traffic signals are now computer controlled
• Mostly we use credit cards in a computerized gasoline pumps.
• Our bank system is highly computerized
• Use of telephones, fax, e-mail or internet, all of these requires Software
• Hotel arrangements will be handled by computers and software
• Airplane & Air traffic control is highly computerized
• Medical Instruments and diagnostic procedures are now computerized
2/18/2025 CSC291 - Software Engineering Concepts 11
What is the difference between Software
and hardware?
2/18/2025 CSC291 - Software Engineering Concepts 12
Attributes of Good Software
• Should deliver the required functionality and performance to
the user.
• It is reliable
• It has good user-interface
• Should be maintainable and reusable
2/18/2025 CSC291 - Software Engineering Concepts 13
Categories of Computer Software
• System Software
• Application Software
• Engineering/Scientific Software
• Embedded Software
• Web Applications
• Computer Programming tools
• Artificial Intelligence Software
2/18/2025 CSC291 - Software Engineering Concepts 14
Software--- New Categories
• Ubiquitous computing—wireless networks
• Net sourcing—the Web as a computing engine
• Open source—”free” source code open to the computing
community (a blessing, but also a potential curse!)
• Also … (see Chapter 32)
• Data mining
• Grid computing
• Cognitive machines
• Software for nanotechnologies
2/18/2025 CSC291 - Software Engineering Concepts 15
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 editing, graphics
programs, project management tools, databases and
drawing packages.
Customized products
• Software that is commissioned by a specific customer to
meet their own needs.
• Examples–systems written to support a particular business
process and air traffic control software.
2/18/2025 CSC291 - Software Engineering Concepts 16
Software Crises
• In the early 60s, software suffered from a problem, which we
call the Software Crisis
• The techniques that were used to develop small software were
not applicable for large software systems.
• In most of the cases the software that was built using the old
tools and techniques was not complete.
2/18/2025 CSC291 - Software Engineering Concepts 17
Software Crises
• Most of the time it was delivered too late.
• Most of the projects were over-budgeted.
• And, in most of the cases, systems built using these techniques
were not reliable.
• A conference was held in 1960 in which the term
“software crisis” was introduced
Conclusion:
• Software engineering is the result of the software crisis when
people realized that it was not possible to construct complex
software using the techniques applicable in 1960s.
• An important result of this was that people realized that just
coding was not enough; we also need to apply engineering
principles.
2/18/2025 CSC291 - Software Engineering Concepts 18
What is Engineering?
• The process of productive use of scientific knowledge is
called Engineering.
• The process of utilizing knowledge and principles to
design, build, and analyze objects.
2/18/2025 CSC291 - Software Engineering Concepts 19
Software Engineering
The science concerned with putting computer science
knowledge to practical use.
2/18/2025 CSC291 - Software Engineering Concepts 20
Software Engineering - IEEE
The application of a systematic, disciplined, quantifiable
approach to the development, operation, and
maintenance of software; that is, the application of
engineering to software.
2/18/2025 CSC291 - Software Engineering Concepts 21
Computer Science vs. Software Engineering
Computer science focuses on theory and fundamentals;
software engineering is concerned with the practicalities of
developing and delivering useful software.
System engineering vs. Software Engineering
System engineering is concerned with all aspects of
computer-based systems development including hardware,
software and process engineering. Software engineering is
part of this.
2/18/2025 CSC291 - Software Engineering Concepts 22
Legacy Software
• Why must it change?
• software must be adapted to meet the needs of new
computing environments or technology.
• software must be enhanced to implement new
business requirements.
• software must be extended to make it interoperable
with other more modern systems or databases.
• software must be re-architected to make it viable
within a network environment.
2/18/2025 CSC291 - Software Engineering Concepts 23
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.
2/18/2025 CSC291 - Software Engineering Concepts 24
What are the costs of software engineering?
• Roughly 60% of costs are development costs, 40% are testing
costs. For custom software, evolution costs often exceed
development costs.
• Costs vary depending on the type of system being developed
and the requirements of system attributes such as performance
and system reliability.
• Distribution of costs depends on the development model that is
used.
2/18/2025 CSC291 - Software Engineering Concepts 25
Projects
• Library Management System
• Automated banking system
• Airline reservation system
• Employee management application
• Hospital management Application
• Hotel Management System
• Campus Management System
• Store Management System (Any kind of your choice)
• School Management System
• Any Other of your choice
2/18/2025 CSC291 - Software Engineering Concepts 26
Conclusion
➢We have discussed Rules and regulations of this course
➢Course handbook
➢Basic concepts of Software Engineering
➢Software and products
2/18/2025 CSC291 - Software Engineering Concepts 27
Reading Assignment
Chapter 1: Software and Software Engineering
by “Software Engineering- A Practitioner's Approach”
(Book and Lecture Slides are already uploaded on
resource link.)
Resource Link:
https://sites.google.com/cuilahore.edu.pk/sec