0% found this document useful (0 votes)
112 views23 pages

Week 4 - Architectural Evolution and Maturation

The document discusses architectural evolution and maturation of software. It describes how an architecture begins as a set of initial design choices but matures over time through multiple releases. Key factors that drive evolution include new features requested by customers and the capabilities needed within the architecture to support those features. Architectural care and feeding is also important to maintain currency, fix bugs, and ensure license compliance as the architecture evolves.

Uploaded by

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

Week 4 - Architectural Evolution and Maturation

The document discusses architectural evolution and maturation of software. It describes how an architecture begins as a set of initial design choices but matures over time through multiple releases. Key factors that drive evolution include new features requested by customers and the capabilities needed within the architecture to support those features. Architectural care and feeding is also important to maintain currency, fix bugs, and ensure license compliance as the architecture evolves.

Uploaded by

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

Software Architecture Testing

CT059-3-2

Architectural Evolution and


Maturation
Topic & Structure of the lesson

• Features and Capabilities


• Architectural Care and feeding

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 2 (out of 11)
Learning Outcomes

• By the end of this lecture, YOU should be


able to :
– Discuss the features and capabilities of
an architecture
– Discuss the factors for architectural care
and feeding

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 3 (out of 11)
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

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 4 (out of 11)
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)

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 5 (out of 11)
Forces Shaping Software
Architecture

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 6 (out of 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

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation ‹#›


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.

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 8 (out of 11)
Architectural Evolution

Interaction of requested or desired features


and required capabilities to support these
features is how architecture evolve over the
time.

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 9 (out of 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
CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 10 (out of 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.
CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 11 (out of 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”

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 12 (out of 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.


CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 13 (out of 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.
CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 14 (out of 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.

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 15 (out of 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”
CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 16 (out of 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.

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 17 (out of 11)
Architectural Care & Feeding

• License Compliance
– review each vendor’s upgrade
– know when your must upgrade the architecture

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 18 (out of 11)
Summary of Main Teaching Points

• Features and Capabilities


• Architectural Care and feeding

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 13 (of 15)
Review

• What is Features?

• Gives Three Examples for Features ?

• What is capabilities?

• What is Evolution?

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 20 (out of 11)
Review

• When the cycle must broken?

• What is care and feeding?

• Three activities for Care and Feeding?

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 21 (out of 11)
Question and Answer Session

Q&A

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 14 (of 15)
Next Session
• Principles First, Second and Third
• Creating architectural understanding

CT059-3.5-3 Software Architecture Testing Architectural Evolution and Maturation Slide 15 (of 15)

You might also like