Object Oriented Design: Shruti Jathar
Object Oriented Design: Shruti Jathar
Shruti Jathar
Chapter -1
• Introduction
– Two views of software Developments: SSAD and
OOAD.
– Why Object – Orientation?
Structured Programming
• Also called modular programming is a subset of
procedural programming.
• Enforces a logical structure on the program.
• More efficient and easier to understand and modify.
• Importance is given to the procedures that manipulate
the data.
• Follows top-down approach.
• Easy to understand and follows simple hierarchy.
• Basic three structures used are : decisions, sequences,
and loops.
• Eg. Pascal, and dBASE, Ada.
Object Oriented Programming
• Organized around "objects" rather than data and Logic.
• Importance is given to the objects rather than procedures.
• Anything a program wants to deal with is treated as an object.
• Objects range from human beings (described by name, address
etc) to buildings and floors (whose properties can be described )
down to the little widgets on your computer desktop.
• Objects have their own properties and functionality ( methods ).
• Concepts in Object Oriented Programming
– Class
– Objects
– Encapsulation / Data Hiding
– Polymorphism ( many Forms – Functions / Operators )
– Inheritance ( Reduce Redundancy )
What is System Analysis and Design?
Definition :
Systems analysis is the interdisciplinary part of science,
dealing with analysis of sets of interacting entities and
systems, often prior to their automation as computer systems,
and the interactions within those systems.
System Analysis is "an explicit formal inquiry carried out to
help someone, referred to as the decision maker, identify a
better course of action and make a better decision than he
might have otherwise made."
Structured System Analysis & Design Object Oriented Analysis & Design
Evolved from Structured programming. Evolved from Object-Oriented Prg.
SSAD is process oriented. OOAD is data oriented;
Processes are of primary focus. data is of primary focus.
System is broken down using DFD. System is broken down using Use Cases.
Components of the system are derived from Components of system are derived from the
the DFD's. class diagrams and (UML).
There are definable steps: planning, analysis, Here there is an iterative approach involving
design, and implementation from start to continuous testing and refinement of the
finish for the systems development life cycle. system from start.
In SSAD there is a separation of the data and In OOAD there is encapsulation of the data
processes. and processes into objects.
Graphical design tools are used to analyze and model the systemrequirements.
For each methodology there is a step by step process for developing the system.
Both techniques emphasize the documentation of the system and its requirements .
Advantages Of SSAD
• SSAD makes tracking bugs easier for project management.
• It is visual and makes understanding easier for the users/programmers.
• Makes good use of it graphical analysis and tools such as DFD's.
• Very well known and established methodology in the industry.
• Consequently a mature technique.
• Finally SSAD is relatively simple and easy to understand.
Limitations Of SSAD
• Since process-oriented, it ignores the non-functional requirements.
• There is less direct management involvement in SSAD.
• Requirement change means restarting the entire process.
• There is some but not enough user/analyst interaction.
• Except for the logical design and the DFD's, SSAD provides no other tools for
communication with users, and therefore it is more difficult for users to measure
progress.
• It is difficult to decide when to stop functional decomposition and to start
building the system.
• Does not always address the user's requirements.
• SSAD is not a good fit for object-oriented programming languages.
What is Object-Oriented Design ?
• Process of planning a system of interacting objects for the
purpose of solving a software problem. It is one approach to
software design.
• Object Oriented Design refers to the objects that make up a
business.
• An object-oriented system studies the interaction of various
objects used by a system to solve the problem.
Object Oriented Concepts
• Object / Class : An association of data with the methods or
functions that act on the data. This is called a class, or object (an
object is created based on a class). Each object serves a separate
function. It is defined by its properties, what it is and what it can
do. An object can be part of a class, which is a set of objects that
are similar.
• Information Hiding : The ability to protect some components of
the object from external entities. This is realized by language
keywords to enable a variable to be declared as private or
protected to the owning class.
• Inheritance: The ability for a class to extend or override
functionality of another class. The so-called subclass has a whole
section that is the superclass and then it has its own set of
functions and data.
• Interface : The ability to defer the implementation of a method.
The ability to define the functions or methods signatures
without implementing them.
During inception establish the business case for the system and
delimit the project scope.
-Identify all external entities with which system will interact (actors)
-Define the nature of the interaction at a high-level.
-This involves identifying all use cases and describing a few
significant ones.
-The business case includes success criteria, risk assessment, and
estimate of the resources needed, and a phase plan showing dates
of major milestones.
The outcome of the inception phase is:
• Vision document : General vision of the core project's
requirements, key features, and main constraints.
• A initial use-case model (10% -20%) complete)
• An initial project glossary (may optionally be partially
expressed as a domain model).
• An initial business case, which includes business
context, success criteria (revenue projection, market
recognition, and so on), and financial forecast.
• An initial risk assessment.
• A project plan, showing phases and iterations.
• A business model, if necessary.
• One or several prototypes.
The evaluation criteria for the inception phase are:
• Stakeholder concurrence on scope definition and cost/schedule
estimates.
• Requirements understanding as evidenced by the primary use cases.
• Credibility of the cost/schedule estimates, priorities, risks, and
development process.
• Depth and breadth of any architectural prototype that was developed.
• Actual expenditures versus planned expenditures.
The project may be cancelled or considerably re-thought if it fails to pass
this milestone.
2.Elaboration Phase
• Purpose is to analyze the problem domain, establish a sound
architectural foundation, develop the project plan, and
eliminate the highest risk elements of the project.
• To accomplish these objectives, you must have the “mile
wide and inch deep” view of the system. Architectural
decisions have to be made with an understanding of the
whole system: scope and major requirements.
• Elaboration phase is the most critical of the four phases.
• Here the hard “engineering” is considered complete and the
project undergoes most important decision : whether or not
to commit the project.
• The elaboration phase activities ensure that the architecture,
requirements and plans are stable enough, and the risks are
sufficiently reduced.
• This predictably determines the cost and schedule for the
completion of the development.
• Executable architecture prototype is built in one or more
iterations, depending on the scope, size, risk, and novelty of
the project.
•
The outcome of the elaboration phase is:
• A use-case model (at least 80% complete) — all use cases and
actors have been identified, and most usecase descriptions have
been developed.
• Supplementary requirements capturing the non functional
requirements and any requirements that are not associated with a
specific use case.
• Software Architecture Description.
• An executable architectural prototype.
• A revised risk list and a revised business case.
• A development plan for the overall project, including the coarse-
grained project plan, showing iterations” and evaluation criteria
for each iteration.
• An updated development case specifying the process to be used.
• A preliminary user manual (optional).
• MileStone -
-The second important project milestone, the Lifecycle Architecture
Milestone.
-Here Examine the detailed system objectives and scope, the choice
of architecture, and the resolution of the major risks.
3.Construction Phase
• Here all features are thoroughly tested.
• Construction phase is, in one sense, a manufacturing process..
• Managing resources and controlling operations to optimize costs, schedules,
and quality.
• In other words, one of the critical qualities of the architecture is its ease of
construction.
• The software product integrated on the adequate platforms.
The transition phase focuses on the activities required to place the software into
the hands of the users.
Typically, this phase includes several iterations, including beta releases, general
availability releases, as well as bug-fix and enhancement releases.
Considerable effort is expended in developing user-oriented documentation,
training users, supporting users in their initial product use, and reacting to user
feedback.
At this point in the lifecycle, however, user feedback should be confined
primarily to product tuning, configuring, installation, and usability issues.
The primary objectives of the transition phase include:
• Achieving user self-supportability
• Achieving stakeholder concurrence that deployment baselines are complete and
consistent with the evaluation criteria of the vision
• Achieving final product baseline as rapidly and cost effectively as practical
• This phase can range from being very simple to extremely complex, depending
on the type of product.
At the end of the transition phase is the fourth important
project milestone, the Product Release Milestone.
• At this point, you decide if the objectives were met, and if you
should start another development cycle. In some cases, this
milestone may coincide with the end of the inception phase for
the next cycle.
• The primary evaluation criteria for the transition phase involve
the answers to these questions:
• Is the user satisfied?
• Are the actual resources expenditures versus planned
expenditures still acceptable?
• Iterations
Each phase in the Rational Unified Process can be further broken down into
iterations. An iteration is a complete development loop resulting in a release
(internal or external) of an executable product, a subset of the final product under
development, which grows incrementally from iteration to iteration to become the
final system.
Compared to the traditional waterfall process, the iterative process has the
following advantages:
• Risks are mitigated earlier
• Change is more manageable
• Higher level of reuse
• The project team can learn along the way
• Better overall quality
Static Structure of the Process
• A process describes who is doing what, how, and when. The Rational Unified
Process is represented using four primary modeling elements:
• Workers, the ‘who’
• Activities, the ‘how’
• Artifacts, the ‘what’
• Workflows, the ‘when’