Architecture and Design

  • Architecture and Design are also called as work product.
    • They consists of one or more ‘informal diagrams’ together with supporting text describing the major related concepts.
  • Architectural and Design involves inputs, processes, and outputs
    • Inputs
      • Requirements
        • What is to be solved
      • Qualities
        • How “good” is it?
      • Assets
        • What is available
    • Outputs
      • Architecture
      • Viability
  • Architecture and design both focus on the content and the context of the target system, ensuring that it does the right things and does things the right way.
    • Architecture: Nodes and components = “black boxes”
    • Design: Nodes and components = “white boxes”
  • The architecture of a system describes the structure and behavior of its parts.
    • An Architect defines the models and guidance needed to model IT or business systems to meet the business intent.
    • When the system meets its specific requirements is called design.
    • When it is designed in the right way is referred to as its architecture.
  • The parts of an IT system are its software and hardware elements, interacting with the IT system’s human and IT system users
  • This simple framework can be extended, enabling us to see a repeating pattern across the scales which includes followings processes
    • Requirements
    • Architecture
    • Design
  • Architecture can be at any scale, and the scale is defined by the characteristic dimension of the architecture’s elements.
    • It defines the structure and behavior of the elements of a system.
      • The elements of an amplifier are its tuner,cables, and remote controls. It can also include the power supply, and the circuit board.
      • The elements of a circuit board are its resistors, fuses, and integrated circuits.
      • The elements of an integrated circuit are transistors and other components.
    • Based on the scale we can determine
      • Above that scale are the ‘requirements’ of the world in which the system sits.
      • At that scale is the ‘architecture’ between the elements of the system.
      • Below that scale is the ‘design’ of the insides of the elements of the system.
    • IT system’s requirements are modelled as interactions with actors and other upstream and downstream systems.
    • IT system’s architecture’s elements are components and nodes, and so on.
    • IT system’s design model includes the insides of components, nodes, messages, and connections.
  • Architecture helps us to validate the accuracy of our system
    • Architecture is documented under architecture guidance that helps ensure our system is a good system.
    • Architecture guidance includes:
      • Reuse the work as much as possible. 
      • Tried and tested parts
      • Tried and tested structures of parts (reference architectures)
      • Principles and patterns that help ensure the architecture is created in a good way
  • Architecture can be defined as artefact where the architecture of a system describes its overall static structure and dynamic behavior. 
    • It models the system’s elements, the externally manifested properties of those elements, and the static and dynamic relationships among them.
    • The artifacts present models of the target IT system.
    • They can be driven by models of the broader business system, of which this target IT system is a part.
    • The target IT system must meet the specific business requirements placed on it.
      • They can be guided by artifacts documenting architectural principles, patterns, and building blocks.
      • The target IT system must meet the wider architectural requirements placed on it.
    • It is also used by Enterprise Architects at the enterprise scale as they plan transition initiatives which may be elaborated by the IT Architect.
  • Architecture when defined as a discipline
    • Architecture is an engineering discipline that studies methods of designing IT systems that provide a solution of a business problem. The solution must satisfy functional and non-functional requirements in a way that best balances competing stakeholders concerns and must take constraints into account.
  • Difference between architecture and design
    • Architecture is creating a structure.
    • Design is detailing the content.
  • Methods of software delivery
    • SPM for AI
    • JavaAD for Java app development
  • Methods define the approach we used to deliver a work product.
    • Define how our deliverables meet with clients requirements and what work products we need to create.
  • Role of architecture
    • Acts as a solution blueprint that can be reviewed and validated.
    • Communication tool for stakeholders and teams for future reference for maintenance and change, developing related systems and integration.
    • Delivery Environments: Input into the delivery environments’ design and specification, tools and platforms of choice for solution.
    • Delivery Planning: Starting point for developing the project plan (Waterfall delivery), solution and feature backlog (Agile delivery),resource requirements and team structure
    • Estimates: Starting point for cost estimation.
    • Enable parallel development by understanding how inter-component dependencies can and should be managed
    • Foundation for commercial agreements.
    • Foundation for Declaration of Understanding and segregation of responsibilities between various parties.
    • To communicate to the sponsor and external stakeholders a conceptual understanding of the intended IT system.
    • To provide a high-level shared vision of the architecture and scope of the proposed IT system for the development teams
    • To explore and evaluate alternative architectural options
    • To enable early recognition and validation of the implications of the architectural approach
    • To facilitate orientation for new people who join the project
  • For example an Architecture diagram for a system onboarding suppliers can be as follows.
  • Need of Architecture
    • Both Functional capabilities and Non-functional requirements and Service Levels may be contractually binding.
    • Failure to achieve targets may result in financial penalties for the IT provider, and/or a loss of business for the client
    • If an architecture that meets the specified requirements cannot be established it is a red flag.
      • The sooner this is known the better for all the stakeholders
    • The effort expended should always be proportionate to the risk and return involved.
    • Without a developed architecture, it is rare that all significant risks are known and well understood
    • Lack of architecture means that there is no basis for solution cost and delivery time estimates.
  • Aspects of IT Architecture
    • Functional
    • Operational
    • Build Time
    • Run Time
  • A problem's architecture can be divided into a number of dimensions
    • Functional aspect and Operational aspect
    • Application level and Technical level
    • Physical perspective and  Logical perspective
      • Physical Architecture defines the infrastructure part.
      • For Example type of systems.
  • Role of Architect
    • An Architect defines the structures of solutions and architectures to address client business problems.
    • The Architect understands client needs and business constraints, works in levels of abstraction, applies industry knowledge, and leverages appropriate business elements and information technology to address those needs.
    • The solutions are include business, enterprise, or IT architectures and can include systems, applications, and process components.
    • They may involve the application and its integration of a broad variety of products, technologies and services, and various architectural styles and Domains.
    • Basically work of an Architect can be defined into following areas
      • Listening to clients
      • Understanding business requirements
      • Negotiating feasible requirements and scope
      • Forming detailed definitions of solution structures
      • Construction
      • Guiding team
  • Architect supports two distinct dimensions
    • Enterprise Architecture (EA) and Solution Architecture (SA)
      • Business Architects “do” Business Analysis at both EA and SA levels
      • IT Architects “do” IT Analysis Mostly at the SA level
    • Business Architecture (BA) and IT Architecture(ITA)
      • Enterprise Architects “do” Enterprise Analysis across both BA and ITA.
        • They often own guidance at the SA level
      • Solution Architect create solutions to business problems within IT Architecture
  • Architects and Technical Specialists
    • Architects:
      • Define solutions to client business problems.
      • Results include systems, applications, and process components.
      • Focus on the front end of the solution life cycle. 
      • They act as an client consultant.
    • Technical Specialists:
      • Develop proof of concept, design, develop, build, test, and implement systems.
      • Have depth understanding of products, offerings, and services within their Specialty.
  • Architecture Process has basically 3 phases
    • Rquirements
      • Functional Requirements
      • Non-Functional Requirements
    • Solution
    • Validation and Verification
      • Validation is more of Functional Tests
        • Unit
        • System
        • System Integration
        • User Acceptance
      • Verification is more of Non Functional Tests
        • Stress and Volume
        • Failover and Recovery
        • Disaster Recovery
        • Security and Penetration
  • The four basic types of requirements 
    • Functional Requirements (FRs)
      • Answers the question of "what" the solution’s sponsor needs
      • Tend to be "descriptive" or "qualitative“
      • Are capabilities needed by users of the IT solution to fulfill their job
      • These are documents the agreed business functions and IT systems will support.
      • Functional requirements describe what the system will do from a number of perspectives based on architectural implications.
      • Sources of Functional requirements can be as follows
        • Customer Wants & Needs
        • Business Process Model
        • Use Case Model
          • The Use Case Model is a way of grouping all the use cases in scope for a particular solution (or solution domain for large solutions) and presenting them as a single model (or a reasonably small number of models).
          • A Use Case Model can be seen as a summary of the Use Cases in scope.
          • A Use Case consist of main scenario together with one or more alternative.
            • Main Scenario
              • The system request the suppliers detail.
              • The user supplies, the address and phone number of the supplier along with its due diligence information.
              • The system, validates address and phone number.
              • The use case ends successfully.
            • Alternative
              • Non unique supplier name.
              • Postal code should match Country.
              • The user select Country from list.
              • Country code in phone number should match the Country selected.
              • The use case ends successfully.
        • Use Case Specification
          • Use cases expand the requirements by describing interactions and behavioural details.
          • They are different from the user stories which capture high-level requirements from the user point of view.
        • Business Rules
        • Epics and User Stories
        • Users
        • Business Roles and Locations
        • System requirements.
      • Business processes are a way of documenting functional requirements without concern for automation
      • Business process modeling, system context, and use case modeling help to bridge between business architecture and IT architecture.
      • Functional requirements in agile methodologies are typically defined in terms of Epics, User Stories, and Themes.
        • Epics represent large, complex requirements that usually need to be brokenn down into smaller stories before development.
        • User stories are short descriptions of system requirements from the perspective of a user or stakeholder.
        • Themes are groups of related user stories that are organized together for prioritization and planning purposes.
    • Non-Functional Requirements (NFRs)
      • Define the expectations and characteristics that the IT system should support
      • Might be runtime (performance or availability) or non-runtime (scalability or maintainability)
      • Tend to be “prescriptive" or "quantitative"
      • Documents the agreed service levels for the IT system.
      • Non-Functional Requirements define “how good” the solution should be.
      • Non-functional requirements, define how good expectations and characteristics of the target system.
        • They can be of value to the user of the system, which are called as runtime non-functional requirements.
          • Can be empirically tested.
          • Studied as systems service level characteristics.
          • Also known as observable qualities.
        • They can be of value to the operator of the system which are called as non-runtime non-functional requirements.
          • Cannot be measured easily and may rely on other project metrics.
          • Also known as non-observable or development time NFR's.
      • The “adjectives” that can be applied to the “nouns and verbs” that describe the system’s functional requirements
      • How secure, how fast, how many users…
      • How portable, how scalable, how safe…
      • Non-functional requirements are often thought to apply only to the operational viewpoint.
      • Designing a solution to meet a number of NFR involves resolving a number of opposing forces.
      • Designing a Solution to meet a number of non-functional requirements involves resolving a number of opposing forces. Resolution of two or more opposing forces from below results in a solution to a problem.
        • Functional requirements
        • User/Runtime non-functional requirements.
          • Performance (of the system as it operates currently)
            • Does the system respond fast enough to user actions
            • Can the system support suitable numbers of concurrent users
            • Can the system support enough transactional throughput
            • The degree to which a system or component accomplishes its designated functions within given constraints, such as speed, accuracy, or memory usage.
          • Volumetrics
            • Is the system capable servicing expected number of users
            • Is the system capable of storing/ processing expected volumes of data.
            • Volumetrics for the data entities that exist within the target system that, although relatively static, are likely to have a significant impact on the overall sizing of the target system.
              • Impact may be static example number of suppliers,their bank accounts, due diligence data etc.
              • dynamic like throughput, response time.
          • Security
            • Can the system identify and prevent unauthorized access?
            • Authentication, Authorisation, Confidentiality, Integrity, Non-repudiation of origin, delivery.
              • Authentication is Validation that the party is who they claim they are.
              • Authorization is Validation of rights a user (or process) has to access information or to perform actions on resources
              • Integrity is Quality that ensures the immutability of data
              • Confidentiality is Protecting data from disclosure to unauthorized parties
              • Non-repudiation is Strong evidence of authenticity of the sender and Strong evidence of delivery of message to the receiving party.
            • The ability to protect an IT system against malicious use while at the same time allowing legitimate use
            • Security is sometimes referred to as:
              • Safety
                • To reduce or eliminate danger, anxiety, and risk or liability
              • Protection
                • To defend against attacks and fraud
              • Assurance
                • To ensure correct and reliable operation; to enforce identity and ownership
          • Usability
            • Can visually or hearing impaired people use our system
            • Do the system’s user interfaces measure up to best practice usability benchmarks
            • Guaranteed delivery (e.g. of transactions), idempotence.
          • Availability
            • What is the maximum length of unscheduled outage the business can tolerate
            • A measure of readiness for usage, whenever, and for whatever purpose
            • Systems may be unavailable.
              • At scheduled times, whether this is for maintenance, backup, or business reasons
              • At unscheduled times, when something breaks
            • Systems should support
              • High availability
                • 95%, 99% etc
              • Continuous operations
              • Continuous availability
          • Manageability
            • How straightforward the system is to maintain, whether this is tob ensure appropriate levels of functional or nonfunctional requirement
          • Scheduling and Temporal
            • Time constraints imposed by business process.
            • Schedule of events which drive processing.
          • Monitoring and Instrumentation
            • Requirements for special facilities, functions, tools which are necessary to operate and manage the system.
          • Logging and timestamping
            • What will be logged, and what will drive the timestamps to enable effective use of logs
        • Non-runtime non-functional requirements.
          • Can it scale?
            • How easily the system can be expanded to accommodate growth in the future.
            • A system’s ability to increase/decrease in size according to changing workloads, such as an increase in user numbers.
            • Vertical scaling (“scaling up”) is Adding additional resources into the machine:
              • Adding more memory
              • Using more or faster process
            • Horizontal scaling (“scaling out”)
              • Spreading the load across more machines
              • May require a “load balancer” or “redirector” to distribute requests between the computers.
          • Is it compliant?
            • Whether it conforms to the regulatory environment, e.g. privacy, SOX, Anti Money laundering, anti Terrorism Financing laws, international Sanctions
          • Can it be maintained?
            • The ease with which the system can be changed, whether for bug fixes or to add new functionality
          • Can it be managed?
            • The ease with which the system can be reused, deployed, and tested, started up, and shut down
          • Is it environmentally sound?
            • Whether the system will harm users, including physical harm, as in medical systems, or financial harm, as in accounting systems, or other forms of harm
            • How well the system utilizes resources, and its effect on the environment
          • Is it portable?
            • Moving the application to other operating systems, application containers, or different hardware.
          • Is it reliable?
            • The probability that a component will fail, and the nature of that failure.
            • It should pass resileance testing,Chaos Testing,Cow space testing.
          • Compliance and auditability 
            • Data that needs to be provided for audits that may be required in support of legal actions
          • Regulatory and legal
            • System functions and/or operational parameters needed to enable statutory compliance
          • Archiving, backup and recovery
            • What is the data history kept “active” and what can be archived
            • What is the data retention period for archives?
          • Disaster Recovery
            • Recovery Point Objective (RPO), Recovery Time Objective (RTO)
          • Supportability, Maintainability
            • Requirements for special facilities, functions, tools which are necessary to operate the system, and support its users
          • Localization
            • Languages supported
          • Usability
            • Parameters defining how easy it is to use the system
          • Environmental
            • safety
        • Business constraints
        • Technical constraints
    • Constraints
      • Given those things that cannot be changed within the scope and lifetime of the project(infrastructure)
      • Factors, such as available skills, budget, and operational limitations in the enterprise architecture
      • Architectural guidelines and standard technologies.
      • Documents, the agreed constraints under which the IT system will be designed, deployed, and operated.
      • Constraints are limitations imposed upon a solution.
      • They can be imposed by the business or from within IT.
        • “It must be done this way.”
        • “It must conform to this legislation.”
        • “We only have skills in these areas.”
      • Constraints can be Imposed by the business
        • Adherence to externally imposed business legislation (for example., data protection)
        • Driven by available business capabilities (for example, end user skills)
        • Examples
          • Regulatory
            • Governmental, legislative, and other rules relating to the operation of IT systems or with which IT systems must comply
          • Organizational
            • What is the organization that the system must be deployed into, and what special requirements does this introduce?
          • Geographic
            • What geographic regions will the system operate in, and what special circumstances do they dictate?
          • Risk willingness
            • How willing is the client to take risk?
          • Marketplace factors
            • Such as competitor offerings, cost of goods or services in the domain this system operates in, and so on
          • Project
            • Time - How long can it take to design, build, and deploy the new system?
            • Resource (people and budget) - What is available for the project?
            • Scope – What functionality must be built?
      • Constraints can be Imposed from within IT
        • Use of standard parts and approaches (patterns, reference architectures)
        • Reuse of existing upstream/downstream systems.
        • Examples
          • Development skills
            • What skills are available for the development and support of the new system, in both the client and delivery organizations?
          • Existing infrastructure
            • Is there any existing infrastructure (both hardware and software) that must form part of the new solution?
          • Technology leadership
            • What new technology should or should not be considered?
          • IT architectural standards
            • Principles, building blocks, patterns, and reference models that will apply to the new system.
          • Implementation constraints
            • Code development constraints such as:
              • Implementation languages
              • Policies for database integrity
              • Resource limits
              • Operation environment'
              • Library/SDK License issues.
      • Imposed by the project context
        • Be the project manager’s best friend
        • How long will it take?
        • How much will it cost?
    • Future Requirements
      • Describe how the system might change in the future, whether these are functional or nonfunctional enhancements.
      • Identify potential/significant future requirements of all types, based on both business and technology opportunities that might impact architecture.
      • Change cases
        • Describe how the system might change in the future, whether these are functional or non-functional enhancements.
      • Future changes that might affect the architecture include
        • New and modified business processes and goals
        • Adaptation of the system to new technologies
        • Changes in the profiles of the average user
        • Changes in the integration needs with other systems
  • The wider project environment the rich is the source of requirements and constraints.
    • External Environment
      • Laws and regulations
      • Legal liabilities
      • Social responsibilities
      • Technology base
      • Labor pool
      • Competing products
      • Standards and specifications 
      • Public culture
    • Enterprise Environment
      • Policies and procedures
      • Parent corporation issues
      • Legacy systems
      • Enterprise architecture
      • Standards and specifications
      • Local culture
      • Guidelines
      • Domain technology
    • Project Environment
      • Directives and procedures
      • Plans
      • Tools
      • Metrics
    • Enterprise Support
      • Resource management
      • Project reporting
      • Brand support
      • Training
      • Infrastructure
  • A solution architecture will have many stakeholders who are potential sources of requirement specification.
    • A stakeholder in a solution architecture is someone with interest in or concerns about the realization of the architecture.
    • Users needs and technology change as time passes
    • As the system evolves, requirements become clearer
    • External changes to the environment make requirements obsolete of create new requirements
    • Change might be needed to manage require conflicts between different stakeholders
  • Requirement Sources
    • An Enterprise Architecture defines a set of governing principles, patterns, standard building blocks (ABBs), and reference architectures, together with architecture compliance processes.
      • It provides the long-term strategic IT objectives that an IT solution should support
      • The principles and standards with which the solution must comply
      • Appropriate reference architectures to be followed
      • Governance structure for review and approval
    • Business cases influence architectural decisions.'
      • Investment drivers will affect choice of technology.
      • Key required features such as a “single customer view” to provide better customer service will affect data placement, legacy access, etc.
      • Ongoing support costs, such as a single point of contact for support, have an impact on system management capabilities and so on.
    • Project context is the set of objectives and assumptions used to frame the solution.It defines following areas
      • What are the business objectives the project is supposed to meet?
      • What are the baseline technology assumptions?
      • What are the relationships (dependencies) with other ongoing or planned projects
      • Assumptions implied or stated in the proposal or Statement of Work (SOW):
        • In-scope application functionality
        • Service level agreements
        • Customer infrastructure assumptions
        • Product or vendor assumptions
        • Development environment assumptions
  • Requirements Organization
    • Requirements are then organized into functional requirements, non-functional requirements, constraints, future requirements as discussed above.
    • Requirements are dynamic and require careful management throughout a project’s life cycle
    • Requirement organisation includes following objectives
      • Understand the source of requirements.
      • Manage the scope of the project and establish requirements baseline.
      • Verify that all requirements of the system are fulfilled by the implementation and that the application does only what it was intended to do.
      • Balance, competing requirements prioritization and conflicts
      • Manage changes to requirements and SSB project impact of a change in our requirement.
      • Assess impact of a failure of a test on requirements.
    • Requirements must be organised and managed and to end throughout the project life-cycle.
    • Requirements must be prioritized in order to deliver the appropriate project scope.
      • High: Essential Many requirements depend on this one, or it is considered of high value to many stakeholders. We should delay release if not ready.
      • Medium High: Important to the effectiveness and efficiency of the system. Lack of inclusion may affect customer or user satisfaction, but release will not be delayed due to lack of this item.
      • Medium Low: Impact is to lesser used parts of the system, but those parts will be significantly hampered.
      • Low: Useful in less typical applications, will be used less frequently, or reasonably efficient workarounds can be achieved. 
  • An architecture helps us to define requirements in following aspects
    • Usability requirements
    • Network requirements
    • IT management requirements
    • Functional and operational aspects which involve system context
    • Use case models which involve change cases.
    • Non-functional requirements which involves constraints.
    • Security and privacy requirements.
    • Future organisation, scope and requirements.
    • Requirements matrix
    • Requirements tracebility matrix.
  • Requirements can classified into
    • User stories
    • Prototype
    • Business event list
    • Customer wants and needs
    • Process definition
    • Subject area model
    • Stakeholder request
  • Requirement gathering helps us to understand the project overall context.
    • Business direction
    • Project definition
    • Business case
    • Decision model
    • Technical environment
    • Standards
    • Current organisation description.
  • SMART Requirements
    • Specific
      • Unambiguous, consistent, and at the appropriate level of detail.
    • Measurable
      • Possible to verify that a requirement has been met, so include success criteria
    • Attainable
      • Technically feasible and within the art of the possible
    • Realizable
      • Realistic given all the constraints (e.g., resources, skills, time, infrastructure)
    • Traceable
      • Linked from conception through specification, design, implementation, and test
    • A requirement must form a complete sentence
    • Avoid using abbreviations unless they are defined.
    • Make consistent use of one of the following verbs:
      • Shall, will, or must to show mandatory requirements
      • Should or might to show optional requirements
      • Could or would to show desirable requirements
    • They must contain the success criteria and be measurable and testable.
    • Must contain a unique reference ID
    • It should refer to supporting material and not duplicate information.
    • Avoid:
      • Ambiguity (instead, write as clearly and explicitly as possible)
      • Wishful thinking (such as “100% reliable,” “totally safe,” and so on)
      • Rambling, long sentences with arcane language

  • Requirements MOSCOW
    • Must (so will)
    • Should (and probably will)
    • Could (but might not)
    • Would (but won’t)
  • The system context:
    • Clarifies the environment in which the system has to operate
    • Puts bounds on the system
    • Identifies external interfaces
  • The system context can be produced as a “free form” sketch in which the meaning of the relationships between the system and its external agents is ambiguous.
    • Who, or which, is interacting with the target system?
    • What are they doing?
    • How are they doing it?
  • A solution context can be based on above system context which defines solutions as follows.
  • Change Management
    • Iterative documentation, review, and sign-off of requirements
    • Well-defined and executed change management procedures
    • Sufficient emphasis on developing change cases
    • Ongoing evaluation of the application and the architecture
  • Brain storming on joint application design is a useful way to gain agreement on requirements with all stakeholders.
    • These can be of several days
    • The agenda and discussions should be structured and disciplined
    • Documents and related assets to represent the agenda during discussions should be well facilitated.
    • Results should be in requirements agreement and deliverables
      • These may include userstories, use cases, assumptions and portfolio of candidates.
    • The requirement parked for future should be well, managed.
    • The type of model on which development will be based should be clear
      • Waterfall
      • Iterative/Incremental
      • Agile
  • Principals for making Architecture Decisions
    • Descions in Architecture help in formally document the critical choices while creation of the solution.
    • Understand and agree why the solution looks the way it does.
    • Make explicit the rationale and justification of the decisions made
    • Help ensure the solution satisfies both functional and non-functional requirements.
    • Prevent unnecessary rework throughout the solution delivery life cycle.
    • Parts of Architecture decision document
      • The architectural decision: Written as a statement
      • Unique identifier: A unique code that unambiguously identifies the decision
      • Problem statement: A description of the situation over which a choice has to be made.
      • Assumptions: What is believed to be true about the context of the problem.
      • Alternatives:  List of alternatives and explanations example File transfer, Messaging.
      • Decision: The decision taken.
      • Justification: Why the decision was made
      • Implications: The consequences and impacts of the decision taken or architectural option chosen on other elements or aspects of the solution.
    • Architectural Decisions are grouped together in an Architectural Decisions Register work product.
    • Decisions and principles both represent some design constraint to which the solution must conform.
      • Decision is at the context or Solution level that is at project level.
      • Decisions are made within the context of the development of the solution’s architecture.
      • Architectural principles are imposed from outside the context of the solution architecture
        • Principles are part of enterprise level.
      • Principles are a powerful means of ensuring that all independent solutions fit together
        • Example data principles
    • The guidance framework which provides support to architectural principles has following three buckets.
      • Policy
        • An enterprise-wide statement of how things will be done.
        • Data protection, health and safety, and industry regulations
      • Principle
        • An enterprise-wide rule which an organization will use to make architectural decisions. 
        • Example build versus by principal
        • Single Sign-On versus security management principal
        • Data distribution principle

      • Guideline
        • An enterprise-wide statement of best practice, giving solution architects the opportunity to adopt consistent approaches to architectural challenges.
        • Example best practices to be followed.
        • AI guidance
        • Java coding guidance
    • Parts of a Principal can be defined as follows
      • Name
        • A short name or title to identify the principle
      • Statement
        • What the principle is
      • Motivation
        • Why the principle is the way it is
      • Implication
        • The consequences of the principle both on the enterprise.
    • Cautions while defining Principals and Decisions
      • Architectural Decisions
        • Undocumented, unclear, or ambiguous decision
        • Single alternative decision
        • Inclusion of design guidance and code snippets
        • Missing dependencies or reference between two or more related decisions
        • Decisions scattered in design documents
        • Not following a standard approval process
        • Putting too much information into one diagram
        • Putting too little information into the Architecture
        • Using too many acronyms that are not properly introduced
        • Providing more technical details than required.
      • Principles
        • Not knowing what the enterprise’s standards and principles are, when creating the solution.
        • Not discussing deviation from an architecture principle with the governance board.
        • Not following a standard approval process for proposal.
    • Some Solution Patterns
      • Value Proposition
        • Check Value Proposition.Align value to delivery schedule/capability.
      • Simplification
        • Simplify the Architecture.Simplify complex architectures and excessive infrastructure layers.
        • Breakthrough the Design Take a different view of the applications and operational designs.
        • Integrate the Facilities Integrate Service Delivery organization, reduce management overhead. Consolidate technology to make best use of the hardware, sharing services.
        • Downsize processors, change platforms or introduce different platforms. 
      • Assets
        • Utilize existing assets including architecture components, tools, processes, components and others including external assets.
        • Use existing code or legacy applications through wrappering or re-engineering rather than rewriting
        • Apply a framework or a defined rigid development processes with work-product templates or a skeleton program approaches.
      • Delivery
        • Optimize the Application Development environment
        • Optimize the Delivery Model 
        • Rationalize SW/HW License Lifecycle

No comments:

Post a Comment

Recursion

Q What do you understand by a Recursive  Programme? Recursion Is the process of repeating items in a self similar way. In programming langua...