SOFTWARE ARCHITECTURE AND DESIGN

Slides:



Advertisements
Similar presentations
Dr. Rogelio Dávila Pérez
Advertisements

Chapter 2 – Software Processes
Object-Oriented Analysis and Design LECTURE 2: INCEPTION PHASE.
Software Architecture in Practice (3 rd Ed) Introduction The Many Contexts of Software Architecture Architecture in a Technical Context Architectures inhibit.
Outline About author. The problem that discussed in the article.
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Chapter Extension 19 Alternative Development Techniques © 2008 Pearson Prentice Hall, Experiencing MIS, David Kroenke.
What’s the Difference Between Architecture and Design Paul Clements Subrahmanyam Allamaraju.
Software Architecture in Practice
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  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?
The Role of the Architect Kevin Bao Le Comp 684. Outline What is architecture? What does an architect do? Implications for the Architect Architect Competency.
What is Business Analysis Planning & Monitoring?
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
Engineering, Operations & Technology | Information TechnologyAPEX | 1 Copyright © 2009 Boeing. All rights reserved. Architecture Concept UG D- DOC UG D-
Twelfth Lecture Hour 10:30 – 11:20 am, Saturday, September 15 Software Management Disciplines Project Organization and Responsibilities (from Part III,
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Rational Unified Process Fundamentals Module 4: Disciplines II.
The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.
Architecture Business Cycle
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Software Architecture CS3300 Fall Beware the Fuzzy Front End We are already almost 1/3 of the way done Need to negotiate deliverable schedule: SDP.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Large Scale Software Systems Derived from Dr. Fawcett’s Notes Phil Pratt-Szeliga Fall 2010.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Second Hour Lecture 9:30 – 10:20 am, September 8, 2001 Evolution of Software Economics Improving Software Economics (from Chapters 2 and 3 of Royce’ book)
Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
Basic Concepts of Component- Based Software Development (CBSD) Model-Based Programming and Verification.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Software Design: Principles, Process, and Concepts Getting Started with Design.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
Chapter 7 Lecture 1 Design and Implementation. Design and implementation Software design and implementation is the stage in the software engineering process.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
The Software Lifecycle Stuart Faulk. Definition Software Life Cycle: evolution of a software development effort from concept to retirement Life Cycle.
Project Execution Methodology
Chapter 24: Architecture Competence
CS 389 – Software Engineering
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Lecture 17 ATAM Team Expertise
Lecture 9- Design Concepts and Principles
Design and Implementation
Software Engineering (CSI 321)
Chapter 2 – Software Processes
Chapter 2 Software Processes
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Systems analysis and design, 6th edition Dennis, wixom, and roth
Chapter 20 Object-Oriented Analysis and Design
Systems analysis and design, 6th edition Dennis, wixom, and roth
Lecture 9- Design Concepts and Principles
An Introduction to Software Architecture
Software Processes Process should be
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
Software Architecture
Software Design Lecture : 5
From Use Cases to Implementation
Presentation transcript:

SOFTWARE ARCHITECTURE AND DESIGN TAYYABA SANA Lecture#1

Learning Goals Learn key concepts of software design and architecture . Experiencing the software design and architecture design process. Providing insight in best practices and difficulties in software architecture design.

Learning outcomes Rationale for software design Software analysis and design methods Software design models Design principles OO design Design patterns

Learning Outcomes Rationale for software architecture Modeling Software architecture(ADLs). Software architectural views Software architectural documentation Software architecture design method Synthesizing Software architecture Software architecture patterns Evaluation of software architecture

Learning outcomes Modeling method Pattern Evaluation

Project(2-3 member group) Method  Deliverables Select Problem domain Proposal Problem analysis and domain analysis  RS and FS Architectural view modeling  Architectural design Software design models Detailed design Applying architectural /design patterns  improved design Evaluating software architectures  presentation

Rationale for software architecture Marcus Vitruvius polio Author of De Architectura(ten books of architecture) Structure must exhibit three properties strong Usable beautiful

Tools Building a large palace vs building a large software Does any comparison exist?

To build a palace you need Architectural Design Architecture realization Building Architecture

To build a software System Data structures Programmers But can not build without design because of Large Systems(Distributed) Many people work on same problem Complex Millions of lines of codes Budget and time issues etc.

To build a Software you need Architectural Design Architecture realization Building Architecture

SDLC Requirement phase Analysis Design Implementation Testing Where is Architecture?

SDLC Requirement phase  what customer Wants? Architecture Design High level design Analysis What is domain? Design  How? (detailed) Implementation  Do Testing  Test Where is Architecture?

Rationale for software Architecture Abstraction specification Stakeholders communication Coping with evolution Guides software development process Organization of the development project Large scale reuse

Abstraction specifications Abstraction means to View only relevant information Architecture represents high level abstract specification helps to cope with complexity Improves understanding of software system Examples?

Stakeholders Communication Stake holders of a system End users Managers Programmers Architects etc. Architecture is common medium of communication between different stake holders Improves understanding of system between different stakeholders

Coping with evolution Helps dealing with changes and evolution Changes will be limited to abstraction boundaries Balanced between fixed and adaptable parts of the system

Guide for software development process Architecture is explicit Focuses on architectural components Analyze and design based on architectural components

Organization of the development project The architecture influences the organizational structure for development/maintenance efforts Examples include Team divisions Budgeting, planning Work breakdown structures Documentation organization Basis for integration, testing, deployment, maintenance

Large scale reuse Software architecture is abstract specification Represents set of systems Can be reused for systems exhibiting similar structure and requirements Can produce software product lines

Dicussions? Architecture is just paper Architecture Vs. Design Architecture Vs. infrastructure Architecture Vs. Technology Architecture Vs. Structure Architecture -View Architecture Vs. Art

Architecture is just paper… Every System has Architecture ,either Visible or not Architecture eventually resides in executable code A systems' architecture may be visualized in models, which can be executable

Architecture Vs. Design All architecture is design but not vise versa Design Detailed Design High level design

Architecture vs infrastructure Infrastructure is important part of architecture Infrastructure could be a view on architecture Architecture is more than infrastructure

Architecture Vs. Technology Architecture is more than list of products Architecture implementation is shaped by technology Architecture is not directly bound to technology

Architecture Vs. Structure Architecture includes structure but not every structure is architecture Architecture is abstraction of underlying structure Architecture is more than structures.

Architecture-views Architectural is flat only in trivial systems Multiple stakeholder multiple concerns Multiple architectural views Complex systems usually have more than one architectural views

Architecture Vs. Art Complexity is maximum in today’s systems Creative part is minimal in these systems Architecture design is explicit rational activity

Software Architecture In Software Architecture in Practice (2nd edition), Bass, Clements, and Kazman define architecture as follows: “The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. Architecture is concerned with the public side of interfaces; private details of elements—details having to do solely with internal implementation—are not architectural.”