SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr....

32
SWA-1.1 CSE333 Software Architectures Software Architectures Chapter 1: Introduction Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut 371 Fairfield Road, Box U-255 Storrs, CT 06269-2155 [email protected] http://www.engr.uconn.edu/ ~steve (860) 486 - 4818 Copyright © 2002 by S. Demurjian, Storrs, CT.
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    217
  • download

    0

Transcript of SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr....

Page 1: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.1

CSE333

Software ArchitecturesSoftware ArchitecturesChapter 1: IntroductionChapter 1: Introduction

Prof. Steven A. Demurjian, Sr.Computer Science & Engineering Department

The University of Connecticut371 Fairfield Road, Box U-255

Storrs, CT 06269-2155

[email protected]://www.engr.uconn.edu/

~steve(860) 486 - 4818

Copyright © 2002 by S. Demurjian, Storrs, CT.

Page 2: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.2

CSE333

OverviewOverview

Concept Overview and Sample ArchitecturesConcept Overview and Sample Architectures Augmenting Diagrammatic RepresentationsAugmenting Diagrammatic Representations What isWhat is

Science Engineering and Software Engineering?

Concluding RemarksConcluding Remarks

Page 3: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.3

CSE333

Concepts of Software ArchitecturesConcepts of Software Architectures

Exceed Traditional Algorithm/Data Structure Exceed Traditional Algorithm/Data Structure PerspectivePerspective

Emphasize Componentwise Organization and Emphasize Componentwise Organization and System FunctionalitySystem Functionality

Focus on Global and Local InteractionsFocus on Global and Local Interactions Identify Communication/Synchronization Identify Communication/Synchronization

RequirementsRequirements Define Database Needs and DependenciesDefine Database Needs and Dependencies Consider Performance/Scaling IssuesConsider Performance/Scaling Issues Understand Potential Evolution DimensionsUnderstand Potential Evolution Dimensions

Page 4: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.4

CSE333

The HTSS Software ArchitectureThe HTSS Software Architecture

ICICICIC

CRCRCRCR

CRCR

CRCR

ILILILIL

ILIL

SDOSDO

SDOSDO EDOEDO

EDOEDO

OrderOrder

PaymentPayment

ItemItemItemDBItemDBLocalLocalServerServer

Non-LocalClient Int.

InventoryInventoryControlControl

ItemDBItemDBGlobalGlobalServerServer

OrderDBOrderDB

SupplierDBSupplierDB

CreditCardDBCreditCardDB

ATM-BanKDBATM-BanKDB

IL: Item LocatorIL: Item LocatorCR: Cash RegisterCR: Cash RegisterIC: Invent. ControlIC: Invent. ControlDO: Deli Orderer forDO: Deli Orderer for Shopper/EmployeeShopper/Employee

Page 5: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.5

CSE333

The Software Architecture for JavaOS for The Software Architecture for JavaOS for Business Operating System Business Operating System

JSD Manages Config. JSD Manages Config. Info. IncludingInfo. Including Present Devices Instl. System Services User/Group Attrs. Appl. Specific Info.

JSL Loads ServicesJSL Loads Services JDI Interfaces to Device JDI Interfaces to Device

DriversDrivers JPI Device Driver APIJPI Device Driver API JBI Interface for Startup JBI Interface for Startup

and Booting of and Booting of MicrokernelMicrokernel

Event System Similar to Event System Similar to Java EventsJava Events

Page 6: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.6

CSE333

The JavaOS Software ArchitectureThe JavaOS Software Architecture

Page 7: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.7

CSE333

Java Visualization Java Visualization

Page 8: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.8

CSE333

The Multiple Backend Database System The Multiple Backend Database System (MBDS) Software Architecture(MBDS) Software Architecture

DatabaseController

BackendDatabase Processor

BackendDatabaseProcessor

BackendDatabase Processor

Host/User

Page 9: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.9

CSE333

The MBDS ProcessesThe MBDS Processes

Get Msg.Put Msg.

RequestPreparation

Post Processing

Get Msg. Put Msg.

DirectoryManagement

Record Processing

ConcurrencyControl

Disk I/O

DatabaseController

BackendDatabase Processor

Page 10: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.10

CSE333

Multiple Processes in MBDSMultiple Processes in MBDSWhat are MBDS Messages?What are MBDS Messages?

No. Type SRC DST1 New Request Host ReqP2 Results of Request PoPr Host3 Number of Reqs in Transaction ReqP PoPr4 Aggregate Operators (Sum, etc.) ReqP PoPr6 Parsed Request to Backends ReqP DM12 Backend Aggregate Operator Results RecP PoPr15 Ids for Accessing Database Indexes DM DMs16 Request and Disk Addresses DM RecP21 Ids for Accessing Database Records DM CC22 Locks Obtained: Okay to Execute CC RecP23 Request ID of Finished Request RecP CC

Page 11: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.11

CSE333

Multiple Processes in MBDSMultiple Processes in MBDSSample Processing of Retrieve RequestSample Processing of Retrieve Request

Get Msg.Put Msg.

RequestPreparation

Post Processing

Get Msg. Put Msg.

DirectoryManagement

Record Processing

ConcurrencyControl Disk I/O

F15 FromOther

BackendE15 To Backend(s)

A1 B3

C4D6

D6,F15 E15

G21 H22

I16

J23

K12

K12

K12

Page 12: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.12

CSE333

UML Diagrammatic RepresentationsUML Diagrammatic Representations

Component Diagram: Captures the Physical Component Diagram: Captures the Physical Structure of the ImplementationStructure of the Implementation

Deployment Diagram: Captures the Topology of a Deployment Diagram: Captures the Topology of a System’s HardwareSystem’s Hardware

Collaboration Diagram: Captures Dynamic Collaboration Diagram: Captures Dynamic Behavior (Message-Oriented)Behavior (Message-Oriented)

State Chart Diagram: Captures Dynamic Behavior State Chart Diagram: Captures Dynamic Behavior (Event-Oriented)(Event-Oriented)

Activity Diagram: Captures Dynamic Behavior Activity Diagram: Captures Dynamic Behavior (Activity-Oriented)(Activity-Oriented)

Page 13: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.13

CSE333

Component DiagramComponent Diagram

Page 14: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.14

CSE333

Deployment DiagramDeployment Diagram

Page 15: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.15

CSE333

Collaboration DiagramCollaboration Diagram

Page 16: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.16

CSE333

Statechart DiagramStatechart Diagram

Page 17: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.17

CSE333

Activity DiagramActivity Diagram

Page 18: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.18

CSE333

Augmenting Diagrammatic Augmenting Diagrammatic RepresentationsRepresentations

Diagrams are Not Standalone ArtifactsDiagrams are Not Standalone Artifacts Diagrams are Supplemental Tool Diagrams are Supplemental Tool Important Tool in Overall Specification of Important Tool in Overall Specification of

RequirementsRequirements Clear Mapping Between Diagram and SpecsClear Mapping Between Diagram and Specs Initial Diagrams Form Basis forInitial Diagrams Form Basis for

Understanding System Refining and Elaborating Detailing Lower Level Issues

Explanation and Communication Vehicle!Explanation and Communication Vehicle!

Page 19: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.19

CSE333

Software Design LevelsSoftware Design Levels

Architecturally:Architecturally: Modules Interconnections Among Modules Decomposition into Subsystems

Code:Code: Algorithms/Data Structures Tasking/Control Threads

Executable:Executable: Memory Management Runtime Environment

Is this a Realistic/Accurate View?Is this a Realistic/Accurate View?

Page 20: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.20

CSE333

Software Engineering - an Oxymoron?Software Engineering - an Oxymoron?

Is there any Engineering?Is there any Engineering? Is there any Science?Is there any Science? Collection of Disparate Techniques:Collection of Disparate Techniques:

Data-Flow Diagrams E-R Diagrams Finite State Machines Petri Nets UML Class, Object, Sequence, Etc.

What is being “Engineered”?What is being “Engineered”?

Page 21: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.21

CSE333

What is Engineering?What is Engineering?

Practitioners Create Cost-Effective Solutions to Practitioners Create Cost-Effective Solutions to Problems at All Levels of ComplexityProblems at All Levels of Complexity

Some Key Issues: Some Key Issues: Reliability Utilization of Available Technologies Application of Scientific Knowledge Tangible System, Building, Process, etc. “Service of Mankind!”

Engineering might Result in New Scientific Engineering might Result in New Scientific Discoveries Which are then Fed-back into ProcessDiscoveries Which are then Fed-back into Process

Page 22: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.22

CSE333

What about Software Engineering?What about Software Engineering?

What Classifies Successes?What Classifies Successes? What Identifies Failures?What Identifies Failures? Some Key Issues: Some Key Issues:

Does Feedback Occur to Benefit Subsequent Projects for Either Successes or Failures?

Have Successes Generated New Science (Software) that can be Reused?

Is there Enough “Engineering” in Software?Is there Enough “Engineering” in Software? How can we Increase the Rigor and Engineering of How can we Increase the Rigor and Engineering of

Software?Software?

Page 23: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.23

CSE333

Engineering + ScienceEngineering + Science

Synergistic Relationship for SuccessSynergistic Relationship for Success Gains in One Benefit OtherGains in One Benefit Other Influenced by Management and ResourcesInfluenced by Management and Resources Engineering Generates Problems for ScienceEngineering Generates Problems for Science Science Provides Workable Solutions that can be Science Provides Workable Solutions that can be

EngineeredEngineered While Science can Exist in Vacuum, “Good” While Science can Exist in Vacuum, “Good”

Science Needs Application to Prove UtilityScience Needs Application to Prove Utility

Page 24: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.24

CSE333

What's Available to Support Engineering What's Available to Support Engineering of Software?of Software?

Specification (Abstract Models, Algebraic Specification (Abstract Models, Algebraic Semantics)Semantics)

Software Structure (Bundling Representation with Software Structure (Bundling Representation with Algorithms)Algorithms)

Languages Issues (Models, Scope, User-Defined Languages Issues (Models, Scope, User-Defined Types)Types)

Information Hiding (Protect Integrity of Information Hiding (Protect Integrity of Information)Information)

Integrity Constraints (Invariants of Data Integrity Constraints (Invariants of Data Structures)Structures)

Is this up to date? Is this up to date? What else can be Added to List?What else can be Added to List?

Page 25: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.25

CSE333

Engineering Success in ComputingEngineering Success in Computing

Compilers Have Had Great SuccessCompilers Have Had Great Success Originally by Hand Then Compiler Compilers Parser Generators - Lex/Yacc

Solid Science Behind CompilersSolid Science Behind Compilers Regular, Context Free, Context Sensitive

Languages FSAs, PDAs, CFGs, etc.

Science has Provided Engineering Success re. Ease Science has Provided Engineering Success re. Ease and Accuracy of Modern Compiler Writingand Accuracy of Modern Compiler Writing

Page 26: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.26

CSE333

History of ProgrammingHistory of Programming

What have Been Successes?What have Been Successes? C - Still Remains Industry StronghorseC - Still Remains Industry Stronghorse

Separate Compilation Decomposition of System into Subsystems, etc. Shared Declarations

But, Lack of Language Support within Compiler!But, Lack of Language Support within Compiler! For Example, You Can do ADTs in C, But For Example, You Can do ADTs in C, But

Compiler won't Enforce ThemCompiler won't Enforce Them

Page 27: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.27

CSE333

Next GenerationNext Generation

Modula-II and Ada 83 HadModula-II and Ada 83 Had Information Hiding Public/Private Paradigm Module/Package Concepts Import/Export Paradigm

Great Strides in Adding Rigor Enforced by Great Strides in Adding Rigor Enforced by CompilerCompiler

However, Lacking:However, Lacking: Bind/Group Modules into Subsystems Precisely Specify Interconnections and

Interactions Among Subsystems and Components

Page 28: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.28

CSE333

Current GenerationCurrent Generation

C++, Ada95, JavaC++, Ada95, Java How do they Rate?How do they Rate? What Do they Offer that Hasn't been Offered What Do they Offer that Hasn't been Offered

Before?Before? What are Unique Benefits and Potential of Java?What are Unique Benefits and Potential of Java? However, They are notHowever, They are not

Module Interconnection Languages (MILs) Interface Definition Languages (IDLs)

Page 29: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.29

CSE333

What's Next Step?What's Next Step?

Architectural Description LanguagesArchitectural Description Languages Go Beyond MILs to Provide Tools to Describe

Architectures Definition and Communication

Codification of Architectural ExpertiseCodification of Architectural Expertise Frameworks for Specific DomainsFrameworks for Specific Domains DB vs. GUI vs. Embedded vs. C/SDB vs. GUI vs. Embedded vs. C/S Formal Underpinning for Engineering RigorFormal Underpinning for Engineering Rigor

Page 30: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.30

CSE333

Potential Development BenefitsPotential Development Benefits

Recognize Commonalities to Allow New Systems Recognize Commonalities to Allow New Systems to be Built as Variants of Existing Systemsto be Built as Variants of Existing Systems

A Correct SW Architecture Early Benefits Design A Correct SW Architecture Early Benefits Design by Allowing Key Areas to be Understood and by Allowing Key Areas to be Understood and AnalyzedAnalyzed

Leads to Better Designs by SW Engineers when Leads to Better Designs by SW Engineers when Faced with Design Alternatives (with Pros/Cons)Faced with Design Alternatives (with Pros/Cons)

Potential to Server as a Communication Medium Potential to Server as a Communication Medium Between Software Engineers and CustomerBetween Software Engineers and Customer

Page 31: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.31

CSE333

Potential Reuse/Maintenance BenefitsPotential Reuse/Maintenance Benefits

Reuse- By Extending from MILs/IDLs to ADLs, Reuse- By Extending from MILs/IDLs to ADLs, Attempt to Focus on Next Level of Software Attempt to Focus on Next Level of Software ReuseReuse

Leads to Greater Potential for SW Factory Leads to Greater Potential for SW Factory ConceptsConcepts

Improvements During Specification and Design Improvements During Specification and Design Leads to Better Understanding of System, Leads to Better Understanding of System, Documentation, etc.Documentation, etc.

This Yields SW that Can be Learned and This Yields SW that Can be Learned and Understood for Maintenance and EvolutionUnderstood for Maintenance and Evolution

Page 32: SWA-1.1 CSE333 Software Architectures Chapter 1: Introduction Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of.

SWA-1.32

CSE333

Concluding RemarksConcluding Remarks

Successful SW Engineering Must Be Influenced Successful SW Engineering Must Be Influenced Very Strongly by Science/Engineering Interplay to Very Strongly by Science/Engineering Interplay to Upgrade DisciplineUpgrade Discipline

MILs/IDLs a First StepMILs/IDLs a First Step Must Transition to ADLs to Add Rigor to ProcessMust Transition to ADLs to Add Rigor to Process ADLs can Offer ADLs can Offer

Architectural Styles to Speed Development Matching of Problem Statement to Style Case Studies/Experiences of Prior Efforts