Architectural Design.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Design Concepts and Principles
Analysis Modeling.
Design Phase What’s design?
Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Objectives The key roles an architecture description plays in a software project. The key roles an architecture description plays in a software project.
Software Architecture in Practice
Course Instructor: Aisha Azeem
Chapter 10: Architectural Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
What is Software Architecture?
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Engineering Fall 2005
Chapter 10 Architectural Design
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
1 Chapter 14 Architectural Design. 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
CS451 Lecture 13: Architectural Design Chapter 10
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.1.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 Chapter 14 Architectural Design 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Lecture 9: Chapter 9 Architectural Design
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
SOFTWARE DESIGN.
Chapter 13 Architectural Design
Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Design Concepts By Deepika Chaudhary.
Developing Component- Based Systems X LIU, School of Computing, Napier University TIP This chapter discusses the techniques to develop component-based.
ARCHITECTURAL DESIGN. Why is Architecture Important? Representations of software architecture are an enabler for communication between all parties (stakeholders)
Structured Design (Yourdon) ( based on Pressman’s Chapter 14 – 5th edition or Chapter th edition) copyright © 1996, 2001, 2005 R.S. Pressman &
Software Design: Principles, Process, and Concepts Getting Started with Design.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
1 Supplementary Slides for Software Engineering: A Practitioner's Approach, 5/e Supplementary Slides for Software Engineering: A Practitioner's Approach,
Unit III System Models. 2 Objectives To explain why the context of a system should be modelled as part of the RE process To describe behavioural modelling,
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
DESIGN OF SOFTWARE ARCHITECTURE
Architectural Design Introduction Design has been described as a multistep process in which representations of data and program structure,
Software Engineering B.Tech IT/II Sem-II Term: Unit-4 PPT SLIDES Text Books:1.Software Engineering, A practitioner’s approach Roger s. Pressman.
Chapter : 9 Architectural Design
Chapter 13 설계 개념 Architectural Design 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for the book “Software Engineering: A Practitioner’s.
Chapter : 9 Architectural Design. Software Architecture What Is Architecture? The software architecture of a program or computing system is the structure.
1 Chapter : Architecture & User Interface Design.
Unit 5 - S. S. Deshmukh. Architectural design Architectural design represents the structure of data and program components that are required to build.
Architectural Complexity  A useful technique for assessing the overall complexity of a proposed architecture is to consider dependencies between components.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Architectural Design Communicating: Big Picture Holistically Gestalt.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
1 Chapter 2: Architectural Design. 2 Introduction Structure or structures of the system, which comprise software components, the externally visible properties.
Chapter 13 Architectural Design
Architectural Design.
Lecture 9- Design Concepts and Principles
Chapter 13 Architectural Design
Part 3 Design What does design mean in different fields?
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
Chapter 13 Architectural Design
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Chapter 9 Architectural Design
Software Architecture
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Chapter 13 Architectural Design
Chapter 9 Architectural Design.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 10 Architectural Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For.
Presentation transcript:

Architectural Design

Software Architecture The software architecture of a program or computing system is the structure or structures of the system, which comprise the software components, the externally visible properties of those components, and the relationships among them. — Bass. et al.

Why Architecture? Architecture is a representation of a system that enables the software engineer to: analyze the effectiveness of the design in meeting its stated requirements, consider architectural alternatives at a stage when making design changes is still relatively easy, and reduce the risks associated with the construction of the software.

Data Design Architectural level Component level Database design data mining data warehousing Component level Data structure design

Data Design at Component Level The systematic analysis principles applied to function and behavior should also be applied to data. All data structures and the operations to be performed on each should be identified. A data dictionary should be established and used to define both data and program design. Low-level data design decisions should be deferred until late in the design process. The representation of data structure should be known only to those modules that must make direct use of the data contained within the structure. A library of useful data structures and the operations that may be applied to them should be developed. A software design and programming language should support the specification and realization of abstract data types.

Architectural Styles Each style describes a system category that encompasses: a set of components (e.g., a database, computational modules) that perform a function required by a system, a set of connectors that enable “communication, coordination, and cooperation” among components, constraints that define how components can be integrated to form the system, and semantic models that enable a designer to understand the overall properties of a system.

Specific Styles Data-centered architecture Data flow architecture Call and return architecture Object-oriented architecture Layered architecture

Data-Centered Architecture

Data-Flow Architecture

Data-Flow Architecture Pipe and filter pattern has a set of components, called filters Filters are connected by pipes that transmit data from one component to the next. Each filter works independently of those components upstream and downstream, is designed to expect data input of a certain form, and produces data output (to the next filter) of a specified form. The filter does not require knowledge of the working of its neighboring filters.

Call and Return Architecture

Call and Return Architecture Types Main program/subprogram architectures. Remote procedure call architectures.

Object-Oriented Architecture

Layered Architecture

Layered Architecture A number of different layers are defined, each accomplishing operations that progressively become closer to the machine instruction set. At the outer layer, components service user interface operations. At the inner layer, components perform operating system interfacing. Intermediate layers provide utility services and application software functions.

Architectural Patterns (Example domains) Concurrency operating system process management task scheduler Persistence database management system application level persistence Distribution Addresses the manner in which systems or components within systems communicate with on another in a distributed environment.

Architectural Design Architectural context diagrams model how software interacts with external entities Archetypes are classes or patterns that represent an abstraction critical to the system Architectural components are derived from the application domain, the infrastructure, and the interface.

Architectural Context Diagram

SafeHome ACD

Archetypes An Archetype is a class or pattern that represents a core abstraction that is critical to the design of an architecture for the target system. Few archetypes can define relatively complex system. These represent stable elements of the architecture.

SafeHome Archetypes Safehome security function might define following archetypes Node Sensors Alarm indicators Detector Indicator Controller

SafeHome Archetypes Archetypes form the basis for the architecture but are abstractions that must be further refined, as the design proceeds. E.g. Detector might be refined into a class hierarchy of sensors.

Architectural Components As the software architecture is refined into components the structure of the system begins to emerge. Choosing components Application (business) domain From the Analysis Model Infrastructure components Memory management Communication components Database components Task management components Interface Components that process data that flows across the interfaces. (e.g. the interfaces shown in ACD earlier)

SafeHome components Some top level components for SafeHome security function: External Communication management – coordinates communications with external entities such as Internet based systems, external alarm notification. Control panel processing – manages all control panel functionality. Detector management – coordinates access to all detectors attached to the system. Alarm processing – verifies and acts on all alarm conditions.

Component Structure (Top level components)

Component Elaboration Each of these top level components need to be elaborated iteratively and then positioned in the overall SafeHome architecture.

Component Elaboration