0% found this document useful (0 votes)
9 views39 pages

Lecture 01 Introduction

introduction

Uploaded by

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

Lecture 01 Introduction

introduction

Uploaded by

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

Object-Oriented Analysis and Design

Practical Software Development using UML and Java

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.

Do not submit work under your name that you


did not do yourself.

Any form of cheating will be earned you


(zero) marks.
• This policy will be applied to all students
involved in the incident
• Coping from online recourses/internet will also
be included.

Chapter 1: OOAD Introduction3


Mobile Phone Policy

 It is strictly prohibited to use

mobile phone in the class

 Keep it in your bag/pocket and keep it

in SILENT mode

 Fine will be imposed in case you

caught using phone

Chapter 1: OOAD Introduction 4


Course Introduction

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

Chapter 1: OOAD Introduction 5


Course Introduction
Course Objectives
•You will learn the basic concepts of the
object-oriented paradigm(bank account(balance,
deposit)), elicitation of requirements

through use cases(place order(brows item, select, etc)) ,


identification of domain concepts(in CL,Book,
Member, Loan,) through domain model, selection

of classes and assigning roles and


responsibilities to various
classes(customers, orders), identification of
relationships among them, and their
realization to implement systems by
coding. Design patterns(templates like Database Connection)
and higher-level structures
(packages(OrderProcessing), layers(user interface),
deployment) using UML.
Chapter 1: OOAD Introduction 6
Course CLOs
At the end of this course, the students should
be able to:
CLO1: Explain how to represent a software system
using UML models, understand guidelines and
heuristics for performing a domain analysis [C2
Understanding].

CLO2: Apply object-oriented techniques on


software systems and create UML models that are
abstract representation of the source code, use
tools for domain and requirements analysis,
modelling, program visualization, and object-
oriented program design [C3 Apply]

CLO3: Investigate how software design principles


and patterns impact software quality and resolve
inconsistencies between various models used as
part of a single system’s design [C4 Analyze].
Chapter 1: OOAD Introduction 7
Contents

Check portal for contents

Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 8


General Instructions

All the course material (Lecture slides,


assignment descriptions, other reading
material will be uploaded on
odoo.cust.edu.pk

You are expected to check your account


regularly for course material and
announcement.

Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 9


Evaluation Criteria

Grading Marks Weight


Assignments 20%
Quizzes 20%
Mid Exam 20%
Final Exam 40%

Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 10


General Instructions Cont..

Communication

• via email:
[email protected]

• Office
C – Block (2st Floor)

Chapter 1: OOAD Introduction 11


This is a advance course…!

It is expected to be
CHALLENGING
I expected you to WORK HARD

Chapter 1: OOAD Introduction 12


1.1 The Nature of Software...
The application of scientific, mathematical, and practical knowledge
to design, build, and maintain structures, machines, systems.
Vs
SE is focused on the systematic design, development, testing, and
maintenance of software applications. SE applies engineering
principles to software development, ensuring reliability,
efficiency, and scalability.

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

Chapter 1: OOAD Introduction 15


Types of Software...
Custom
• For a specific customer
Generic(Microsoft Office)
• Sold on open market
• Often called
— COTS (Commercial Off The Shelf)
( Oracle, Adobe Photoshop)
— Shrink-wrapped(video game)
•Embedded(Calculators, Drones, ATMs)
• Built into hardware
• Hard to change

Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 16


Types of Software

Differences among custom, generic and


embedded software

Custom Generic Embedded


Number of copies in use low medium high

Total processing power low high medium


devoted to running this type
of software

Worldwide annual high medium low


development effort

Chapter 1: OOAD Introduction 17


Types of Software
Real time software
• Must react immediately
• Safety often a concern
• Autonomous vehicles, Air, defense
control
Data processing software
• Used to run businesses
• Accuracy and security of data are key
• Banking system

Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 18


1.2 What is Software Engineering?...
The process of solving customers’ problems by
the systematic development and evolution of
large, high-quality software systems within
cost, time and other constraints.
It applies principles of engineering to
software development to ensure that the
software is reliable, and efficient.
Other definitions:

• IEEE: (1) the application of a systematic, disciplined,


quantifiable approach to the development, operation,
maintenance of software; that is, the application of
engineering to software.
• The Canadian Standards Association: The systematic activities
involved in the design, implementation and testing of
software to optimize its production and support.

Chapter 1: OOAD Introduction 19


What is Software Engineering?…

Solving customers’ problems


• This is the goal of software engineering(problem
solving)

• Sometimes the solution is to buy, not


build(existing products like MS Office)
• Adding unnecessary features does not help solve
the problem
• Software engineers must communicate effectively
to identify and understand the problem

Chapter 1: OOAD Introduction 20


What is Software Engineering?…

Systematic development and evolution


• An engineering process involves applying
well understood techniques in an
organized and disciplined way
• Many well-accepted practices have been
formally standardized
— e.g. by the IEEE or ISO

• Most development work is evolution

Chapter 1: OOAD Introduction 21


What is Software Engineering?…

Large, high quality software systems

• Software engineering techniques are


needed because large systems cannot be
completely understood by one person
• Teamwork and co-ordination are required
• Key challenge: Dividing the work and
ensuring that the parts of the system
work properly together
• The end-product must be of sufficient
quality

Chapter 1: OOAD Introduction 22


What is Software Engineering?

Cost, time and other constraints


• Finite resources
• The benefit must outweigh the cost
• Others are competing to do the job
cheaper and faster
• Inaccurate estimates of cost and time
have caused many project failures

Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 23


1.3 Software Engineering and the Engineering
Profession
The term Software Engineering was coined in 1968
• People began to realize that the principles of
engineering should be applied to software
development

Engineering is a licensed profession


• In order to protect the public
• Engineers design artifacts following well
accepted practices which involve the application
of science, mathematics and economics
• Ethical practice is also a key tenet of the
profession

In many countries, much software engineering does


not require an engineering licence, but is still
engineering

Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 24


Software Engineering and the Engineering
Profession
Ethics in Software Engineering:
Software engineers shall
• Act consistently with public interest(should
consider the potential societal implications, privacy)
• Act in the best interests of their
clients(meet expectation, protect client's confidential info)
• Develop and maintain with the highest standards
possible(efficient, and user-friendly)
• Maintain integrity and independence
• Promote an ethical approach in management
• Advance the integrity and reputation of the
profession
• Be fair and supportive to colleagues
• Participate in lifelong learning( attend conferences,
workshops)

Chapter 1: OOAD Introduction 25


1.4 Stakeholders in Software Engineering

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.)

All four roles can be fulfilled by the


same person

Chapter 1: OOAD Introduction 26


1.5 Software Quality...
Usability
• Users can learn it and fast and get their
job done easily
Efficiency
• It doesn’t waste resources such as CPU time
and memory
Reliability
• It does what it is required to do without
failing
Maintainability
• It can be easily changed
Reusability
• Its parts can be used in other projects, so
reprogramming is not needed

Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 27


Software Quality and the Stakeholders
Customer: User:
solves problems at easy to learn;
an acceptable cost in efficient to use;
terms of money paid and helps get work done
resources used

QUALITY
SOFTWARE

Developer: Development manager:


easy to design; sells more and
easy to maintain; pleases customers
easy to reuse its parts while costing less
to develop and maintain

Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 28


Software Quality: Conflicts and Objectives
The different qualities can conflict
• Increasing efficiency can reduce
maintainability or reusability
• Increasing usability can reduce
efficiency
Setting objectives for quality is a key
engineering activity
• You then design to meet the objectives
• Avoids ‘over-engineering’ which wastes
money
Optimizing is also sometimes necessary
• E.g. obtain the highest possible
reliability using a fixed budget
Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 29
Internal Quality Criteria

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

Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 30


Short Term Vs. Long Term Quality

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?

Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 31


1.6 Software Engineering Projects

Most projects are evolutionary or maintenance


projects, involving work on legacy systems
• Corrective projects: fixing defects
• Adaptive projects: changing the system in
response to changes in
— Operating system
— Database
— Rules and regulations
• Enhancement projects: adding new features
for users
• Reengineering or perfective projects:
changing the system internally so it is
more maintainable

Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 32


Software Engineering Projects

‘Green field’ projects


• New development
• The minority of projects

Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 33


Software Engineering Projects

Projects that involve building on a


framework or a set of existing components.
• A framework is an application that is
missing some important details.
— E.g. Specific rules of this
organization.
• Such projects:
— Involve plugging together components
that are:
- Already developed.
- Provide significant functionality.
— Benefit from reusing reliable software.
— Provide much of the same freedom to
innovate found in green field
development.
Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 34
1.7 Activities Common to Software
Projects...
Requirements and specification
• Includes
— Domain analysis
— Defining the problem
— Requirements gathering
- Obtaining input from as many sources as
possible
— Requirements analysis
- Organizing the information
— Requirements specification
- Writing detailed instructions about how
the software should behave

Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 35


Activities Common to Software Projects...
Design
• Deciding how the requirements should be
implemented, using the available
technology
• Includes:
— Systems engineering: Deciding what
should be in hardware and what in
software
— Software architecture: Dividing the
system into subsystems and deciding how
the subsystems will interact
— Detailed design of the internals of a
subsystem
— User interface design
— Design of databases
Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 36
Activities Common to Software Projects

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

1. Understanding the customer and the user


2. Basing development on solid principles
and reusable technology
3. Object orientation
4. Visual modeling using UML
5. Evaluation of alternatives
6. Incorporating quantitative and logical
thinking
7. Iterative and agile development
8. Communicating effectively using
documentation
9. Risk management in all SE activities

Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 38


1.9 Difficulties and Risks in Software
Engineering
• Complexity and large numbers of
details
• Uncertainty about technology
• Uncertainty about requirements
• Uncertainty about software engineering
skills
• Constant change
• Deterioration of software design
• Political risks

Muhammad Zeeshan Sabir Chapter 1: OOAD Introduction 39

You might also like