Object Oriented SAD-Chapt 1-Part I
Object Oriented SAD-Chapt 1-Part I
Software engineering
1
Course Outline- Core Topics
2
Chapter I- Introduction
Understanding motivations and common /basic concepts
needs
Chapter IV- Requirement Analysis
Analyzing and modeling requirements-WHAT System
Chapter V- System and Object design
Specifying the new system-HOW
system thinking..)
Structured Vs OO approaches
The product
Information System
Software
The process
System Development
Software Engineering
Points to be recalled
7
Modeling
A reduced representation of a reality
Helps to see one aspect of the reality at a time
Avoid complexity
Principles of modeling
Best models are connected to reality
No single model is sufficient
Every model may be expressed at different precision
Represent the reality from different perspectives
What is system/software?
11
and associated
Computer programs
documentation such as requirements, design
models and user manuals.
Software products may be developed for a
particular customer or for a general
market.
System products may be
Generic - developed to be sold to a range of
different customers e.g. PC software such as MS
Office, Peachtree..
Custom - developed for a single customer or
enterprise according to their specification.
The Nature of Software...
12
Software is intangible
Hard to understand the development effort
Conclusions
Demand for software is high and rising
Automation is a must have resource in
organizations
Much software has poor design and is
getting worse
We are in a perpetual/continuous
‘software crisis’
We have to learn to ‘engineer’ software
What are the attributes of good
system/software?
15
QUALITY
SOFTWARE
Shrink-wrapped
Embedded
Built into hardware
Hard to change
Cont…
19
system software
real-time software
business software
engineering/scientific software
embedded software
Artificial Intelligence software
Web applications
Software Development Life Cycle
21
Project management
Estimating development time,
Managing budgets,
Challenged means…
Delayed, over budget, or lacking important
business requirements
System development Process/ Software
Engineering Process
26
A process used to create a software system
Consists of:
Methods (steps)
A sequence of step-by-step approaches that
help develop the information system
Techniques
Processes that the analyst follows to ensure
thorough, complete and comprehensive
analysis and design
Tools
Computer programs that aid in applying
techniques
What are system/software engineering
methods?
27
Structured paradigm
Modeling process and data separately
Suitable for small sized software
Object-Oriented Concepts
and Principles
Object Oriented paradigm
30
objects
problem domain
Cont…
32
Benefits
Methods
Cont…
35
Abstraction
Denotes essential characteristics of an
object that distinguishes it from all other
kinds of objects
Object -> something in the real world
Class -> collection of objects
Superclass -> more general than subclasses
Operation -> methods
Attributes and associations -> instance variables
Encapsulation
36
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:
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
maintenance
Hierarchy
39
Hierarchy
Is a ranking or ordering of abstractions
Inheritance
The mechanism where features in a hierarchy inherit
from superclasses to subclasses
“is a”
A secretary is an employee...
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
40
Inheritance
The implicit possession by all subclasses of
features defined in its superclasses
Class
Hierarchy
41 (superclass)
furniture
furniture
subclasses of the
furniture
superclass
instances of chair
Objects, Classes, Polymorphism, Message,
Attributes, Methods
42
Object
A chunk of structured data in a running software
system
Has properties
Represent its state
The data elements
Has behavior
How it acts and reacts
May simulate the behavior of an object in the real world
Objects
44
Classes
45
A class:
A unit of abstraction in an object oriented (OO)
program
• object-oriented
thinking begins with
the definition of a
class often defined as:
– template
– generalized description
– pattern
– “blueprint” ... describing
a collection of similar
items
• once a class of items
is defined, a specific
instance of the class
can be defined
What is a Class?
48
things roles
• object-oriented occurrences organizational units
sender object
attributes:
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
52
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
53