Professional Documents
Culture Documents
By:
Azmeraw Dessalegn
OOSAD course outline(description)
2
Subject-specific knowledge
To have a good understanding of the processes involved in
developing computer systems
Mid exam—20%
Introduction
Introduction
8
Shrink-wrapped
Embedded
Built into hardware
Hard to change
Cont…
14
system software
real-time software
business software
engineering/scientific software
embedded software
AI software
WebApps (Web applications)
Software Development Life Cycle
16
Project management
Estimating development time, Ensuring people are used
effectively
Ensuring good communication and a healthy work
environment
Managing budgets, Training and handover
These issues won’t be the major focus of this course.
Why “Scientific” Methods for
system/software development?
19
Industry status (2004)
20
Structured paradigm
Modeling process and data separately
Suitable for small sized software
Object-Oriented Concepts
and Principles
Object Oriented paradigm
25
objects
problem domain
Cont…
27
Benefits
Objects are reusable
Maintenance cost are lowered
Improved quality and maintainability
Cont…
28
Abstraction
Denotes essential characteristics of an object
that distinguishes it from all other kinds of
objects
Abstraction
Object -> something in the world
Class -> objects
Super class -> subclasses
Operation -> methods
Attributes and associations -> instance variables
Encapsulation
31
Encapsulation
Hiding the inner workings of object’s operations from the
outside world and from other objects
Example : a Monitor and CPU
Details can be hidden in classes
This gives rise to information hiding:
Programmers do not need to know all the details of a
class
Encapsulation/Hiding
32
The object encapsulates
both data and the logical
procedures required to method method
manipulate the data #1 #2
data
method
#6
method method
#5 #4
Modularity
The property of a system that has been decomposed in to a
set of cohesive and loosely coupled modules
Code can be constructed entirely of classes
Promotes understandability
Hierarchy
34
Hierarchy
Is a ranking or ordering of abstractions
Inheritance
The mechanism where features in a hierarchy inherit from super
classes to subclasses
“is a”
Aggregation
The process of creating a new object from two or more other
objects.
“part of”
A car is an aggregation of engine, wheel, body...
An Example Inheritance Hierarchy
35
Inheritance
The implicit possession by all subclasses of features
defined in its super classes
Class Hierarchy
36 (superclass)
furniture
subclasses of the
furniture superclass
instances of chair
Objects, Classes, Polymorphism, Message, Attributes,
Methods
37
Object
A chunk of structured data in a running software system
Has properties
Represent its state
Has behaviour
How it acts and reacts
May simulate the behaviour of an object in the real world
Objects
39
Classes
40
A class:
A unit of abstraction in an object oriented (OO) program
attributes:
operations
attributes:
operations:
What is a Class?
44
occurrences roles
things organizational units
places
external entities
structures
class name
attributes:
operations:
Methods
(Operations, Services)
45
receiver object
attributes:
operations:
operations:
message:
[sender, return value(s)]
Operation
A higher-level procedural abstraction that specifies a type of
behaviour
Independent of any code which implements that behaviour
E.g. calculating area (in general)
Methods, Operations and Polymorphism
48
Method
A procedural abstraction used to implement the behaviour of a
class.
Several different classes can have methods with the same name
They implement the same abstract operation in ways suitable to
each class
E.g. calculating area in a rectangle is done differently from in a
circle
Polymorphism
49
?
Thank you!!!