Duration: 24 hours
DescriptionThe course introduces the main concepts and context of software architecture. Participants will learn about practices such as essential requirements identification, design, documentation, and analysis, in other words about a rather general all-around methodology not bound to specific technological base or area of expertise.
Theoretical material is corroborated by cases from trainer’s experience and reinforced with the help of small exercises. Every day, in the afternoon students will participate in team games and will try to apply these practices in some cases related with business issues of software development.
- Context, main concepts, software design and architecture analysis, role of architect
- Project initiation: identifying stakeholders and business goals
- Identifying, formalizing and prioritizing the requirements to quality system characteristics (main: performance and scalability, accessibility, security, changeability and other quality attributes)
- Architectural design: decision-making, concepts of tactics, patterns, approaches and styles; typical tactics applied for achieving main quality characteristics
- Documenting software architecture: the purpose and structure of architectural description; viewpoint-based approach and architectural views; detailed overview of the most popular viewpoints (4+1 and Rozansky&Woods), using modeling techniques in documenting; the prospects of applied tactics for achieving the desired quality system characteristics; using simplified description in pre-sale activities
- Architectural analysis: formal process of architecture analysis and assessment involving stakeholders, identifying compromise solutions and architectural risks, further working with risks
ObjectivesProvide architects, system analysts, and technical leaders with design and software architecture skills that can be applied:
- in current projects as means of quality maintenance of the delivery system, problem solving and customer expectations management,
- in pre-delivery inspection as means of analysis, preliminary design, and estimate for reducing risks related to a commercial offer.
- Technical leaders and senior developers
- System analysts and designers
- Project managers, quality managers, pre-delivery preparation managers
- Business analysts
- More than three years of experience in software engineering (any role).
- More than one year of experience in software development projects in any role from the Target Audience list (see above).