Refresher/SDLC/Technical Design

Presentation

Technical Design    
 
 Concurrency control: pessimistic or optimistic locking
 
 
 Pessimistic locking: immediate locking upon request
 
 
 Optimistic locking: clearing at commit time
 
 
 Software design patterns: solution template for many situations
 
 
 OO design pattern: relationships and interactions between classes or objects
 
 
 Mutable: prone to frequent change
 
 
 Immutable: not subject to change Types of design patterns: creational, structural, behavioral and concurrency
 
 
 Creational design patterns: Lazy initialization, Multiton, Singleton, etc.
 
 
 Structural design patterns: Adapter, Composite, Decorator, etc.
 
 
 Behavioral design patterns: Chain of responsibility, Iterator, Memento, etc.
 
 
 Concurrency design patterns: Lock, Scheduler, Thread pool, etc.
 
 
 Iterator design patterns: Collections -- List<string>
 
 
 Stateless protocol: each request a transaction independent of previous requests
 
 
 Stateless object: no attributes, only methods, lower invocation overhead
 
 
 Multi-tier architecture: presentation, application processing, and data management are separate processes
 
 
 Business Logic Layer (BLL): business process objects and business entities
 
 
 Stateless business layer: minimal overhead for long-running transactions
 
 
 Entity Data Model (EDM) diagrams: scalar properties, navigation properties, etc.
 
 
 Sequence diagram: interaction diagram showing how processes operate with one another and in what order
 
 
 ArchiMate: an open and independent enterprise architecture modeling language
 
 
 Component-based design (CBD): a reuse approach to defining, implementing and composing loosely coupled independent components into systems
 
 
 Software component: a software package, a Web service, or a module that encapsulates a set of related functions
 
 
 Service-orientation: a design paradigm to build computer software in the form of services
 
 
 Service-oriented architecture: a set of principles and methodologies for designing and developing software in the form of interoperable services
 
 
 SOA principles: reuse, granularity, modularity, composability, componentization and interoperability
 
 
 CBD or SOA: application of OOP at a higher level, e.g. to encapsulate a service as provided by an independent vendor