CPSC 875 John D. McGregor Wrap-up. Ultimate goal Encapsulate uncertainty, risk, and change We analyze and measure to determine where to form modules.

Slides:



Advertisements
Similar presentations
System Integration Verification and Validation
Advertisements

Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
CPSC 875 John D. McGregor C 8 More Design. Blackboard style.
CPSC 875 John D. McGregor C15 – Variation in architecture.
The Architecture Design Process
Capturing the requirements
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
1 Building with Assurance CSSE 490 Computer Security Mark Ardis, Rose-Hulman Institute May 10, 2004.
Unified Modeling (Part I) Overview of UML & Modeling
Chapter 10: Architectural Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 2 Slide 1 Systems engineering 1.
Systems Engineering Approach to MPS Risk Management Kelly Mahoney Presented at the Workshop for Machine Protection in Linear Accelerators.
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
The Software Development Life Cycle: An Overview
Standards John D. McGregor. But first… SECIE-Safety-in-Software-and-Human- Intensive-Systems-Leveson-brief.pdf.
CSCE 548 Secure Software Development Risk-Based Security Testing.
CPSC 872 John D. McGregor Session 16 Design operators.
An Introduction to Software Architecture
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
10 Software Architecture CSCU 411 Software Engineering.
John D. McGregor Session 2 Preparing for Requirements V & V
Approaching a Problem Where do we start? How do we proceed?
Lecture 7: Requirements Engineering
Delivering results that endure Delivering Results that Endure Managing Risks in the Software Acquisition Process GFIRST Conference June 2007 Stan Wisseman.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
Requirement Handling
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
CPSC 875 John D. McGregor Security-2. A medical platform.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
CPSC 875 John D. McGregor C15 – Variation in architecture.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Smart Home Technologies
CPSC 873 John D. McGregor Session 6 Preparing for Architecture V & V.
Prof. Hany H. Ammar, CSEE, WVU, and
UML - Development Process 1 Software Development Process Using UML.
CPSC 875 John D. McGregor Feedback Control Loop architecture Class 6.
CPSC 872 John D. McGregor Session 31 This is it..
A Brief Introduction to Architectural Modeling Using AADL and Collaborative, Adaptive Cruise Control John D. McGregor Roselane S. Silva.
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.
CpSc 875 John D. McGregor C11 - Documentation. Stock trading system trading-system-architecture- post/#prettyPhoto[slides]/7/
CPSC 875 John D. McGregor C18. Partitions Requirements Need is for an e-commerce system which presents catalog item descriptions and takes orders. The.
CPSC 875 John D. McGregor C16.
John D. McGregor C10 – Error architecture
CSCE 548 Secure Software Development Risk-Based Security Testing
Requirements Analysis Scenes
Systems Analysis and Design With UML 2
CPSC 875 John D. McGregor C16.
HCI in the software process
John D. McGregor C8 - Tactics
QGen and TQL-1 Qualification
CPSC 875 John D. McGregor C19.
Chapter 27 Security Engineering
John D. McGregor Session 6 Preparing for Architecture V & V
HCI in the software process
John D. McGregor Session 5 Error Modeling
An Introduction to Software Architecture
HCI in the software process
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Copyright © 2015, 2012, 2009 Elsevier Inc. All rights reserved.
John D. McGregor C15 – Variation in architecture
Presentation transcript:

CPSC 875 John D. McGregor Wrap-up

Ultimate goal Encapsulate uncertainty, risk, and change We analyze and measure to determine where to form modules or to refactor modules

Architecture definition 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. Structure – static Behavior – Dynamic Relationships – Flows and connections – constraints

Types of architectures Software architecture System architecture Reference architecture Enterprise architecture Logical/physical Definitional/operational

Activities Analysis – understanding problems Design – defining solutions Verification and validation – Is the product correct? – Is this the correct product?

Requirements Functional Non-functional Rationale Traceability Reqspec Use cases Scenarios

Reqspec requirement speed_R1 : "throttle cannot exceed the maximum setting" [ description this " shall have a maximum reading that is less than or equal to maximum setting" rationale "fly by wire may introduce an electrical error beyond the physical throttle setting" value predicate CurrentSpeed < MaximumSpeed mitigates "Invalid data sent by the speedometer" issues "need to recognize that physical subsystems can present issues for a digital system" see goal caccStakeholderGoals.g1 category cc acc cacc quality safety uncertainty[ volatility 2 impact 3 ]

Architecture Description Cartoons Languages – Multi-scale – Support analysis – Strongly typed Environment – OSATE – Performs analysis – Flexible

Process Specify Design Implement Verify These phases are inter-related. Which techniques are used in one phase influence what can be used in another phase.

Specification Start with requirements Reqspec provides a machine readable model It has links into the AADL design model Also, languages such as Agree can be used to both specify and verify assume "time greater than 0": left_toggle_enabled_at >= 0 and left_button_enabled_at >= 0 and right_button_enabled_at >= 0 and right_toggle_enabled_at >= 0; guarantee "launch will not occur if either button is not active": launch = false or (launch = true and left_button_enabled = true and right_button_enabled = true);

Quality attribute workshop Between requirements and design Prioritizes quality attributes Quality attribute scenarios – Context – Stakeholder input

State machine Engine off Engine on CC off CC On Set current speed Maintain current speed Inactive speed set initial timerElapsed apply brake resume engage Resume [setSpeed – currentSpeed< 5mph]/accelerate Recalculate pedal position

Design Process Attribute-driven design Multiple alternatives can be compared Consider both definition and instantiation

Standard structures Module structures – Which piece is responsible for what Component and connector structures – How do the major pieces interact at runtime Allocation structures – Associates pieces of the architecture with pieces of the external environment

Baldwin’s Modularity Operators Any system – Splitting – Substitution Assumes a modular system – Augmenting – Excluding – Inversion – Porting

Design, implementation and verification We used AADL partially because there is a modular, evolving environment An analyzable model scales well. Multi-scale models allow teams to work asynchronously much of the time xText provides the ability to define languages such as Reqspec, Verify, and Assure

Variation The goal of variability in a software product line is to maximize return on investment (ROI) for building and maintaining products over a specified period of time or number of products. An instance of the architecture resolves certain variations Mechanisms – One system definition extends another – A system definition is included or excluded – Subprograms have parameters

Documentation Views and Beyond – Viewpoint – View – ViewPacket Views for all stakeholders Portions of the AADL model can eliminate the need for lots of text in the technical parts of the document

Verification Resolute can verify that specified structure is present It is linked to the Verify activities annex Resolute {**prove(instantiation_is_reachable(this, instances(EventHandler::button_event_threa d)))**};

Safety analysis Look for hazards – Emerging from associated hardware – Propagated from upstream modules Mitigate hazards – Manage flow (propagation) – Define error handlers

Safety and security “System and software assurance focuses on the management of risk and assurance of safety, security, and dependability within the context of system and software life cycles.” Assured by checking explicitly how hazards are being handled. Reuse of error design information such as the hazards in the feedback control loop

lecture-notes/MIT16_63JF12_Class10STPA.pdf

Error ontology

Security Security is the capability of a system to prevent malicious or accidental actions outside of the designed usage, and to prevent disclosure or loss of information. A secure system aims to protect assets and prevent unauthorized modification of information. Confidentiality Integrity Availability

Security Size of attack surface

Technical debt The amount of less than perfect development artfacts grows if not explicitly addressed. Particularly in situations where certain quality requirements is difficult to meet techical debt can have a huge impact.

ISO Functional Safety – Road Vehicles IEC > ISO IEC was not cancelled which means that users of need to be familiar with 61508

Some architecture styles

Feedback/control loop – cyber- physical systems Vehicle speed and acceleration CACC (controller) Driver (controller) actuators sensors Hazard (Hit vehicle)

Message Bus-data production systems

Service Oriented Architecture – looselly coupled systems

N-tier architecture-distributed systems

Event-driven – when events are sporadic

Blackboard – planning or design systems

Integrating Using basic tactics and operators, these basic styles are combined to form architectures AGREE contracts are checked for alignment Resolute constraints are evaluated to ensure Error propagations are checked for continuity

The end I hope this semester has helped you to better understand the issues about and the methods for structuring software-intensive systems. Watch for existing architectures that we did not have time to discuss and for new structures emerging in new types of systems.