Lecture 01 Introduction
Lecture 01 Introduction
Chapter 1:
Introduction
Course Policies
Assessment Policy
• No makeup for assignments, quizzes and
projects. No Exception
• Quizzes will be unannounced and
announced,
• No best of Quizzes/Assignments
Attendance Policy
• Attendance will be marked at any time
during the class.
• Check your attendance during the
class.
Courtesy: Sir Muhammad Zeeshan
Sabir Chapter 1: OOAD Introduction2
Zero tolerance for cheating
Cheating is unethical and not acceptable.
Plagiarism is using information/source code
without giving credit to the source of that
information.
in SILENT mode
Recommended Book(s)
•Applying UML and Patterns, Craig
Larman, 3rd Edition
Reference Book(s)
•Object-Oriented Systems Analysis
And Design Using UML by Simon
Bennett, Ray Farmer, 4th Edition
Communication
• via email:
[email protected]
• Office
C – Block (2st Floor)
It is expected to be
CHALLENGING
I expected you to WORK HARD
Software is intangible
• Hard to understand development effort
Software is easy to reproduce
• Cost is in its development
— in other engineering products,
manufacturing is the costly stage
The industry is labor-intensive
• Hard to automate(AI can't solve the problem till
now)
Chapter 1: OOAD Introduction 13
The Nature of Software ...
Untrained people can hack something
together
• Quality problems are hard to notice
Software is easy to modify
• People make changes without fully
understanding it
Software does not ‘wear out’
• It deteriorates by having its design
changed(invalid changes):
— invalidly, or
— in ways that were not anticipated,
thus making it complex
Chapter 1: OOAD Introduction 14
The Nature of Software
Conclusions
• Much software has poor design and is
getting worse
• Demand for software is high and rising
• We are in a perpetual ‘software
crisis’(1960/70, till now)
• We have to learn to ‘engineer’ software
1. Users
• Those who use the software
2. Customers
• Those who pay for the software
3. Software developers
4. Development/project Managers(planning,
scheduling, and resource allocation.)
QUALITY
SOFTWARE
These:
• Characterize aspects of the design of
the software
• Have an effect on the external quality
attributes
• E.g.
— The amount of commenting of the
code
— The complexity of the code
Short term:
• Does the software meet the customer’s
immediate needs?
• Is it sufficiently efficient for the
volume of data we have today?
Long term:
• Maintainability
• Customer’s future needs
• Scalability: Can the software handle
larger volumes of data?
Modeling
• Creating representations of the domain
or the software
— Use case modeling
— Structural modeling
— Dynamic and behavioural modeling
Programming
Quality assurance
• Reviews and inspections
• Testing
Deployment
Managing the process
Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 37
1.8 The Nine Themes of the Book