Chapter-2-Software Processes1
Chapter-2-Software Processes1
Chapter-2-Software Processes1
Lecture 1
Two Orthogonal view of software.
system development methodology
Software process models
Process activities
Coping with change
The Rational Unified Process
An example of a modern software process.
TWO ORTHOGONAL VIEWS OF THE SOFTWARE
Two Approaches,
Traditional Approach
Objected-Oriented Approach
Traditional Approach
Here Algorithms + Data structures = Programs. “A software
system is a set of mechanisms for performing certain actions on
certain data.”
Object-oriented approach
In the object-oriented approach, the focus is on capturing the
structure and behavior of information systems into small modules
that combines both data and process.
Software development Methodology
Software development is dynamic and always undergoing major
change.
Systems development refers to all activities that go into producing
an information systems
solution. Systems development activities consist of systems
analysis, modeling, design,
implementation, testing and maintenance.
A software development methodology is a series of processes
describe how the work is
to be carried out to achieve the original goal based on the system
requirements.
Software Development Life Cycle
It is a systematic approach which explicitly breaks down the
work into phases that are required to implement either new or
modified Information System.
problem domain
Cont.…
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.…
For system/software developer in object
orientation
Object oriented programming
Object Oriented Analysis, design
Object Oriented CASE tools
Cont.…
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.…
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
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
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
Promotes independent development and maintenance
Hierarchy
Is a ranking or ordering of abstractions
Inheritance
The mechanism where features in a hierarchy inherit from super
classes 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...
Example Inheritance Hierarchy
Inheritance
The implicit possession by all subclasses of features
defined in its superclasses
Class
Hierarchy
furniture
subclasses of the
furniture superclass
instances of chair
Objects, Classes, Polymorphism, Message, Attributes, Methods
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
Classes
A class:
A unit of abstraction in an object oriented (OO) program