|
|
professional software developers tutorial
What follows is the detailed programme. |
![]() |
|
DAY ONE[Intermediate to Advanced] |
|||
|
9 July
Johannesburg System Design: Architectures and Archetypes |
|||
|
The challenges of developing high performance, high reliability, and high quality software systems are too much for ad hoc and informal engineering techniques that might have worked in the past on less demanding systems. New techniques for managing these growing complexities are required to meet today's time-to-market, productivity and quality demands. |
|||
|
This tutorial shows you how to: This approach produces a number of beneficial results:
The tutorial includes a number of pencil and paper exercises that illustrate the concepts. |
![]() |
||
DAY TWO |
|||
|
10 July
Johannesburg |
|||
8:30 Extreme Modeling |
|||
|
Extreme Programming (XP) is a process that focuses on the critical tasks we do to build the final product: the code. It is very controversial: some love it, others view it as a excuse for hacking. In these days of executable models, the products are the models that describe the problem and the system design. This class covers the principles of XP and the Agile Alliance and and shows how they apply to modeling, as opposed to programming, systems: |
|||
|
|
Business People on
Site (a.k.a. "The Planning Game") |
||
|
The presentation focusses on when--and when not--to apply these techniques, and how to bring them to your project. |
|||
10:00 TEA |
|||
10:30 Coping with Changing Requirements |
|||
|
Changing requirements are a fact of life on any project. But the impact of a requirements change can vary significantly depending on how you organize the analysis and design of the system. |
|||
|
This class focuses on techniques for organizing the analysis and design
so that it responds well to requirements change. We show how to find the
invariants, model them and then express the variants in data. These techniques will reduce the size of the requirements documents,
as well as the design and code. In addition, the class demonstrates how
to: |
![]() |
||
12:00 LUNCH |
|||
13:00 The Case for Using Use Cases |
|||
|
Systems respond to a large number of external signals that cause the system to carry out some desired activity depending on the system's state. Each pairing of external signal and desired response represents a user's requirement on the system, a use case. Use cases, then, are a valuable tool for requirements gathering and analysis. Use cases, however, can be positively dangerous if they are used literally to define the software structure. |
|||
![]() |
This class will tell you when to use cases, when to avoid them, and how
to make best use of them. The class also shows how to: |
||
14:30 TEA |
|||
15:00 Modeling Complex Behaviour Simply |
|||
|
Complex dynamic behavior doesn't have to mean complex models. This class
describes how to use the Unified Modeling Language (UML) to model complex
dynamic behavior simply. Analysts and designers using these techniques can communicate more effectively with application experts, avoid unnecessary arguments with colleagues; improve productivity and reduce time to market. |
![]() |
||
16:30 DRINKS |
|||
|
|
|||