Professional Documents
Culture Documents
Lect - 1 Introduction
Lect - 1 Introduction
Lect - 1 Introduction
Business Human
Strategy Dynamics
Introduction Cont.
• Architecture is a general term to describe buildings and other
physical structures
• Building in our case is a system or a software
• Three important things in architecture are:
• Durability: should last for a long time
• Utility: should be useful for the people
• Beauty: should look good and rise the users sprits
Introduction Cont.
What is architecture and what is not?
• Architectures are not concerned with the creation of building
technologies and materials.
• Not better glass quality or strong concrete
• Architectures are concerned with how building materials can be put
together in durable, most useable and most aesthetically appealing
way
• The high level design process that indicates the system’s
components, their connections and interactions in a useful, pleasing
and cost-effective way is called architecture.
Introduction Cont.
Software Architecture vs Design
• We can separate Software Architecture and Design into two distinct phases: Software
Architecture and Software Design.
Architecture:
8
Taking Decisions
Design
problem
Problem
space
sub-problem sub-problem
(or issue) (or issue)
Decision
Design
space
Design Design Design
Option A Option B Option A Option B
Decision =
Decision =
best option
Alternative Alternative best option
solutions solutions
9
Decision space
The space of possible designs that can be achieved by choosing
different sets of alternatives.
fat-client
Programmed in Java
client in a
separate
client user interface
style layer
client-server
thin-client Programmed in Visual Basic
Programmed in C++
no separate
monolithic user interface Python
layer
10
Tree Decision Space?
• Issues and options are not independent ...
fat-client client in a
separate
client-server user interface
client layer
style
thin-client
no separate
monolithic user interface
layer
11
More than just IT
12
Types of Decisions
• Implicit, undocumented
• Unaware, tacit, of course knowledge
• Explicit, undocumented
• Vaporizes over time
• Explicit, explicitly undocumented
• Tactical, personal reasons
• Explicit, documented
• Preferred, exceptional situation
13
Why is Documenting Design Decisions Important?
14
Uses of Design Decisions
• Identify key decisions for a stakeholder
• Make the key decisions quickly available. E.g.,
introducing new people and make them up2date.
• ..., Get a rationale, Validate decisions against
requirements
• Evaluate impact
• If we want to change an element, what are the
elements impacted (decisions, design, issues)?
• ..., Cleanup the architecture, identify important
architectural drivers
15
Elements of a Design Decision
16
Introduction
Cont.
Software Design
• Software design provides a design plan that describes the elements of
a system, how they fit, and work together to fulfill the requirement of
the system
• The objectives of having a design plan are as follows
• To negotiate system requirements, and to set expectations
with customers, marketing, and management personnel
• Act as a blueprint during the development process
• Guide the implementation tasks, including detailed design,
coding, integration, and testing
Introduction Cont.
Where to Place Software Architectural Design in the Systems Development Life Cycle
• Domain analysis, requirements analysis, and risk analysis comes before architecture design
phase,
• The detailed design, coding, integration, and testing phases come after it
Hardware
Requirement Architecture
Domain Analysis Desired Quality Software Architecture Hardware
Requirements Analysis
Design Architecture Design
Risk Analysis
Modification
Modification to To h/w arch.
requirements
Implementation Constraints
Detailed Design
Introduction Cont.
Goals of Architecture
• The primary goal of the architecture is to identify requirements that affect the structure of the
application
• A well-laid architecture reduces the business risks associated with building a technical solution and
builds a bridge between business and technical requirements
• Some of the other goals are as follows :
• Expose the structure of the system, but hide its implementation details
• Realize all the use-cases and scenarios
• Try to address the requirements of various stakeholders
• Handle both functional and quality requirements.
• Reduce the goal of ownership and improve the organization’s market position
• Improve quality and functionality offered by the system
• Improve external confidence in either the organization or system
Introduction Cont.
Limitations of Software Architecture
• Software architecture is still an emerging discipline within software engineering.
• It has the following limitations:
• Lack of tools and standardized ways to represent architecture.
• Lack of analysis methods to predict whether architecture will result in an implementation
that meets the requirements.
• Lack of awareness of the importance of architectural design to software development.
• Lack of understanding of the role of software architect and poor communication among
stakeholders.
• Lack of understanding of the design process, design experience and evaluation of design.
Introduction Cont.
Role of Software Architect
• Software Architect provides a solution that the technical team can create and design for the entire
application
• A software architect should have expertise in the following areas:
• Design Expertise: diverse methods and approaches of software design
• Domain Expertise: system being developed and facilitate requirements
investigation and definition of domain model
• Technology Expertise: Available technology for Implementation and coordinate
their selection
• Methodological Expertise: SDLC and appropriate development approach
• Deliverables of the Architect: deliver clear, complete, consistent, and achievable
set of functional goals to the organization
• Hidden Role of Software Architect: bridge the team members(trust) and protect
from external distracting situation, which has less value to the project
The Role of the Architect
requirements solutions
client,
architect developers
users
visualises prescribes
Design Qualities Maintainability Ability of the system to undergo changes with a degree of ease.
Reusability Defines the capability for components and subsystems to be suitable for use in other
applications.
Interoperability Ability of a system or different systems to operate successfully by communicating and
exchanging information with other external systems written and run by external parties.
Manageability Defines how easy it is for system administrators to manage the application.
Reliability Ability of a system to remain operational over time.
Scalability Ability of a system to either handle the load increase without impacting the performance of
the system or the ability to be readily enlarged.
Run-time Qualities
Security Capability of a system to prevent malicious or accidental actions outside of the designed
usages.
Performance Indication of the responsiveness of a system to execute any action within a given time interval.
Availability Defines the proportion of time that the system is functional and working. It can be measured
as a percentage of the total system downtime over a predefined period.
Supportability Ability of the system to provide information helpful for identifying and resolving issues when it
fails to work correctly.
System Qualities
Testability Measure of how easy it is to create test criteria for the system and its components.
User Qualities Usability Defines how well the application meets the requirements of the user and consumer by being
intuitive.
Architecture Quality Correctness Accountability for satisfying all the requirements of the system.
Portability Ability of the system to run under different computing environment.
Non-runtime Quality Integrality Ability to make separately developed components of the system work correctly together.
Modifiability Ease with which each software system can accommodate changes to its software.
Business quality attributes Cost and schedule Cost of the system with respect to time to market, expected project lifetime & utilization of
legacy.
Marketability Use of system with respect to market competition.
IEEE Model for Architectural
Descriptions
Mission
Architecture
Stakeholder Description Rationale
Library
Viewpoint Model
26
Some terms (from IEEE standard)
• System Stakeholder: an individual, team, or organization (or
classes hereof) with interests in, or concerns relative to, a
system.
27
Stakeholders
• Architect
• Requirements Engineer
• Designer (also of other systems)
• Implementer
• Tester, integrator
• Maintainer
• Manager
• Quality assurance people
28
Viewpoint Specification
• Viewpoint name
• Stakeholders addressed
• Concerns addressed
• Language, modeling techniques
29
Kruchten’s 4+1 View Model
End-user Programmers
Functionality Software management
Implementation
Logical Viewpoint
Viewpoint
Scenarios
Process Deployment
Viewpoint Viewpoint
30
4 + 1: Logical Viewpoint
31
4 + 1: Process Viewpoint
32
4 + 1: Deployment Viewpoint
33
4 + 1: Implementation Viewpoint
34
4 + 1: Scenario Viewpoint (the one the in 4 +
1)
• The scenario viewpoint consists of a small subset of important
scenarios (e.g., use cases) to show that the elements of the
four viewpoints work together seamlessly.
35
Architectural views from Bass et al (view = representation of a
structure)
• Module views
• Module is unit of implementation
• Decomposition, uses, layered, class
• Allocation views
• Relationship between software elements and environment
• Work assignment, deployment, implementation
36
Module views
• Decomposition: units are related by “is a
submodule of”, larger modules are composed of
smaller ones
• Uses: relation is “uses” (calls, passes information
to, etc). Important for modifiability
• Layered is special case of uses, layer n can only use
modules from layers <n
• Class: generalization, relation “inherits from”
37
Component and connector views
38
Allocation Views
• Deployment: how software is assigned to
hardware elements
• Implementation: how software is mapped onto file
structures
• Work assignment: who is doing what
39
How to Decide on Which Viewpoints
40
• End of Chapter One…
42