Software Architecture Methodology
Description
This course defines the foundations of software architecture, examines the role of a software architect in developing projects, follows project initiation and requirements identification, plus implements practices related to the design, documentation, and analysis of software architecture.
These practices can be used by software architects, project managers, developers, and business analysts in their activities in projects of various problem domains and technologies.
Theoretical material is supported with examples from contemporary tools, frameworks, environments, and also the instructor’s experience. The course includes both short exercises and comprehensive practice, carried out in groups of 3-4 people, starting from the problem’s background up to actual design of a software system. The training ends with a presentation of the results of each team activity and their examination in front of all other teams.
is issued on the Luxoft Training form
Objectives
Train architects, system analysts, and technical leaders in software architecture design and analysis skills that can be used:
- In current projects to ensure quality of the system under development, solve problems, and manage customer’s expectations;
- In the design of new projects to start with an efficient and easy to evolve architecture;
- In pre-sale activities as a trigger for conducting analysis, elaborating preliminary design, and making estimates to decrease risks of a commercial offer.
Target Audience
Primary:
- Software architects
- Technical leaders and lead developers
- System analysts and designers
Secondary:
- Project managers, QA managers, and pre-sale managers
- Business analysts
Prerequisites
- At least three years of (any) experience in software engineering.
- More than 1 year experience in projects on software development in any role from the Target Audience list (see above).
- The technology and area of expertise do not matter.
Roadmap
- [Theory – 1h: Practice – 0.5h] Foundations of software architecture, analysis & design discipline overview.
- [Theory – 1h: Practice – 0.5h] The role of an architect in software development projects.
- [Theory – 2h: Practice – 3h] Project initiation, requirements identification.
- [Theory – 4h: Practice – 4h] Architectural design: tactics in availability, performance, security, scalability, modifiability, testability, usability. Patterns, approaches, and styles; typical tactics applied to achieve main quality characteristics.
- [Theory – 2h: Practice – 2h] Documenting software architecture: purpose and structure of an architectural description; viewpoint-based approach and architectural views; detailed overview of the most popular viewpoints (Kruchten and Rozansky&Woods); architectural perspectives.
- [Theory – 2h: Practice – 2h] Architectural evaluation: validate design decisions, valuation techniques, the Architecture Trade-off Analysis Method (ATAM), Active Reviews for Intermediate Designs (ARID), and the Cost-Benefit Analysis Method (CBAM).
Catalin is an experienced and dedicated software engineer with expertise in a variety of areas such as requirements analysis, project management (Waterfall and Agile), people management, Java technologies, database design, software archi