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

Slides:



Advertisements
Similar presentations
Computer Systems & Architecture Lesson 3
Advertisements

Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Lecture # 2 : Process Models
What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 4: Phase Management - Elaboration.
© 2005 Prentice Hall6-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Mastering Object-Oriented Analysis and Design with UML Module 4: Analysis and Design Overview.
OO Development Process. UML and Process UML standardizes notation, not process –Increase likelihood of widespread acceptance There is significant variability.
The Architecture Design Process
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 1.Gain agreement on the problem definition. 2.Understand the root causes 3.Identify the.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Chapter 10: Architectural Design
Design process. Design briefs Investigating Designing Producing Analysing and evaluating Design process wall charts.
[ §4 : 1 ] 4. Requirements Processes II Overview 4.1Fundamentals 4.2Elicitation 4.3Specification 4.4Verification 4.5Validation Software Requirements Specification.
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
Architecture, Implementation, and Testing Architecture and Implementation Prescriptive architecture vs. descriptive architecture Prescriptive architecture:
Romaric GUILLERM Hamid DEMMOU LAAS-CNRS Nabil SADOU SUPELEC/IETR ESM'2009, October 26-28, 2009, Holiday Inn Leicester, Leicester, United Kingdom.
What is Software Architecture?
® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 3: Phase Management - Inception.
USE Case Model.
Chapter 10 Architectural Design
CIS 321—IS Analysis & Design
RUP Requirements RUP Artifacts and Deliverables
UML - Development Process 1 Software Development Process Using UML (2)
CPSC 871 John D. McGregor Module 4 Session 3 Architecture Evaluation.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Architecture Evaluation Evaluation Factors Evaluation by the designer Every time the designer makes a key design decision or completes a design milestone,
The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Software Requirements Engineering: What, Why, Who, When, and How
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
10 Software Architecture CSCU 411 Software Engineering.
Requirements Capture. Four Steps of requirements capture List candidate requirements Understand system context Capture functional requirements Capture.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Design Process for Architecture. Architectural Lifecycle Not all lifecycle plans support Architecture! It is hard to achieve architecture based design.
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
Systems Analysis and Design in a Changing World, Fourth Edition
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 What is Solution Assessment & Validation?
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Business Analysis. Business Analysis Concepts Enterprise Analysis ► Identify business opportunities ► Understand the business strategy ► Identify Business.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Requirement Engineering Virtusa Training Group 2004 Trainer: Ojitha Kumanayaka Duration : 1 hour.
John D. McGregor Architecture Evaluation
UML - Development Process 1 Software Development Process Using UML.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Project Management Processes for a Project Chapter 3 PMBOK® Fourth Edition.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
Training on Safe Hospitals in Disasters Module 3: Action Planning for “Safe Hospitals”
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Statistical process model Workshop in Ukraine October 2015 Karin Blix Quality coordinator
Lecture 15 Attribute Driven Design Again Topics ATAM – team expertise and experience needed Chapter 24 Next Time: June 22, 2016 CSCE 742 Software Architecture.
Lecture 15 Attribute Driven Design Again Topics ATAM – team expertise and experience needed Chapter 24 Next Time: June 22, 2016 CSCE 742 Software Architecture.
Lecture 09 Designing to Satisfy Quality Requirements
Process 4 Hours.
Lecture 12 Attribute Driven Design Again
Chapter 17: Designing an Architecture
TechStambha PMP Certification Training
Chapter 7: Designing the Architecture
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Architecture
Rational Rose 2000 Instructor Notes Use Case Realization Structure
Software Development Process Using UML Recap
Presentation transcript:

Designing an Architecture 1.Design Strategy Decomposition Designing to Architecturally Significant Requirements Generate and Test This generate-and test approach views a particular design as a hypothesis: namely the design satisfies the requirements. Testing is the process of determining whether the design hypothesis is correct. Creating the initial hypothesis Existing systems Frameworks Patterns and tactics Domain decomposition Design checklists Choose the tests The analysis techniques The design checklists The architecturally significant requirements Generating the next hypothesis Terminating the process

Designing an Architecture 2. The Attribute-Driven Design Method ADD is an iterative method, at each iteration do the following Choose a part of the system to design Marshal all the architecturally significant requirements for that part Create and test a design for that part Inputs to ADD: Known ASRs Context description What are the system boundaries of the system being designed? What are the external systems, devices, users, and environmental conditions with which the system being designed must interact? Output of ADD: A set of sketches of architectural views with incremental completeness and details: Module decomposition view Other views according to the design solutions chosen along the way

Designing an Architecture

3. The Steps of ADD Step 1: Choose an element of the system to design For green-field designs, the element to begin with is simply the entire system. The first iteration of ADD will create a collection of elements that together constitute the entire system, based on (high-level) ASRs. A later iteration of ADD will take one of these elements, called chosen element, and design it, resulting in still finer-grained elements. Refinement strategies to pursue with ADD Breadth first: all second-level elements are designed before any the third-level elements, and so forth. Depth first: one downward chain is completed before beginning a second downward chain. Business and technical factors that influence refinement: Personal availability may dictate a refinement strategy Risk mitigation may dictate a refinement strategy Deferral of some functionality or quality attribute concerns may dictate a mixed approach All else being equal, a breadth-first refinement strategy is preferred because it allows to apportion the most work to the most teams soonest.

Designing an Architecture 3. The Steps of ADD Step 2: Identify ASRs for this element To support the design process, the utility tree guides the stakeholders in prioritizing the quality attribute requirements, with the two factors: Business value Architectural impact Step 3: Generate a design solution for the chosen element The heart of the ADD The application of the generate-and-test strategy For the chosen element and identified ASRs, develop a solution by choosing a candidate design approach: architectural patterns, tactics, and design checklists. The design decisions made in this step now become constraints on all future steps of the method.

Designing an Architecture 3. The Steps of ADD Step 4: Verify and refine requirements and create input for the next iteration A test step that applied to the current design for the chosen element. Backtrack: an important requirement was not satisfied and cannot be satisfied by further elaborating this design, which may also be related to the parent element in terms of quality attribute requirements, functional responsibility, and constraint.

Designing an Architecture 3. The Steps of ADD Step 4: Verify and refine requirements and create input for the next iteration Sequence through the quality attribute requirements, responsibilities, and constraints for the chosen element just design. For each one, there is one of 4 resulting possibilities after the sequencing The quality attribute requirement, functional requirement, or constraint has been satisfied. The quality attribute requirement, functional requirement, or constraint is delegated to one of the children. The quality attribute requirement, functional requirement, or constraint is distributed among the children. The quality attribute requirement, functional requirement, or constraint cannot be satisfied with the current design, with 2 solution options: Backtrack: revisit the design to see if the constraint or quality attribute requirement can be satisfied some other way Push back on the requirement to the stakeholder(s) with convincing arguments. Step 5: Repeat steps 1-4 until done

Designing an Architecture 3.The Steps of ADD Step 5: Repeat steps 1-4 until done After steps 1-4, each element has a set of responsibility, a set of quality attribute requirements, and a set of constraint assigned to it. If it is clear that all the requirements are satisfied, then the ADD process should end. The ADD process can be terminated when only a sketch of the architecture is available or more with more detailed levels, depending on trust levels between the architect and the implementation team. More trust, less architecture design details Less trust, more architecture design details Early architecture design can be released before the ADD process terminates, for stakeholder communication and evaluation.