lesson 2 Flashcards
typically refers to the bigger structures of a software
system, and it deals with how multiple software processes cooperate to carry out
their tasks.
Software Architecture
provides a design plan that describes the elements of a system, how
they fit, and work together to fulfill the requirements of the system.
Software design
It comes before the detailed design, coding, integration, and testing and after the
domain analysis, requirements analysis, and risk analysis.
Software design
Components of software architecture (5)
- Design
- Business Strategy
- Quality Attributes
- IT Environment
- Human Dynamics
provides a solution that the technical team can create
and design for the entire application.
Software Architect
A software architect should have expertise in the following areas
• Design Expertise
• Domain Expertise
• Technology Expertise
• Methodological Expertise
is a measure of excellence or the state of being free
from deficiencies or defects.
Quality
are the system properties that are separate
from the functionality of the system.
Quality attributes
Reflect the structure of a system and organization, directly related to
architecture, design, and source code.
Static Quality Attributes
Reflect the behavior of the system during its execution. They are directly
related to the system’s architecture, design, source code, configuration,
deployment parameters, environment, and platform.
Dynamic Quality Attributes
specify how to prevent a fault from becoming a failure.
Quality scenarios
Parts of Quality Scenarios (6)
• Source
• Stimulus
• Environment
• Artifact
• Response
• Response measure
Defines the consistency and
coherence of the overall design. This
includes the way components or
modules are designed.
Category:
Design Qualities
Quality Attribute: Conceptual Integrity
Ability of the system to undergo
changes with a degree of ease.
Category: Design Qualities
Quality Attribute: Maintainability
Defines the capability for
components and subsystems to be
suitable for use in other applications.
Category: Design Qualities
Quality Attribute: Reusability
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.
Category: Run-time Qualities
Quality Attribute: Interoperability
Defines how easy it is for system administrators to manage
the application.
Category: Run-time Qualities
Quality Attribute: Manageability
Ability of a system to remain operational over time.
Category: Run-time Qualities
Quality Attribute: Reliability
Ability of a system to either handle the load increase
without impacting the performance of the system or the
ability to be readily enlarged.
Category: Run-time Qualities
Quality Attribute: Scalability
Capability of a system to prevent malicious or accidental
actions outside of the designed usages.
Category: Run-time Qualities
Quality Attribute: Security
Indication of the responsiveness of a system to execute
any action within a given time interval.
Category: Run-time Qualities
Quality Attribute: Performance
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.
Category: Run-time Qualities
Quality Attribute: Availability
Ability of the system to provide
information helpful for identifying and
resolving issues when it fails to work
correctly.
Category: System Qualities
Quality Attribute: Supportability
Measure of how easy it is to create test
criteria for the system and its
components.
Category: System Qualities
Quality Attribute: Testability
Defines how well the application meets
the requirements of the user and
consumer by being intuitive.
Category: User Qualities
Quality Attribute: Usability
Accountability for satisfying all the
requirements of the system.
Category: Architecture
Quality
Quality Attribute: Correctness
Ability of the system to run under
different computing environment.
Category: Non-runtime Quality
Quality Attribute: Portability
Ability to make separately developed
components of the system work correctly
together.
Category: Non-runtime Quality
Quality Attribute: Integrality
Ease with which each software system can accommodate changes to its software.
Category: Non-runtime Quality
Quality Attribute: Modifiability
Cost of the system with respect to time to
market, expected project lifetime & utilization
of legacy.
Category: Business quality
attributes
Quality Attribute: Cost and schedule
Use of systems with respect to market
competition.
Category: Business quality attributes
Quality Attribute: Marketability
also called an architectural pattern, is a set of principles which
shapes an application. It defines an abstract framework for a family of systems in terms
of the pattern of structural organization.
Architectural Style
Prescribes use of a software system that can receive and send messages using one or more communication channels.
Category: Communication
Architectural Design: Message Bus
Defines the applications that expose and consume functionality as a service using contracts and messages.
Category: Communication
Architectural Design : Service-Oriented Architecture (SOA)