(PPT) Essential Software Architecture Chapter Three – Software Quality Attributes – DOKUMEN.TIPS

  • Essential Software Architecture Chapter Three – Software Quality
    Attributes

    Ian 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