Refresher/SDLC/Technical Design


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