Abstraction Patterns in Model-Based Engineering
|
|
- Solomon Atkinson
- 5 years ago
- Views:
Transcription
1 Abstraction Patterns in Model-Based Engineering Bran Selic Malina Software Corp., Canada Zeligsoft (2009) Ltd., Canada Simula Research Labs, Norway University of Toronto, Canada Carleton University, Canada
2 What is Abstraction? A human defence mechanism for coping with overwhelming complexity Often, it is our only mechanism for dealing with complexity SYSTEM 2
3 Abstraction: A Fundamental Engineering Skill The ability to see the forest (i.e., the system as a whole) despite the trees (i.e., technological detail) It seems to be less common than people might expect...particularly among software people Many programmers but few architects Agile development and big design perceived as mutually exclusive E.g., M. Fowler: Is design dead? Requires an interest in and a concern for the system and its purpose (users) Can abstraction be taught? 3
4 Background: Definitions ABSTRACTION: A process by which higher concepts are derived from the usage and classification of literal ( real or concrete ) concepts, first principles, and/or other abstractions [Wikipedia] ABSTRACTION (computer science): a mechanism and practice to reduce and factor out details so that one can focus on a few concepts [Wikipedia] Two approaches: Relaxionist: By weakening of constraints Reductionist: By removing irrelevant detail Relevance is a function of viewpoint (set of concerns) 4
5 For Our Purposes... ABSTRACTION : Selective reduction of information of a system which preserves its salient properties relative to a given set of concerns Refinement is the inverse process In engineering: abstraction modeling 5
6 Engineering Models ENGINEERING MODEL: A selective representation of some system that captures accurately and concisely all of its essential properties of interest for a given set of concerns We don t see everything at once What we do see is adjusted to human understanding 6
7 Why Do Engineers Build Models? To understand the interesting characteristics of an existing or desired (complex) system and its environment To predict the interesting characteristics of the system by analysing its model(s) To communicate their understanding and design intent (to others and to oneself!) To specify...the implementation of the system (models as blueprints) 7
8 The Trouble with Models The devil is in the details Leaving out something crucial Underestimating its relevance Accidental oversight Inaccurate and untrustworthy models Exacerbated by the common practice of NOT documenting the abstraction process 8
9 Characteristics of Useful Engineering Models Purposeful: Constructed to address a specific set of concerns/audience Abstract Emphasize important aspects while removing irrelevant ones Understandable Expressed in a form that is readily understood by observers Accurate Faithfully represents the modeled system Predictive Can be used to answer questions about the modeled system Cost effective Should be much cheaper and faster to construct than actual system To be useful, engineering models must satisfy at least these characteristics! 9
10 What About Software Modeling? PH reached X start Current PH Monitor PH Control PH stop Raise PH Input valve control bubbles and arrows, as opposed to programs, never crash -- B. Meyer UML: The Positive Spin American Programmer,
11 The Prevalent Attitude to Modeling We don t do modeling here...it s a waste of time But... 11
12 Modern Model-Based Software Engineering Models can be refined continuously until the application is fully specified the model becomes the system that it was modeling! start «sc_method» producer out1 producer void generate_data() {for (int i=0; i<10; i++) {out1 = i;}} producer NotStarted start Started refine NotStarted start /generate_data( ) Started St1 St2 12
13 A Unique Feature of Software A software model and the software being modeled share the same medium the computer Which also happens to be our most advanced and most versatile automation technology Software has the unique property that it allows us to directly evolve models into implementations without fundamental discontinuities in the expertise, tools, or methods! High probability that key design decisions will be preserved in the implementation and that the results of prior analyses will be valid 13
14 The Model-Based Engineering (MBE) Approach An approach to system and software development in which software models play an indispensable role Based on two time-proven ideas: (1) ABSTRACTION (2) AUTOMATION S1 e3/action3 S1 e3/action3 Realm of modeling languages e1/action1 S2 S3 e2/action2 e1/action1 S2 S3 e2/action2 Realm of tools switch (state) { case 1:action1; newstate( 2 ); break; case 2:action2; newstate( 3 ); break; case 3:action3; newstate( 1 ); break;} switch (state) { case 1:action1; newstate( 2 ); break; case 2:action2; newstate( 3 ); break; case 3:action3; newstate( 1 ); break;} 14
15 But, if the Model is the System do we not lose the abstraction value of models? producer void generate_data() {for (int i=0; i<10; i++) {out1 = i;}} NotStarted start Started St1 St2 /generate_data( ) The computer offers a uniquely capable abstraction device: Software can be represented from any desired viewpoint at any desired level of abstraction The abstraction is inside the system and can be extracted automatically Provided that the abstraction process is tracked and recorded 15
16 Successive Levels of Abstraction Higher-level models are needed at all times both during and following development Not just during design For maintenance and system evolution Level N Model Level N-1 Model... refinement refinement Implementation (L0) Model 16
17 Tracking Refinement/Abstraction If the relationships between models at different levels of abstraction are explicitly tracked and recorded, it is possible to: Validate the abstraction/refinement steps Reconstruct (automatically) an abstract model from a more concrete one Level N Model Level N-1 Model... abstraction refinement abstraction refinement Implementation (L0) Model 17
18 The Abstraction Patterns Catalogue A starter catalogue to be used by architects and developers Precise definition of patterns expressed using a graph-based formalism (featured graphs) Suitable for various graph-based modeling languages such as UML Patterns for: Structure Behaviour Also included are temporal patterns 18
19 A Useful Formalism: Featured Graphs Nodes: structural or behavioural components n 1 p 1 3 p 2 1 n 2 {f 2 1, f 2 2,...} p 1 1 {f 1 1, f 1 2,...} e 12 {f 12 1, f 12 2,...} p 2 2 p 1 2 Features: fine-grained attributes e 13 {f 23 1, f 23 2,...} Edges: information flows, communication channels FG = <Nodes, Edges> n Nodes; n = <id, Ftrs(n), Pins(n)> e Edges; e = <id, Ftrs(e), Srcs(e), Dests(e)> p 3 1 p 3 2 n 3 {f 3 1, f 3 2,...} p 3 3 Pins: connection points (e.g., ports, pins) 19
20 Abstraction/Refinement Patterns Patterns used by architects and designers Each pattern consists of a refinement graph, an abstract graph, and a formally defined set of mappings between them Pattern = <RefGraph, Mappings, AbsGraph> Each mapping is a pair comprising a single AbsGraph element and a corresponding RefGraph element refelem RefGraph mapping Mappings mapping = <abselem, refelem> abselem AbsGraph Each refgraph element is covered by a mapping to ensure that nothing is overlooked 20
21 Structural Pattern: Black Box Based on a common meta-pattern that appears in different forms in both structure and behaviour modeling Synthesizes a network of tightly-coupled concrete components and renders them as a single high-level component Cross-over connectors map to a port-connector combination cx1 e 1 Glass Box gb' p 1 p 2 c2 e 2 abstraction cx2 Everything fully inside the box maps to a single abstract component cx1 e 1 c1 e p 1 c3 2 p 2 cx2 c4 21
22 Structural Pattern: Black Line Abstracts a collection of elements realizing a communications path into a single edge (connector) Could be multipoint Cross-over connectors map to connector end points A B abstraction Everything fully inside the box maps to a single abstract connector Connector Glass Box e A 1 e C1 2 e C2 3 C3 e 4 C4 e 5 B 22
23 Structural Pattern: Cable Group of connectors between that share the same source and sink components All concrete connectors map to a single high-level connector AbsCmp1 e' abstraction AbsCmp2 Apply Pattern RefCmp1 e 1 e 2 e 3... RefCmp2 e n 23
24 Structural Pattern: Port Group Multiple concrete ports (possibly different types) merged into a single abstract port Often combined with Cable pattern AbsCmp p' abstraction p 1 RefCmp p 2 p 3... p n 24
25 A Common Structural Pattern: Layering What does it actually mean? Caster Blooper Geezer Super Framework Glooger Sneezer Dooper Framework Bizbaz FOO POO PURR RUF GRUMP 25
26 Platform Layering Distinguishing characteristics Upper layer: realizes some higher-level functionality Lower layer: a set of potentially shared services used to implement the upper layer = platform Example: Upper layer entities depend on the services of the platform layer for their implementation Application 1 Application 2 a11 a12 a21 a22... File System Multitasking System IPC System... Operating Platform System Lower layer entities do not depend on the upper layer entities, but do participate in their implementation 26
27 Structural Pattern: Platform Layering A composition of multiple pattern applications Cable pattern for cross-over connectors (usually not shown) e' app plat Black Box pattern Black Box pattern for application and for application and platform platform layers components abstraction Application Glass Box a1 e 1 a2 b2 e 5 b1 e 7 e 2 e 4 e 6 serva e 6 servc e3 servb Platform Glass Box 27
28 The Semantics of Layering Layering requires distinguishing between two categories of interfaces Implementationspecific interfaces (service access points) Implementationindependent (service) interfaces Application Glass Box a1 e 1 a2 b2 e 5 b1 e 7 e 2 e 4 e 6 serva e 6 servc e3 servb Platform Glass Box 28
29 The 3-Dimensional Component Model Peer interface Service Servce Access Points To understand the capabilities of a black-box component it is sufficient to know its interface This may mean that we have to know its layer interfaces as well 29
30 The Dimensions of Layering In most systems, layering is a complex multidimensional relationship Real systems cannot be described by a single vertical layer stack Level 7 Level 6 Level 5 Level 4 Network Link Hardware Operating system 30
31 Failed Representations of Layering Staircase model Toaster model Application Specialized Services General Services Operating System 31
32 Behavioural Pattern: Summary Message (1) A high-level message abstracts a low-level protocol Syntactically equivalent to the Cable pattern Caller Phone System Initiate Call abstraction Caller Phone System Off Hook Dialtone 1 st Digit 2 nd Digit... Last Digit Ringtone 32
33 Hybrid Pattern: Layered Communication Combination of structural and behavioural patterns a' m' b' This connector is not shown in this diagram but is in the abstract model abstraction Glass Box A Connector Glass Box Glass Box B a1 a2 c1 c2 b2 b1 m1 m2 m3 m6 m4 m5 Glass Box m 33
34 Behavioural Pattern: Summary State Syntactically similar to the Black Box pattern t6 S5 t1 S1 AbsS May involve the Summary Message pattern S1 abstraction t1 S2 t5 S5 t2 t6 S3 t4 S4 Glass State 34
35 Behavioural Pattern: Group Transition Involves a Summary State pattern followed by a syntactical equivalent of the structural Cable pattern t' S1 S e' abstraction t e1 S2 S1 t e2 S3 t e3 S4 35
36 Behavioural Pattern: Summary Activity Syntactical equivalent of Black Box f1 AbsA f2 A1 A6 abstraction Glass Activity A3 A1 f1 A2 f2 A6 A4 A5 36
37 Temporal Abstraction Patterns For reducing the complexity of time Not inherently graph based Time Compression Duration abstracted as an instant Logical Time Duration abstracted away entirely Only time order is preserved Discrete Time Time discretized into equidistant intervals Often combined with time compression: all behaviour is compressed to the instant when the current interval ends 37
38 Summary Abstraction is the primary tool for dealing with overwhelming complexity With model-based engineering methods, we are taking greater advantage of the power of abstraction in software development but, the actual process involved is rarely documented Difficult to identify faulty abstractions and faulty refinements and difficult to reconstitute abstract views of an implemented system A formalism for describing the abstraction process combined with a catalogue of widely used and proven abstraction patterns can help us mitigate and possibly eliminate these issues 38
39 THANK YOU QUESTIONS, COMMENTS, ARGUMENTS... 39
Modeling Software Architectures with UML 2
Modeling Software Architectures with UML 2 Bran Selic IBM Distinguished Engineer IBM Canada 2006 IBM Corporation Outline IBM Rational Software On Software Architecture and MDD Requirements for Modeling
More informationModel-Driven Development: Its Essence and Opportunities
IBM Software Group Model-Driven Development: Its Essence and Opportunities Bran Selic IBM Distinguished Engineer IBM Rational Software Canada bselic@ca.ibm.com Clic kto A Bit of Modern Software SC_MODULE(producer)
More informationThe Theory and Practice of Modeling Language Design Теорија и пракса пројектовања језика за моделирањe софтверских система
The Theory and Practice of Modeling Language Design Теорија и пракса пројектовања језика за моделирањe софтверских система Бранислав Селић Malina Software Corp., Canada Zeligsoft (2009) Ltd., Canada Simula
More informationSoftware Design Fundamentals. CSCE Lecture 11-09/27/2016
Software Design Fundamentals CSCE 740 - Lecture 11-09/27/2016 Today s Goals Define design Introduce the design process Overview of design criteria What results in a good design? Gregory Gay CSCE 740 -
More informationArchitectural Decomposition & Representations Reid Holmes
Architectural Decomposition & Representations Reid Holmes What is SW architecture? Definition: Blueprint for construction and evolution. Encompasses: Structure Behaviour The set of principal design decisions
More informationWeb Services Annotation and Reasoning
Web Services Annotation and Reasoning, W3C Workshop on Frameworks for Semantics in Web Services Web Services Annotation and Reasoning Peter Graubmann, Evelyn Pfeuffer, Mikhail Roshchin Siemens AG, Corporate
More informationDescribing Information Systems Moving Beyond UML
Describing Information Systems Moving Beyond UML Eoin Woods Artechra eoin@artechra.com Nick Rozanski Artechra nick@artechra.com Timetable 10:00-10:10 Introductions 10:10-10:25 - Presentation: Architectural
More informationHybrid Agent-Landscape Model Composition
Hybrid Agent-Landscape Model Composition Gary Mayer, Hessam Sarjoughian, Eowyn Allen Presented at the 1 st CSE Student Research Expo Hybrid Agent-Landscape Models Hybrid : both the human and environmental
More informationCS64 Week 5 Lecture 1. Kyle Dewey
CS64 Week 5 Lecture 1 Kyle Dewey Overview More branches in MIPS Memory in MIPS MIPS Calling Convention More Branches in MIPS else_if.asm nested_if.asm nested_else_if.asm Memory in MIPS Accessing Memory
More informationWeek. Lecture Topic day (including assignment/test) 1 st 1 st Introduction to Module 1 st. Practical
Name of faculty: Gaurav Gambhir Discipline: Computer Science Semester: 6 th Subject: CSE 304 N - Essentials of Information Technology Lesson Plan Duration: 15 Weeks (from January, 2018 to April, 2018)
More informationModeling Real-Time System Architectures with UML 2.0
Modeling Real-Time System Architectures with UML 2.0 Bran Selic Principal Engineer IBM Software Group Rational Software bselic@ca.ibm.com Objectives Define architecture and its role in software design
More informationUML Diagrams MagicDraw UML Diagrams
In software development, the diagram is the equivalent of a blueprint. To meet the various needs of many parties, we often need several different blueprints of the same system. Furthermore, every system
More informationLesson 11. W.C.Udwela Department of Mathematics & Computer Science
Lesson 11 INTRODUCING UML W.C.Udwela Department of Mathematics & Computer Science Why we model? Central part of all the activities We build model to Communicate Visualize and control Better understand
More informationSYSTEM MODELING Introduction
SYSTEM MODELING Introduction 2015-09-14 François Terrier 1 FIRST WHAT IS A SYSTEM? Complex and heterogeneous systems responding to real-world events Human interactions Embedded system Software + Computers
More informationAn Information Model for High-Integrity Real Time Systems
An Information Model for High-Integrity Real Time Systems Alek Radjenovic, Richard Paige, Philippa Conmy, Malcolm Wallace, and John McDermid High-Integrity Systems Group, Department of Computer Science,
More informationUNIT-IV BASIC BEHAVIORAL MODELING-I
UNIT-IV BASIC BEHAVIORAL MODELING-I CONTENTS 1. Interactions Terms and Concepts Modeling Techniques 2. Interaction Diagrams Terms and Concepts Modeling Techniques Interactions: Terms and Concepts: An interaction
More informationPROCESSES AND THREADS
PROCESSES AND THREADS A process is a heavyweight flow that can execute concurrently with other processes. A thread is a lightweight flow that can execute concurrently with other threads within the same
More informationSoftware Architecture
Software Architecture Architectural Design and Patterns. Standard Architectures. Dr. Philipp Leitner @xleitix University of Zurich, Switzerland software evolution & architecture lab Architecting, the planning
More informationiserver Free Archimate ArchiMate 1.0 Template Stencil: Getting from Started Orbus Guide Software Thanks for Downloading the Free ArchiMate Template! Orbus Software have created a set of Visio ArchiMate
More informationArchitectural Decomposition Reid Holmes
Material and some slide content from: - Emerson Murphy-Hill - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture - Steve Easterbrook Architectural Decomposition
More informationBusiness Process Modelling
CS565 - Business Process & Workflow Management Systems Business Process Modelling CS 565 - Lecture 2 20/2/17 1 Business Process Lifecycle Enactment: Operation Monitoring Maintenance Evaluation: Process
More informationchallenges in domain-specific modeling raphaël mannadiar august 27, 2009
challenges in domain-specific modeling raphaël mannadiar august 27, 2009 raphaël mannadiar challenges in domain-specific modeling 1/59 outline 1 introduction 2 approaches 3 debugging and simulation 4 differencing
More informationUML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram
UML Fundamental NetFusion Tech. Co., Ltd. Jack Lee 2008/4/7 1 Use-case diagram Class diagram Sequence diagram OutLine Communication diagram State machine Activity diagram 2 1 What is UML? Unified Modeling
More informationService-Oriented Architecture
Service-Oriented Architecture The Service Oriented Society Imagine if we had to do everything we need to get done by ourselves? From Craftsmen to Service Providers Our society has become what it is today
More informationSimulative Evaluation of Internet Protocol Functions
Simulative Evaluation of Internet Protocol Functions Introduction Course Objectives & Introduction Performance Evaluation & Simulation A Manual Simulation Example Resources http://www.tu-ilmenau.de/fakia/simpro.html
More informationFundamentals to Creating Architectures using ISO/IEC/IEEE Standards
Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards What to Architect? How to Architect? IEEE Goals and Objectives Chartered by IEEE Software Engineering Standards Committee to: Define
More informationSummary of the course lectures
Summary of the course lectures 1 Components and Interfaces Components: Compile-time: Packages, Classes, Methods, Run-time: Objects, Invocations, Interfaces: What the client needs to know: Syntactic and
More informationAvancier Methods (AM) CONCEPTS
Methods (AM) CONCEPTS Mapping generic ArchiMate entities to and TOGAF meta model entities It is illegal to copy, share or show this document (or other document published at ) without the written permission
More information2 nd UML 2 Semantics Symposium: Formal Semantics for UML
2 nd UML 2 Semantics Symposium: Formal Semantics for UML Manfred Broy 1, Michelle L. Crane 2, Juergen Dingel 2, Alan Hartman 3, Bernhard Rumpe 4, and Bran Selic 5 1 Technische Universität München, Germany
More informationSUMMARY: MODEL DRIVEN SECURITY
SUMMARY: MODEL DRIVEN SECURITY JAN-FILIP ZAGALAK, JZAGALAK@STUDENT.ETHZ.CH Model Driven Security: From UML Models to Access Control Infrastructres David Basin, Juergen Doser, ETH Zuerich Torsten lodderstedt,
More informationMAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified)
Subject Code: 17630 Model Answer Page No: 1 /32 Important Instructions to examiners: 1) The answers should be examined by keywords and not as word-to-word as given in the model answer scheme. 2) The model
More informationToday s Agenda UML. CompSci 280 S Introduction to Software Development. 1.Introduction UML Diagrams. Topics: Reading:
CompSci 280 S2 2107 Introduction to Software Development Today s Agenda Topics: Introduction Activity Diagram Object interaction Sequence Diagram Reading: Booch G.,The Unified Modeling Language User Guide,
More informationWhere are we going? EEC 521: Software Engineering. A Note on Quality. What is Design? Introduction to Design. Our focus
Where are we going? Many levels of design: EEC 521: Software Engineering Introduction to Our focus Method Class/Component Subsystem GUI Data Format Architectural 10/6/09 EEC 521: Software Engineering 1
More informationPatterns Of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler)) PDF
Patterns Of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler)) PDF The practice of enterprise application development has benefited from the emergence of many new enabling technologies.
More informationIntroduction to Software Engineering. 6. Modeling Behaviour
Introduction to Software Engineering 6. Modeling Behaviour Roadmap > Use Case Diagrams > Sequence Diagrams > Collaboration (Communication) Diagrams > Activity Diagrams > Statechart Diagrams Nested statecharts
More informationPieter van den Hombergh. Fontys Hogeschool voor Techniek en Logistiek. September 9, 2016
Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek September 9, 2016 Contents /FHTenL September 9, 2016 2/35 UML State Uses and application In behaviour is modeled with state charts (diagrams)
More informationArchiMate symbols for relating system elements
ArchiMate symbols for relating system elements Including diagrams and definitions edited from the ArchiMate 2.1 standard. Copyright The Open Group, All Rights Reserved. ArchiMate is a registered trademark
More information2nd Belgian-Dutch workshop on Software Evolution
2nd Belgian-Dutch workshop on Software Evolution BENEVOL 2004 8-9 July 2004 University of Antwerp Belgium Problem statement More and better tool support needed for software evolution traceability management
More informationDistributed Systems Programming (F21DS1) Formal Verification
Distributed Systems Programming (F21DS1) Formal Verification Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Focus on
More informationLecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page:
Lecturer: Sebastian Coope Ashton Building, Room G.18 E-mail: coopes@liverpool.ac.uk COMP 201 web-page: http://www.csc.liv.ac.uk/~coopes/comp201 Lecture 17 Concepts of Object Oriented Design Object-Oriented
More informationAlignment of Business and IT - ArchiMate. Dr. Barbara Re
Alignment of Business and IT - ArchiMate Dr. Barbara Re What is ArchiMate? ArchiMate is a modelling technique ("language") for describing enterprise architectures. It presents a clear set of concepts within
More informationTowards collaborative Blender design through annotation sharing
Towards collaborative Blender design through annotation sharing Thierry Jacquin, Jean-Pierre Chanod Document Structure Xerox Research Centre Europe Presentation Overview Introduction Creative intent in
More informationSoftware architecture: Introduction
2IW80 Software specification and architecture Software architecture: Introduction Alexander Serebrenik This week sources Slides by Johan Lukkien and Rudolf Mak Software architecture Software architecture
More informationEnterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Chapter 1: Solving Integration Problems Using Patterns 2 Introduction The Need for Integration Integration Challenges
More informationWhere are we going? EEC 421/521: Software Engineering. What is Design? A Note on Quality. Introduction to Design. Many levels of design: Our focus
Where are we going? Many levels of design: EEC 421/521: Software Engineering Introduction to Our focus Method Class/Component Subsystem GUI Data Format Architectural 2/28/08 EEC 421/521: Software Engineering
More informationChapter 8: Enhanced ER Model
Chapter 8: Enhanced ER Model Subclasses, Superclasses, and Inheritance Specialization and Generalization Constraints and Characteristics of Specialization and Generalization Hierarchies Modeling of UNION
More informationEXTENDED DISTRIBUTED UML-BASED PROTOCOL SYNTHESIS METHOD
EXTENDED DISTRIBUTED UML-BASED PROTOCOL SYNTHESIS METHOD Jehad Al Dallal Department of Information Science, Kuwait University, Kuwait ABSTRACT Synthesizing specifications for real time applications that
More informationLecture Outline. COOL operational semantics. Operational Semantics of Cool. Motivation. Lecture 13. Notation. The rules. Evaluation Rules So Far
Lecture Outline Operational Semantics of Cool Lecture 13 COOL operational semantics Motivation Notation The rules Prof. Aiken CS 143 Lecture 13 1 Prof. Aiken CS 143 Lecture 13 2 Motivation We must specify
More informationInheritance (Chapter 7)
Inheritance (Chapter 7) Prof. Dr. Wolfgang Pree Department of Computer Science University of Salzburg cs.uni-salzburg.at Inheritance the soup of the day?! Inheritance combines three aspects: inheritance
More informationOperational Semantics of Cool
Operational Semantics of Cool Key Concepts semantics: the meaning of a program, what does program do? how the code is executed? operational semantics: high level code generation steps of calculating values
More informationSoftware Engineering from a
Software Engineering from a modeling perspective Robert B. France Dept. of Computer Science Colorado State University USA france@cs.colostate.edu Softwaredevelopment problems Little or no prior planning
More informationLoad Balancing 101: Nuts and Bolts
Load Balancing 101: Nuts and Bolts Load balancing technology is the basis on which today s Application Delivery Controllers operate. But the pervasiveness of load balancing technology does not mean it
More informationObject-Oriented Theories for Model Driven Architecture
Object-Oriented Theories for Model Driven Architecture Tony Clark 1, Andy Evans 2, Robert France 3 1 King s College London, UK, anclark@dcs.kcl.ac.uk, 2 University of York, UK, andye@cs.york.ac.uk, 3 University
More informationIntroduction to Parallel Programming
Introduction to Parallel Programming David Lifka lifka@cac.cornell.edu May 23, 2011 5/23/2011 www.cac.cornell.edu 1 y What is Parallel Programming? Using more than one processor or computer to complete
More information0.1 Upper ontologies and ontology matching
0.1 Upper ontologies and ontology matching 0.1.1 Upper ontologies Basics What are upper ontologies? 0.1 Upper ontologies and ontology matching Upper ontologies (sometimes also called top-level or foundational
More informationIntro to Modelling and UML
CSCD01 Engineering Large Software Systems Intro to Modelling and UML Joe Bettridge Winter 2018 With thanks to Anya Tafliovich and Steve Easterbrook Getting Started So, you ve just started working on a
More informationDomain Driven Design IS. An architectural methodology for evolving a software system that closely aligns to business requirements
Domain Driven Design IS An architectural methodology for evolving a software system that closely aligns to business requirements Domain Driven Design IS Domain First Focus on the Object Model Focus on
More informationArchitectural Decomposition Mei Nagappan
Material and some slide content from: - Emerson Murphy-Hill, Reid Holmes - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture - Steve Easterbrook Architectural Decomposition
More informationCOSC 3351 Software Design. An Introduction to UML (I)
COSC 3351 Software Design An Introduction to UML (I) This lecture contains material from: http://wps.prenhall.com/esm_pfleeger_softengtp_2 http://sunset.usc.edu/classes/cs577a_2000/lectures/05/ec-05.ppt
More informationUML part I. UML part I 1/41
UML part I UML part I 1/41 UML part I 2/41 UML - Unified Modeling Language unified it can be shared among workers modeling it can be used for description of software model language it has defined structure
More information6.001 Notes: Section 17.5
6.001 Notes: Section 17.5 Slide 17.5.1 Now, let's look at one example in which changing the evaluation model allows us to explore a very different kind of computational problem. Our goal is to show how
More informationBeyond Mere Logic: A Vision of Computer Languages for the 21 st Century - A discourse on software physics -
Beyond Mere Logic: A Vision of Computer Languages for the 21 st Century - A discourse on software physics - Bran Selić Malina Software Corp. CANADA Simula Research Laboratory, NORWAY Zeligsoft Limited
More informationTowards a formal model of object-oriented hyperslices
Towards a formal model of object-oriented hyperslices Torsten Nelson, Donald Cowan, Paulo Alencar Computer Systems Group, University of Waterloo {torsten,dcowan,alencar}@csg.uwaterloo.ca Abstract This
More informationExamples. Object Orientated Analysis and Design. Benjamin Kenwright
Examples Object Orientated Analysis and Design Benjamin Kenwright Outline Revision Questions Group Project Review Deliverables Example System Problem Case Studey Group Project Case-Study Example Vision
More informationPractice What You Preach Full Separation of Concerns in CS 1 /CS 2
Practice What You Preach Full Separation of Concerns in CS 1 /CS 2 Hamzeh Roumani Department of Comp Science & Engineering York University, Toronto, Canada CONTEXT SIGCSE, its conferences and activities,
More informationSoftware Service Engineering
Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley Unified Modeling Language
More informationModule 10 MULTIMEDIA SYNCHRONIZATION
Module 10 MULTIMEDIA SYNCHRONIZATION Lesson 33 Basic definitions and requirements Instructional objectives At the end of this lesson, the students should be able to: 1. Define synchronization between media
More informationIncremental development A.Y. 2018/2019
Incremental development A.Y. 2018/2019 Incremental development Interleaves the activities of specification, development, and validation. The system is developed as a series of versions (increments), with
More informationrethinking the role of design in software development Daniel Jackson Computer Science & Artificial Intelligence Lab MIT
rethinking the role of design in software development Daniel Jackson Computer Science & Artificial Intelligence Lab MIT traditional engineers use models of different sorts three central software models
More informationIntro to: Design Principles
Intro to: Design Principles Pragmatic Programmer: Eliminate Effects Between Unrelated Things design components that are: self-contained, independent, and have a single, well-defined purpose Software Design
More informationChapter 2 Overview of the Design Methodology
Chapter 2 Overview of the Design Methodology This chapter presents an overview of the design methodology which is developed in this thesis, by identifying global abstraction levels at which a distributed
More informationSoftware Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1
Software Processes Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1 Objectives To introduce software process models To describe three generic process models and when they may be
More informationInteraction Testing! Chapter 15!!
Interaction Testing Chapter 15 Interaction faults and failures Subtle Difficult to detect with testing Usually seen after systems have been delivered In low probability threads Occur after a long time
More informationJiST Java in Simulation Time An efficient, unifying approach to simulation using virtual machines
JiST Java in Simulation Time An efficient, unifying approach to simulation using virtual machines Rimon Barr, Zygmunt Haas, Robbert van Renesse rimon@acm.org haas@ece.cornell.edu rvr@cs.cornell.edu. Cornell
More informationENTITIES IN THE OBJECT-ORIENTED DESIGN PROCESS MODEL
INTERNATIONAL DESIGN CONFERENCE - DESIGN 2000 Dubrovnik, May 23-26, 2000. ENTITIES IN THE OBJECT-ORIENTED DESIGN PROCESS MODEL N. Pavković, D. Marjanović Keywords: object oriented methodology, design process
More informationMASERGY S MANAGED SD-WAN
MASERGY S MANAGED New Performance Options for Hybrid Networks Business Challenges WAN Ecosystem Features and Benefits Use Cases INTRODUCTION Organizations are leveraging technology to transform the way
More informationComponent Design. Systems Engineering BSc Course. Budapest University of Technology and Economics Department of Measurement and Information Systems
Component Design Systems Engineering BSc Course Budapest University of Technology and Economics Department of Measurement and Information Systems Traceability Platform-based systems design Verification
More informationRecalling the definition of design as set of models let's consider the modeling of some real software.
Software Design and Architectures SE-2 / SE426 / CS446 / ECE426 Lecture 3 : Modeling Software Software uniquely combines abstract, purely mathematical stuff with physical representation. There are numerous
More informationCISC836: Models in Software Development: Methods, Techniques and Tools
CISC836: Models in Software Development: Methods, Techniques and Tools Topic 3: Expressing Software Models Expressing SW models: Overview 1. Examples of software modeling languages 1. UML (for modeling
More informationActivity Nets: A UML profile for modeling workflow and business processes
Activity Nets: A UML profile for modeling workflow and business processes Author: Gregor v. Bochmann, SITE, University of Ottawa (August 27, 2000) 1. Introduction 1.1. Purpose of this document Workflow
More informationMultiprocessor and Real-Time Scheduling. Chapter 10
Multiprocessor and Real-Time Scheduling Chapter 10 1 Roadmap Multiprocessor Scheduling Real-Time Scheduling Linux Scheduling Unix SVR4 Scheduling Windows Scheduling Classifications of Multiprocessor Systems
More informationCS 307: Software Engineering. Lecture 10: Software Design and Architecture
CS 307: Software Engineering Lecture 10: Software Design and Architecture Prof. Jeff Turkstra 2017 Dr. Jeffrey A. Turkstra 1 Announcements Discuss your product backlog in person or via email by Today Office
More informationBUSTED! 5 COMMON MYTHS OF MODERN INFRASTRUCTURE. These Common Misconceptions Could Be Holding You Back
BUSTED! 5 COMMON MYTHS OF MODERN INFRASTRUCTURE These Common Misconceptions Could Be Holding You Back 2 IT Is Facing a New Set of Challenges As technology continues to evolve, IT must adjust to changing
More informationConsiderations for Versioning SOA Resources
Considerations for Versioning SOA Resources Kenneth Laskey # The MITRE Corporation klaskey@mitre.org Abstract. Service oriented architecture is a paradigm for bringing together needs and capabilities,
More informationMTAT Software Engineering. Written Exam 17 January Start: 9:15 End: 11:45
MTAT.03.094 Software Engineering Written Exam 17 January 2014 Start: 9:15 End: 11:45 Important Notes: The exam is open book and open laptop. Web browsing is allowed, but you are not allowed to use e mail
More informationEfficient Meshing in Sonnet
Efficient Meshing in Sonnet Purpose of this document: In this document, we will discuss efficient meshing in Sonnet, based on a wide variety of application examples. It will be shown how manual changes
More informationH1 Spring B. Programmers need to learn the SOAP schema so as to offer and use Web services.
1. (24 points) Identify all of the following statements that are true about the basics of services. A. If you know that two parties implement SOAP, then you can safely conclude they will interoperate at
More informationChapter 5. Systems Analysis. McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved.
Chapter 5 Systems Analysis McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives Define systems analysis and relate it to the scope definition, problem analysis,
More informationWHITE PAPER DATA DICATIONARY DEFINING AND USING A COMMON LANGUAGE
DATA DICATIONARY DEFINING AND USING A COMMON LANGUAGE TABLE OF CONTENTS INTRODUCTION 3 DEFINED 3 NEED FOR 3 USES OF 3 ANATOMY OF 4 BENEFITS OF USING 4 2 P a g e INTRODUCTION The success of any business
More informationArchiMate 2.0. Structural Concepts Behavioral Concepts Informational Concepts. Business. Application. Technology
ArchiMate Core Structural Concepts Behavioral Concepts Informational Concepts interaction Technology Application Layer Concept Description Notation Concept Description Notation Actor An organizational
More informationObjectives. Explain the purpose and objectives of objectoriented. Develop design class diagrams
Objectives Explain the purpose and objectives of objectoriented design Develop design class diagrams Develop interaction diagrams based on the principles of object responsibility and use case controllers
More informationWhy and Where do we need Executable modeling?
Why and Where do we need Executable modeling? Presented by Francis Bordeleau francis.bordeleau@ericsson.com EXE 2015 Workshop, Ottawa (Canada) Sept. 27 th, 2015 Page 2 Outline context Personal background
More informationSoftware Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.
Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice
More informationModels, Tools and Transformations for Design and Evaluation of Interactive Applications
Models, Tools and Transformations for Design and Evaluation of Interactive Applications Fabio Paternò, Laila Paganelli, Carmen Santoro CNUCE-C.N.R. Via G.Moruzzi, 1 Pisa, Italy fabio.paterno@cnuce.cnr.it
More informationNick Rozanski Andy Longshaw Eoin Woods. Sold! How to Describe, Explain and Justify your Architecture
Nick Rozanski Andy Longshaw Eoin Woods Sold! How to Describe, Explain and Justify your Architecture Objectives of Today If you are an architect who has to produce an Architectural Description, then this
More informationInteraction Testing. Chapter 15
Interaction Testing Chapter 15 Interaction faults and failures Subtle Difficult to detect with testing Usually seen after systems have been delivered In low probability threads Occur after a long time
More informationSystems Architecture. Monolithic Systems
Systems Architecture Monolithic Systems 13 - Monolithic CSC407 1 no architecture Monolithic Systems reports static data imported data dynamic data 13 - Monolithic CSC407 2 1 Examples Most programs you
More informationClass Diagrams in Analysis
3.2 Subject/Topic/Focus: Introduction to Classes Summary: Conceptual Modeling Notation: Classes Associations: Multiplicity, Roles, Aggregation, Composition Generalization Objects Analysis Process Literature:
More informationIntelligent Performance Software Testing
White Paper Intelligent Performance Software Testing The field of software functional testing is undergoing a major transformation. What used to be an onerous manual process took a big step forward with
More informationINTRODUCTION TO UNIFIED MODELING MODEL (UML) & DFD. Slides by: Shree Jaswal
INTRODUCTION TO UNIFIED MODELING MODEL (UML) & DFD Slides by: Shree Jaswal What is UML? 2 It is a standard graphical language for modeling object oriented software. It was developed in mid 90 s by collaborative
More information