You are on page 1of 17

Software Architecture Testing

CT059-3-2

Introduction to software
architectures
Topic & Structure of the lesson

• Defining software architecture


• Alternate thoughts on software architecture
• Why software architecture matters?

CT059-3.5-3 Software Architecture Testing Introduction to Software Architectures Slide 2 (out of 14)
Learning Outcomes

• By the end of this lecture, YOU should be


able to :
– Define software architecture and
alternative thoughts on software
architecture
– Explain why it matters to stakeholder

CT059-3.5-3 Software Architecture Testing Introduction to Software Architectures Slide 3 (out of 14)
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:
– Software architecture
– Dependencies
– Human motivation
– Longevity
– Social structure

CT059-3.5-3 Software Architecture Testing Introduction to Software Architectures Slide 4 (out of 14)
Why Software Architecture?

CT059-3.5-3 Software Architecture Testing Introduction to Software Architectures Slide 5 (out of 14)
Architecting a huts

To build
• Need less people
• Basic modeling
• Less technology
• Simple task & tools

CT059-3.5-3 Software Architecture Testing Introduction to Software Architectures Slide 6 (out of 14)
Architecting a high rise

To build
• Need expert team
• Expensive
• Sophisticated models
• New technologies
• Defined and proven process

CT059-3.5-3 Software Architecture Testing Introduction to Software Architectures Slide 7 (out of 14)
So what?
• Different project need different resources and skills such as
• People
• Process
• Technology
• Management
• Users
• Money

BUT MOST IMPORTANT OF ALL

“MODEL” Or
“ARCHITECTURE”
CT059-3.5-3 Software Architecture Testing Introduction to Software Architectures Slide 8 (out of 14)
What is Software Architecture?
Some Definitions

• Software architecture is the fundamental organization of a system,


embodied in its components, their relationships to each other and
the environment, and the principles governing its design and
evolution
- IEEE 1471-2000

• “The software architecture of a program or computing system is the


structure or structures of the system, which comprise software
elements, the externally visible properties of those elements, and
the relationships among them.”
Software Architecture in Practice (2nd edition),
(Bass, Clements, Kazman; Addison-Wesley 2003:

CT059-3.5-3 Software Architecture Testing Introduction to Software Architectures Slide 9 (out of 14)
Few More

• Perry and Wolf, 1992


– A set of architectural (or design) elements that have a particular form
• Boehm et al., 1995
– A software system architecture comprises
• A collection of software and system components, connections, and constraints
• A collection of system stakeholders' need statements
• A rationale which demonstrates that the components, connections, and constraints
define a system that, if implemented, would satisfy the collection of system
stakeholders' need statements
• Clements et al., 1997
– The software architecture of a program or computing system is the structure or
structures of the system, which comprise software components, the externally visible
properties of those components, and the relationships among them

http://www.sei.edu/architecture/definitions.html
CT059-3.5-3 Software Architecture Testing Introduction to Software Architectures Slide 10 (out of 14)
Quick Review Question

• What could happen if a system was


developed without an architecture?

Use real world examples (or your own


experiences) to present your answer

CT059-3.5-3 Software Architecture Testing Introduction to Software Architectures Slide 11 (out of 14)
Alternate thoughts on software
architecture
• Consider human and business issues
– Designed to manage dependencies
– Designed according to human motivations and desires
– System satisfaction
• Architecture represents the set of earliest design decisions
– Hardest to change
– Most critical to get right
• Architecture is the first design artifact where a system’s quality
attributes are addressed

CT059-3.5-3 Software Architecture Testing Introduction to Software Architectures Slide 12 (out of 14)
Architecture Serves

• As the blueprint for the system but also the project:


– Team structure
– Documentation organization
– Work breakdown structure
– Scheduling, planning, budgeting
– Unit testing, integration
• Architecture establishes the communication and
coordination mechanisms among components

CT059-3.5-3 Software Architecture Testing Introduction to Software Architectures Slide 13 (out of 14)
Why Software Architecture
Matters
• Longevity
– System’s life can be improved
• Stability
– To ensure a minimum fundamental rework
– Provide important foundation for development team
• Degree and Nature of change
– Determine the nature of change within the system
– Easy to make change without much rework
• Profitability
– Create architecture that can sustain it with acceptable cost structure
• Social structure
– It influence the developer (no matter what language used)
• Boundaries defined
– Help the client and developer to have mutual understanding

CT059-3.5-3 Software Architecture Testing Introduction to Software Architectures Slide 14 (out of 14)
Summary of Main Teaching Points

• Defining software architecture


• Alternate thoughts on software
architecture
• Why software architecture matters?

CT059-3.5-3 Software Architecture Testing Introduction to Software Architectures Slide 13 (of 15)
Question and Answer Session

Q&A

CT059-3.5-3 Software Architecture Testing Introduction to Software Architectures Slide 14 (of 15)
Next Session

• Creating an architecture
• Patterns and architecture

CT059-3.5-3 Software Architecture Testing Introduction to Software Architectures Slide 15 (of 15)

You might also like