This intense, hands-on seminar will give you the tools you need to be a professional software developer. This seminar combines techniques from the areas of design, construction, and testing to give you pragmatic guidance into the business of writing working code. Principles will be illustrated with numerous concrete examples of good and bad code in a variety of languages. In depth labs allow you to practice applying the principles.

3-day seminar

Who Should Attend

This seminar will be valuable to programmers, developers, software engineers, software test engineers, and anyone who wants to learn best coding practices.

Managing Complexity

  • Essential and accidental difficulties
  • Modularity
  • Encapsulation
  • Information hiding
  • Coupling
  • Cohesion
  • Abstraction
  • Interfaces
  • Design by contract
  • Knowledge as data

Designing for Change

  • Variability analysis
  • Typical changes
  • Design to invariants
  • Extension & intension
  • Association versus inheritance
  • Delay binding times
  • Composability
  • Open / closed principle

Key Construction Skills

  • Design principles
  • Design patterns
  • Structured programming
  • Object-oriented programming
  • Functional programming
  • Improving productivity
  • Working on a team
  • Writing legible code
  • Tools, techniques, and practices

Increasing Your Software’s Value

  • Effective requirements
  • Prototyping
  • Modeling
  • User interface design
  • Read time versus write time convenience
  • Characteristics of high value software
  • Transparency

Error Handling

  • Assertions
  • Exceptions
  • Diagnostics
  • Defensive programming

Ensuring Correctness

  • Functional unit testing
  • Structural unit testing
  • Automated feature testing
  • Domain analysis
  • Equivalence class partitioning
  • Testing strategies
  • Measuring complexity
  • Minimize the lag between error insertion and error detection
  • Avoiding common pitfalls
  • XUnit frameworks
  • Mutation testing
  • Static analysis
  • Debugging
  • Developer testing tools
This seminar is not offered publicly.

Melvin Perez-Cedano

Melvin Pérez-Cedano is a Senior Fellow at Construx Software where he provides training and consulting services that help organizations and individuals to successfully ...