COMP 6471 Software Design Methodologies Fall 2011 Dr Greg Butler - - PowerPoint PPT Presentation

comp 6471 software design methodologies
SMART_READER_LITE
LIVE PREVIEW

COMP 6471 Software Design Methodologies Fall 2011 Dr Greg Butler - - PowerPoint PPT Presentation

COMP 6471 Software Design Methodologies Fall 2011 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/comp6471-fall2011.html Software Architecture Document Logical View Conceptual organization of software Layers, subsystems,


slide-1
SLIDE 1

COMP 6471 Software Design Methodologies

Fall 2011 Dr Greg Butler

http://www.cs.concordia.ca/~gregb/home/comp6471-fall2011.html

slide-2
SLIDE 2

Software Architecture Document

slide-3
SLIDE 3

Logical View

  • Conceptual organization of software
  • Layers, subsystems, packages, frameworks,

classes, interfaces

  • Summarize functionality of major software

elements, eg each subsystem

  • Show use-case realization scenarios as

interaction diagrams for key aspects of system

  • UML package, class, interaction diagrams
slide-4
SLIDE 4

Process View

  • Shows processes and threads
  • Responsibilities, collaborations
  • Allocation of logical elements (layers, subsystems,

classes, ...) to them

  • UML class and interaction diagrams
  • Use UML process and thread notation
slide-5
SLIDE 5

Deployment View

  • Show physical deployment of processes and

components to processing nodes

  • Show physical network configuration of nodes
  • UML deployment diagram
slide-6
SLIDE 6

Implementation View

  • Summary description of noteworthy
  • rganization of
  • Deliverables, eg source code, executables
  • Things that create deliverables, eg scripts, graphics
  • Use text and UML package and component

diagrams

slide-7
SLIDE 7

Data View

  • Overview of
  • data flows
  • persistent data schema
  • schema mapping from objects to persistent data
  • mechanism mapping objects to DB
  • stored procedures and triggers
  • UML class diagram for data models
  • UML activity diagrams for data flows
slide-8
SLIDE 8

How many views?

  • Simplified models to fit the context
  • Not all systems require all views:
  • Single processor: drop deployment view
  • Single process: drop process view
  • Very Small program: drop implementation view
  • Adding views:
  • Data view, security view
slide-9
SLIDE 9

Many stakeholders, many views

  • Architecture is many things to many different

interested parties

  • end-user
  • customer
  • project manager
  • system engineer
  • developer
  • architect
  • maintainer
  • other developers
  • Multidimensional reality
  • Multiple stakeholders

multiple views, multiple blueprints

slide-10
SLIDE 10

Models

  • Models are the language of designer, in

many disciplines

  • Models are representations of the system to-

be-built or as-built

  • Models are vehicle for communications with

various stakeholders

  • Visual models, blueprints
  • Scale
  • Models allow reasoning about some

characteristic of the real system

slide-11
SLIDE 11

Software Architecture Documentation Conceptual Model

IEEE 1471-2000

slide-12
SLIDE 12

Architectural view

  • An architectural view is a simplified

description (an abstraction) of a system from a particular perspective or vantage point, covering particular concerns, and omitting entities that are not relevant to this perspective

slide-13
SLIDE 13

Models, Views, and Diagrams

Use Case Diagrams Use Case Diagrams Use Case Diagrams Scenario Diagrams Scenario Diagrams Collaboration Diagrams State Diagrams State Diagrams Component Diagrams

Component Diagrams Component Diagrams

Deployment Diagrams State Diagrams State Diagrams Object Diagrams Scenario Diagrams Scenario Diagrams Statechart Diagrams Use Case Diagrams Use Case Diagrams Sequence Diagrams State Diagrams State Diagrams Class Diagrams Activity Diagrams

A model is a complete description of a system from a particular perspective

Models

slide-14
SLIDE 14

Representing System Architecture Kruchten’s 4+1 View Model

Logical View

End-user Functionality

Implementation View

Programmers Software management

Process View

Performance Scalability Throughput System integrators

Deployment View

System topology Delivery, installation Communication System engineering

Conceptual Physical

Use Case View

slide-15
SLIDE 15

Logical View: Package Diagram

Log4J Technical Services Domain UI Pricing Persistence DBFacade Taxes «interface» ITaxCalculatorAdapter Services Factory Sales Register Sale Swing ProcessSale Frame Payments CreditPayment «interface» ICreditAuthorization ServiceAdapter ServiceAccess Inventory «interface» IInventoryAdapter Jess POSRuleEngine POSRuleEngineFacade SOAP

slide-16
SLIDE 16

Activity Diagram: Process Model

Tax Calculator NextGen POS Sale Calc Taxes Request Payment Authorization Enter Items «datastore» Products Payment Authorization Request Authorize Payment Update ERP Reply «datastore» Inventory «datastore» Accounting Data Flow Scenario for Process Sale Use Case

slide-17
SLIDE 17

Interaction Diagram: Process Model

: Domain:: Sales:: Register :Cashier : UI:: Swing:: Process SaleJFrame enterItem (id, qty) 1 : Tech- Services:: Persistence:: Persistence- Facade desc = getProduct Desc(id) x = isInvalid (lineItem, sale) desc = getObject(...,id) 1 : Domain:: POSRule- Engine:: POSRule- Engine Facade enterItem (id, qty) s : Domain:: Sales:: Sale : Domain:: Products:: Product Catalog makeLineItem(desc, qty) «subsystem» : Tech- Services ::Jess someJessCalls(lineItem, sale)

  • nPropertyEvent(s, "sale.total", total)
slide-18
SLIDE 18

Component Diagram

  • Captures the physical structure of the

implementation

slide-19
SLIDE 19

Component Diagram

  • Captures the physical structure of the

implementation

  • Built as part of architectural specification
  • Purpose
  • Organize source code
  • Construct an executable release
  • Specify a physical database
  • Developed by architects and programmers
slide-20
SLIDE 20

Deployment Diagram

  • Captures the topology of a system’s

hardware

  • Built as part of architectural specification
  • Purpose
  • Specify the distribution of components
  • Identify performance bottlenecks
  • Developed by architects, networking

engineers, and system engineers

slide-21
SLIDE 21

Deployment Diagram

«terminal» : POSTerminal { JVM = Sun Hotspot Client 2.0 } custom protocols

  • n top of TCP

«artifact» NextGenClient.jar «server» : Dell PowerEdge 3600 { OS=Red Hat Enterprise Linux 4 } «database» : PostgreSQL 10 «artifact» Product Tables «server» : Dell PowerEdge 3600 { OS=Red Hat Enterprise Linux 4 } «artifact» GoodAsGoldTaxCalculator.exe «server» : GenericServer «ERP» : SAP «server» : GenericServer «system» CreditPayment Authorizer SOAP over HTTP V I S A p r

  • t
  • c
  • l
  • v

e r T C P SQL over TCP inventory and accounting

slide-22
SLIDE 22

Software Architecture Document

slide-23
SLIDE 23

Documentation Conceptual Model

IEEE 1471-2000

slide-24
SLIDE 24

The domain of architecting

Architecture Qualities Process Architecture Representation

The “what” The “why” The “how” The “who”

System Features Architecture S/W Requirements System Quality Attributes Satisfies Constrain Organization Architect Skills Stakeholders Defines role Produces Follows Defines Technology

Wojtek Kozaczynski

slide-25
SLIDE 25

Architecture metamodel

Software Architecture Software Architecture Description Architectural view is made of is represented by Architecture Design Process produces Form Component Connection Architectural Pattern is a is made of Software Architects are actors in Logical view Process view Implemen- tation view Deployment view Requirements satisfies Architectural style has has has is a System architecture is part

  • f

Architecture Style guide Constraints constrains constrains Use case view relates to Architectural Blueprint depicts

slide-26
SLIDE 26

Forces in Software

T echnology churn Our enemy is complexity, and it’s our goal to kill it.

Jan Baan

Performance Throughput Capacity Availability Fail safe Fault tolerance Functionality Cost Compatibility Resilience

The challenge over the next 20 years will not be speed or cost or performance; it will be a question of complexity.

Bill Raduchel, Chief Strategy Officer, Sun Microsystems