[go: up one dir, main page]

0% found this document useful (0 votes)
33 views64 pages

CH - 1 Introduction

Uploaded by

tovetaw413
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views64 pages

CH - 1 Introduction

Uploaded by

tovetaw413
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 64

OOSAD

Chapter One

Introduction to OOSAD
Overview
• Object oriented is the new software development paradigm.

• Paradigm(pronounced para-dime)is an overall strategy or


viewpoint for doing things.

• A paradigm is a specific mindset.

• In general we do have two types of system analysis and


design paradigms.
• Structured
• Object oriented
Unity University 2
The Structured paradigm and the OO
Paradigm
• The structured paradigm is a development strategy based
on the concept that a system should be separated into two
parts:
• Data and functions/procedures (modeled using a process model).

• Using the structured approach, you develop applications in


which data is separated from behavior in both the design
model and in the system implementation (that is, the
program).

Unity University 3
Cont.
• Example: Consider the design of an information system for a
university. Taking the structured approach, you would define
the layout of a data initially as a separate system and the
design of a program to access that data as another. The
programs have the ability to change the data states.

Unity University 4
Cont.
• The Structured Analysis/Structured Design (SASD) approach
is the traditional approach of software development based
upon the waterfall model.

• The phases of development of a system using SASD are:


Feasibility Study
Requirement Analysis and Specification
System Design
Implementation
 Post-implementation Review (testing deployment and
maintenance). Unity University 5
Requirements Cont.
Design

Implementation

Testing
Waterfall
method Deployment &
Maintenance

• Each activity confined to its “phase”.

• Unidirectional, no way back; finish this phase before moving


to the next Unity University 6
Cont.
• The main concept behind the object oriented paradigm is
that instead of defining systems as two separate parts (data
and functions), system is defined as a collection of
interacting objects.
• It describes and builds a system that consists of objects.

• An object oriented system comprises a number of software


objects that interact to achieve the system objective.

Unity University 7
Cont.

Unity University 8
Cont.
• Object: a person, place, thing, concept, event, screen, or report.

• Objects both know things (that is, they have data) and they do
things (that is, they have functionality).

• Object-oriented paradigm is techniques are based on the use of


classes that act as abstractions of data, and that contain a set of
procedures which act on that data.

• Class: it is a template from which objects are created (instantiated).

• Object space: the memory space, including all accessible


permanent storage , in which objects exist and interact with one
another. Unity University 9
Cont.
• It is now widely recognized that object orientation is an
effective design approach to manage the complexity inherent
in most large systems.

• Object-oriented paradigm uses an Iterative Incremental


model

• Initially, a partial implementation of a total system is


constructed so that it will be in a deliverable state. Increased
functionality is added. Defects, if any, from the prior delivery
are fixed and the working product is delivered. The process is
repeated until the entire product development is completed.
Unity University 10
Cont.

Unity University 11
Cont.

Unity University 12
Cont.
Difference b/n Structured and OO paradigm

Structured Object oriented


Methodology Water fall model Iterative Incremental

Focus Processes Objects


Risk High Low
Reuse Low High
Maturity Mature and widespread Emerging (1997)
Suitable for Well – defined projects Risky, large projects with
with stable user changing user requirements
requirements Unity University 13
The Object Oriented Concepts

Classes and Objects (Encapsulation)

• A class is the general template we use to define and create


specific instances, or objects.

• Every object is associated with a class.

• For example, all the objects that capture information about


patients could fall into a class called Patient, because there
are attributes (e.g., name, address, birth date, phone, and
insurance carrier) and methods (e.g., make appointment,
calculate last visit, change status, and provide medical
Unity University 14
history) that all patients share .
Cont.
An object is an instantiation of a class.

Unity University 15
Cont.
Methods and Messages
• Methods implement an object’s behavior. A method is
nothing more than an action that an object can perform.

• Messages are information sent to objects to trigger methods.


A message is essentially a function or procedure call from
one object to another object.

• For example, if a patient is new to the doctor’s office, the


receptionist sends a create message to the application.

• The patient class receives the create message and executes its
create() method which then creates a new object: a Patient
Unity University 16
Cont.

Unity University 17
Cont.

Inheritance
• Inheritance is the mechanism that permits new classes to be
created out of existing classes by extending and refining its
capabilities.

• The existing classes are called the base classes/parent


classes/super-classes, and the new classes are called the
derived classes/child classes/subclasses.

Unity University 18
Cont.
• In Figure below, Person is a superclass to the classes Doctor
and Patient. Doctor, in turn, is a superclass to General
Practitioner and Specialist.

• Notice how a class (e.g., Doctor) can serve as a superclass


and subclass concurrently.

• The relationship between the class and its superclass is


known as the a-kind-of ( is a) relationship. For example in
Figure below, a General Practitioner is a-kind-of Doctor,
which is a-kind-of Person.

Unity University 19
Cont.

Unity University 20
Cont.

Polymorphism and Dynamic Binding


• Polymorphism means that the same message can be
interpreted differently by different classes of objects.

• For example, if an artist sent the message Draw yourself to a


square object, a circle object, and a triangle object, the results
would be very different, even though the message is the
same.

Unity University 21
Cont.

Unity University 22
Cont.

Polymorphism and Dynamic Binding


• Polymorphism is made possible through dynamic binding.

• Dynamic, or late, binding is a technique that delays typing


the object until run-time.

• The specific method that is actually called is not chosen by


the object-oriented system until the system is running

Unity University 23
Potential Benefits of Object Orientation
Increased reusability:
• The OO paradigm provides opportunities for reuse through
the concepts of inheritance, polymorphism, encapsulation,
modularity, coupling and cohesion.

• It provides more opportunities for reuse than the structured


paradigm.

Increased extensibility

• Because classes have both data and functionality, when you


add new features to the system you need to make changes in
one place, the class; Unity University 24
Cont.

Improved Quality
• Improved quality comes from increased participation of
users in systems development.

• OO systems development techniques provide greater


opportunity for users to participate in the development
process.

Unity University 25
Cont.
Financial benefits

• The previous benefits are all technical benefits – giving


business benefits of OO
Better Faster Cheaper (BFC)
The less code the less effort to maintain
A system that is easily extensible is easy to maintain
System that meets user needs receive fewer changes
Benefits of OO are realized throughout the entire
development lifecycle, not just during programming
Therefore, because Technical Benefits are achieved BFC
Unity University 26
can be achieved
Cont.
Increased Chance of Project success

• A project is successful if it is on time, on budget and meets


the needs of the its users.

• Users are expert at business and they are the only ones who
can tell you what they need.

• You need models that communicate the required information


and that users understand.

• Time invested in defining requirements and modeling pays


off in the long run.

Unity University 27
Cont.
Reduced Maintenance Burden

• Maintenance Burden – Spending Significant Resources


maintaining software

• The Maintenance Burden exists for several reasons


• Many systems were developed in the past that are still in
use
• System documentation is poor, if it exists at all
• Compared to the standards of today, legacy systems are
poorly built

Unity University 28
Cont.
Reduced Application Backlog

Application Backlog - Long waiting list of things to be done


making new projects not to start

Unity University 29
Cont.
Reduced Maintenance Burden

• Maintenance Burden – Spending Significant Resources


maintaining software

• The Maintenance Burden exists for several reasons


• Many systems were developed in the past that are still in
use
• System documentation is poor, if it exists at all
• Compared to the standards of today, legacy systems are
poorly built

Unity University 30
Drawbacks of OO

• Requires a greater concentration on requirement analysis


which is often ignored in reality

• Developers must work closely with users, which is easier


said than done

• Requires a complete change in mindset on the part of


individuals

• Is more than just programming, not easy and not that quick

Unity University 31
Cont.
• Benefits are on the long run

• Demands up-front investments in training, education and


tools

• Techniques do not guarantee you will build the right system

• Necessitates increased testing

• OO is only part of the solution – not a silver bullet or a cure-


all
- Need CASE tools
- Quality Assurance Tasks
- Develop user interface tasks
Unity University 32
Enhanced Life cycle of Unified Process

• The Unified Process is a specific methodology that maps out


when and how to use the various Unified Modeling Language
(UML) techniques for object-oriented analysis and design.

• Whereas the UML provides structural support for developing


the structure and behavior of an information system, the Unified
Process provides the behavioral support.

• The Unified Process is use-case driven, architecture-centric, and


iterative and incremental.

Unity University 33
Cont.

use-case driven

• Use-case driven means that use cases are the primary modeling
tools defining the behavior of the system.

• A use case describes how the user interacts with the system to
perform some activity, such as placing an order, making a
reservation, or searching for information.

• The use cases are used to identify and to communicate the


requirements for the system to the programmers who must write
the system Unity University 34
Cont.

Architecture-Centric

• Architecture-centric means that the underlying software


architecture of the evolving system specification drives the
specification, construction, and documentation of the system.

• Modern object-oriented systems analysis and design approaches


should support at least three separate but interrelated
architectural views of a system: functional, static, and
dynamic.

Unity University 35
Cont.

Architecture-Centric

• The functional, or external, view describes the behavior of the


system from the perspective of the user.

• The structural, or static, view describes the system in terms of


attributes, methods, classes, and relationships.

• The behavioral, or dynamic, view describes the behavior of the


system in terms of messages passed among objects and state
changes within an object.

Unity University 36
Cont.

Iterative and Incremental

• This implies that the systems analysts develop their


understanding of a user’s problem by building up the three
architectural views little by little.

Unity University 37
Cont.

• The Unified Process is a two-dimensional systems


development process described by a set of phases and
workflows.

• The phases are inception, elaboration, construction, and


transition.

• The workflows include business modeling, requirements,


analysis, design, implementation, test, deployment,
configuration and change management, project management,
and environment. Unity University 38
Cont.
Workflows

• The workflows describe the tasks or activities that a developer


performs to evolve an information system over time.

• The workflows of the Unified Process are grouped into two broad
categories: engineering and supporting.

• Engineering workflows include business-modeling, requirements,


analysis, design, implementation, test, and deployment workflows.

• The engineering workflows deal with the activities that produce the
technical product (i.e., the information system).

Unity University 39
Cont.

Workflows

• The supporting workflows include the project management,


configuration and change management, and environment workflows.

• The supporting workflows focus on the managerial aspects of


information systems development

Unity University 40
Cont.

Workflows- Engineering

Business Modeling Workflow


• The business-modeling workflow uncovers problems and
identifies potential projects within a user organization.

• This workflow aids management in understanding the scope of


the projects that can improve the efficiency and effectiveness of
a user organization.

Unity University 41
Cont.

Workflows- Engineering

Requirement Workflow
• In the Unified Process, the requirements workflow includes
eliciting both functional and nonfunctional requirements.

• Typically, requirements are gathered from project stakeholders,


such as end users, managers within the end user organization,
and even customers

Unity University 42
Cont.
Workflows- Engineering

Analysis Workflow
• The analysis workflow primarily addresses the creation of an
analysis model of the problem domain.

• Using the UML, the analyst creates structural and behavior


diagrams that depict a description of the problem domain classes
and their interactions.

• The primary purpose of the analysis workflow is to ensure that


both the developer and user organizations understand the
underlying problem and its domain without overanalyzing
Unity University 43
Cont.
Workflows- Engineering

Design Workflow
• The design workflow transitions the analysis model into a form
that can be used to implement the system: the design model.

• The design workflow focuses on developing a solution that


will execute in a specific environment.

• The design workflow uses activities such as detailed problem


domain class design, optimization of the evolving information
system, database design, user-interface design, and physical
architecture design.
Unity University 44
Cont.
Workflows- Engineering

Implementation Workflow
• The primary purpose of the implementation workflow is to create an
executable solution based on the design model (i.e., programming).

• This includes not only writing new classes but also incorporating
reusable classes from executable class libraries into the evolving
solution.

• In the case of multiple groups performing the implementation of the


information system, the implementers also must integrate the separate,
individually tested modules to create an executable version of the
system Unity University 45
Cont.
Workflows- Engineering

Testing Workflow
• The primary purpose of the testing workflow is to increase the quality
of the evolving system.

• Testing goes beyond the simple unit testing associated with the
implementation workflow.

• In this case, testing also includes testing the integration of all modules
used to implement the system, user acceptance testing, and the actual
alpha testing of the soft ware.

Unity University 46
Cont.
Workflows- Engineering

Deployment Workflow
• The deployment workflow includes activities such as soft ware
packaging, distribution, installation, and beta testing.

• When actually deploying the new system into a user organization, the
developers might have to convert the current data, interface the new
soft ware with the existing soft ware, and train the end user to use the
new system.

Unity University 47
Cont.
Workflows- Supporting

Project Management Workflow


• Include identifying and managing risks, managing scope, estimating the
time to complete each iteration and the entire project, estimating the cost
of the individual iteration and the whole project, and tracking the
progress being made toward the final version of the evolving information
system.

• The project management workflow is the only truly cross-phase


workflow

Unity University 48
Cont.
Workflows- Supporting

Configuration and change Management Workflow


• The primary purpose of this workflow is to keep track of the state of the
evolving system.

• The evolving information system comprises a set of artifacts (e.g.,


diagrams, source code, and executables).

• The artifacts themselves should be handled as any expensive asset


would be handled—access controls must be put into place to safeguard
the artifacts from being stolen or destroyed.

Unity University 49
Cont.
Workflows- Supporting

Configuration and change Management Workflow


• Furthermore, because the artifacts are modified on a regular, if not
continuous, basis, good version control mechanisms should be
established.

• Finally, a good deal of project management information needs to be


captured (e.g., author, time, and location of each modification).

Unity University 50
Cont.
Workflows- Supporting

Environment Workflow
• During the development of an information system, the development team
needs to use different tools and processes.

• The environment workflow addresses these needs. For example, a CASE


tool that supports the development of an object-oriented information
system via the UML could be required.

• Other tools necessary include programming environments, project


management tools, and configuration management tools.

• The environment workflow involves acquiring and installing these


tools Unity University 51
Cont.
Phases
Inception

• In this phase, a business case is made for the proposed system.

• This includes feasibility analysis that should answer questions such as


the following:
Do we have the technical capability to build it (technical
feasibility)?
If we build it, will it provide business value (economic
feasibility)?
If we build it, will it be used by the organization (organizational
feasibility)?
Unity University 52
Cont.
Phases
Inception

• To answer these questions, the development team performs work


related primarily to the business modeling, requirements, and
analysis workflows.

• The primary deliverables from the inception phase are a vision


document that sets
• the scope of the project;

• identifies the primary requirements and constraints;

• sets up an initial project plan; and

• describes the feasibility of and risks associated with the project.

Unity University 53
Cont.
Phases
Elaboration

• The activities related to the elaboration phase of the Unified Process


are the most relevant in OOSAD.

• It continues with developing the vision document, including finalizing


the business case, revising the risk assessment, and completing a
project plan in sufficient detail.

• The analysis and design workflows are the primary focus during this
phase. Developers are involved with all but the deployment
engineering workflow in this phase.

Unity University 54
Cont.
Phases

Elaboration

• The primary deliverables of this phase include the UML structure and
behavior diagrams and an executable of a baseline version of the
evolving information system.

• The baseline version serves as the foundation for all later iterations

Unity University 55
Cont.
Phases
Construction

• The construction phase focuses heavily on programming the


evolving information system.

• This phase is primarily concerned with the implementation


workflow. However, the requirements workflow and the analysis and
design workflows also are involved with this phase.

• It is during this phase that missing requirements are identified and


the analysis and design models are finally completed.

• The primary deliverable of this phase is an implementation of the


system that can be released for beta and acceptance testing
Unity University 56
Cont.
Phases
Transition

• Like the construction phase, the transition phase addresses aspects


typically associated with the implementation phase of a traditional
SDLC approach.

• Some of the activities that take place are beta and acceptance testing,
fine-tuning the design and implementation, user training, and rolling
out the final product onto a production platform.

• The primary deliverable is the actual executable information system.

• The other deliverables include user manuals, a plan to support the


users, and a plan for upgrading the information system in the future
Unity University 57
Cont.

Unity University 58
Cont.

• As large and as complex as the Unified Process is, many authors


have pointed out a set of critical weaknesses.

• First, it does not address staffing, budgeting, or contract


management issues.

• Second, it does not address issues relating to maintenance,


operations, or support of the product once it has been delivered..

• Third, it does not address cross- or inter-project issues. leaving


out inter-project issues is a major omission
Unity University 59
Cont.

• To address these omissions, Ambler and Constantine suggest


adding a production phase and two workflows: the operations
and support workflow and the infrastructure management

• In addition the test, deployment, and environment workflows


are modified, and the project management and the configuration
and change management workflows are extended into the
production phase

Unity University 60
Cont.
Production Phase
• Th e production phase is concerned primarily with issues related to the
soft ware product after it has been successfully deployed.

• Th is phase focuses on issues related to updating, maintaining, and


operating the soft ware.

• Unlike the previous phases, there are no iterations or incremental


deliverables.

• no engineering workflows are relevant.

• All supporting workflows are active during this phase

Unity University 61
Cont.
Operations and support workflow

• It addresses issues related to supporting the current version of the soft


ware and operating the soft ware on a daily basis.

• Activities include creating plans for the operation and support of the
soft ware product once it has been deployed, creating training and user
documentation, putting into place necessary backup procedures,
monitoring and optimizing the performance of the soft ware, and
performing corrective maintenance on the soft ware

Unity University 62
Cont.
Infrastructure Management workflow

• The infrastructure management workflow’s primary purpose is to


support the development of the infrastructure necessary to develop
object oriented systems.

• Activities such as development and modification of libraries,


standards, and enterprise models are very important

Unity University 63
Cont.

Unity University 64

You might also like