CISC 322 Software Architecture Lecture 13: Midterm Review Emad - - PowerPoint PPT Presentation

cisc 322
SMART_READER_LITE
LIVE PREVIEW

CISC 322 Software Architecture Lecture 13: Midterm Review Emad - - PowerPoint PPT Presentation

CISC 322 Software Architecture Lecture 13: Midterm Review Emad Shihab Course Content Requirements Architectural Styles Architecture Recovery Design Patterns Project Scheduling Software Estimation Requirements Software


slide-1
SLIDE 1

CISC 322

Software Architecture Lecture 13: Midterm Review Emad Shihab

slide-2
SLIDE 2

Course Content

■ Requirements ■ Architectural Styles ■ Architecture Recovery ■ Design Patterns ■ Project Scheduling ■ Software Estimation

slide-3
SLIDE 3

Requirements

slide-4
SLIDE 4

Software Requirements

■ “Requirements are…a specification of what should be implemented. They are descriptions of how the system should behave, or of a system property or

  • attribute. They may be a constraint on the

development process of the system.”

(Sommerville and Sawyer 1997, Karl E. Wiegers 1999)

slide-5
SLIDE 5

Where Do Requirements Come From?

■ Requirements come from users and stakeholders who have demands/needs ■ An analyst/requirement engineer:

  • 1. Elicits these demands/needs (raw requirements)
  • 2. Analyzes them for consistency, feasibility, and

completeness

  • 3. Formulates them as requirements and write down a

specification

  • 4. Validates that the gathered requirements reflect the

needs/demands of stakeholders

slide-6
SLIDE 6

Types of Requirements

■ Functional Requirements

– Specify the function of the system – F(input, system state)  (output, new state)

■ Non-Functional Requirements (Constraints)

– Quality Requirements

  • Specify how well the system performs its intended functions
  • Reliable, Portable, etc…

– Managerial Requirements

  • Legal responsibilities

– Context / Environment Requirements

  • Conditions in which the system should operate
slide-7
SLIDE 7

Quality Attributes

slide-8
SLIDE 8

Quality Attributes

■ Architects are often told:

– “My application must be fast/secure/scale”

■ We want precise/measurable goals

Quality attributes

slide-9
SLIDE 9

What are Quality Attributes

■ Often know as –ilities

– Performance – Scalability – Modifiability – Availability – …

slide-10
SLIDE 10

Performance

■ Different ways to measure performance:

– Throughput

  • Transaction per min, Messages PM)

– Average? (Video streaming) – Peak? (Bidding)

– Response Time

  • Delay or Latency

– Guaranteed? (VOIP) – Average? (Search)

– Deadlines

  • Payroll task must complete by 2 AM
slide-11
SLIDE 11

Scalability

■ „How well a solution to some problem will work when the size of the problem increases‟

– Request Load (# of simultaneous requests) – Connections (# of simultaneous connections) – Data size (text vs. video messages) – Deployment (installation of new users)

slide-12
SLIDE 12

Modifiability

■ Modifiability measures how easy it MAY be to change an application ■ Architect asserts likely change scenarios ■ Some general rules

– Minimizing dependencies – Avoid ripple effects!

slide-13
SLIDE 13

Availability

■ The proportion of the required time the system is useable

– E.g.,100% available during business hours

■ Some general rules:

– Eliminate single points of failure – Replication and failover

slide-14
SLIDE 14

Security Approaches

■ Authentication

– Verify the identity of users

■ Authorization

– Access rights

■ Encryption

– Messages sent to/from application are encrypted

■ Integrity

– Contents are not altered in transit

■ Many others…

slide-15
SLIDE 15

Architectural Styles

slide-16
SLIDE 16

Repository Style

Shared Data Memory Memory Access

Computation

slide-17
SLIDE 17

Repository Style Advantages

■ Efficient way to store large amounts of data ■ Can easily share data ■ Centralized management:

– Backup, security, etc…

■ Solutions to complex problem do not have to be preplanned

slide-18
SLIDE 18

Repository Style Disadvantages

■ Must agree on a data model a priori ■ Difficult to distribute data ■ Changing data schema is expensive

slide-19
SLIDE 19

Pipe and Filter Architectural Style

filter pipes

slide-20
SLIDE 20

Pipe and Filter Advantages

■ Easy to understand the overall input/output behavior of a system ■ Support reuse since any two filters can be hooked together, provided they agree on the data that is being transmitted between them ■ Systems can be easily maintained and enhanced - new filters can be added or old filters can be replaced

slide-21
SLIDE 21

Pipe and Filter Disadvantages

■ Not good choice for interactive systems, because of their transformational character ■ Excessive parsing and unparsing leads to loss of performance and increased complexity in writing the filters themselves

slide-22
SLIDE 22

Object-Oriented Style

  • bj
  • bj
  • bj
  • bj
  • bj
  • bj
  • bj
  • bj
  • bject
slide-23
SLIDE 23

Object-Oriented Advantages

■ Object can change the implementation without affecting its clients ■ Can design systems as collections of autonomous interacting agents

slide-24
SLIDE 24

Object-Oriented Disadvantages

■ Objects need to identify other objects they want to interact with

– Contrast with Pipe and Filter Style – What if identity of an object changes?

■ Objects cause side effect problems:

– E.g., A and B both use object C, then B’s effects on C look like unexpected side effects to A.

slide-25
SLIDE 25

Implicit Invocation Style

Publish-Subscribe Event Based

Taylor et al. 2010

slide-26
SLIDE 26

Implicit Invocation Advantages

■ (PS) Efficient dissemination of one-way information ■ Provides strong support for reuse

– Any component can be added, by registering/subscribing for events

■ Eases system evolution

– components may be replaced without affecting other components in the system

slide-27
SLIDE 27

Implicit Invocation Disadvantages

■ (PS) Need special protocols when number

  • f subscribers is very large

■ When a component announces an event:

– it has no idea what other components will respond to it, – it cannot rely on the order in which the responses are invoked – it cannot know when responses are finished

slide-28
SLIDE 28

Layered Style

Adapted from Taylor et al. 2010

Network C1 C2 C3 Server Clients Virtual Machine Client-Server

slide-29
SLIDE 29

Layered Style Advantages

■ VM

– Clear dependence structure – Upper levels immune to changes at lower levels – Lower levels are independent of upper levels

■ CS

– Centralization of computation and data at server – Single powerful server can serve many clients

slide-30
SLIDE 30

Layered Style Disadvantages

■ VM

– Having too many layers can be inefficient (may need to cross layers) – Not easy to divide software systems into layers

■ CS

– Heavy dependence on communication network

slide-31
SLIDE 31

Architecture Recovery

slide-32
SLIDE 32

Conceptual vs. Concrete vs. Reference

■ Conceptual architecture:

– shows how developers think about a system

■ Concrete architecture:

– shows the actual relationships in the system

■ Reference architecture:

– General architecture for a specific domain

slide-33
SLIDE 33

Linux Architecture

Concrete Architecture Conceptual Architecture

slide-34
SLIDE 34

Why the Extra Dependencies?

■ Developers avoid existing interfaces to achieve better efficiency ■ Expediency

slide-35
SLIDE 35

Reference Architecture Derivation Process

AOLServer Concrete Architecture Conceptual Architecture Reference Architecture for Web Servers Apache Concrete Architecture Conceptual Architecture Jigsaw Concrete Architecture Conceptual Architecture

slide-36
SLIDE 36

Architecture Views

■ Various parts of the architecture have to be modeled using different approaches ■ View: is a set of design decisions related to a common concern (or set of concerns) ■ Concern: is an aspect of the system that a stakeholder cares about

slide-37
SLIDE 37

Architectural Views

Stakeholder: Concern:

slide-38
SLIDE 38

Midterm

■ Friday, Oct 14, BIOSCI 1120 ■ 50 minutes ■ 2 questions:

– 1 short answers with 5 sub-questions – 1 architecture design

■ 70 marks in total

slide-39
SLIDE 39

Midterm

■ Topics covered

– Requirements (~15%) – Architectural styles (~55%) – Conceptual, Concrete and Reference architecture (~20%) – Architectural views (~10%)

■ Review notes, readings, EOC questions, and class activities ■ Email or come and see me if you have any questions