Software Architecture And
Testing
CT059-3-2
ARCHITECTURAL
EVOLUTION AND
MATURATION
Topic Learning Outcomes
• At the end of this topic, you should be able to:
1. Discuss the features and capabilities of an architecture
2. Discuss the factors for architectural care and feeding
Module Code & Module Title
Slide Title
SLIDE 2
Slide 2
Contents & Structure
✧ Features and Capabilities
✧ Architectural Care and feeding
Module Code & Module Title
Slide Title
SLIDE 3
Slide 3
Key Terms you must be able to use
• If you have mastered this topic, you should be able to use the
following terms correctly in your assignments and exams:
– Features
– Capabilities
– Maturation
– Evolution
Module Code & Module Title
Slide Title
SLIDE 4
Slide 4
Definition of Architecture
• the basic structure of the system
• the high-level modules comprising the major functions of the
system
• the management and distribution of data
• the kind of style of its user interface
• what platform(s) will it run on…..so forth
(Beyond software architecture – Luke Hohmann)
Module Code & Module Title
Slide Title
SLIDE 5
Slide 5Slide
(out of
5 11)
Forces Shaping Software
Architecture
Module Code & Module Title
Slide Title
SLIDE 6
Slide 6Slide
(out of
6 11)
Creating an Architecture
• begins with a collective set of design choices, brainstormed
sketches on white boards …showing developers intentions
– Like a child , whole and complete but immature or unsteady
– Overtime several releases, architecture matures and
solidifies, user and developer more confidence
Module Code & Module Title
Slide Title
SLIDE 7
Slide 7Slide
(out of
7 11)
Architectural Evolution
• Emphasis is placed on the initial creation and early versions
of an architecture
• However, most time is spent on working on existing
architecture, which evolves based on customer feedback
• This process of evolution and maturation is driven by actual
use of the system.
• Next release will include the new features(or function the
same meaning), whether can be incorporated depends on the
architecture’s capabilities.
• Interaction of requested or desired features and required
capabilities to support these features is how architecture
evolve over the time.
Module Code & Module Title
Slide Title
SLIDE 8
Slide 8Slide
(out of
8 11)
Patterns & Architecture
• The creation of and architecture must be grounded by a pragmatic
approach
• Software patterns provides this approach:– Capture known solutions that enable application of that
knowledge to new situations
– Comprise of fundamental structural organization of software
systems comprising of:• Descriptions of subsystems and their responsibilities and
how they interact to solve the problem
– Explore the documented patterns, choose one that address the
problem then tailoring the architecture , guided by principles
Module Code & Module Title
Slide Title
SLIDE 9
Slide 9Slide
(out of
9 11)
Features
• Features or functions defines something that a product does or
should do.
• To test whether a requirement is a feature or no just put the
phrase
“We want the product to ……” or “The product should ……..” in
front of it.
– Features are most easily managed when clearly prioritized
by marketing.
– Features are best implemented when the technical
dependencies between features are made clear by
development team.
Module Code & Module Title
Slide Title
SLIDE 10
Slide 10Slide
(out of
10 11)
Example for Features
• Supported platforms: "we want the product to run on Solaris 2.8
and Windows XP”
• Use cases : “The product should allow registering a new user”
• Performance: “we want the product to provide a dial tone within
100ms of receiving the off-hook signal”
Module Code & Module Title
Slide Title
SLIDE 11
Slide 11Slide
(out of
11 11)
Capabilities
• Capabilities refers to the underlying architecture’s ability to
support the related set of features. It should able to implement
most or all requested features in well defined, disciplined manner.
• The importance of a capability emerges when marketing is
repeatedly told that a class of related features, or a set of features
that appear to be unrelated on the surface but are related due to
technical implementation, is difficult to implement or impossible to
implement with a given architecture.
• To achieve this phenomenon the development team should work
repeatedly on one architecture.
• Through this repeated process the initial architecture matures.
Module Code & Module Title
Slide Title
SLIDE 12
Slide 12Slide
(out of
12 11)
Evolution and Maturation of
Architecture
• The interact between architect maturation and evolution is a
function of time and release cycle. In the first releases
completion of architecture matters.
• After the system is operating for three or more release cycles
(2 or more years) the initial features implemented by the
creators, the product managers must begin to incorporate
increasing amount of direct customer feedback for the
future releases.
• these feedback mark the beginning of architectural
evolution, as the developer team creates the necessary
capabilities that provide these features.
• Not all architectural evolution is driven by customer demand,
companies that manage their product will look for new
technologies or techniques.
Module Code & Module Title
Slide Title
SLIDE 13
Slide 13Slide
(out of
13 11)
When the cycle must be broken
Capabilities dominate the situation, architecture cannot
support the new features.
Capabilities not thought about in earlier architecture
When existing system does not have the right capabilities and
adding them is too costly (in terms of time or resources).
You must undertake a complete rewrite/redesign of an
existing system.
When the modification is too expensive.
Market demands for new features.
Module Code & Module Title
Slide Title
SLIDE 14
Slide 14Slide
(out of
14 11)
Architectural Care & Feeding
• In addition to maturation and evolution, driven by features and
capabilities team must:
Care and feed their architecture.
• It is not about adding features or capabilities it is about
keeping the features and capabilities. Following are care and
feeding forces that shape the architecture:
• Technology Currency, staying current
– to avoid redesign
– additional benefits to the users
– result is a double win, marketing can use “New and
Improved”
Module Code & Module Title
Slide Title
SLIDE 15
Slide 15Slide
(out of
15 11)
Architectural Care & Feeding
• Technology debt
– Create long term solution
– Should deliver on promised date
– Have to know when they need to get the system to a shippable
state.
• Known Bugs
– fix the known bugs
– You will end up with happier developers and better architecture.
– You raise a cycle of positive improvement. Every change leaves
the system in a better state.
Module Code & Module Title
Slide Title
SLIDE 16
Slide 16Slide
(out of
16 11)
Architectural Care & Feeding
• License Compliance
– review each vendor’s upgrade
– know when your must upgrade the architecture
Module Code & Module Title
Slide Title
SLIDE 17
Slide 17Slide
(out of
17 11)
Summary of Main Teaching Points
• Features and Capabilities
• Architectural Care and feeding
Module Code & Module Title
Slide Title
SLIDE 18
Slide 18Slide
(out of
18 11)
Review
• When the cycle must broken?
Module Code & Module Title
Slide Title
SLIDE 19
Slide 19Slide
(out of
19 11)
Question and Answer Session
Q&A
Module Code & Module Title
Slide Title
SLIDE 20
Slide 20
What To Expect Next Week
In Class
•
Preparation for Class
Principles of architectural
•
- First, Second and Third principle
- Creating architectural understanding
Module Code & Module Title
Slide Title
Download the slide and study for
the next chapter.
SLIDE 21
Slide 21