Spe pecia ialty ty Track ack paper: "David Garlan. - - PowerPoint PPT Presentation

spe pecia ialty ty track ack
SMART_READER_LITE
LIVE PREVIEW

Spe pecia ialty ty Track ack paper: "David Garlan. - - PowerPoint PPT Presentation

This presentation is the student's Add ddis is Aba baba Univ niversit ity interpretation of the key IT IT PhD hD pr program Sof oftware Eng Engin ineerin ing messages in the Spe pecia ialty ty Track ack paper: "David


slide-1
SLIDE 1

Add ddis is Aba baba Univ niversit ity IT IT PhD hD pr program Sof

  • ftware Eng

Engin ineerin ing Spe pecia ialty ty Track ack

Software Architecture and Construction

Seminar presentation on “research directions in software architecture”

By Sisay Yemata April 19, 2019

This presentation is the student's interpretation of the key messages in the paper: "David Garlan. Research directions in software architecture. ACM Computing Surveys (CSUR), 27(2):257–261, 1995."

slide-2
SLIDE 2

In Introduction

  • A critical aspect of the design for any large

software system is its high-level organization of computational elements and interactions between those elements.

  • Recently software architecture has begun to

emerge as an explicit field of study for software engineering practitioners and researchers.

2

slide-3
SLIDE 3

Problem statements

  • No single, widely accepted definition of “software

architecture.”

  • The term is used in quite different ways, including:
  • The architecture of a particular system, as in “the

architecture

  • f

this system consists

  • f

the following components,”

3

slide-4
SLIDE 4

cont.…

  • an architectural style, as in “this system adopts a

client-server architecture,” and

  • the general study of architecture, as in “the

papers in this journal are about architecture.”

4

slide-5
SLIDE 5

cont.…

The following definition (developed in a software architecture discussion group at the SEI in 1994) is typical: “The structure

  • f

the components

  • f

a program/system, their interrelationships, and principles and guidelines governing their design and evolution over time.”

5

slide-6
SLIDE 6

Research approach/methods

The researchers use two distinct trends.

  • The first is the recognition that over the years

designers have begun to develop a shared repertoire

  • f methods, techniques, patterns, and idioms for

structuring complex software systems.

  • They permit designers to describe complex systems

using abstractions that make the overall system intelligible.

6

slide-7
SLIDE 7

cont.…

  • The second trend is the concern with exploiting specific

domains to provide reusable frameworks for product families.

  • Such exploitation is based on the idea that common aspects
  • f a collection of related systems can be extracted so that

each new system can be built at relatively low cost by “instantiating” the shared designing

7

slide-8
SLIDE 8

cont.…

Familiar examples include

  • the standard decomposition of a Compiler
  • standardized communication Protocols
  • fourth-generation languages and user interface

toolkits and frameworks

8

slide-9
SLIDE 9

cont.…

  • Generalizing from these trends
  • it is possible to identify three salient distinctions

between software architecture and other areas of computer science

  • Focus of concern:
  • Nature of representation:
  • Design methods versus architecture

9

slide-10
SLIDE 10

cont.…

Focus of concern:

  • The first is between traditional concerns about

design of algorithms and data structures Architectural concerns about the organization of a large system

  • In

particular, software architectural design is concerned with gross organization and global control structure; protocols for communication synchronization, and data access;

10

slide-11
SLIDE 11

cont.…

  • Assignment of functionality to design elements;
  • Physical distribution;
  • Composition of design elements;
  • Scaling and performance; and
  • Selection among design alternative

11

slide-12
SLIDE 12

cont.…

Nature of representation: The second distinction is between system description based on definition-use structure and architectural description based

  • n

graphs

  • f

interacting component.

12

slide-13
SLIDE 13

cont.…

  • The former modularizes a system in terms of source

code, usually making explicit the dependencies between use sites of the code and corresponding definition sites.

  • The latter modularizes a system as a graph, or

configuration, of “components” and “connectors.”

13

slide-14
SLIDE 14

Design methods versus architecture The third distinction is between software design methods—such as

  • bject-oriented

design and structured analysis and software architecture

  • Design methods improve the situation by providing

a path between some class of system requirements and some class of system implementation

14

cont.…

slide-15
SLIDE 15

cont.…

  • Design methods improve the situation by providing

a path between some class of system requirements and some class of system implementation

  • Ideally, a design method defines the steps that take

a system designer from the requirements to a solution.

15

slide-16
SLIDE 16
  • The extent to which such methods are successful
  • ften depends on their ability to exploit constraints
  • n the class of problems they address and the class
  • f solutions they provide

16

cont.…

slide-17
SLIDE 17

cont.…

  • object-oriented methods usually lead to systems

formed out of objects, while others may lead more naturally to systems with an emphasis on dataflow.

  • In contrast, the field of software architecture is

concerned with the space of architectural designs

17

slide-18
SLIDE 18
  • Within this space object-oriented and dataflow

structures are but two of the many possibilities,

  • Architecture

is concerned with the tradeoffs Between the choices in this space —the properties

  • f different architectural designs and their ability

to solve certain kinds of problems.

18

cont.…

slide-19
SLIDE 19

cont.…

Requirements Implementation Requirements Implementation Requirements Implementation Software architecture Any way that works methods

19

slide-20
SLIDE 20

The results of the research

The result of the research are:

  • The distinctions between software architecture

and other areas of computer science.

  • Current research area of software architecture
  • Importance of software architecture

20

slide-21
SLIDE 21

Importance of software architecture

Principled use of software architecture can have a positive impact on at least five aspects of software development. Understanding: Software architecture simplifies our ability to comprehend large systems by presenting them at a level of abstraction at which high-level design can be understood

21

slide-22
SLIDE 22

Importance of software architecture

Reuse: used for reuse components (which component can be integrated) and frameworks Evolution: system maintainers can better understand the ramifications

  • f

change, architectural descriptions can separate functionality from the ways in which a component is connected to (interacts with)

  • ther components.

22

slide-23
SLIDE 23

Importance of software architecture

Analysis: Architectural descriptions provide new

  • pportunities for analysis, including high-level

forms of system consistency checking. Management: There is a strong rationale for making viable software architecture a key milestone in industrial software development.

23

slide-24
SLIDE 24

Conclusion

  • Thus design methods and architectures complement

each other:

  • Behind

most design methods are preferred architectural styles, and

  • Different architectural styles can lead to new design

methods that exploit them.

24

slide-25
SLIDE 25

Current and future soft

software e ar archit itecture rese esearch ar area eas

Current research in software architecture attempts to address all of these issues; among the more active areas are:

  • Architecture description languages address the

need for expressive notation in architectural design and architectural styles.

25

slide-26
SLIDE 26

Current and future so

software ar architecture rese search ar areas

  • Formal underpinnings of software architecture
  • Architectural analysis techniques are being

developed for determining and predicting properties of architectures

  • Application of good architectural design is

becoming increasingly importance for software engineering

26

slide-27
SLIDE 27
  • Much common practice leads to architectural

designs that are informal, ad hoc, unanalyzable, unmaintainable, and handcrafted.

  • Consequently architectural design is only vaguely

understood by developers;

  • Architectural choices are based more on default

than on solid engineering principles:

27

Current and future soft

  • ftware architecture

research areas

slide-28
SLIDE 28

Current and future soft

  • ftware architecture

research areas

  • architectural

designs cannot be analyzed for consistency or completeness; architectures are not enforced as a system evolves.

  • Architectural

development methods become imperative to integrate architectural activities smoothly into the broader methods and processes

  • f software development.

28

slide-29
SLIDE 29

Current and future soft

  • ftware architecture

research areas

  • Architecture recovery and reengineering to handle

legacy code is critical for large systems with long lifetimes

  • Architectural codification and guidance to codify

design expertise so that non experts can use it

29

slide-30
SLIDE 30

Current and future soft

  • ftware architecture

res esearch areas

  • Tools and environments for architectural design to

support architectural design with new tools and environments.

  • Case studies of architectural design, including

retrospective analyses of successful (and sometimes unsuccessful) architectural development,

30

slide-31
SLIDE 31

Current and future soft

  • ftware architecture

res esearch areas

  • Architecture recovery and reengineering to handle

legacy code is critical for large systems with long lifetimes

  • Architectural codification and guidance to codify

design expertise so that non experts can use it.

31

slide-32
SLIDE 32

Thank you for your Attention !!!!

5/14/2019 32