65
Software Architectures 456502.0 Luigia Petre Department of Information Technologies Åbo Akademi Lecture 1

Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Software Architectures 456502.0 Luigia Petre Department of Information Technologies Åbo Akademi

Lecture 1

Page 2: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

This course at: www.users.abo.fi/lpetre/SA14/ �  Has 5 sp �  Mondays and Wednesdays

�  10:15-12 in Cobol (B3040) �  1.9.2014 to 29.10.2014 (weeks 36-44, 2014)

�  There are no lectures during weeks 37-38 �  Components

�  Lectures: some 12 -14 (24-28h) �  Exercises: 3 individually returned studies �  Tests: @ Alpha Auditorium, during 12-16

�  Register 7 days in advance to any test

1-Sep-14

Software Architectures, Lecture 1

2

Page 3: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Materials 1-Sep-14

Software Architectures, Lecture 1

3

Page 4: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

We mostly use Ø  C. Hofmeister, R. Nord, D. Soni: Applied

Software Architecture, Addison-Wesley, 2000. Ø  M. Shaw and D. Garlan: Software

Architecture - Perspectives on an Emerging Discipline, Prentice-Hall, 1996.

Ø  L. Bass, P. Clements, and R. Kazman: Software Architecture in Practice, Addison-Wesley, 2003.

Ø  P. Clements, R. Kazman, M. Klein: Evaluating Software Architectures, Addison-Wesley, 2002.

1-Sep-14

Software Architectures, Lecture 1

4

Page 5: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Software Architecture � Architecture

�  Old art and ancient engineering discipline � Software

�  The industry begun in late 40s � Software architecture

�  Much less mature than computer hardware architecture

� Common excuses �  Software industry is young and unique

� Yet: our economy relies on software products

1-Sep-14

Software Architectures, Lecture 1

5

Page 6: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

”Our society runs on Software” �  Software today allows a brother in San Jose to call a sister

in St. Petersburg. �  Software today speeds the process of drug discovery,

potentially curing Alzheimer's. �  Software today drives the imaging systems that allow the

early detection of breast cancer and other maladies. �  Software controls the passive restraint systems and antilock

breaking systems that save children's lives in automobiles every day.

�  Software powers our communication and transportation technologies.

�  Software allows us to peer deep within ourselves and study the human genome.

�  Software allows us to explore and understand our universe. �  And, make no mistake about it, we are just getting started Paul Levy

1-Sep-14

Software Architectures, Lecture 1

6

Page 7: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

What does SA address?

� Complexity of software systems increased �  Developing software: hundreds/ thousands person-years �  Many software systems: complex as skyscrapers

� Designing software �  Beyond algorithms/ data structures of the computation �  New kind of problem: overall system structure

1-Sep-14

Software Architectures, Lecture 1

7

Page 8: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Producing software systems �  Criteria have changed

�  Computer hardware improved, affordable �  Need for software applications exploded �  How to specify requirements for new products

and implement the software quickly, cheaply �  Earliest software product on market

� Quality? �  New criterion: does it have a good SA,

understood by stakeholders and developers?

1-Sep-14

Software Architectures, Lecture 1

8

Page 9: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

What is Software Architecture? �  Software architecture of a program or computing

system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. (Bass et al)

�  SA defines software elements �  externally visible properties: e.g., provided services,

performance characteristics, fault handling, shared resource usage

�  relationship among elements: SA omits element information not related to interaction

�  public part of elements

1-Sep-14

Software Architectures, Lecture 1

9

Page 10: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

What is Software Architecture?(2)

� SA can have more than one structures �  no one structure is the SA

� Every software system has an architecture �  we may have or not its representation

� Behavior of elements is part of SA � Definition does not indicate quality of SA

1-Sep-14

Software Architectures, Lecture 1

10

Page 11: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Software architecture 1.  Provides a design plan of a system

�  Blueprint �  Implies purpose

2.  Is an abstraction that helps in managing the complexity of a system

�  Software architects limited by �  Lack of standardized ways to represent architecture �  Lack of analysis methods to predict whether an

architecture will result in an implementation that meets the requirements

1-Sep-14

Software Architectures, Lecture 1

11

Page 12: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

SA as a design plan � Structural plan that describes

�  The elements of a system �  How they fit together �  How they work together to fulfill requirements

� Used as blueprint during development process

� Used to negotiate system requirements � Used to set expectations with

�  Customers �  Marketing/management personnel

1-Sep-14

Software Architectures, Lecture 1

12

Page 13: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

SA as design plan � Project manager uses the design plan as

input to the project plan

1-Sep-14

Software Architectures, Lecture 1

13

Domain analysis, Requirements analysis,

Risk analysis SA design

Hardware Architecture

design

Detailed design, Coding,

Integration, Testing

Page 14: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

SA as an abstraction � SA not a comprehensive decomposition of a

system �  Implementation details abstracted away,

encapsulated into elements of the SA � SA should describe elements at a coarse level

of granularity �  How elements fulfill the requirements �  Element interactions �  Element dependencies on execution platform

1-Sep-14

Software Architectures, Lecture 1

14

Page 15: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Design tradeoffs � Resolving tradeoffs may lead to

�  Sacrificing some desired qualities � E.g., simplicity

�  Compromising some requirements � Renegotiating � Reducing portability, modifiability, etc

1-Sep-14

Software Architectures, Lecture 1

15

Page 16: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

SA goal � One should strive for a good architecture

�  When system is implemented according to the architecture, it meets its requirements and resource budget

�  It is possible to implement system according to architecture

� Not good enough when �  Not explicit or not comprehensive or not

consistent or not understandable

1-Sep-14

Software Architectures, Lecture 1

16

Page 17: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

SA terminology 1.  Architectural style/pattern

�  Defines element types and how they interact �  Sometimes defines a mapping of

functionality to architectural elements

2.  Reference/domain specific architecture �  Defines element types and how they interact �  They apply to a particular domain �  They define how the domain functionality is

mapped to architectural elements

1-Sep-14

Software Architectures, Lecture 1

17

Page 18: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

SA terminology, 2 3.  Product-line architecture

�  Applies to a set of products within a company

�  Defines element types, how they interact, how the product functionality is mapped to them

�  May also define some of the instances of the architectural elements �  E.g., error-reporting components would be

common to many products of the product line

1-Sep-14

Software Architectures, Lecture 1

18

Page 19: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

SA terminology,3 4.  Software architecture

�  Applies to one system �  Describes element types, how they

interact, how the product functionality is mapped to them

�  Describes the instances that exist in the system

�  Level of specificity needed to design a system

1-Sep-14

Software Architectures, Lecture 1

19

Page 20: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

SA terminology, 4

Term

Defines element types and how they interact

Defines the mapping of functionality to architecture elements

Defines instances of architecture elements

An architectural style

yes sometimes no

A reference architecture

yes yes no

A product-line architecture

yes yes sometimes

A software architecture

yes yes yes

1-Sep-14 20

Page 21: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

SA terminology, final 5.  ADL (architectural description

language) �  Gives notation for architectural elements

�  As types and instances, also interconnecting instances to form configurations

�  Mostly in research communities �  In theory: architects can use an ADL to

describe any of the 1-4 terms �  In practice: not all ADLs support all the

1-4 terms �  Some ADLs have accompanying tools

1-Sep-14

Software Architectures, Lecture 1

21

Page 22: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

HENCE: �  We need to study software architecture

�  Our society is software-reliant �  Software systems are complex

�  Software architecture �  Addresses the complexity of the systems to build

�  Course goal �  Understand what SA is �  SA very much an emerging discipline �  The philosophy

�  One should not focus on designing the ideal architecture �  Instead: focus on carefully examining tradeoffs

�  We will learn to recognize and evaluate architectures, as well as design them

1-Sep-14

Software Architectures, Lecture 1

22

Page 23: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Contents of this course �  L1: What is SA? Quality Attributes (today) �  L2: Architectural tactics �  L3: Architectural styles and case studies �  L4: Creating an architecture �  L5+6: Architectural views �  L7: Analysing and evaluating an architecture �  L8: Architectural Description Languages �  L9: Product lines, COTS, Software architects �  L10: Lean Architectures �  L11: Software Architectural Patterns �  L12: Coordination, Orchestration, Choreography

1-Sep-14

Software Architectures, Lecture 1

23

Page 24: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

The ABC cycle � SA – result of technical, business, and

social influences � A SA also influences technical, business,

and social influences �  That, subsequently, influence future SAs

� This is the ABC cycle of influences: Architecture Business Cycle �  Organizational goals à requirements à SA à systems à future new organizational goals à …

1-Sep-14

Software Architectures, Lecture 1

24

Page 25: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Stakeholders � Architectures influenced by stakeholders

�  Management: low cost, keep people employed

�  Marketing: short time to market, low cost �  Customer: timely delivery, not changed

often �  End user: behavior, performance, security �  Maintenance: modifiability

1-Sep-14

Software Architectures, Lecture 1

25

Page 26: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

The business considerations �  Determine qualities to be part of the system’s architecture

�  Quality attributes �  Such qualities are non-functional �  Functionality

�  Basic statement of the system’s capabilities, services, behavior

�  Sometimes the only development concern �  Systems often need to be redesigned for

�  Maintainability �  Portability �  Scalability �  Speed �  Security etc

�  Compromise

1-Sep-14

Software Architectures, Lecture 1

26

Page 27: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

More on functionality � Functionality and quality attributes:

orthogonal �  We therefore need to separate concerns

� Functionality: the ability of the system to do the work for which it was intended

� Functionality can be achieved by using various possible structures �  System can exist also as a monolithic

module with no structure

1-Sep-14

Software Architectures, Lecture 1

27

Page 28: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Architecture and quality attributes � Quality attributes considered during

�  Design, implementation, deployment �  No attribute is dependent only on one phase

� Architecture critical for realizing many quality attributes �  These qualities designed and evaluated at

architectural level

� Architecture does not achieve these qualities �  They are achieved via details (implementation)

1-Sep-14

Software Architectures, Lecture 1

28

Page 29: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Quality attributes � System qualities

�  Availability, modifiability, performance, security, testability, usability

� Business qualities �  Time-to-market, etc

� Architecture qualities �  Conceptual integrity, etc

1-Sep-14

Software Architectures, Lecture 1

29

Page 30: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

System qualities � Of interest to software people since 70s � Many definitions, own communities � Problems

�  Non-operational definitions �  Aspects belong to which quality �  Distinct vocabularies

1-Sep-14

Software Architectures, Lecture 1

30

Page 31: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Quality attribute scenarios � Quality-attribute-specific requirement,

containing �  Source of stimulus �  Stimulus �  Environment �  Artifact �  Response �  Response measure

1-Sep-14

Software Architectures, Lecture 1

31

Page 32: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

QA scenario parts � Source of stimulus

�  Human/computer system/other actuator generating the stimulus

� Stimulus �  Condition that needs to be evaluated

when arrives at the system � Environment

�  The conditions the system is in (overload/running/failed etc)

1-Sep-14

Software Architectures, Lecture 1

32

Page 33: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

QA scenario parts,2 � Artifact

�  Something that is stimulated (whole system/ certain system part)

� Response �  Activity undertaken upon stimulus arrival

� Response measure �  Response should be measurable in some

manner so that the requirement can be tested

1-Sep-14

Software Architectures, Lecture 1

33

Page 34: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

QA scenarios � General QA scenarios

�  System independent �  Can potentially pertain to any system

� Concrete QA scenarios �  Specific to the particular system under

consideration �  Same role as use cases for specifying

functional requirements

1-Sep-14

Software Architectures, Lecture 1

34

Page 35: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

QA Scenario Generation � We need to generate meaningful QA

requirements for a system � Requirements gathering phase

�  Starting point, but not disciplined enough recording

� We generate concrete QA scenarios �  First create general scenarios from tables �  From them derive system-specific scenarios

1-Sep-14

Software Architectures, Lecture 1

35

Page 36: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Availability � Readiness of usage � Concerned with system failures and

consequences � Failure

�  Deviation from intended functional behavior

�  Observable by system users � Failure vs fault

�  Fault: event which may cause an error �  Error: incorrect internal system state

1-Sep-14

Software Architectures, Lecture 1

36

Page 37: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Availability concerns � How system failure is detected � How frequently system failure may occur � What happens when a failure occurs � How long is a system allowed to be

unoperable � When can failures occur safely � How to prevent failures � What kind of notifications are required

when a failure occurs

1-Sep-14

Software Architectures, Lecture 1

37

Page 38: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Repairments and maintenance � Time to repair:

�  time until failure is no longer observable

� Automatic repair � Maintenance: scheduled downtimes � Probability

�  Mean time to fail/(mean time to fail+mean time to repair)

1-Sep-14

Software Architectures, Lecture 1

38

Page 39: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Availability general scenarios

Source Internal/external to system

Stimulus Fault: omission, crash, timing, response

Artifact System’s processors, communication channels, persistent storage, processes

Environment Normal operation or degraded mode

Response

Detect event and record it/notify appropriate parties/disable event sources causing faults/failures/ be unavailable for an interval/ continue

Response measure

Time interval of available system, availability time, time interval of degraded mode, repair time

Page 40: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Modifiability �  Concerns cost of change

1.  What can change the artifact? 2.  When and by whom is the change

made? �  Upon specifying a change

�  New implementation must be designed, implemented, tested, deployed

�  All these cost time and money �  Time and money can be measured

1-Sep-14

Software Architectures, Lecture 1

40

Page 41: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

What can change (the artifact)? � Any aspect of a system: add/ delete/

modify �  The functions the system computes �  The platform the system exists on (=> portability)

�  HW, OS, MW �  System environment

�  Systems to interoperate with, communication protocols

�  System qualities �  Reliability, performance, modifiability

�  Capacity �  Number of users supported, of supported operations

1-Sep-14

Software Architectures, Lecture 1

41

Page 42: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

When and by whom is the change made? �  Implementation

�  Modifying source code

� Compile-time � Build � Configuration setup � Execution � By

�  developers, end users, system administrator

1-Sep-14

Software Architectures, Lecture 1

42

Page 43: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Modifiability general scenarios

Source End user, developer, system administrator

Stimulus Wishes to add/delete/modify/vary functionality, QA, capacity, etc

Artifact System UI, platform, environment, system that interoperates with target system

Environment Runtime, compile time, build time, design time

Response

Locates place in architecture to modify, makes modification w/o affecting other func., tests modif., deploys modif.

Response measure

Costs in terms of number of elements affected, effort, money; extent to which this affects other QAs, functions

Page 44: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Performance � Concerned with timing

�  how long it takes a system to respond when an event occurs

� Events �  Interrupts, messages, requests from users,

passage of time � Complication

�  Number of event sources and arrival patterns

1-Sep-14

Software Architectures, Lecture 1

44

Page 45: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Arrival pattern for events � Periodic

�  E.g., every 10 ms �  Most often seen in real-time systems

� Stochastic �  Events arrive according to some

probabilistic distribution

� Sporadical

1-Sep-14

Software Architectures, Lecture 1

45

Page 46: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

System responses �  Latency

�  Time between stimulus arrival and system’s response to it �  Deadlines in processing �  Throughput in the system

�  Number of transactions system can process in a second �  Jitter of the response

�  Variation in latency �  Number of events not processed

�  Because system too busy to respond �  Lost data

�  Because system too busy

1-Sep-14

Software Architectures, Lecture 1

46

Page 47: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Performance general scenarios

Source Independent sources (possibly from within system)

Stimulus Periodic or stochastic or sporadic events occur

Artifact System

Environment Normal mode, overload mode

Response Processes stimuli; changes level of service

Response measure

Latency, deadline, throughput, jitter, miss rate, data loss

Page 48: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Security � Measure of system’s ability

�  to resist unauthorized usage �  to provide services to legitimate users

� Attack: attempt to breach security �  Unauthorized attempt to access data/

services �  Unauthorized attempt to modify data �  Attempt to deny services to legitimate users

1-Sep-14

Software Architectures, Lecture 1

48

Page 49: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Example attacks � Theft of money by electronic means � Theft of credit card numbers � Destruction of files on computer systems � Denial-of-service attacks by worms, viruses

1-Sep-14

Software Architectures, Lecture 1

49

Page 50: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Security components �  Nonrepudiation

�  Transaction cannot be denied by any of its parties �  Confidentiality

�  Data/service protected from unauthorized access �  Integrity

�  Data/services delivered as intended �  Assurance

�  Parties in a transactions are who they say they are �  Availability

�  System ready for legitimate use �  Auditing

�  System tracks activities within it to be able to reconstruct them

1-Sep-14

Software Architectures, Lecture 1

50

Page 51: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Security general scenarios

Source Individual/system: identity, internal/external, authorization, access

Stimulus Try to: display data, change/delete data, access system services, reduce availability

Artifact System services, data within system

Environment On/offline, (dis)connected, firewalled or open

Response various

Response measure various

Page 52: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Security scenario response � Authenticates user � Hides identity of user � Blocks/allows acces to data/services � Grants/withdraws permission to access

data/services � Records access/modification or attempts � Stores data in certain formats � Recognizes access/usage roles � Informs users on other systems � Restricts availability of services

1-Sep-14

Software Architectures, Lecture 1

52

Page 53: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Security scenario response measure � Time/effort/resources for circumventing

security measures successfully � Probability of detecting attack, identifying

attacker � Percentage of services still available

under DoS attack � Restore data/services � Extent to which data/services damaged

or legitimate access denied

1-Sep-14

Software Architectures, Lecture 1

53

Page 54: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Testability � Easiness with which SW can demonstrate its

faults through testing �  Testing: 40% costs of developing good systems

� Probability that SW will fail on its next test execution �  Assuming the software has at least one fault

� Response measures �  Effectivness of tests (in finding faults) �  How long do satisfiable tests last

1-Sep-14

Software Architectures, Lecture 1

54

Page 55: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Testable system �  It must be possible

�  to control each component’s internal state and inputs

�  To observe the outputs

� Test harness �  Specialized software designed for

exercizing the SW under test

1-Sep-14

Software Architectures, Lecture 1

55

Page 56: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Who and what � Who does it

�  Various developers, testers, verifiers, users

� Last step of SW development cycle � What to test

�  Portions of code �  Design �  Complete system

1-Sep-14

Software Architectures, Lecture 1

56

Page 57: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Testability general scenarios

Source Unit developer, increment integrator, system verifier, client acceptance tester, system user

Stimulus Analysis, architecture, design, class, subsystem integration completed, system delivered

Artifact Design part, code part, complete application

Environment At design time, at development time, at compile time, at deployment time

Response Provides access to state values; provides computed values; prepares test environment

Response measure

Percent executable statements executed, probability of failure if fault exists, time to perform tests, length of longest dependency chain in a test, length of time to prepare test environment

Page 58: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Usability � Concerned with

�  How easy it is for the user to accomplish a desired task

�  User support type the system provides � Usability problems are usually discovered

during prototype building and user testing � Later in process and deeper in

architecture the repair needs to go: the more expensive

1-Sep-14

Software Architectures, Lecture 1

58

Page 59: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Usability areas � Learning system features � Using a system efficiently � Minimizing the impact of errors � Adapting system to user needs �  Increasing confidence and satisfaction

1-Sep-14

Software Architectures, Lecture 1

59

Page 60: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Usability general scenarios Source End user

Stimulus

Wants to learn system features, use system efficiently, minimize impact of errors, adapt system, feel comfortable

Artifact System

Environment At runtime and configure time

Response Various

Response measure

Task time, number of errors, number of problems solved, user satisfaction, user knowledge gain, ratio of successful operations to total operations, amaount of time/data lost

Page 61: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Usability scenario response � System provides responses to support

�  learn system features �  use system efficiently �  minimize impact of errors �  adapt system �  feel comfortable

1-Sep-14

Software Architectures, Lecture 1

61

Page 62: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Communicating concepts �  General scenarios

�  Need to make stakeholders communicate �  Each attribute community has own vocabulary

�  Different terms can mean the same thing �  Stimuli can occur during runtime or before �  Architect’s job: understand which stimuli

�  Represent the same ocurence �  Are aggregates of other stimuli �  Are independent

�  When stimuli relations are clear �  Communicate them to stakeholders �  Use appropriate language for each stakeholder category

1-Sep-14

Software Architectures, Lecture 1

62

Page 63: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Stimuli

Availabiliy Unexpected event, nonoccurence of expected event

Modifiability Request to add/delete/modify/vary functionality, QA, capacity, platform, etc

Performance Periodic or stochastic or sporadic events occur

Security Tries to: display data, change/delete data, access system services, reduce availability

Testability Analysis, architecture, design, class, subsystem integration completed, system delivered

Usability

Wants to learn system features, use system efficiently, minimize impact of errors, adapt system, feel comfortable

Page 64: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

Today’s take away � Software architecture is about

�  Balance �  Abstraction �  Structure(s)

� Quality attributes �  Are the requirements for SA �  Have to be captured

� Scenarios

1-Sep-14

Software Architectures, Lecture 1

64

Page 65: Software Architectures - users.abo.fiusers.abo.fi/lpetre/SA14/SALecture1.pdf · Software architecture of a program or computing system is the structure or structures of the system,

To read � Software Architecture Zen blog by Peter

Crisp (IBM) �  http://softwarearchitecturezen.blogspot.fi/

� On Computing podcast series by Grady Booch �  http://www.computer.org/portal/web/

computingnow/oncomputing

� Dropbox shared folder

1-Sep-14

Software Architectures, Lecture 1

65