You are on page 1of 50

Rift Valley University(bishoftu campus)

Object Oriented System


Analysis and Design
1

By:
Azmeraw Dessalegn
OOSAD course outline(description)
2

Subject-specific knowledge
 To have a good understanding of the processes involved in
developing computer systems

 To be able to use the System Development Life Cycle (SDLC) to


structure a project and implement a computer information
system

Subject-specific practical skills


 Enable students to analyze and design systems by following
System Development Life Cycle(SDLC)
OOSAD course outline(description)
3
Chapter-1 Introduction
1. Information Systems/softwares
2. problems in Information Systems Development
3. Avoiding Problems
4. Object Orientation
Chapter-2 Modeling
1. Modeling concept
2. Overview of UML
3. Building block of UML
4. Relationship in UML
5. Diagram in UML
6. Diagram extention
OOSAD course outline(description)
4
Chapter-3 Requirement Elicitation
1. Overview of requirement elicitation
2. Requirement elicitation concept(functional and non
functional requirement)
3. Requirement elicitation activities
4. Managing requirement
Chapter-4 object oriented System Analysis
1. Overview of analysis
2. Analysis concept
3. Analysis activity
OOSAD course outline(description)
5
Chapter-5 System Design
1. Introduction
2. Object Design
3. Design Patterns
4. Human-Computer Interaction
5. Design Boundary Classes
6. Data Management Design
Chapter- 6 software quality assurance
1. Overview of testing
2. Testing activities
Chapter- 6 implementation
Chapter- 7 Managing Object Oriented Projects
Chapter- 8 Systems Development Methodologies
OOSAD course outline(description)
6
Assessment Methods
 Project – 20%
 Quizzes – 10%

 Mid exam—20%

 Final Exam – 50%

Text & Reference Books:


 Mahesh P.Matha, “Object-Oriented Systems Analysis and
Design Using UML”,.
Object Oriented System
Analysis and Design
7

Introduction
Introduction
8

System development ultimate objectives


 Problem solving
 Supporting processes

Participants and roles in system/software production


 Users
 Managers (owners)
 Analysts
 Designers
 Programmers
 Consultants
Cont…
9

Scenarios Initiating system/software development


 Real problem on the day to day task
 By end users
 Looking for effectives and efficiency
 By managers
 Sensing new opportunities and technologies
 By technical personnel
What is system/software?
10

Computer programs and associated


documentation such as requirements, design
models and user manuals.
Software products may be developed for a
particular customer or may be developed 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 Excel or Word.
 Bespoke (custom) - developed for a single customer
according to their specification.
What are the attributes of good
system/software?
11

 The software should deliver the required functionality and


performance to the user and should be maintainable, dependable
and acceptable.
 Maintainability
 Software must evolve to meet changing needs;
 Dependability
 Software must be trustworthy;
 Efficiency
 Software should not make wasteful use of system resources;
 Acceptability (meet users requirement)
 Software must accepted by the users for which it was
designed. This means it must be understandable, usable and
compatible with other systems.
Software Quality...
12
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
Types of system/Software...
13

Based on application nature


 Custom
 For a specific customer
 Generic
 Sold on open market
 Often called
 COTS (Commercial Off The Shelf)

 Shrink-wrapped

 Embedded
 Built into hardware
 Hard to change
Cont…
14

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
System/Software Applications
15

system software
real-time software
business software
engineering/scientific software
embedded software
AI software
WebApps (Web applications)
Software Development Life Cycle
16

• SDLC has several clearly defined phases


• Requirements gathering What does the user want?

• Systems analysis Understanding/documenting requirements

• Design Planning a possible solution

• Implementation Building a solution

• Testing the implementation Ensuring it meets requirements

• Requirements gathering and systems analysis are


performed iteratively.
• Design/Implementation/Testing are done sequentially.
Other parts of the life cycle
17

• Other aspects of developing software


• Feasibility analysis
• Project scoping - putting limits on how much you
will develop
 Deals with putting limits on how much you
want to create/clearly specifying what you want
to achieve.
Other aspects of developing software
18

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

How well are systems built?


 TotalFailure 15%
 “Challenged” 51%
 Successful 34%
In 1994 Successful was only 17%!
Challenged means…
 Delayed,budget, or lacking critical
features/requirements
System development Process/ Software Engineering
Process
21
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?
22

 Tools + steps + techniques= methodology


 Well organized and Structured approaches to software
development which include system models, notations,
rules, design advice and process guidance.
 Model descriptions
 Descriptions of graphical models which should be produced;
 Rules
 Constraints applied to system models;
 Recommendations
 Advice on good design practice;
 Process guidance
 What activities to follow.
Structured Vs Object Oriented Approaches to
system/software development
23

Structured paradigm
 Modeling process and data separately
 Suitable for small sized software

Object oriented paradigm


 Things are made up of objects
 Objects are identified having data and function
 Is a software development strategy based on the
idea the idea of building systems/software from
reusable components called objects
24

Object-Oriented Concepts
and Principles
Object Oriented paradigm
25

An approach to the solution of problems in which


all computations are performed in the context of
objects.
 The objects are instances of classes, which:
 are data abstractions
 contain procedural abstractions that operate on the
objects
 A running program can be seen as a collection of objects
collaborating to perform a given task
The OO Mindset
26

objects

problem domain
Cont…
27

Object Oriented Technology


 De –emphasizes procedures
 A system is made up of objects

 Users can more easily understand objects

 Benefits
 Objects are reusable
 Maintenance cost are lowered
 Improved quality and maintainability
Cont…
28

For system/software developer in object


orientation
 Object oriented programming
 Object Oriented Analysis, design

 Object Oriented CASE tools


Cont…
29

OOT is built up on a sound engineering foundation


whose elements we collectively called the object
model.
The Object model encompasses the principles of
 Abstraction
 Encapsulation
 Modularity
 Hierarchy
Other Concepts
 Objects, Classes, Polymorphism, Message, Attributes, Methods
Cont…
30

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

Achieves “information hiding”


Cont…
33

 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

table chair desk “shelf"

subclasses of the
furniture superclass

instances of chair
Objects, Classes, Polymorphism, Message, Attributes,
Methods

37

OTHER CENTRAL CONCEPTS


Classes and Objects
38

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

 Represents similar objects


 Its instances

 A kind of software module


 Describes its instances’ structure (properties)
 Contains methods to implement their behaviour
Is Something a Class or an Instance?
41

 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
 Film
 Class; instances are individual films.
 Reel of Film:
 Class; instances are physical reels
 Film reel with serial number SW19876
 Instance of ReelOfFilm
 Science Fiction Film
 Class; instances include ‘Star Wars’
 Showing of ‘Star Wars’ in the Phoenix Cinema at 7 p.m.:
 Instance of ShowingOfFilm
Classes
42

• object-oriented thinking begins with the definition


of a class often defined as:
– template
– generalized description
– pattern
– “blueprint” ... describing a collection of similar items
• Un upperclass (also called a superclass) is a
collection of classes
• once a class of items is defined, a specific instance
of the class can be defined
Building a Class
43
class name

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

An executable procedure that is encapsulated in


a class and is designed to operate on one or more
data attributes that are defined as part of the
class.
A method is invoked
via message passing.
Messages
sender object 46
attributes:

receiver object

attributes:
operations:

operations:

message:
[sender, return value(s)]

message: [receiver, operation, parameters]


Methods, Operations and Polymorphism
47

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

 The mechanism by which several methods can have


the same name and implement the same abstract
operation.
A property of object oriented software by which an
abstract operation may be performed in different
ways in different classes.
 Requires that there be multiple methods of the same name
 The choice of which one to execute depends on the object that
is in a variable
 Reduces the need for programmers to code many if-else or
switch statements
End
50

?
Thank you!!!

You might also like