(PPT) Essential Software Architecture Chapter Three – Software Quality Attributes – DOKUMEN.TIPS
-
Essential Software Architecture Chapter Three – Software Quality
AttributesIan Gorton CS590 Winter 2008
-
Quality AttributesMost of a software architects work is focused
on designing software systems to meet a set of quality attribute
requirements. -
More on quality attributesQuality attribute requirements are
part of an applications nonfunctional requirements, which capture
the many facets of how the functional requirements of an
application are achieved. -
General software quality attributes
ScalabilitySecurityPerformanceModifiabilityAvailabilityIntegration
-
performanceA performance quality requirement defines a metric
that states the amount of work an application must perform in a
given time, and/or deadlines that must be met for correct
operation. -
Performance is reflected in
ThroughputResponse TimeDeadlines
-
Throughput Throughput is a measure of the amount of work an
application must perform in unit time. Work is typically measured
in transactions per second (tps), or messages processed per second
(mps). -
Response Time This is a measure of the latency an application
exhibits in processing a business transaction. Response time is
most often (but not exclusively) associated with the time an
application takes to respond to some input. -
DeadlinesApplications should meet the business rules concerning
deadlines.(Weather prediction software which took 36 hours to
calculate the following days weather) -
Performance for the ICDE System
It is consequently exteremely important that ICDE users dont
experience any delays in using their applications while the ICDE
software traps and stores events. -
Scalability scalability is about how a design can cope with some
aspect of the applications requirements increasing in size. A
scalable solution will permit additional processing capacity to be
deployed to increase throughput and decrease response time. -
More on scalabilityAdditional CapacitySimultaneous
ConnectionsData SizeDeployment -
Additional CapacityThis may be deployed in two different ways,
one adding more CPUs11 (and likely memory) to the machine the
applications runs on (scale up), the other from distributing the
application on multiple machines (scale out). -
Simultaneous ConnectionsSystem should be able to handle
processing when the number of connections increases -
Data Size
In a nutshell, how does an application behave as the data it
processes increases in size? -
DeploymentHow does the effort involved in deploying or modifying
an application to an increasing user base grow? -
Scalability for the ICDE Application
The major scalability requirement for the ICDE system is to
support the number of users expected in the largest anticipated
ICDE deployment. -
ModifiabilityThe modifiability quality attribute is a measure of
how easy it may be to change an application to cater for new
functional and non-functional requirements. -
Some examplesProvide access to the application through firewalls
in addition to existing behind the firewall access.Incorporate new
features for self-service check-out kiosks.The COTS speech
recognition software vendor goes out of business and we need to
replace this component. The application needs to be ported from
Linux to the Microsoft Windows platform. -
Modifiability for the ICDE Application
New range of events capturedThird party applications communicate
messages with ICDE -
SecurityUnderstanding the precise security requirements for an
application, and devising mechanisms to support
them.AuthenticationAuthorizationEncryptionIntegrityNon-repudiation -
AuthenticationApplications can verify the identity of their
users and other applications with which they communicate. -
AuthorizationAuthenticated users and applications have defined
access rights to the resources of the system. For example, some
users may have read-only access to the applications data, while
others have read/write. -
EncryptionThe messages sent to/from the application are
encrypted. -
IntegrityThis ensures the contents of a message are not altered
in transit. -
Non-repudiation The sender of a message has proof of delivery
and the receiver is assured of the senders identity. This means
neither can subsequently refute their participation in the message
exchange. -
Security Technologies out there The Secure Socket Layer (SSL)
and Public Key Infrastructures (PKI) are commonly used in Internet
applications to provide authentication, encryption and
non-repudiation. -
AvailabilityFailures in applications cause them to be
unavailable. Failures impact on an applications reliability, which
is usually measured by the mean time between failures. The length
of time any period of unavailability lasts is determined by the
amount of time it takes to detect failure and restart the
system. -
Availability for the ICDE ApplicationIt is only crucial that
ICDR be available during the business hours of the office
environmentit is deployed in. This leaves plenty of scope for
downtime for such needs as system upgrade, backup and
maintenance.(Per book) -
IntegrationIntegration is concerned with the ease with which an
application can be usefully incorporated into a broader application
context. -
Integration for the ICDE Application
There must be a well-defined and understoodmechanism for third
party tools to access data in the ICDE data store for analysis. -
Other Quality AttributesPortabilityTestabilitySupportability