[go: up one dir, main page]

0% found this document useful (0 votes)
21 views46 pages

Economic Analysis of Software Architectures

Uploaded by

Aderaw Molla
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)
21 views46 pages

Economic Analysis of Software Architectures

Uploaded by

Aderaw Molla
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

Chapter 6- Architecture and Business

Tadele M.

1
6.1 - Economic Analysis of Architectures

2
Basis for Economic Analyses
 The development effort, the time and costs of complex systems
are considerably high.
 Software analysis and evaluation becomes a well-established
practice inside the architecting community of the software
systems.
 In order to assess system’s quality against the requirements of
its customers, the architects and the developers need methods
and tools to support them during the evaluation process.

3
Benefits & Costs of Architecture Evaluation
 (+)Identifies and solves conflicting goals
 (+) Forces clear explanation of architecture
 (+) Puts stakeholders in the same room
 (+) Improve quality of architecture documentation
 (+) Uncovers opportunities for cross-project reuse
 (+) Identifies risks early in the life cycle
 (-) Costs time and money

4
Types of Architecture Evaluation
 Technical: Evaluation against system quality attributes, e.g.
performance, security and modifiability, Suitability of design
decisions, E.g. Architecture Tradeoff Analysis Method
(ATAM).

 Economic: Biggest tradeoffs in large complex systems


usually have to do with economics, cost and benefits
associated with architectural design decisions, E.g. Cost
Benefit Analysis Method (CBAM)

5
Cost-Benefit Analysis Method (CBAM)
 CBAM is an architecture-centric method for analyzing the costs,
benefits and schedule implications of architectural decisions.
 ATAM considered the design decisions with respect to
architectural quality attributes like modifiability, performance,
availability, usability, and so on.
 CBAM is different from the former methods, it add the costs
(and implicit budgets or money) as quality attributes.

6
Context of CBAM
• The software architect or decision maker wishes to maximize
profits.
• These decisions should, as much as possible, maximize the
benefit that the system provides and minimize its cost.

7
CBAM
 This approach asserts that architectural strategies (ASs) affect
the quality attributes (QAs) of the system and in turn provide
the stakeholders of the system with some benefit.
 The benefit added to the system through the implementation of
an AS is referred to as utility.
 Each AS provides a specific level of utility to the stakeholders,
and each AS has cost and schedule implications.
 This information can aid the stakeholders in choosing ASs based
on their return on investment (ROI), which is the ratio of
benefit to cost.
8
CBAM Steps

9
10
Case Study: The NASA ECS Project
 The Earth Observing System is a constellation of NASA
satellites that gathers data about the Earth for the U.S.
 The Earth Core System (ECS) collects data from various
satellite downlink stations for further processing.
 The mission of the ECS is to process the data into higher-
form information and make it available in searchable form to
scientists around the world.
 The goals are to provide a common way to store and process
data and to provide a public mechanism for introducing the
new data formats and processing algorithms needed, thus making
the information widely available to the scientific community
at large.
 The long-term nature of the project also makes modifiability
an important requirement.
11
Step 1: Collate Scenarios
 Collate the scenarios elicited during the ATAM exercise,
and allow stakeholders to contribute new ones.
 Prioritize these scenarios based on satisfying the business
goals of the system and choose the top one-third for
further study.

12
Step 1: Collate Scenarios…

13
Step 2: Refine Scenarios…
 Refine the scenarios by focusing on their stimulus/response
measures.
 Elicit the worst, current, desired, and best-case QA response level
for each scenario

14
Step 3: Prioritize Scenarios
• Allocate 100 votes to each stakeholder and have them distribute
the votes among the scenarios by considering the desired
response value for each scenario.

15
Step 4: Assign Utility
• Determine the utility for each QA response level (worst-case,
current, desired, or best-case) for all scenarios.

16
Step 5: Develop ASs for Scenarios and
Determine Their Expected Response Levels

 Develop Architectural Strategies , and determine the


expected QA response levels that will result from
implementing these ASs.
 Given that an AS may affect multiple scenarios.

17
Step 5: Develop ASs for Scenarios and
Determine Their Expected Response Levels…

18
Step 6: Determine Expected Utility
Levels by Interpolation
• Using the elicited utility values determine the utility of the "expected"
QA response level.

19
Step 7: Calculate the Total Benefit
Obtained from an AS
 Subtract the utility value of the "current" level from the
"expected" level and normalize it using the votes elicited
in step 3.
 Sum the benefit of a particular AS across all scenarios
and across all relevant QAs

20
Step 7: Calculate the Total Benefit
Obtained from an AS

21
Step 8: Choose ASs Based on ROI
Subject to Cost Constraints
 To complete the analysis, the team estimated cost for each
architectural strategy.
 The estimates were based on experience with the system,
and a return on investment for each architectural strategy
was calculated.
 ROI =Benefit/Cost
 Using the ROI, we were able to rank each strategy.

22
Step 8: Choose ASs Based on ROI
Subject to Cost Constraints…

23
Step 9: Confirm the results with intuition
 Of the chosen ASs, consider whether these seem to align with
the organization's business goals.
 If not, consider issues that may have been overlooked during the
analysis.
 If significant issues exist, perform another iteration of these steps

24
6.2: Architecture Competence
Competence of Individuals

Duties

Skills Knowledge
Technical Duties of an Architect
General Duty Specific Duties
Creating an architecture
Evaluating and analyzing an architecture
Documenting an architecture
Architecting
Working with and transforming other
systems
Performing other architecting duties
Managing the requirements
Implementing the product
Other life cycle activities Testing the product
Evaluation future technologies
Selecting tools and technology
Non-Technical Duties of an Architect
General Duty Specific Duties
Managing the project

Management Managing the people


Supporting the management

Supporting the organization


Organization and business Supporting the business
related duties
Providing technical leadership
Leadership and team building Building a team
Skills of an Architect
General Skill Area Specific Skills
Outward
Communication skills Inward
Within team
Interpersonal skills With other people

Leadership
Workload management
Work skills Skills to excel in corporate environment
Skills for handling information
Skills for handling unexpected incidents
Knowledge of an Architect
General Knowledge Area Specific Knowledge
Architecture
Software Engineering
Computer Science knowledge Design knowledge
Programming knowledge
Specific knowledge
Technology and Platforms
General knowledge
Domain knowledge

Organization context and Industry knowledge


management Enterprise knowledge
Leadership and management techniques
Organizational Competence
 It is not enough for the architect to be competent
 The organizational setting is usually outside the control of
individual architects.
 The architect must operate in an environment that
understands how to create/nurture/reward architects.
Some Examples of Activities by a
Competent Organization
 Establish a career track for architects.
 Establish a clear statement of responsibilities and authority
for architects.
 Establish a mentoring program for architects.
 Establish an architecture training/education program.
 Include architecture milestones in project plans.
 Have architects provide input into product definition.
 Have architects advise on development team structure.
 Give architects influence throughout the entire project life
cycle.
 Reward or penalize architects based on project success or
failure.
Assessing an Organization
 There are three practice areas that can be used to assess an
organization's competence.
 Software Engineering
 Technical Management
 Organizational Management
Software Engineering
Organizations should have defined practices for
 Quality Attribute Elicitation
 Tools and Technology Selection
 Modeling and Prototyping
 Architecture Design, Description, and Evaluation
 Software Design (design conforms to architecture)
 Software Coding (code conforms to design and
architecture)
 Software Verification and Testing
Technical Management
Organizations should have defined practices for
 Business or Mission Goals
 Setting functional requirements
 Allocating Resources
 Setting architect’s workload and schedule
 Funding stakeholder involvement
 Project plan structure aligned with architecture structure.
 Adequate time planned for architecture evaluation.
 Establish organization-wide architecture practices
 Process monitoring and improvement
 Reuse
 Collaboration with manager
Organizational Management
Organizations should have defined practices for
 Career track for Architects
 Leadership roles for architects
 Succession planning
 Ongoing training
 Creating and sustaining an internal community of
architects
 Supporting participation in external communities
 Organizational Planning
 Technology Planning and Forecasting
6.3: Architecture and Product Lines
Product Lines of Software
 A product line of software is:
a set of software-intensive systems sharing a common, managed
set of features that satisfy the specific needs of a particular
market segment or mission and that are developed from a
common set of core assets in a prescribed way
Reuse
 A product line represents strategic (planned) reuse.
 A common set of assets (core assets) that includes
 Requirements
 Architecture
 Test cases
 Build scripts
 Documentation
…
 These assets are constructed specifically to support reuse.
What Makes Product Lines Work?
 Planned reuse of
 Requirements. Most of the requirements are common with those
of earlier systems and so can be reused.
 Architectural design. For a new product, if quality goals are the
same then the architecture is largely the same.
 Software elements. Software elements are applicable across
individual products because the architecture is the same across
products.
 Modeling and analysis. Performance models, schedulability
analysis, distributed system issues (such as proving the absence
of deadlock), allocation of processes to processors, fault
tolerance schemes, and network load policies all carry over
from product to product.
What Makes Product Lines Work? - 2
 Planned reuse of
 Testing. Test plans, test processes, test cases, test data, test
harnesses, and the communication paths required to
report and fix problems are already in place.
 Project planning artifacts. Budgeting and scheduling are
more predictable because experience is a high-fidelity
indicator of future performance.
 and more…
Costs of Product Lines
 Up front planning takes time.
 It takes 2-3 systems to start seeing savings begin for product
lines.
 Alternatively, the product line can be evolved when new
products are defined. But this may require rework of the
architecture.
Product Line Scope
 Some products are in scope (white)
 Some products are out of scope (speckled)
 Some products need to be decided on a case by case basis
(lined)

c. d
Scope is a Critical Decision
 Too broad a scope and the systems become difficult to design
and construct.
 Too narrow a scope and there are too few systems to justify
the additional expense and complexity.
 Scoping decisions made by
 finding commonality and variation points among potential
products
 interactions between marketing and the architect to define as
broad a scope as technically feasible without introducing
excessive cost when building products.
Evaluating a Product Line Architecture
 Largely the same as a normal evaluation.
 Special attention should be paid to variation points.
 Can be applied to
 core assets, to assess suitability for product line
 instance architecture, to assess suitability for a particular
desired product.
Thank You !!

46

You might also like