SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.

Slides:



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

Architecture Representation
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
Unified Modeling (Part I) Overview of UML & Modeling
Essential Software Architecture Ian Gorton CS590 – Winter 2008.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Software Architecture in Practice
SE 555 – Software Requirements & Specifications Introduction
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
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.
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?
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
Architecture Tradeoff Analysis Method Based on presentations by Kim and Kazman
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
Chapter 10 Architectural Design
The Design Discipline.
UML - Development Process 1 Software Development Process Using UML (2)
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
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-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
RUP Design RUP Artifacts and Deliverables
Lecture 9: Chapter 9 Architectural Design
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Architecting Web Services Unit – II – PART - III.
SOFTWARE DESIGN.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Chapter 13 Architectural Design
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Lecture 7: Requirements Engineering
Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
GRASP: Designing Objects with Responsibilities
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
TAL7011 – Lecture 4 UML for Architecture Modeling.
Software Design Process
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
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,
PRJ566 Project Planning & Management Software Architecture.
1 آزمايشگاه سيستم های هوشمند ( معماری سيستمهای با مقياس بزرگ آزمايشگاه سيستمهای هوشمند پاييز 93.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CSE 303 – Software Design and Architecture
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Smart Home Technologies
Basic Concepts and Definitions
4+1 View Model of Software Architecture
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Introduction. System Design Hardware/Software Platform Selection Software Architectures Database Design Human-Computer Interaction (HCI) Interface Object.
Systems Architectures System Integration & Architecture.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
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.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
Software Quality Engineering
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Architecture
An Introduction to Software Architecture
Chapter 9 Architectural Design.
Presentation transcript:

SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05

Review Software design methods Design Paradigms Typical Design Trade-offs

Outline Introduction to software architecture Architecture vs Design Architect’s responsibilities Architecture Business Cycle

SOFTWARE ARCHITECTURE

Software Architecture is the description of elements from which system is built, interactions among those elements, patterns that guide their composition, and constraints on the patterns. Considers system as a collection of components and their interactions.

Components & their Interactions Components are such things as clients and servers, databases, layers, etc. Interactions among components can be procedure calls, shared variable access, etc. At the architectural level, we also consider system-level issues such as capacity, consistency, performance, etc.

Software Architecture the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution [IEEE standard 1471–2000 ].

Software Architecture What is the nature of the elements? What are the responsibilities of the elements? What is the significance of the connections? What is the significance of the layout?

Where does architecture design come from? The architecture design representation is derived from the system requirement specification and the analysis model.

Who is responsible for developing the architecture design? Software architects and designers are involved in this process by translating (mapping) the software system requirements into architecture design.

Why is software architecture design so important? A poor design may result in a deficient product that – does not meet system requirements, – is not adaptive to future requirement changes, – is not reusable, – exhibits unpredictable behavior, or – performs badly.

When is software design conducted? Software design is an early phase of the Software Development Life Cycle (SDLC).

What is the outcome of the software architecture design? Simply put, it is an overall representation of the software to be built. A complete software architecture specification must describe not only – the elements and connectors between elements, but also the – constraints and runtime behaviors so that developers know what and how the design should be implemented.

ARCHITECTURE AND DESIGN

Architecture vs. Design “All architecture is design, not all design is architecture”. Architectural design is outward looking Focus on stakeholders, not technology Architecture doesn't describe the complete characteristics of components – Design does.

CODE implementation design architecture

Software Architecture in Context

ARCHITECT’S TASKS

Architectural influences Influences – System Stakeholders – Developing organization – Architects’ background and experience – Technical environment Precautionary measures – Know your constraints – Early engagement of stakeholders

Influences on the architecture

The Architecture Business Cycle

AN ARCHITECT’S TASKS Perform static partition and decomposition of a system into subsystems and communications among subsystems. – A software element can be configured, delivered, developed, and deployed, and is replaceable in the future. – Each element's interface encapsulates details and provides loose coupling with other elements or subsystems.

AN ARCHITECT’S TASKS Establish dynamic control relationships among different subsystems in terms of data flow, control flow orchestration, or message dispatching. Consider and evaluate alternative architecture styles that suit the problem domain at hand.

AN ARCHITECT’S TASKS Perform tradeoff analysis on quality attributes and other nonfunctional requirements during the selection of architecture styles. – For example, in order to increase a distributed system's extensibility, portability, or maintainability, software components and Web services may be the best choice of element types, and a loose connection among these elements may be most appropriate.

ARCHITECTURE BUSINESS CYCLE

Architecture Business Cycle (ABC) Software architecture is a result of technical, business and social influences. These are in turn affected by the software architecture itself. This cycle of influences from the environment to the architecture and back to the environment is called the Architecture Business Cycle (ABC).

ABC Activities Creating the business case for the system – Why we need a new system, what will be its cost? Time to market, integration with existing systems? Understanding the Requirements – Various approaches for requirements elicitation i.e., object-oriented approach, prototyping etc. – The desired qualities of a system shape the architectural decisions – architecture defines the tradeoffs among requirements Creating/selecting the architecture

ABC Activities … Communicating the architecture – Inform all stakeholders (i.e., developers, testers, managers, etc.) – Architecture’s documentation should be unambiguous Analysing or evaluating the architecture – Evaluate candidate designs – Architecture maps the stakeholders’ requirements/needs Implementation based on architecture Ensuring conformance to an architecture

Summary Introduction to software architecture Architecture vs Design Architect’s responsibilities Architecture Business Cycle