"J2EE Design Patterns"
J2EE Design Patterns Course Background: In a four-tier structure this course gives a complete overview on architecting techniques for developing object-oriented applications including web-centred applications with J2EE. A sound knowledge on the UML and object modelling experience is expected. The course covers patterns as design elements to shape object-oriented architectures. Architecting can be distinguished from analysis and by the inclusion of non-functional requirements. Recurring, non-functional requirements that many software systems must satisfy are maintainability, portability, time to market, performance and scalability. One must deal specifically and concretely with these aspects during architectural design. Design patterns can play an important role here. This course will give very specific guidelines on how to use design patterns to improve object-oriented software architectures and will offer many small but practical exercises to provide some proficiency in their application. The problem of shaping a software-architecture can be tackled in three stages: Choosing a standard architecture from a set of Architectural Patterns. Shaping and realizing the architecture using Design Patterns Improving the individual architectural elements with Design Patterns. The course will deal with each of these three aspects. Important advances have been made in recent years in cataloguing patterns and building a coherent set of guidelines to apply them. This course is based on the current state of the art and provides insight in the role of patterns in architecting, provides detailed knowledge on a large number of patterns, builds some practical skills such as o recognizing applicability of patterns and properly incorporating patterns in a design. Who will benefit from this course? Architects and designers/implementers experienced in the use of object- oriented techniques Pre-requisites: Software developers and software architects working in the area of design and implementation of object oriented systems, with the following background. insight into the background of object-oriented techniques; working knowledge of Java and a basic understanding of J2EE; knowledge of syntax and semantics of the most used UML Modelling concepts; some skills in creating object models. Course Contents: This course consists of 3 blocks of one day: Part 1: Design Patterns (two and a half day) The book of Gamma et al. serves as a basis for this part of the course. Many of the design patterns that are catalogued in this book will be treated. In the book, patterns are described through the formulation of a problem and a standard solution: the actual design patterns. Through exercises the participants get some proficiency in employing this scheme in practice. Exercises consist of example designs with one or more problems. The participants must recognize each problem and select a pattern to solve it. Part 2: Architectural Patterns (one half day) This part gives an overview of the major Architectural Patterns that have currently been identified. Each architecture is described in terms of simple UML models and standard design patterns. The particular non-functional issues the architecture addresses are analyzed and explained. Examples of application of the architectures mentioned are discussed. LEARN, UNDERSTAND AND DELIVER ! Mithun Training & Consulting B.V. – Postbus 898, 3800 AW Amersfoort – T 033-457 0840 – F 033-457 0839 www.mithun.nl - email@example.com – kvk Gooi & Eemland 39082335 Part 3: The J2EE Architecture (one half day) The 4-tier application architecture is described and explained in terms of the (non-functional) requirements on J2EE applications. Core technologies of the J2EE platform, such as JSP, EJB, JDBC, and JMS are described and their role in the platform is discussed. Although participants may be familiar with some, or all, of these technology components this part of the course will position them in a consistent and complete framework relating the application and platform architectures. Part 4: J2EE Patterns (one and a half day) This part deals with issues in the design of J2EE applications as follows. First, application of design patterns in J2EE architectures is discussed. Second, a presentation is given of individual J2EE-specific design patterns. The patterns are organized by the particular architectural tier to which they may be applied. Third, examples of bad design fragments stemming form each of the tiers are discussed. The associated problems are removed by the application of patterns. Sometimes this is done in the form of an example other times in the form of an exercise. Detailed course content: Part 1: The architectural relevance of design patterns Patterns and modularity Classification of patterns Examples of patterns (from Gamma et al.) Exercises Recognizing possibilities for applying design patterns Example of combining patterns as elements of a language Exercises Patterns for real-time software (optional) Part 2: Architecture patterns (Buschmann et al.) Realizing architectures using design patterns Exercises Frameworks and patterns Part 3: J2EE architecture Realizing architectures using design patterns Exercises Frameworks and patterns Part 4: Application of design patterns of Gamma et al. in J2EE Classification of J2EE patterns J2EE design patterns Exercises Conclusions The course requires the capability to abstract from details in the source code. Participants should be able to understand the implication of changes in UML diagrams on the implementation. Regularly, but not always, example program-fragments will be shown. The course is accompanied with source code in Java as well as the executables related to the some of the small case studies. This material can be consulted for self-study but is not discussed in all detail during the lectures. Course Format: Teaching method: Lectures, practical exercises and guided discussions. Teaching material: Copies of presentations, hand-outs of exercise solutions, text of cases. Recommended book: "Design patterns: elements of reusable object oriented software" Gamma, et.al. Language: English or Dutch The course comprises about 60% theory and 40% exercises in the form of small design cases. This combination of theory and practice makes the course material directly applicable in daily practice. The book of Gamma et al. serves as a basis for this part of the course. Many of the design patterns that are catalogued in this book will be treated. In the book, patterns are described through the formulation of a problem and a standard solution: the actual design patterns. Through exercises the participants get some proficiency in employing this scheme in practice. Exercises consist of example designs with one or more problems. The participants must recognize each problem and select a pattern to solve it. LEARN, UNDERSTAND AND DELIVER ! Mithun Training & Consulting B.V. – Postbus 898, 3800 AW Amersfoort – T 033-457 0840 – F 033-457 0839 www.mithun.nl - firstname.lastname@example.org – kvk Gooi & Eemland 39082335 Additional Options: In order to further enhance the outcome of this course, please indicate any desired options when signing up for this course, or contact your account manager. There is no focus on specific tools and platforms. Additional Subjects: This course can be easily combined with other elements from the course curriculum of Mithun Training & Consultancy. Additional exercises can be added, and your own project can be even used during the course. Please contact your account manager for more information about the possibilities we can offer. Complementary Courses: The course curriculum offered by Mithun: Requirements Engineering basics Requirements Engineering Foundations RM&E Aware for Managers Interviewing Basics Applying Use Cases Writing SMART Requirements Basics How to derive detailed Requirements Workshop Requirements Engineering advanced The Risk of Words – Writing and Documenting Requirements Interviewing Techniques & Guidelines Elicitation Workshop Techniques & Guidelines Agreeing on Requirements Writing SMART Non-Functional Requirements Statements Vendor Management Writing requirements for Vendors and working with Vendors Scrum Introduction to Scrum Object Oriented Analysis & Design Preparation training for OMG UML Professional Certification Object Oriented Analysis & Design using UML 2.x Design Patterns Realizing Software Architectures with UML 2.x Specification of Component Interfaces API Design UML for Event Driven Systems Real-time & Embedded Analysis & Design Structured Analysis & Design for Real-time Systems Advanced Real-Time Analysis & Design Real-time Software Design Software Design with Real-Time Java Preparation training OCRES Intermediate Certification Quality Capability Maturity Model Integration (CMMI) for practitioners Capability Maturity Model Integration (CMMI) for managers Terms and conditions: The standard terms and conditions of Mithun Training & Consultancy are applicable. A copy will be sent on request. LEARN, UNDERSTAND AND DELIVER ! Mithun Training & Consulting B.V. – Postbus 898, 3800 AW Amersfoort – T 033-457 0840 – F 033-457 0839 www.mithun.nl - email@example.com – kvk Gooi & Eemland 39082335