Wolkite University College of Computing and Informatics Department of Software Engineering

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 40

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

Compiled By: Aliazar D.


Chapter One
Introduction to System / Software Development
2

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.

Compiled By: Aliazar D.


Cont…
4

Software development ultimate objectives


Problem solving

 Supporting processes

Participants (stakeholders) in system/software


production
 Users
 Managers (owners)
 Analysts
 Designers
 Programmers
 Consultants

Compiled By: Aliazar D.


Cont…
5

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
 e.g. SIMS

Compiled By: Aliazar D.


The Nature of Software...
6

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

Compiled By: Aliazar D.


What are the attributes of good
system/software?
7

 The software should deliver the required functionality and


performance to the user and it should be:
 Maintainable
 Software must evolve to meet changing needs;
 Dependable
 Software must be trustworthy i.e. able to relied on what it is intended to
do;
 Efficient
 Software should not make wasteful use of system resources;
 Acceptable (meet users requirement)
 Software must accepted by the users for whom it was designed. This
means it must be understandable, usable and compatible with other
systems.

Compiled By: Aliazar D.


Software Quality...
8
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

Compiled By: Aliazar D.


Stakeholders perception of System/Software Quality
9
Owner: 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

Compiled By: Aliazar D.


Types of system/Software...(Generally)
10
 Software products may be developed for a particular customer
or may be developed for a general market.
 So based on to whom it is developed software products
classified as:
 Generic - developed to be sold to a range of different
customers e.g. PC software such as MS Excel or MS Word.
 Bespoke (custom) - developed for a single customer
according to their specification. e.g. Bank Transaction
Management System CBE
 Embedded - developed for any sort of device which includes
a programmable component but itself is not intended to be
general purpose computer. e.g. Washing machine, ATM’s,
Cell phones, Television, Digital Camera and etc..

Compiled By: Aliazar D.


Cont…
11

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

Compiled By: Aliazar D.


What are Types of Software? (Specifically)
12

How to classify software


in different categories?

Compiled By: Aliazar D.


Based on their application area we
can classify software into:
13

 System software; it is a collection of programs written to


service other programs. (e.g., compliers, editors, and file
management utilities, operating system components, drivers,
networking software, telecommunications processors)
 Real-time software; that monitors/analyzes/controls real-
world events as they occur is called real time. e.g. Real time
road traffic light Control System.
 Engineering and scientific software; this class of
software have been characterized by "number crunching"
algorithms. Applications range from astronomy to
volcanology, from automotive stress analysis to space shuttle
orbital dynamics, and from molecular biology to automated
manufacturing.

Compiled By: Aliazar D.


Cont..
14

 Business software; developed for business information processing i.e.


restructure existing data in a way that facilitates business operations or
management decision making. Discrete "systems" (e.g., payroll, accounts
receivable/payable, inventory, or Management Information System
(MIS)) they accesses one or more large databases containing business
information.
 Artificial intelligence software; makes use of non numerical
algorithms to solve complex problems that are not amenable to
computation or straightforward analysis. e.g. expert systems aka
knowledge based systems, pattern recognition (image and voice), and
game playing.
 Personal computer software ; aka Application Software are software
used in everyone’s PC for activities like Word processing, spreadsheets,
photo editing, computer graphics, multimedia, entertainment, and etc

Compiled By: Aliazar D.


Based on distribution of its components and span of coverage
we can group software as:

15

 Standalone/desktop application: these are software installed in single PC and


operates locally on local data/base. Such applications do not send or receive the
output to any other machine nor do they receive input directly from other machine
thru networking. Example of this type application includes; MS Paint, calculator,
Payroll application for single branched organization, etc
 Network/Web based application: these group of software are identified for
having components of them installed over networked machines and make exchange
of request and response. Multiple users within the span of the system reach ability
can use the software at the same time.
 Distributed applications: are like Web based applications they are used through
the network and their components are geographically dispersed on different nodes.
Unlike Web based systems in distributed architecture application components are
autonomous i.e. capable of existing independently but the whole system goal is
achieved when every component is working well. They are created in loosely coupled
manner such that one of the component can be developed in Java the other in Php
and the other in some other language but they communicate very well.

Compiled By: Aliazar D.


Why “Scientific” Methods
needed for system/software
development?
16

Why
Software Engineering
discipline is needed?
Compiled By: Aliazar D.
Industry status
17

In 1994 Successful was only 17%!


How well are systems built in 2004 .
 Total
Failure 15%
 “Challenged” 51%
 Successful 34%
Challenged means…
 Delayed, budget, or lacking critical
features/requirements

Compiled By: Aliazar D.


System development Process/ Software Engineering
Process
18
A process used to create a software system consists of:
 Methods (steps)
 A sequence of step-by-step approaches that help
develop software.
 Techniques
 Processes that the analyst follows to ensure
thorough, complete and comprehensive analysis
and design
 Tools
 Computer programs that aid in applying
techniques
Compiled By: Aliazar D.
What are system/software engineering
methods?
19
 Tools + steps + techniques= methodology
 Well organized and Structured approaches to software development
include system model descriptions , notations, rules, recommendations
and process guidance.
 Model descriptions
 Descriptions of graphical models which should be produced;
 Notations
 Signs, figure, or character that used to represent information;
 Rules
 Constraints applied to system models;
 Recommendations
 Advice on good design practice;
 Process guidance
 What activities to follow.

Compiled By: Aliazar D.


Structured Vs Object Oriented Approaches to
system/software development
20

Structured paradigm (Reading Assignment!!)


 Modeling process and data separately
 Suitable for small sized software

Object oriented paradigm


 Is a software development strategy based on the
idea of building systems/software from reusable
components called objects.

Compiled By: Aliazar D.


21

Object-Oriented Concepts
and Principles

Compiled By: Aliazar D.


Object Oriented paradigm
22
 An approach to the solution of problems in which all
computations are performed in the context of objects.
 The objects are instances of classes.

 A running program can be seen as a collection of objects


collaborating to perform a given task .
 Object Oriented Technology
 De –emphasizes procedures

 A system is made up of objects

 Users can more easily understand objects

 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

Compiled By: Aliazar D.


Cont…
24
 For system/software developer; object orientation is accomplished through the
following major activities:
 Object Oriented Analysis, design

 Object oriented programming

 Object Oriented CASE tools

 OOT is built up on a sound engineering foundation whose elements are


collectively called the object model.
 The Object model encompasses the principles of
 Abstraction

 Modularity

 Encapsulation

 Hierarchy

 Other OOT Concepts


 Objects, Classes, Polymorphism, Message, Attributes, Methods

Compiled By: Aliazar D.


Abstraction and Modularity
25
 Abstraction
(“The act of obtaining or removing something from the source. “ [Merriam Webster Dictionary])
Denotes essential characteristics of an object that distinguishes
it from all other kinds of objects
is an analysis issue that deals with what a class knows or does.
OO systems abstract only what they need to solve the problem at
hand.
 Modularity
 The property of a system that has been decomposed in to a set of
cohesive(Closely united) and loosely coupled modules
 Code can be constructed entirely of classes
 Promotes understandability

Compiled By: Aliazar D.


Encapsulation
26

 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

Compiled By: Aliazar D.


Encapsulation/Hiding
27
The object encapsulates
both data and the logical
procedures required to method method
manipulate the data #1 #2
data

#3 d
o
#6 d

meth
tho
me

method method
#5 #4

Achieves “Information Hiding”


The programmer knows the functions of the objects so need to know everything about the
object to use it in other program.
Compiled By: Aliazar D.
Hierarchy
28

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

Compiled By: Aliazar D.


Example of Inheritance Hierarchy
29

Inheritance – “is a”
Compiled By: Aliazar D.
Example of Aggregation Hierarchy
30

furniture (superclass)

table chair desk shelf

subclasses of the
furniture superclass

instances of chair Aggregation – “part of”

Compiled By: Aliazar D.


Objects, Classes, Polymorphism, Message, Attributes,
Methods

31

OTHER CENTRAL CONCEPTS

Compiled By: Aliazar D.


Objects
32

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

Compiled By: Aliazar D.


Objects
33

Compiled By: Aliazar D.


Classes
34

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:

Compiled By: Aliazar D.


What is a Class?
occurrences 36 roles
things organizational units
places
external entities
structures

class name

attributes:

operations:

Compiled By: Aliazar D.


Messages
37

sender object

attributes:

receiver object

attributes:
operations:

operations:

message:
[sender, return value(s)]

message: [receiver, operation, parameters]

Compiled By: Aliazar D.


Operations and Methods
38

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

Compiled By: Aliazar D.


Polymorphism
39

 A mechanism by which several methods can have


the same name and implement the same abstract
operation. That 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
 E.g. Method name – calculateArea() Area of Circle
= Area of rectangle
∏ * Radius 2 = Length * Width

Compiled By: Aliazar D.


To be continued on
40

PROCESS MODELS AND


WORK FLOWS/PHASES

Question ??
Compiled By: Aliazar D.

You might also like