John D. McGregor Design Concept C5

Slides:



Advertisements
Similar presentations
Computer Systems & Architecture Lesson 2 4. Achieving Qualities.
Advertisements

Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
Use Case Analysis – continued
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Course Instructor: Aisha Azeem
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?
What is Software Architecture?
Requirements Elicitation. Requirement: a feature or constraint that the system must satisfy Requirements Elicitation: specification of the system that.
CPSC 372 John D. McGregor Module 3 Session 2 Architecture Analysis/Design.
An Introduction to Software Architecture
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
CPSC 875 John D. McGregor C10 – Physical architecture.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Approaching a Problem Where do we start? How do we proceed?
CPSC 372 John D. McGregor Module 2 Session 1 More on requirements and the Investment Decision.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
CPSC 871 John D. McGregor Module 4 Session 1 Architecture Analysis/Design.
John D. McGregor Class 4 – Initial decomposition
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CPSC 875 John D. McGregor Design Concept. Functional decomposition.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
CPSC 871 John D. McGregor Module 6 Session 2 Validation and Verification.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Documenting an Architecture 10 pages, half pictures.
CpSc 875 John D. McGregor Class 4 – Driving requirements.
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
CPSC 872 John D. McGregor Session 31 This is it..
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
CPSC 875 John D. McGregor Design Concept C5. ALISA
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
 The Object Oriented concepts was evolved for solving complex problems. Object- oriented software development started in the 1980s. Object-oriented design.
John D. McGregor C10 – Error architecture
CompSci 280 S Introduction to Software Development
John D. McGregor Module 3 Session 2 Architecture Analysis/Design
Architectural Design Copyright © 2016 – Curt Hill
Operating System Structures
UML Diagrams By Daniel Damaris Novarianto S..
Chapter 4 – Requirements Engineering
COMPONENT & DEPLOYMENT DIAGRAMS
Architecture Concept Documents
Distribution and components
UML Diagrams Jung Woo.
John D. McGregor Session 9 Testing Vocabulary
John D. McGregor Quality attributes
John D. McGregor Session 8 Evaluating Architectures written in AADL
John D. McGregor Session 9 Testing Vocabulary
What is an Architecture?
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Documenting an Architecture
CS223: Software Engineering
Lecture 1: Multi-tier Architecture Overview
Analysis models and design models
Chapter 10 – Software Testing
An Introduction to Software Architecture
Chapter 9 Architectural Design.
Outline Chapter 2 (cont) OS Design OS structure
John D. McGregor Module 6 Session 1 More Design
Software Requirements Specification (SRS) Template.
What is an Architecture?
Design Yaodong Bi.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Use Case Analysis – continued
John D. McGregor C15 – Variation in architecture
ISO/IEC Systems and software Quality Requirements and Evaluation
John D. McGregor Quality attributes
Presentation transcript:

John D. McGregor Design Concept C5 CPSC 8750 John D. McGregor Design Concept C5

Reference architecture

Logical/Physical Separate processes Separate hardware Usually have multiple processes on single hardware element Seldom have single process on multiple hardware Start at the logical level Then conform to physical deployment environment

Static/Dynamic Structures\component definitions are static Component instances are dynamic Flow definitions are static Flow instances are dynamic Modularity is a property of the static Latency is a property of the dynamic

Utility tree http://arnon.me/2012/04/utility-trees-quality-attributes/ A utility tree lists a set of prioritized quality attributes, scenarios about each quality attribute, and a rating for the risk and criticality

Specifications and Interfaces A specification determines what a module can do but nothing about how it does it. a detailed precise presentation of something or of a plan or proposal for something —usually used in plural

Software specifications Usually uses data types as the basic vocabulary Defines operations in terms related to the domain

A wave is the interface of ocean, land, air, and sunlight.

Interfaces An interface is a boundary across which two independent entities meet and interact or communicate with each other. After all, they are not simply the final layer of, say, a piece of metal or liquid in contact with air, but an exceedingly thin region with properties distinct from those of the bulk material on either side. “ As waves reach the shore, the energy in front of the wave slows down due to friction with the shallow bottom.

Principles All elements have interfaces. An element’s interface contains view-specific information. Interfaces are two way.

Signatures A signature deals with the syntactic part of documenting an interface. When an interface’s resources are invokable procedures, each comes with a signature that names the procedure and defines its parameters.

APIs An API, or application programming interface, is a vaguely defined term that people use in various ways to convey interface information about an element. Usually used to refer to a set of signatures

Interface specification An interface specification is a statement of what an architect chooses to make known about an element in order for other entities to interact or communicate with it.

Element Interface Specification Section 1. Interface identity Section 2 Resources provided Section a. Resource syntax Section b. Resource semantics Section c. Resource usage restrictions Section 3. Locally defined data types Section 4. Error handling Section 5. Variability provided Section 6. Quality attribute characteristics Section 7. What the element requires Section 8. Rationale and design issues Section 9. Usage guide

Standard Interfaces Agreement on voltages, pin configurations, grounded or not…

thread receiver features inp: in data port int; flows fsink: flow sink inp ; properties Latency => 2ms..3ms applies to fsink; Dispatch_Protocol => Periodic; Period => 50 ms; Deadline => 10ms; -- The deadline less than the flow spec latency is the latency contribution if schedulable. Compute_Execution_Time => 3 ms .. 7 ms; end receiver;

process psender features outp: out data port int; flows fsource: flow source outp; end psender; process implementation psender.i subcomponents task1: thread sender; connections c1: port task1.outp -> outp; fsource : flow source task1.fsource -> c1 -> outp; end psender.i;

processor core end core; processor implementation core. i end core processor core end core; processor implementation core.i end core.i; system multi_core end multi_core; system implementation multi_core.dual subcomponents cores : processor core.i[2]; end multi_core.dual;

system implementation multi_core system implementation multi_core.quad subcomponents cores : processor core.i[4]; end multi_core.quad; thread task features pin : in event port; pout : out event port; end task; thread implementation task.i end task.i;

process partition features pin : in event port; pout : out event port; end partition; process implementation partition.i subcomponents thr : thread task.i; connections c0 : port pin -> thr.pin; c1 : port thr.pout -> pout; modes normal : initial mode; redundant : mode; end partition.i;

system main end main; system implementation main system main end main; system implementation main.normal subcomponents partitions : process partition.i[2]; cpu : system multi_core.dual; connections c0 : port partitions.pout -> partitions.pin; properties Allowed_Processor_Binding => (reference (cpu.cores[1])) applies to partitions[1]; Allowed_Processor_Binding => (reference (cpu.cores[2])) applies to partitions[2]; end main.normal;

system implementation main system implementation main.redundant subcomponents partitions : process partition.i[2]; cpu : system multi_core.dual; modes normal : initial mode; redundant : mode; properties Allowed_Processor_Binding => (reference (cpu.cores[1]), reference (cpu.cores[2])) applies to partitions[1]; Allowed_Processor_Binding => (reference (cpu.cores[1]), reference (cpu.cores[3])) applies to partitions[2]; Actual_Processor_Binding => (reference (cpu.cores[1])) in modes (normal) applies to partitions[1]; Actual_Processor_Binding => (reference (cpu.cores[2])) in modes (redundant) applies to partitions[1]; Actual_Processor_Binding => (reference (cpu.cores[3])) in modes (normal) applies to partitions[2]; Actual_Processor_Binding => (reference (cpu.cores[4])) in modes (redundant) applies to partitions[2]; end main.redundant;

https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=5939

aadl tutorial http://aadltutorial.com/introduction-to-aadl-and-osate http://www.openaadl.org/post/2013/04/15/aadl-tutorial/ rtg.cis.upenn.edu/hasten/hces04/AADL%20ARO2.ppt

QA Workshop

IEEE Std. 1061 subfactors: Efficiency Portability • Time economy IEEE Std. 1061 subfactors: Efficiency                                    Portability • Time economy                           • Hardware independence • Resource economy                    • Software independence Functionality                               • Installability • Completeness                            • Reusability • Correctness                              Reliability • Security                                    • Non-deficiency • Compatibility                             • Error tolerance • Interoperability                          • Availability Maintainability                           Usability • Correctability                             • Understandability • Expandability                             • Ease of learning • Testability                                  • Operability                                                   • Comunicativeness

Here is what you are going to do Identify a domain on which you would like your project to be based Search out reference architectures for that domain Build an AADL model of one of those architectures Include all constraints Submit your team’s work by 11:59 pm, Feb 6th.