Professional Documents
Culture Documents
INTRODUCTION
1
Course Title Object Oriented System Analysis
and Design
Course Number COSC3072
Credits/Contacts 4/4
Project
*
Activity
is produced by * consumes
System Participant
Model Time
Document Equipment
14
Managing Software Development
Management activities focus on :
Planning the project,
Monitoring its status,
Tracking changes, and
Coordinating resources such that a high-quality product is
delivered on time and within budget.
Hence managing software development includes
communication, software configuration management,
project management & software lifecycle
Project management is needed because software
development is always subject to budget & schedule
constraints that are set by the organisation developing
the software
15
The Nature of Software...
i. Software is intangible
Hard to understand development effort
ii. Software is easy to reproduce
Cost is in its development
In other engineering products, manufacturing is the
costly stage
iii. The industry is labor-intensive
Hard to automate
iv. Untrained people can hack something together
Quality problems are hard to notice
v. Software is easy to modify
People make changes without fully understanding it
16
vi. Software does not ‘wear out’
It deteriorates by having its design changed:
Erroneously, or in ways that were not anticipated,
thus making it complex
Conclusions
Much software has poor design and is getting worse
Demand for software is high and rising
We are in a perpetual ‘software crisis’
We have to learn to ‘engineer’ software
17
What is Quality Software/System?
Take few minutes to Enumerate
from the:
End Users,
Developers,
Customers and
Developing company’s point of view
18
What are the Attributes of good System/Software?
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. 19
Usability
Users can learn it and fast and get their job done
easily
Reliability
It does what it is required to do without failing
Reusability
Its parts can be used in other projects, so
reprogramming is not needed
20
System/Software Quality and the Stakeholders
Customer: User:
Solves problems at an
acceptable cost in terms Easy to learn;
of money paid and Efficient to use;
resources used Helps get work
done
QUALITY
SOFTWARE
22
Reasons for Failure
Complexity
Shifting Requirements
Bad Estimation
Bad Management
New Technology
Must tackle complexity by, for example:
Structure partitioning of problem
Organized interaction of parts
Ensure you achieve the task
Systems are subject to the need for continuing change
23
System Development Life Cycle (SDLC)
SDLC is a process used by a systems analyst(stakeholders)
to develop an information system.
Any high quality system requires SDLC in order to:
Meets or exceeds Customer Expectations
Complete the software project within the time frame
defined and budget allocated.
To develop efficient and effective system that works in the
current and planned IT infrastructure,
Release a system that is inexpensive to maintain and cost-
effective to enhance.
SDLC is a type of methodology used to describe the process
for building information systems, intended to develop
information systems in a very deliberate, structured and
methodical way, reiterating each stage of the life cycle.
24
SDLC adheres to important phases that are essential for
developers, such as planning, analysis, design, and
implementation.
Several SDLC Models exist, the oldest of which —
originally regarded as "the Systems Development Life
Cycle" — is the Waterfall Model:
It is a sequence of stages in which the output of each
stage becomes the input for the next.
These stages generally follow the same basic steps, but
many different waterfall methodologies give the steps
different names and the number of steps seems to vary
between four and seven
25
System/Software Development Life Cycle (SDLC)
The life of a software system can be represented as a series
of cycle.
A cycle ends with the release of a version of the system to
the customers.
Software development life cycle encompasses the
phases/processes that a software developer goes through
when developing a new software.
SDLC has several clearly 5-defined phases
System Planning
includes initial investigation
System Analysis
includes requirements capture/elicitation
System Design- Planning a possible solution
System construction and implementation
includes system testing
System deployment and maintenance
26
Requirement gathering and systems analysis are
performed iteratively.
Design/Implementation/Testing are done
sequentially.
Every system development models that have been
developed incorporates these basic phases into
their model, ex: - Waterfall Model, Iterative
Model, Unified Process etc
27
Other Aspects of Developing Software/SDLC
The following are Other aspects of developing software:
A)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.
B) Project Management
Estimating development time, Ensuring people are used
effectively
Ensuring good communication and a healthy work
environment
Managing budgets, Training and handover
28
C. Feasibility Analysis
A feasibility study assesses the operational, technical,
and economic merits of the proposed system.
There are three types of feasibility:
1. Technical Feasibility
2. Economic Feasibility
3. Operational Feasibility
1. Technical Feasibility
Technical feasibility assesses whether the current
technical resources are sufficient for the new system.
If they are not available, can they be upgraded to
provide the level of technology necessary for the new
system.
29
2. Economic Feasibility
Economic feasibility determines whether the money are
available to develop the system.
Includes the purchase of:
New equipment.
Hardware.
Software.
3. Operational Feasibility
Operational feasibility determines if the human
resources are available to operate the system once it has
been installed.
Users that do not want a new system may prevent it from
becoming operationally feasible.
3-30
Structured Vs Object Oriented Approaches to
System/Software Development
1. Structured Paradigm
Modeling process and data separately
Suitable for small sized software
2. 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
of building systems/software from reusable
components called objects
31
Object Oriented Paradigm
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
objects
problem domain
32
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
For system/software developer in object orientation
Object Oriented Programming
Object Oriented Analysis, Design
Object Oriented CASE Tools
33
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
34
A) 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
B) 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 35
The object encapsulates both data and the logical
procedures required to manipulate the data
method method
#1 #2
data
method
t h od
#6 me # 3
method method
#5 #4
36
C) 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
D) 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”
37
A car is an aggregation of engine, wheel, body...
An Example Inheritance Hierarchy
Inheritance
The implicit possession by all subclasses of
features defined in its super classes
38
Class Hierarchy
furniture (superclass)
subclasses of the
furniture superclass
instances of chair
39
Objects, Classes, Polymorphism, Message,
Attributes, Methods
40
Classes and Objects
1) Object
A chunk of structured data in a running software
system
Object has its own properties
Represent its state
Object has behaviour
How it acts and reacts
May simulate the behaviour of an object in the
real world
41
Objects
42
2) Classes
A class:
A unit of abstraction in an object oriented (OO) program
Represents similar objects or its instances
It is 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
Let’s see the following examples to clearly understand the
difference between Class and Object:
Film
Class; instances are individual films.
Reel of Film:
Class; instances are physical reels
43
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
Object-oriented thinking begins with the definition of a
class often defined as:
Template
Generalized description
Pattern
“Blueprint” ... describing a collection of similar items
A meta-class (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 44
Building a Class
class name
attributes:
operations
attributes:
operations:
45
3) Methods (Operations, Services)
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.
sender object
attributes:
Messages
receiver object
attributes:
operations:
operations:
message:
[sender, return value(s)]