Training Description:
The tip of the iceberg is that the software architectures
are praised or blamed for the software being "good" or
"bad". However, what is not seen is the tremendous effort
and knowledge required to create them.
This training from Software View is about building software
architectures. The training is comprehensive and broad in
its coverage. In this training, we do not go into the
details of specific reference architectures like Java
Enterprise Edition or .NET platform. We cover software
architecture at a layer above and hence the topics apply for
all software development work irrespective of the
development platforms, operating systems and programming
languages. In short, the learnings from this training will
help you even if you want to create a platform like Java
Enterprise Edition or .NET.
This training is derived from the knowledge of multiple
sources including the comprehensive software architecture
related research work carried out at SEI (Software
Engineering Institute, Carnegie Mellon University). However,
we do not have any affiliation with them.
Training Objectives:
At the end of the training, participants will be able to
- Describe what software architecture is.
-
Describe how business requirements transform into software
requirements and architectures.
-
Identify quality expectations of software systems, use
different architectural tactics to achieve them.
-
Create, document and validate (review) software
architectures with industry practiced methods, standards,
tools and techniques.
-
Drive implementation of identified software architectures.
-
Develop product line architectures and explain the issues to
be resolved and remedies.
-
Develop component based software architectures.
-
Describe what Service Oriented Architecture is, the building
blocks and implementation technology stacks available, and
the evolution of SOA.
Target Groups:
- Candidate software architects
-
Present software architects interested in systematic
software architecture creation, documentation and
validation.
- Senior software developers
-
Read "Do I
fit for that training?" if you are interested, but
need help to determine whether you should participate or
not.
Prerequisites:
-
Participants should have been involved in implementing
software systems at least for about two years (including
modeling to some extent and coding).
-
If you do not find yourself in such a state, also read "Do I
fit for that training?".
Communication Language:
English
Duration:
4 days (32 hours)
Facilitator:
Kamal Wickramanayake (Profile)
Notes:
-
This training does not necessarily require participants to
use computers during the training.
Training Content:
- Introduction
- What is software architecture?
- Why is it important?
- What does it take to create architecture?
- How does software architecture manifest in the real world?
- Who is a software architect?
- Differences between software design and software architecture
- Software Architecture Driven By Business Needs
- How do business requirements drive IT requirements?
- How do IT requirements turn into software requirements
- What other architectures are involved in this process?
- Overview of commonly known tools, frameworks and techniques
- Architecture vision and principles
- Quality Attributes
- Distinguish between functionality and quality attributes
- Quality attributes that drive software architecture
- Quality attribute scenarios
- Architectural Tactics
- What are architectural tactics?
- A catalog of common architectural tactics
- Selecting the best tactic to achieve a given quality requirement
- Designing Architecture
- Overall architecture designing process
- Architectural patterns
- Architectural styles
- Reference models
- Reference architectures
- Concrete architectures
- Systematic architecture designing
- Creating a skeletal system
- Documenting Architecture
- Model of the software
- Views and viewpoints
- Different presentation techniques
- Architectural frameworks
- Analyzing The Architecture
- Why analyzing architecture is important?
- When and where the architecture should be analyzed?
- Setting up principles
- Architecture trade-off analysis
- Product Line Architectures
- Why architecture for product lines?
- Product line engineering activities
- Modeling the problem and solution spaces
- Using core assets across the product line
- Software engineering practices
- Technical management practices
- Organizational management practices
- Component Based Architectures
- Pros and cons of component based architectures
- Selecting components
- Architectural mismatch
- Service Oriented Architectures (SOA)
- What is SOA?
- Why service usage is so appealing?
- Fundamental building blocks of service oriented architectures
- Present technologies available for SOA implementation
- Past, present and future of SOA
- Ensuring The Said Architecture Is Built
- What can go wrong?
- Building controls to avoid slippage