Wolkite University College of Computing and Informatics Department of Software Engineering
Wolkite University College of Computing and Informatics Department of Software Engineering
Wolkite University College of Computing and Informatics Department of Software Engineering
1
Object Oriented Software Analysis and Design
Chapter – 1
Introduction to Software Development
Part - I
What is Software?
In an institution or any company there is a procedure that defines the roles,
responsibilities of each and every individual within the institution. Besides
specifying role and responsibility, procedures describes how a certain business
activity is performed.
Similarly, software is the procedure that tells the different parts and
peripherals of the computer (the machine) system what to do and how to do it.
What is System?
System is interrelated set of business procedure (or components) used within
one business unit, working together to achieve specific goal.
System take input from outside, processes it, and sends
the resulting output back to its environment.
Software
Is it just a
program
or
Compiled By: Aliazar D.
code??
What is Software?
3
Software is more than just a program or code. It is
considered to be a collection of computer program,
procedures, rules, data, metadata, file system or database
system and its associated documentations.
Computer program refers to a code fragment written in some
programming language and desired to accomplish particular
purpose.
A program(s) need procedure to be led by; a rule to act in
accordance; data to act up on, metadata to interpret things against,
file system or database system to forward (or store and organize)
processing results towards and finally a documentation to assist its
users.
Supporting processes
Software is intangible
Software is not able to touched so it is hard to understand
development effort
Software is easy to reproduce
Once developed it is easy to make a copy of software.
The Software industry is labor-intensive
Involves very great effort to develop.
Untrained people can hack software
Quality problems are hard to notice
Software is easy to modify
Once developed it is easy to make changes or updates.
QUALITY
SOFTWARE
15
Why
Software Engineering
discipline is needed?
Compiled By: Aliazar D.
Industry status
17
Object-Oriented Concepts
and Principles
Benefits
Objects are reusable
Financial benefit (Component Reusability, Maintenance cost are lowered)
Improved quality and maintainability and ……(Read More About it!!)
Compiled By: Aliazar D.
The OO Mindset
23
objects
problem domain
Modularity
Encapsulation
Hierarchy
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
#3 d
o
#6 d
meth
tho
me
method method
#5 #4
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...
Inheritance – “is a”
Compiled By: Aliazar D.
Example of Aggregation Hierarchy
30
furniture (superclass)
subclasses of the
furniture superclass
31
Object
An object is a software construct that mirrors a concept in the
real world, e.g., a person, place, thing, event, concept, screen,
or report.
Objects are typically (but not always) nouns.
Has properties
Represent its state
Has behavior
How it acts and reacts
May simulate the behavior of an object in the real world
A class:
A class is a software abstraction of an object, effectively,
a template from which objects are created.
Represents similar objects
Its instances
A kind of software module
Describes its instances’ structure (properties)
Contains methods to implement their behavior
Is Something a Class or an Instance?
Something should be a class if it could have instances
Something should be an instance if it is clearly a single member of the set
defined by a class
e.g. Film – is a Class; instances are individual films
Compiled By: Aliazar D.
Building a Class
35
class name
attributes:
operations
attributes:
operations:
class name
attributes:
operations:
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 i.e. how it acts and reacts.
Method
A procedural abstraction used to implement the behaviour of a
class.
A method is invoked via message passing.
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.
Question ??
Compiled By: Aliazar D.