Designing Workshop

Objective

This 3-day workshop will familiarize the participants with semantics of system and system design. This workshop will try to explain various design principles and concepts using unique real world examples which clearly communicates the design solution along with the constraints. The workshop aims to address the need behind every concept in terms of non functional constraints.

Course Contents

DAY 1
  • Different perspectives of Systems.
  • Understanding System from User and Behavioral Perspective.
  • Understanding fundamental principles and characteristics of any complex software system.
  • Understanding the engineering reasons behind the very important design principle - System as a black box.
  • Understanding Technical and Non Technical Systems.
  • Understanding the importance of non technical systems to system design.
  • Understanding engineering way of evaluating system designs.
  • Understanding a fundamental architectural style which is the basic property of any well designed system across different streams of engineering.
  • Understanding Usability its importance to system design and engineering techniques to manage the same.
  • Understanding Performance its importance to system design and engineering techniques to manage the same.
  • Understanding Flexibility its importance to system design and engineering techniques to manage the same.
  • Understanding Security its importance to system design and engineering techniques to manage the same.
  • Understanding analysis and different techniques to analyze complex systems.
  • Understanding designing and different techniques to design a system.
  • Understanding Associations and its significance to system design.
  • Understanding Encapsulation and its significance to system design.
  • Understanding the rules of encapsulation violation and the best practices to manage the same.
  • Understanding Polymorphism and its significance to system design.
  • Understanding the Controlled Vs Un Controlled Polymorphism.
  • Understanding Interfaces and its significance to system design.
  • Understanding Abstract Classes and its significance to system design.
  • Understanding the very important concept of Controlled Vs Un Controlled Flexibility.
  • Understanding Parent Child relationship along with Class Inheritance.
  • Understanding Object Composition.
  • Understanding the difference between Class Inheritance and Object Composition.
DAY 2
  • Understanding the design of the roaming communication model of mobile telephony along with different constraints and mapping the same to various problems in the software domain.
  • Understanding the semantic building blocks of location transparency based distributed communication frameworks along with associated design constraints and solutions.
  • Understanding the design concept of lazy loading in Component Container Architecture along with different constraints and mapping the same to other software applications.
  • Understanding the design concept of "Implicit access control" using Internet Security as an example along with different constraints and mapping the same to other software applications.
  • Understanding the design concept of "Implicit trust " as a tool to handle encapsulation violation using Iterators as an example along with different constraints and solutions.
  • Understanding the design of "UI Development Frameworks" using examples like AJAX, FLEX etc along with different constraints and mapping the same to other commercial UI Development Frameworks.
  • Designing the win zip application (Case)
  • Understanding the concepts and best practices related to the designing of the controlling infrastructure of any software system.
  • Understanding the design of "Brokers" using Object Request Brokers and Message Brokers as examples and mapping the same to other software systems.
  • Understanding different patterns in business to successfully understand .
  • Understanding the design of discussion forums along with different constraints and solutions and mapping the same to various problems in the software domain.
  • Understanding the design of Event handling mechanisms in various languages and frameworks along with constraints and solutions.
  • Understanding the design of Naming Servers and Domain Name Servers and Location Registers in handling location transparency along with constraints and solutions.
  • Understanding the design of Exception handling mechanisms in various languages and frameworks along with constraints and solutions.
DAY 3
  • Understanding the design concept of "Explicit Trust" as a tool to handle encapsulation violation using Training Programs and Browser Designs as examples along with different constraints and solutions.
  • Understanding the design concept of "Explicit Trust" as a tool to handle encapsulation violation using Training Programs and Browser Designs as examples along with different constraints and solutions.
  • Understanding the design concept of "Implicit/Transparent Automation". Understanding the science behind magic in software systems.
  • Understanding the design principles used to implement changes evasively and invasively.
  • Understanding the design principles and concepts governing integration of heterogeneous systems at different levels of granularity.
  • Understanding the design principles and patterns governing frameworks like J2EE and .NET.
  • Understand the design principles and patterns governing the Component Container Architecture model.
  • Understanding the design principles and patterns governing the "Struts Framework".
  • Designing a wizard based UI software system to ensure common look and feel for different type of output devices.
  • Case study - Designing a UI based software system for product portability.
  • Case Study - Participants will be given a real life system to be designed and they will have to come out with the architecture of the system, highlighting the use of different design best practices to solve the respective problems.

Duration: 3 days

Venue: Domestic / International

Program Target Beneficiaries

  • Software Engineers
  • Analysts
  • Architects
  • Project / Corporate / Technical Managers

Program Prerequisites

The audience should have at least 2-3 years of experience wrt development, design and management of software systems.

 
Hemant Jha
Founder - VPlanSolutions
Researcher, Trainer

www.VPlanSolutions.co.in