SOFTWARE ARCHITECTURE - PowerPoint PPT Presentation

1 / 22
About This Presentation
Title:

SOFTWARE ARCHITECTURE

Description:

Software engineering immature. Interest in applying engr discipline to S/W ... Space C2 Architectural Infrastructure. SCAI used product line design ... – PowerPoint PPT presentation

Number of Views:360
Avg rating:3.0/5.0
Slides: 23
Provided by: markn5
Category:

less

Transcript and Presenter's Notes

Title: SOFTWARE ARCHITECTURE


1
SOFTWARE ARCHITECTURE DESIGN
  • MN3309 Session 13
  • Prof. Mark Nissen

2
Agenda
  • Software Engineering
  • Software Architecture
  • Product Line Architecture
  • Software Analysis Design (hidden)
  • Structural Complexity (hidden)
  • Summary

3
Software Engineering Attainable Goal
  • Hardware engineering quite mature
  • Designs are stable predictable
  • Well-understood principles, tools, methods
  • Software engineering immature
  • Interest in applying engr discipline to S/W
  • Need principles, tools, methods
  • Quickest, cheapest, highest-quality S/W
  • Avoid mistakes in development
  • Do no job more than once
  • Satisfy key requirements?

4
S/W Engineering LCC Effects
Deployment/Support
Development
Note size of S/W pie also shrinks
5
Construction Analogy
6
Principles
  • Abstraction modularity
  • Most important principles
  • Managing complexity
  • Enhancing test supportability
  • Information hiding localization
  • Enhancing modularity
  • Loose coupling high cohesion
  • Uniformity, completeness, confirmability

7
Systems Engineering Linkages
  • Software is system within system
  • Systems engr addresses H/W S/W
  • Allocate H/W S/W functions, specs
  • Address H/W S/W concurrently
  • Systems integration test
  • EIA 632 - (from MIL-STD-499B)
  • Integrated product development teams
  • Concurrent engineering (mfg supt)
  • 777, Deere, ATT cycle time examples

8
Software Systems Engineering Relations
9
Software Architecture
  • Map function/structure
  • High-level design
  • Guides detailed system design
  • Central to performance, maintenance system
    flexibility
  • Highly reusable

10
Essential Properties
  • STSC (App. G)
  • Partition S/W into components (allocation)
  • Flow of data (DFDs)
  • Flow of control
  • Critical timing and throughput
  • Interconnection layers, stds protocols
  • Allocation of S/W to hardware

11
Definition
  • STSC (App. G - 1)
  • Hardware software components
  • Allocated algorithmic functions
  • Interfaces
  • Execution concept

12
Another Definition
  • ISAM2022
  • a mapping of functionality onto hardware and
    software components
  • a mapping of the software architecture onto the
    hardware architecture
  • a representation of the human interaction with
    these components

13
Open Systems
  • Open System Architecture adds interface
    specifications
  • fully defined
  • available to the public
  • maintained according to a group consensus process
  • Interchangeable components

14
Multiple Views
15
Dedicated Hardware
16
Layered Architecture
17
Layered Software
18
Application Tiers
19
Joint STARS System - Real Example
20
Standardization Areas
(1) Security (2) Candidate application
evaluation (3) Client workstation environment
(4) Database structure and management (5) Data
interchange (6) Application building blocks
(7) GUI look and feel (8) Network
Infrastructure (9) Application system and
training (10) Office automation (11) Operating
systems (11) Templates and report formats
21
Common Operating Environment - Real Example
22
A TAFIM Compliant C2 Architectural Model(USAF)
ADA Programming Support Environment




Missile Warning
Space
Weather
  • Rational Apex
  • Rational Rose

Sensor Gateway
Air
Intelligence
Message Handling Services
User Interface Services
Data Management Services
System Services
Code Generator Tools
Command Control Architectural Infrastructure
TAFIM / TRM Compliant COTS SW
COTS HW
  • UNAS
  • RICC

23
Product-Line Architecture
  • Product line
  • Collection of individual products
  • Common architecture asset base
  • Common designs, tools, training
  • Economies of scope
  • Each product is a refinement
  • Engineer only the deltas
  • Domain vs. application engineering?
  • PLA difficulties in DoD?

24
Domain Engineering
  • Related to systems apps engr
  • Class-level problem solving design
  • Associated with family of related systems within
    domain (MIS, C3, RT)
  • Domain knowledge architecture
  • Used to design implement apps
  • Formalized engineering domain knowledge
  • Vertical horizontal domains
  • Product lines megaprogramming

25
Vertical Horizontal Domains
26
Concurrent Domain Application Engineering
27
Example 1 - STARS
  • USAF Space Command demo project
  • Space C2 Architectural Infrastructure
  • SCAI used product line design
  • Megaprogramming reuse (Ch. 9)
  • Parallel domain apps engr processes
  • Performance improvements
  • 50 reuse of software
  • 175 SLOC/mo --gt 1700
  • 3 defects/KSLOC --gt 0.3
  • 140/KSLOC --gt 57

28
Software Analysis Design
  • Process Overview
  • Design Requirements
  • Design Criteria
  • IPO Approach
  • Data Dictionary
  • Generic Design Steps
  • Component Design Attributes
  • S/W Design Specification
  • Component Detail Design Descriptions

29
Process Overview
  • Analysis - of requirements
  • Allocated to software
  • Function, interface, and performance
  • Design
  • From logical architecture interfaces
  • To pseudocode (PDL) test procedure
  • Product
  • Software design spec
  • Use to develop code

30
Design Requirements
  • What needs to be accomplished?
  • Goals
  • Objectives
  • Performance criteria
  • Environmental conditions/constraints
  • Interface requirements
  • Timing requirements
  • User capabilities
  • Performance criteria

31
Design Criteria
  • Documentation quality
  • Testability of requirements
  • Hierarchical structure
  • Modular (hi-cohesion low-coupling)
  • Separate data, procedures, timing
  • Representation supports communication
  • Reusability

32
IPO Approach
System
Inputs
Outputs
Processing
33
Data Repository
  • Database of design information
  • Specifications
  • Data definitions
  • Dataflow diagrams
  • Entity-Relationship diagrams
  • Timing diagrams
  • Objects/attributes/methods/relations
  • Variable/file/document names/locations
  • Risk analysis charts
  • Project team assignments

34
Generic Design Steps
  • Function decomposition (O-O!)
  • Interface definition
  • Operational timeline development
  • Data definition
  • Real-time considerations
  • Consolidation
  • Test procedure development

35
Component Design Attributes
  • Identification type
  • Purpose function
  • Subordinates dependencies
  • Interfaces
  • Resources (H/W S/W)
  • CPU time, memory, buffers, I/O, services
  • Processing
  • Data

36
S/W Design Specification
  • TOC (T 7.2)
  • Introduction references
  • Decomposition (by module)
  • Component detail design descriptions
  • Quality assurance testing
  • Traceability of requirements
  • Appendices
  • Complete design in PDL (pseudocode)
  • S/W parameter updates (size, requirements)
  • Program listing (source object)

37
Component Detail Design Descriptions
  • Structure function
  • Interfaces
  • Program interrupts
  • Timing sequencing
  • Control features
  • Storage allocations application data
  • Detailed design description rationale

38
Interface Definition
  • External interfaces
  • Internal interfaces
  • Architectural considerations
  • Applicable standards

39
Operational Timeline
  • User needs answer
  • System provides answer
  • User completes task

40
Data Definition
  • Entities
  • Relationships
  • Attributes
  • Data types
  • Data ranges
  • Data sources

41
Consolidation
  • Pseudocode/Structured English
  • Basic blocks
  • Flow graph

42
Test Procedure Preparation
  • Requirements traceability
  • Which components satisfy each rqmt?
  • Requirements tests
  • Which components to test each rqmt?
  • Which component paths need testing?
  • Data required
  • What normal inputs are required?
  • What abnormal inputs are required?

43
Structural Complexity
  • Measure of logical complexity
  • Impacts debugging maintenance
  • Also impacts test planning
  • Basic blocks flow diagrams
  • Cyclomatic complexity measure
  • Calculation C E - N 1 S 1
  • E number of edges
  • N number of nodes
  • S number of split nodes

44
Summary
  • Software engineering as attainable goal
  • Architecture
  • Map function/structure
  • High-level design
  • Product line
  • Collection of similar products
  • Common architecture asset base
  • Important element of acquisition strat
  • Some difficulties with DoD implementation
Write a Comment
User Comments (0)
About PowerShow.com