13 Architectural Design

19
 Architectural Design Lecture-7 1 Software Engineering 

Transcript of 13 Architectural Design

Page 1: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 1/19

 Architectural Design

Lecture-7

1Software Engineering 

Page 2: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 2/19

Overview 

Announcements, Review

Creating an Architectural Design

2Software Engineering 

Page 3: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 3/19

 Announcements, Review 

DD-1 assignment

- (due next week before labs)

Design patterns

- lab tasks

3Software Engineering 

Page 4: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 4/19

Review 

Software Design- Translating Analysis model into Design model

- Characteristics of Good Design

- Measuring Design Quality (FTR, FURPS)

- Design Concepts (abstraction, patterns, modularity, etc.)

- Design Model

4Software Engineering 

Page 5: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 5/19

 Architectural Design

What is it?

Who does it?

Why is it important?

5Software Engineering 

Page 6: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 6/19

Software Architecture

Software architecture must model the structure of asystem and the manner in which data and proceduralcomponents collaborate with one another.

Benefits?

Software components (OO class to DB)

Architectural Model (Gestalt view)

“The architecture of a system is a comprehensive framework that describes its form and structure  – its 

components and how they fit together .” 

Jerrold Grochow

6Software Engineering 

Page 7: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 7/19

Data Design

Architectural level- Files and databases

- Data mining techniques (KDD)

- Data warehouses

Component level-

Data structures- Data design principles

7Software Engineering 

Page 8: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 8/19

 What principles are applicable to

data design?

1. Systematic analysis

2. All data structures and operations should beidentified

3. Stepwise refinement

4. Limited access/knowledge of data structure

5. Library

6. Software design and PL support for abstractdata types

8Software Engineering 

Page 9: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 9/19

 Architectural Styles and Patterns

Style- Transformation imposed on the design of an entire system

- To establish a structure for all components of the system

- Sets of components and connectors, and constraints

Pattern- Scope is less broad (one aspect of architecture)

-

Describes how software will handle some aspect of its functionalityat the infrastructure level (e.g. concurrency)

- Address specific behavioral issues (e.g. how a real-time applicationhandles synchronization or interrupts)

9Software Engineering 

Page 10: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 10/19

10Software Engineering 

Page 11: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 11/19

 Architectural Styles

11Software Engineering 

Page 12: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 12/19

 Architectural Styles (cont)

Data-centered architecture

Data-flow

Call and return

Object-oriented

Layered

12Software Engineering 

Page 13: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 13/19

 Architectural Patterns

A software architecture may have a numberof architectural patterns that address issuessuch as

- Concurrency (OS, task scheduler),

- Persistence (DBMS, app level),

- And distribution (broker pattern, e.g. CORBA).

13Software Engineering 

Page 14: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 14/19

Organization and Refinement

Define a set of design criteria

How to assess an architectural style?

Control- How is it managed?

- Any control hierarchy?

- Role of components?

Data- How is it communicated between components?

- Flow is continuous or sporadic?

- Mode of data transfer?

14Software Engineering 

Page 15: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 15/19

 Architectural Context

Represents how the software interacts withentities external to its boundaries

- Superordinate systems

- Subordinate

- Peer-level

- actors

15Software Engineering 

Page 16: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 16/19

 Architectural Context Diagram

16Software Engineering 

Page 17: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 17/19

In-class Exercise

Draw an ACD for your team project.

Software Engineering  17

Page 18: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 18/19

Refining the Architecture into

Components Begins with the classes from analysis model

If a conventional (non-OO) approach is chosen,can be derived from data flow model

Infrastructure domain (e.g. memory mgnt,communication, db, and task mgnt components)

“The structure of a software system provides the ecology in which 

code is born, matures, and dies. A well-designed habitat allows for 

the successful evolution of all the components in a software 

system.”  

R. Pattis

18Software Engineering 

Page 19: 13 Architectural Design

7/31/2019 13 Architectural Design

http://slidepdf.com/reader/full/13-architectural-design 19/19

Software Tools

Architectural Design tools model the overallsoftware structure by representingcomponent interfaces, dependencies and

relationships, and interactions.

- Adalon (www.synthis.com)  – for Web-based components

- ObjectiF (www.microtool.com)  – UML-based design tool for

component-based architectures (e.g. Coldfusion, J2EE, Fusebox)

- Rational Rose (www.rational.com)

19Software Engineering