Macro Micro

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 48

MODULE 2

OBJECT ORIENTED SYSTEM DESIGN-


MACRO AND MICRO PROCESS DEVELOPMENT

Faculty Handled: Prof. Krithika L B


Benefits of Object Oriented
Development
Seeks a competitive advantage viz.,
Reduced time-to-market
Greater product flexibility
Complex problems can be resolved using OOD
Encourages the reuse of software components
Reduces development risk
Risks of OOD
1. Personnel shortfalls
2. Unrealistic schedules, budgets, or processes
3. Shortfalls in commercial off-the-shelf products,
external components, or legacy software
4. Mismatches in requirements or user interface
5. Shortfalls in architecture, performance or quality
6. Continuing stream of requirements changes
7. Shortfalls in externally performed tasks
Software Development Process
Introduction
Macro Process: The S/w development lifecycle
Concerned with overall software lifecycle
Choice of lifecycle style affects size and shape of the
macro process
Waterfall , iterative
Micro Process: The Analysis and Design
Concerned with specific analysis and design
techniques (Req. to implementation)
Structured, object oriented
Choice of analysis and design techniques affects Micro
process
The Macro Process: The Software
Development Lifecycle
serves as the controlling framework for the
micro process
Helps development team to meaningfully
assess risk and make early corrections to the
micro process
An iterative and incremental macro process
is used by RUP
described in terms of two dimensions,
content and timewhat is done and when it
is done
Two dimensions
The content dimension
Includes roles, tasks, and work products
Described in terms of disciplines, or areas of
concern, which logically group the content
The time dimension
Shows the lifecycle aspects of the process
Described in terms of milestones, phases, and
iterations.
The Macro Process Content
DimensionDisciplines
Each cycle through the disciplines constitutes an
iteration of the macro process

In iterative development , there are multiple


passes through the disciplines
The Macro Process Content Dimension
Disciplines
Requirements:
Establish and maintain agreement with the customers
and other stakeholders on what the system should do
Define the boundaries of the system
Analysis and design:
Transform the requirements into a design of the system,
which serves as a specification of the implementation in
the selected implementation environment.
Evolves a robust architecture for the system
The Macro Process Content Dimension
Disciplines
Implementation:
Implement, unit test, and integrate the design, resulting
in an executable system.
Test:
Test the implementation to make sure that it fulfils the
requirements
Deployment:
Ensure that the software product is available for its end
users.
The Macro Process Content
DimensionDisciplines
Executed throughout the lifecycle:
Project management: Manage the software
development project
Planning, staffing, and monitoring the project, as well
as managing the risks
Configuration and change management:
Identify the configuration items, control changes to
those items, and manage configurations of those items.
Environment:
Provide the software development environment,
including both processes and tools that support the
development team.
The Macro Process Time Dimension
Milestones and Phases
The overall framework in which the iterations
are performed is provided by a
series of well defined milestones, where objectives
of each milestone are achieved by executing one or
more iterations.
At each milestone, an assessment is performed to
determine whether the objectives have been met
A satisfactory assessment allows the project to
continue with the next phase to achieve the next
milestone.
The Macro Process milestones,
phases and iterations
Phases
Phases & Purpose Activities Work products
Phases
milestone
Inception Establish the Establish and prioritize the Vision of what is
vision for the idea core to be built
and validate its Requirements of the Behavioural
assumptions system, prototypes
Obtain agreement with the An initial risk list
customer on what is to be The identification
built, of the key
Understand the key risks architectural
associated with building mechanisms
Scope is the system Identification of
understood Decide on what the development
environment to use environment
Elaboration Developing the Making architectural Creates a series of
overall decisions executable
architecture Establishing the architectural
framework that architectural framework releases that
will provide the Implementing the partially satisfy
foundation for all framework the semantics of
the iterations that Testing the framework, the key end-user
Architecture follow Refining the framework scenarios
is stable based on the results of the
testing
Phases & Purpose Activities Work products
milestone
Construction Development of a The development of the Series of
deployable system is completed executable
product releases are
produced that
System is satisfy the
ready for semantics of the
end-user remaining end user
scenarios
testing

Transition Ensures that the Product is given for Packaged product


software is evaluation and testing Any supporting
acceptable to its Development team then documentation
end users incorporates the feedback Training materials
Final received to fine tune the Marketing
documentation product materials
System Is Addressing configuration,
Ready to Be installation and usability
Deployed issues;
Addressing issues raised by
the early adopters
The Macro Process Time Dimension
Iterations
The size of the boxes within each of the disciplines illustrates the relative
time spent performing the activities within that discipline
The Macro Process Time Dimension
Iterations
The concept of an iteration is much the same across
most software development methods except the
time:
XP iterations be one or two weeks long, if possible.
XP-Extreme programming
SCRUM iterations should be 30 days long
RUP iterations can be two to six weeks long.
SCRUM
Scrum is an iterative and incremental agile software development framework
for managing product development.
It defines a flexible, holistic product development strategy where a
development team works as a unit to reach a common goal.

Sprint->run at full speed over a


short distance

The sprint backlog is a list of


tasks identified by the Scrum
team to be completed during
the Scrum sprint.
During the sprint planning
meeting, the team selects some
number of product backlog
items, usually in the form of
user stories, and identifies the
tasks necessary to complete
each user story
Release Planning

To identify a controlled series of releases, each


growing in its functionality, ultimately
encompassing the requirements of the complete
production system
Input: scope of what is to be built and
constraining factors
Output: A development plan, which identifies the
stream of releases, team activities, and risk
assessments
The Micro Process: The Analysis
and Design Process
The Micro Process: The Analysis
and Design Process
The macro process drives the scope of the
micro process, provides inputs to the micro
process and consumes the outputs of the micro
process
The micro process takes the requirements
provided by the macro process and produces
design specifications that are implemented,
tested and deployed in the macro process.
The Micro Process within the
Macro Process
Micro process-Two dimensions

Levels of abstraction architectural &


component perspective
Content activities and
work products
The Varying Focus of Analysis and Design
-Depending on Perspective

Analysis and design are performed at multiple levels of abstraction


throughout the development lifecycle.
The number of levels depends primarily on the size of the system.
Levels of Abstraction

The analysis is considered complete when it


accurately represents the system
requirements and can serve as a good basis
for design
The design is considered complete when it is
detailed enough to be implemented and
tested
Analysis What the system does?
Design How the system does?
Activities
performed for a specific scope and at
a specific level of abstraction

Establish the behaviour and attributes of the identified elements


Common activities

Purpose
Products
Activities
Milestones & Measures
The Micro Development Life
Cycle(Booch)
Products
reflect the different analysis and
design concerns
The architecture description
describes the systems architecture, common
mechanisms.
Includes the architecturally significant aspects of the
analysis/design model.
The analysis/design model
includes the analysis and design elements of the
software solution and their organization
the realizations that describe how the systems
behavioural requirements are realized in terms of those
elements.
Essential benefits to create an
analysis/design model in micro process
Helps to establish a common and consistent
vocabulary that can be used throughout the project
Serves as the central repository for the elements,
their semantics, and their relationships as
development progresses
Useful when new members of the development team
must quickly orient themselves to the solution
already under development
permits architects to take a global view of the
project
lead to the discovery of commonalities that otherwise
might be missed
UML a picture is worth a thousand words
The Levels of Abstraction
Architectural analysis
Focus on creating an initial version of the architecture
Architectural design
focus on refining the architecture to identify analysis
elements, the design elements, and their
responsibilities and interactions
Component analysis
focus on identifying the analysis elements and their
responsibilities and interactions
Component design
focus on refining the design of the component by defining
it in terms of design classes
Micro Process Iterations

Each iteration takes its inputs that Result is a detailed design


are at some level of abstraction realization of the original
and producing a realization of requirements that is fed
these inputs at the next level of back into the macro process
abstraction for implementation
Sample Micro Process
Architecturally significant scenarios

Architectural analysis

Architecturally significant analysis elemen


Architectural design

Architecturally significant design elements


For each architecturally
Component analysis
significant scenarios
Design elements
Component design

Design elements with specifications


Activity 1: Identifying
Elements
The identification of elements is a key
activity when devising an object-oriented
decomposition of a system
the purpose of this activity is to identify the key
elements that will be used to describe the
solution at a particular level of abstraction
The elements identified at one level of abstraction
are used as the primary inputs to the
identification of elements at the next level
Elements Identified
Focus Identified Purpose and Comments
Elements

Architectural Analysis 1. Key abstractions Refer Book (Grady


2. Architectural Booch) Chapter 6 Pg:284
Partitions
3. Analysis mechanisms
Architectural design 1. Architecturally Refer Book(Grady Booch)
significant design Chapter 6 Pg:285
elements
2. Architectural
Partitions
3. Design mechanisms
Component analysis 1. Analysis Classes Refer Book (Grady
Booch) Chapter 6 Pg:285
Component design 1. Design classes Refer Book (Grady
Booch) Chapter 6 Pg:285
Activity 2:
Activity 3:
Activity 4:
Steps in Refining the semantics
of the attributes
1. Identify the elements roles and
responsibilities using collaborations ( use
case realization)
2. Elaborate each responsibility (activity /
sequence diagrams)
3. Focus on inheritance and optimize the use
4. Map responsibilities with attributes
5. Devise operations to satisfy these
responsibilities
Milestones and Measures
Milestones:
Identifying the elements
More complete understanding of the semantics of the
elements at a specific level of abstraction
Measures:
sufficient, primitive, and complete set of semantics
for each element at a specific level of abstraction
Macro vs Micro
Micro Processes Macro Processes
1. The micro-processes of object- 1. The macro process serves as the
oriented development is largely controlling framework for the micro
driven by the stream of scenarios and process.
architectural products.
2. It represents the daily activities of the 2. It represents the activities of the
individual developer or a small team entire development team on the scale
of developer. of weeks to months at a time.
3. It applies equally to the software 3. Many elements of the macro process
engineering and software are simply sound software
architecture. management practice, and so apply
4. The traditional phases of analysis and equally to object-oriented as well as
design are intentionally unclear, and non-object-oriented systems.
the process is under opportunistic 4. The traditional phases of analysis and
control. design are to a large extent retained,
and the process is reasonably well
defined.

You might also like