Technologia
Registration

Object - Dev. - Testing

Best Practices with Light-weight Agile Development (DE119)

MONTREAL: September 8-9 (French)  /  November 17-18 (French)

A Technical Introduction to Service Oriented Architecture (SOA) (DE122)

MONTREAL: September 22 (French)  /  November 26 (French)  /  January 21 (French)

Effective Creation and Estimation of Use Cases and User Stories (DE118)

MONTREAL: September 10-11 (French)  /  December 15-16 (French)

Object-Oriented Concepts and Technologies (DE101)

MONTREAL: September 15-16 (French)  /  December 1-2 (French)  /  January 26-27 (French)

QUEBEC CITY: October 20-21 (French)

Object-Oriented Analysis and Design using UML (DE102)

MONTREAL: September 17-19 (French)  /  December 3-5 (French)  /  January 28-30 (French)

QUEBEC CITY: October 22-24 (French)

Advanced Object-Oriented Development using Design Patterns (DE107)

MONTREAL: October 16-17 (French)  /  January 19-20 (French)

Best Practices and Techniques for Class Design (DE114)

MONTREAL: October 27-28 (French)  /  January 22-23 (French)

Software Testing Methods and Tools (DE308)

MONTREAL: December 8-10 (French)

Just in Time: Software Testing Methods (DE322)

MONTREAL: December 11-12 (French)

Developing Embedded Applications with C and B# (DE210) NEW COURSE

MONTREAL: November 13-14 (French)  /  January 12-13 (French)

BEST PRACTICES WITH LIGHT-WEIGHT AGILE DEVELOPMENT

Objective
To provide the knowledge and skills required to understand the concepts, models, notation, light-weight agile processes, strategies, and best practices commonly used in object-oriented development projects.

Target audience
Managers, project managers and designers.

Prerequisites
Knowledge of computer science.

Topics covered

  • Review of object-oriented concepts and the idea of components
  • The promise of object-oriented technology
  • Traditional unified and object-oriented development: processes, notation, cycles, phases and techniques
  • The history of light-weight development systems in the world
  • From fragility to agility: basic principles and best practices in the industry
  • Introduction to the main concepts and goals of Agile methods: eXtreme Programming, SCRUM, DSDM, ADM, and FDD
  • Selecting and integrating simple and practical development strategies inspired by Agile methodologies
  • Examples, workshops and case studies

Accredited course.
12 PDU

DE119 - 2 days

REGULAR FEE: $845

DISCOUNTED FEE: $695

MONTREAL: September 8-9 (French)  /  November 17-18 (French)

A TECHNICAL INTRODUCTION TO SERVICE ORIENTED ARCHITECTURE (SOA)

Objective
To provide the knowledge and skills required to recognize the key features of Service Oriented Architecture, and to understand the principles and the best practices used to build more flexible architectures.

Target audience
IT directors, project leaders, managers, architects, analysts and designers.

Prerequisites
Good knowledge of computer science.

Topics covered

  • Fundamental concepts related to objects and components
  • Basic definitions, presentation of case studies
  • The key concepts and principal characteristics of a SOA
  • Clarification of some misconceptions regarding SOA
  • Problems which hamper the adoption and governance of SOA
  • The evolution of SOA: from XML to Web Services
  • Comparing SOA to earlier architectures (client-server, Internet, distributed)
  • SOA with a Web Services framework: service description (WSDL) and messaging (SOAP)
  • Service oriented principles within the business
  • Service layers: abstraction, application, business, coordination, configuration
  • Development and delivery strategies: top-down, bottom-up and agile
  • Introduction to service oriented analysis and design
  • Implementation platforms (basic, J2EE, .NET) and integration issues
  • Concluding case studies

Accredited course.
6 PDU

DE122 - 1 day

REGULAR FEE: $445

DISCOUNTED FEE: $375

MONTREAL: September 22 (French)  /  November 26 (French)  /  January 21 (French)

EFFECTIVE CREATION AND ESTIMATION OF USE CASES AND USER STORIES

Objective
To provide the knowledge and skills required to place the requirements gathering phase within the (unified and agile) software development process as well as to identify, estimate and plan requirements with the help of use cases and user stories.

Target audience
Project leaders, business analysts, functional analysts and developers.

Prerequisites
Good knowledge of computer science.

Topics covered

  • Getting started: interactive and incremental processes, phases, activities, iterations, initial description of a project, and risk analysis
  • Identification of the system scope, elements, and generalization and collaboration relationships with use case models
  • Categorization of functional/nonfunctional requirements and their prioritization
  • Effectively describing the roles of the actors and the functionality of a use case and a user story
  • Fundamental use cases, preconditions, postconditions, scenarios, branching, iteration, and basic, alternative and exceptional event flows
  • Principal features of use cases and user stories, as well as pitfalls to avoid
  • Examples of formats used for use cases and user stories, drawn from actual projects
  • A checklist for verifying and integrating with unified and agile development processes: RUP, XP and Scrum
  • User stories and the agile methodology: preparation, estimation and planning

DE118 - 2 days

REGULAR FEE: $845

DISCOUNTED FEE: $695

MONTREAL: September 10-11 (French)  /  December 15-16 (French)

OBJECT-ORIENTED CONCEPTS AND TECHNOLOGIES

Objective
To provide the knowledge and skills required to explain the terms and concepts of object technology and to make effective use of these in software projects.

Target audience
Project managers, executives, analysts, designers and software developers.

Prerequisites
Good knowledge of computer science.

Topics covered

  • Concepts: objects, classes, instances, methods, encapsulation, inheritance, polymorphism (problems, advantages and examples presented with each concept)
  • Traditional vs. object-oriented approach
  • Principles of object-oriented analysis and design
  • Object-oriented languages and environments: C++, Java and C# (origin, objectives, main characteristics and uses) and more (VB6, VB.NET, Delphi, Smalltalk Perl, Python, PHP, Ruby, etc)
  • Re-use: internal, external, costs, orientations and libraries of components
  • Object-oriented methodologies: development phases and processes, CRC, Booch, OMT, Jacobson and UML
  • Business Process Modeling (BPM), the n-tier model, Web Services, SOA architecture, client-server, rich and thin clients
  • Standards: COM, .NET, Beans, J2EE, OMG, ODMG, IDL, ODL, XML, SQL, OQL CORBA, RMI and SOAP
  • Advantages and disadvantages of the object-oriented approach
  • Simplified object-oriented processes and managing object-oriented projects

DE101 - 2 days

REGULAR FEE: $745

DISCOUNTED FEE: $645

MONTREAL: September 15-16 (French)  /  December 1-2 (French)  /  January 26-27 (French)

QUEBEC CITY: October 20-21 (French)

OBJECT-ORIENTED ANALYSIS AND DESIGN USING UML

Objective
To provide the knowledge and skills required to use UML notation, the industry standard for documenting and communicating the analysis and design of an object-oriented project.

Target audience
Analysts, designers and software developers involved in object-oriented application development.

Prerequisites
Knowledge of object-oriented concepts (Course DE101).

Topics covered

  • Fundamentals of objects, the goals and impacts of using UML in development
  • Static models: class diagrams, classes, associations, aggregations, properties, stereotypes, etc.
  • Operational models: pre-conditions, post-conditions and invariants
  • Dynamic models: sequence, collaboration, state and activity diagrams
  • Establishing requirements: actors, use cases, dictionary, the concept model and scenarios
  • Analysis (packages and class specifications) and design (architecture definition, component and deployment diagrams)
  • Introduction to Design Patterns
  • Implementation: rules for translating models into an object-oriented language
  • Perspectives and best practices regarding the use of UML diagrams
  • Case studies and exercises
  • Guidelines and practical advice

DE102 - 3 days

REGULAR FEE: $1165

DISCOUNTED FEE: $1025

MONTREAL: September 17-19 (French)  /  December 3-5 (French)  /  January 28-30 (French)

QUEBEC CITY: October 22-24 (French)

ADVANCED OBJECT-ORIENTED DEVELOPMENT USING DESIGN PATTERNS

Objective
To provide the knowledge and skills required to analyze and use Design Patterns, standardized design solutions for recurring problems. Design patterns are considered to be one of the most important object-oriented techniques and strategies.

Target audience
Designers and software developers.

Prerequisites
Knowledge of object-oriented concepts (Course DE101) and of UML notation (Course DE102).

Topics covered

  • Essential elements, catalog, space, and format of design patterns
  • Design strategies and techniques and reuse mechanisms
  • Creational patterns: Abstract factory, Builder, Factory method, Prototype and Singleton
  • Structural patterns (composition of objects to obtain new software functionality, identification of abstract or extendable class structures): Adapter, Bridge, Composite, Decorator, Facade, Flyweight and Proxy
  • Behavioural patterns (extendable and decoupled collaborations): Chain of responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template method and Visitor
  • Practical techniques used to select and apply patterns
  • Steps involved in producing a pattern

Note: Solutions presented are in UML and include concrete examples.

DE107 - 2 days

REGULAR FEE: $845

DISCOUNTED FEE: $695

MONTREAL: October 16-17 (French)  /  January 19-20 (French)

BEST PRACTICES AND TECHNIQUES FOR CLASS DESIGN

Objective
To provide the knowledge and skills required to apply the best class design practices available in the industry, and to improve software structure, legibility, maintainability and enhancibility.

Target audience
Software developers.

Prerequisites
Practical experience with one of the following programming languages: C++ (Course MN202), C# (Course MN201 or Course MN203), VB.NET (Course MN204) or Java (Course DE204).

Topics covered

  • Ways of improving the design of existing code without impairing its external behaviour
  • Principles and criteria for applying refactoring techniques
  • Presentation of the test framework
  • Reorganization of methods: how to extract, eliminate, replace or add them
  • Reorganization of attributes: how to create, modify or replace accessors, values, references, observed data, associations, and enumerations
  • Migration of responsibilities by means of inline, delegation, and helper classes
  • Simplification of conditional expressions using subclasses, state/strategy patterns, null objects, and assertions
  • Simplification of method invocations to build interfaces and factories
  • Moving methods within a hierarchy of classes: how to extract and move attributes and methods

Note: Exercises are done in the Visual Studio 2005 environment with the programming language of your choice.

DE114 - 2 days

REGULAR FEE: $845

DISCOUNTED FEE: $695

MONTREAL: October 27-28 (French)  /  January 22-23 (French)

MANAGING DEPENDENCIES IN OBJECT-ORIENTED DEVELOPMENT

Objective
To provide the knowledge and skills required to master best practices for managing the evolution of, and the dependencies among, packages, namespaces, and classes, in order to improve the structure, stability and organization of applications.

Target audience
Designers and developers

Prerequisites
Experience with any of the following languages: C++ (Course MN202), C# (Course MN201 or Course MN203), VB.NET (Course MN204) or Java (Course DE204).

Topics covered

  • Symptoms of a bad design
  • How dependencies impede maintenance, reduce extensibilty, prevent re-use and limit testability
  • The key to the problem: managing dependencies
  • Advanced object-oriented design: the single responsibility, open/closed, Liskov substitution, dependency inversion and interface segregation principles
  • Advanced package design: the reuse/release, common reuse, common closure, acyclic dependencies, stable dependencies and stable abstractions principles
  • The use and importance of factories, registries, service locators and embedded containers for Web pages, database connections and logging
  • Examples and case studies

DE127 - 1 day

REGULAR FEE: $445

DISCOUNTED FEE: $375

MONTREAL: November 12 (French)

SOFTWARE TESTING METHODS AND TOOLS

Objective
To provide the knowledge and skills required to choose from the available software testing methods and tools in order to establish an effective software testing and validation strategy.

Target audience
Analysts, designers, software developers, quality assurance professionals and project managers.

Prerequisites
Experience in developing systems.

Topics covered

  • Definitions of testing concepts
  • Software testing as part of the software development process and lifecycle
  • Unit, integration, system, acceptance and regression testing
  • Black box, white box, grey box formal and informal testing techniques
  • Heuristic and exploratory testing
  • Test management: V&V, bug classification, tracking and triage
  • Test planning, metrics, scheduling, coordinating with development
  • Test automation and coverage
  • Test case design
  • Testing and validation of Web and e-commerce applications
  • Ensuring successful projects: choosing tools, evaluating effort and testing costs

Note: The course is given in English, with course material in French.

DE308 - 3 days

REGULAR FEE: $1265

DISCOUNTED FEE: $1125

MONTREAL: December 8-10 (French)

JUST IN TIME: SOFTWARE TESTING METHODS

Objective
To provide the knowledge and skills required to manage and track the evolution of software test plans in a chaotic environment.

Target audience
Analysts, designers, software developers, quality assurance professionals and project managers.

Prerequisites
Experience developing systems.

Topics covered

  • Definition of concepts related to testing
  • Techniques for planning and organizing tests: Just In Time
  • Testing ideas: sources, data acquisition, the life cycle of a testing idea, etc.
  • Triage and testing: roles and responsibilities, triage concerns, triage throughout the project lifecycle, implementing triage and adapting to context
  • Deciding how to focus testing
  • Exploratory tests: definitions, balancing acts, session based exploratory testing, examples of process implementations, accountability
  • Adapting to context

Note: The course is given in English, with course material in English.

DE322 - 2 days

REGULAR FEE: $945

DISCOUNTED FEE: $795

MONTREAL: December 11-12 (French)

AGILE METHODOLOGY: DEVELOPING AND AUTOMATING UNIT TESTS

Objective
To provide the knowledge and skills required to implement a test-driven development methodology and to automate unit and integration tests.

Target audience
Software developers.

Prerequisites
Practical experience with one of the following programming languages: C++ (Course MN202), C# (Course MN201 or Course MN203), VB.NET (Course MN204) or Java (Course DE204).

Topics covered

  • Introduction to Agile Test-Driven Development (TDD)
  • Using test frameworks for object-oriented languages: NUnit (VB.NET, C#, and J#), JUnit (Java), CUnit (C++), DUnit (Delphi) and Fit (integration tests)
  • Presentation of a proven approach for unit tests: when, what, and how to test
  • Organization, construction, initiation and scheduling of test cases and test suites
  • Implementation of a unit test context via decoupling techniques based on interfaces and abstract classes
  • Test Patterns: phases, double, mock, stubs and organization
  • Presentation of best practices in writing unit tests and unit integration: fine granularity analysis, minimization of bugs, non-regression of code, improved robustness of applications and efficient documentation

DE316 - 2 days

REGULAR FEE: $845

DISCOUNTED FEE: $695

MONTREAL: November 24-25 (French)

DEVELOPING EMBEDDED APPLICATIONS WITH C AND B#

NEW COURSE

Objective
To provide the knowledge and skills required to use the best design and development techniques to create small footprint embedded systems using the C and B# languages, by means of exercises and demonstrations encouraging the execution of tests on both the host and target systems.

Target audience
Embedded application designers, developers and project managers.

Prerequisites
Practical experience with the C language.

Topics covered

  • Constraints of embedded applications, and limitations of current technical solutions for 8 to 32 bit microprocessors (Renesas, Arm, Freescale, Microchip, etc.)
  • First steps: installation of the B# development tools, embedded software components, polling- and interruption-based processing
  • B# language basics: a small object-oriented language (syntax like that of C) for writing device drivers and service interrupt routines
  • Resource models: processor, memory, interrupts, peripherals
  • Component creation and language abstractions: from C to B#
  • Developing concrete and abstract data structures in C
  • Overview of data types in C, and classes and objects in B#
  • The C procedural model: operators, expressions, statements
  • Object-based models: encapsulation, classes, objects, visibility and namespaces
  • The object-oriented model: inheritance, aggregation, abstract classes and interfaces
  • The framework object for peripherals (LED, LCD, I2C, CAN, A/D, D/A, UART, USB, etc.), and support for multitasking applications

Note: each participant will receive a BDK (BSharp Development Kit) which includes the compiler, the virtual machine and the B# reference manual. More details at www.BSharpLanguage.org.

DE210 - 2 days

REGULAR FEE: $845

DISCOUNTED FEE: $695

MONTREAL: November 13-14 (French)  /  January 12-13 (French)