10 Software Architecture CSCU 411 Software Engineering.

Slides:



Advertisements
Similar presentations
Designing an Architecture 1.Design Strategy Decomposition Designing to Architecturally Significant Requirements Generate and Test This generate-and test.
Advertisements

Lecture # 2 : Process Models
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
The Role of Software Engineering Brief overview of relationship of SE to managing DSD risks 1.
Designing the system Conceptual design and technical design
The Architecture Design Process
Presentation by: Martin Hoffman
Establishing the overall structure of a software system
Essential Software Architecture Ian Gorton CS590 – Winter 2008.
Software Architecture in Practice
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Course Instructor: Aisha Azeem
Chapter 10: Architectural Design
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Architectural Design.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
Chapter 10 Architectural Design
What is an Architecture?. An Example? Invoice OrderDelivery Customer.
An Introduction to Software Architecture
The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.
Architecture Business Cycle
University of Utah SoCCS Lecture 61 Architecture – An Introduction CS Lecture 6 Nathan Dykman.
Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the.
RUP Design RUP Artifacts and Deliverables
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architecting Web Services Unit – II – PART - III.
What is Software Architecture? | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,
1 Introduction to Software Architectures Lecture - 3.
SOFTWARE DESIGN.
Software Architecture in Practice Architectural description (The reduced version)
Slide 1 Introduction to Software Architecture TV Prabhakar.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
An Introduction to Software Architecture Software Engineering Lab.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Object Oriented Analysis and Design using the UML CIS 520 Advanced Object-Oriented Design.
Design Concepts By Deepika Chaudhary.
Understanding and using patterns in software development EEL 6883 Software Engineering Vol. 1 Chapter 4 pp Presenter: Sorosh Olamaei.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
PRJ566 Project Planning & Management Software Architecture.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 Click to edit Master title style What is Business Analysis Body of Knowledge?
Chapter : 9 Architectural Design
4+1 View Model of Software Architecture
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Architecting Web Services
Architecture Concept Documents
Architecting Web Services
OO Methodology OO Architecture.
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
What is an Architecture?
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Architecture
An Introduction to Software Architecture
What is an Architecture?
Presentation transcript:

10 Software Architecture CSCU 411 Software Engineering

LEARNING OBJECTIVES To appreciate the role of software architecture in Software development To be able to characterize some Important software architectural styles To be able to distinguish different architectures for one and the same problem situation and recognize how these architectures can be used to evaluate early design decisions To understand the role of design patterns and be able to illustrate their properties

What is Software Architecture It is a vehicle for communication among stakeholders It captures early design decisions It is a transferable abstraction of a system

Influences on Software Architecture The Architecture is influenced by the development organization Architecture is influenced by the background and expertise of the architect Architecture is influenced by its technical and organizational environment

Define Software Architecture Years ago software architecture was defined as: –The architecture of a software system defines that system in terms of computational components and interactions among those components. More recent definition is: –The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible the externally visible properties of those components, and the relationships among them.

Architecture Views for Software Typically at least the following views are recognized: –A conceptual, or logical view, which describes the system in terms of major design elements and their interactions –An implementation view, which gives a view of the system in terms of modules or packages and layers –A Process view which describes the dynamic structure of the system in terms of tasks, processes, their communication, and the –Allocation of functionality to run-time elements. This view is only needed if the system has a significant degree of concurrency; –A deployment view, which contains the allocation of tasks to physical nodes. This view is only needed if the system is distributed.

10.1 AN EXAMPLE: PRODUCING A KWIC-INDEX You want to look up a book with the title “Software engineering should be a compulsory topic” The following titles will be produced for look up. Software engineering should be a compulsory topic engineering should be a compulsory topic Software be a compulsory topic Software engineering should a compulsory topic Software engineering should be compulsory topic Software engineering should be a topic Software engineering should be a compulsory The output is a KWIC-index. KWIC stands for Key Word In Context.

Main Program and Subroutines with Shared Data 1. Read and store the input; 2. Determine all shifts; 3. Sort the shifts; 4. Write out the sorted shifts

Using that Idea Following this line of thought we may distinguish the following modules in our first decomposition: –Module 1: Input This module reads the input then stores it. –Module 2: Shift The shift module is called after all input lines have been read and stored. –Module 3: Sort This module uses the tables produced by modules 1 and 2. and creates a new sorted table. –Module 4: Output The output module uses the tables from modules 1 and 3 to produce a neat output of the sorted shifts. –Module 5: Control The control module does little more than call the other modules in the appropriate order. It may also take care of error messages, memory organization and other bookkeeping duties.

Main Program and Subroutines with Shared Data

Abstract Data Types Module 1: Store Module 2: Input Module 3: Shift Module 4: Sort

Implicit Invocation

Pipes and Filters Pipes are mostly a UNIX thing Input Output

Evaluation

Architectural Styles The classical field of architecture provides some further interesting insights for software architecture. –These insights concern: the notion of architectural style, the relationship between style and engineering, and the relationship between style and materials.

Different Architectural Styles Different engineering principles apply to different architectural styles. –Problem A description of the type of problem this style addresses. –Context A designer will be constrained in the use of a style by certain characteristics of the environment. –Solution A description of tile solution chosen. –Variants Architectural styles give a rather general description. –Examples One should include references to real examples of a style.

Functionality Main guidelines drive the assignment of functionality to layers in Architecture : –Hardware-dependent functionality should be placed in lower-level layers than application- dependent functionality. –Generic functionality should be placed in lower layers than specific Functionality.

Functionality The resulting architecture has four layers: –Operating system –Equipment Maintenance –Logical Resource Management –Service Management

Design Patterns See section 10.3

10.4 VERIFICATION AND VALIDATION Reviews and inspection can be used earlier than previous techniques Scenarios can be used sooner Testing can be developed starting at the skeletal level (can not perform the test but can plan) May be able to do incremental testing

Mid Term