Introduction to Software Architecture. The top level... (and design revisited)

Size: px
Start display at page:

Download "Introduction to Software Architecture. The top level... (and design revisited)"

Transcription

1 Introduction to Software Architecture The top level... (and design revisited) 1

2 What are we doing? System Software Architecture Top-level design software system architecture We use system architecture or simply architecture as a short name for system software architecture The high level/low level boundary is fluid Architecture guides code Code realizes architecture 2 Software construction

3 The BIG questions for us at this stage in the course What is architecture? What do we have to do to create an architecture? How much architecture is enough? 3 3

4 What is Architecture? 4 4

5 The purpose of architecture Architecture provides coherency, understanding Architecture acts as a guide for subsequent construction Architecture acts as the skeleton of a system. There is no single right architecture, but there are more or less suitable skeletons for the job. Choose your architecture well to achieve what you need to. Architecture influences quality attributes eg security, usability, latency, or modifiability. Quotes from [Fairbanks, Just enough Software Architecture, 2010] 5 5

6 What is an architecture Very general definition: An architecture is a model that defines the component parts of a system, and how they work with each other to meet both functional and non-functional requirements! It should help us think about Delivery of quality attributes Technology choices Where the challenges in implementation are 6 6

7 How do we express an architecture? We produce a model of the system to be built, expressed with Text Boxes and lines, possibly arrows Relatively formalised boxes and lines Unified Modeling Language (UML) Phillipe Kruchen s 4+1 architecture Walking skeletons Depicts both structure and dynamic behaviour One of the most effective guidelines is not to get stuck on a single approach. If diagramming the design in UML isn't working, write it in English. Write a short test program. Try a completely different approach. McConnell,

8 The output of system architecture The key output of system architecting is a shared (and shareable) understanding of the structure and dynamic behaviour of the system and the relation of structure to critical qualities An understanding of the architecture should facilitate communication support predictions about the system guide planning Architecture is good to the degree it is graspable and that grasping works 8 8

9 Architecture provides constraints on the (subsequent) design space Eg you want to address maintainability and extensibility Separation of concerns aids maintainability and extensibility So you decide to separate code into three blocks, for UI, business logic and persistence This is a 3 tier architecture Localisation of these 3 kinds of code into the 3 layers is now a constraint on your system using-web-services-in-a-3-tierarchitecture 9 9

10 Architecture provides constraints on the (subsequent) design space Eg you need to ensure security of data for a financial application, so adopt Database encryption Transport Layer Security (TLS aka SSL) Example constraint, all data accesses to persistent data must now go through an encryption/decryption layer For all services that you add to process data Similarly all HTTP-based communications are encruypted using TLS! 10 10

11 Different uses for the same architecture Architecture is [mostly] orthogonal to functionality. [Fairbanks, Just enough Software Architecture, 2010] Within limits, you can use the same architecture to implement systems with different functionality Eg, the basic web architecture is used for millions of different systems browser <---HTTP---> server <----> db 11 11

12 Different architecture for the same use / end-user functionality Systems implemented with different architectures may supply the same functionality Eg I could construct a single-user FileMaker-like application that runs locally using A brain-dead program in C that uses a database A Smalltalk-implemented system that uses the Model-View-Controller architecture and no database An in-browser implementation that uses JavaScript and browser-based persistence mechanisms 12 12

13 Different architecture for the same use / end-user functionality Different architectures providing the same functionality may (previous slide) have different external properties Eg where the system runs What limitations there are on the UI How performant it is And different internal properties How the system is structured How maintainable and extensible it is 13 13

14 The effect of competencies and organisational structure A team that has worked with a given architecture May find it more understandable May have tools and practices that support it This is an advantage Conway s Law states that architectural form is influenced by the structure of the organisation that is developing the architecture This may be a disadvantage 14 14

15 What do we have to do? 15 15

16 Architecture is essentially about Interconnecting functional blocks And how these blocks then interact to provide functionality 16 16

17 The conventional advice Evaluate a few different architectures to see how they support your desired quality attributes Within the available resource profile for the project! The smart CTO chooses an architect who has already performed this kind of evaluation for the target system, and can start without an evaluation phase Being able to do architecture well depends on how many system you have seen Faster with knowledge of architectural patterns 17 17

18 Design, a reminder Characteristics of design Relies on domain knowledge in two kinds of domain The application domain The technical domain Informed by knowledge and insight Based on past experience Multi-faceted at variable levels of detail Knowing what to take account of Knowing what to ignore Making motivated choices Making tradeoffs while making choices 18 18

19 No magic box to do design 19 19

20 But there may be some strategies Strategy: A way of going about doing something Strategies are high-level (Tactics are low level) We consider these in a few slides time 20 20

21 Easy architectural design Sometimes it s relatively easy Similar to our last two systems, which have been proven to work well Adoption of a presumptive architecture Realistically constrains the solution to a space of architectures known to work What if there is some aspect to the system that is overlooked and that has a profound effect? No brainer architecture Variant of well understood problem E.g., straightforward web site Good technology and team support 21 21

22 But by and large, it s hard For any significant system architecture is likely to be hard to design Some of the things that conspire to make architecture hard are Functional and non-functional requirements Time-to-market minimisation Project resourcing constraints, cost and available HR resources Unknown performance of the architecture when implemented in real life settings 22 22

23 Some approaches to architecture We know that The architecture expresses those things that it will be too expensive to change later in the system development The architecture satisfies quality attributes / non-functional requirements Yeah, so what? How does this help us design an architecture? Let s examine two strategies, top-down and bottom-up design 23 23

24 Direction of Design Top down Start with the general problem Break it into manageable parts Each part becomes a new problem Bottom up Decompose further Bottom out with concrete code Start with a specific capability Implement it Repeat until confident enough to think about higher level pieces 24 System Software Architecture 24 Software construction

25 Opportunistic focus Top down and bottom up aren t exclusive Thinking from the top Focuses our attention on the whole system Thinking from the bottom Focuses our attention on concrete issues Being able to choose where you focus your attention opportunistically is a great help Eg working at the top level, yu may wonder will this really work, so you consider realisation at a lower level of detail Will have to rework the top level if doesn t work at a greater level of detail 25 25

26 Technology and architecture The technology you choose influences architecture, so you may want to find out about it, or prove something Typically we do a spike (a short experiment in the use of technology) when we want to find out something specific for our architecture A prototype is really an exploration of or proof of concept of all or some part of a system We build a walking skeleton if we want to provide a loose proof for our architecture 26 26

27 Spikes Spike Very small program to explore an issue Scope of the problem is small Often intended to determine risk Is this technology workable? No expectation of keeping 27 27

28 Prototype Can have some small or large scope Intended to demonstrate something, rather than just find out about technology (a spike) Mock ups through working code! Prototypes get thrown away 28 28

29 Walking Skeleton Small version of complete system tiny implementation of the system that performs a small end-to-end function. It need not use the final architecture, but it should link together the main architectural components. The architecture and the functionality can then evolve in parallel. - Alistair Cockburn! Walking skeletons are meant to evolve into the software system 29 29

30 Scoping architecture We can ground architectural decisions in different ways e.g., Priorities we need to address Risks we need to ameliorate Technologies we want to use These give us ways of determine what our architecture needs to accommodate 30 30

31 Priority-based architecture Identify priorities Things which are not priorities can run the risk of being discarded (business and tech decision) Design toward those priorities Identify costs <a> is a priority, so we choose architectural design <b>, while accepting downsides <c, d,... > We may have many of these (pattern instantiations) for priorities a1, a2, a3,... You need to end up with compatible b1, b2, b

32 Risk-based architecture Identify risks Estimate the following for each risks 1. Advantages in ameliorating each risk 2. Disadvantages in not ameliorating 3. Cost of ameliorating (implementation cost: HR resource, time,, cost of delay-to-market) 4. Cost of not ameliorating (cost to business) Prioritise risks On the basis of 1-4 above MoSCoW partitioning (for risk amelioration) 32 32

33 Technology-based architecture A technology is something that is used to implement something else Eg Ruby on Rails is a technology that is used to implement Web apps Identify technologies These may be fixed You must use Java and Swing Identify the architectural implications of the tech Technologies often are biased wrt architecture Determine fit 33 33

34 How much architecture is needed? 34 34

35 When to stop Confidence that we have catered for the core, that adding to the core will not involve inappropriate costs Ie, nailed the risks to a sufficient extent to start development When the architecture exhibits a suitable response to desired quality attributes When the architecture embodies the capabilities to develop the desired features 35 35

36 Different problems; different needs McConell,

37 When is architecture most important? Small solution space, where the solution has to be just right High cost to failure Eg: Medical systems, nuclear plant control, sensitive personal data Difficult quality attributes, eg Always available / failsafe In 2012 Skype reached a high of 45M concurrent users, with quality of service an important attribute P2P architecture, now superseded (thanks to a further requirement, mobile support) 37 37

38 When is architecture most important? New domain You need a guide to what you are doing Product line, a shared architecture aids development of individual products, eg ios, Mettler Toledo Safeline. Previous page and above this page [Fairbanks, Just enough Software Architecture, 2010] Large-scale and/or multiple-team activity, especially with distributed teams - for co-ordination of activities 38 38

39 BDUF vs evolutionary architecture Big Design Up Front Old style Often used in waterfall type developments Danger of doing too much work Work in the wrong direction that gets thrown away Evolutionary architecture Newer style Evolves as the project progresses Adapts to current requirements In practice always some architecture up-front Foolish to do otherwise 39 39

40 Case study 40 40

41 For reading?

Software Architecture

Software Architecture Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment

More information

Implementation Architecture

Implementation Architecture Implementation Architecture Software Architecture VO/KU (707023/707024) Roman Kern ISDS, TU Graz 2017-11-15 Roman Kern (ISDS, TU Graz) Implementation Architecture 2017-11-15 1 / 54 Outline 1 Definition

More information

Administrivia. Added 20 more so far. Software Process. Only one TA so far. CS169 Lecture 2. Start thinking about project proposal

Administrivia. Added 20 more so far. Software Process. Only one TA so far. CS169 Lecture 2. Start thinking about project proposal Administrivia Software Process CS169 Lecture 2 Added 20 more so far Will limit enrollment to ~65 students Only one TA so far Start thinking about project proposal Bonus points for proposals that will be

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 2 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Contents What are software requirements? Requirements Engineering Process Domain

More information

Specifying and Prototyping

Specifying and Prototyping Contents Specifying and Prototyping M. EVREN KIYMAÇ 2008639030 What is Specifying? Gathering Specifications Specifying Approach & Waterfall Model What is Prototyping? Uses of Prototypes Prototyping Process

More information

Software 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 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 information

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping Coping with change Change is inevitable in all large software projects. Business changes lead to new and changed system requirements New technologies open up new possibilities for improving implementations

More information

ADD 3.0: Rethinking Drivers and Decisions in the Design Process

ADD 3.0: Rethinking Drivers and Decisions in the Design Process ADD 3.0: Rethinking Drivers and Decisions in the Design Process Rick Kazman Humberto Cervantes SATURN 2015 Outline Presentation Architectural design and types of drivers The Attribute Driven Design Method

More information

S1 Informatic Engineering

S1 Informatic Engineering S1 Informatic Engineering Advanced Software Engineering Web App. Process and Architecture By: Egia Rosi Subhiyakto, M.Kom, M.CS Informatic Engineering Department egia@dsn.dinus.ac.id +6285640392988 SYLLABUS

More information

Execution Architecture

Execution Architecture Execution Architecture Software Architecture VO (706.706) Roman Kern Institute for Interactive Systems and Data Science, TU Graz 2018-11-07 Roman Kern (ISDS, TU Graz) Execution Architecture 2018-11-07

More information

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment Copyright Rational Software 2002 http://www.therationaledge.com/content/dec_02/m_uiiterativeenvironment_jc.jsp Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

More information

The COS 333 Project. Robert M. Dondero, Ph.D. Princeton University

The COS 333 Project. Robert M. Dondero, Ph.D. Princeton University The COS 333 Project Robert M. Dondero, Ph.D. Princeton University 1 Overview A simulation of reality In groups of 3-5 people... Build a substantial three tier software system 2 Three-Tier Systems "Three

More information

Implementation Architecture

Implementation Architecture Implementation Architecture Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2014-11-19 Roman Kern (KTI, TU Graz) Implementation Architecture 2014-11-19 1 / 53 Outline 1 Definition 2

More information

Dilbert Scott Adams. CSc 233 Spring 2012

Dilbert Scott Adams. CSc 233 Spring 2012 Dilbert Scott Adams CSc 233 Spring 2012 Dilbert Scott Adams CSc 233 Spring 2012 2 Dilbert Scott Adams CSc 233 Spring 2012 3 prerequisites CSc 233 Spring 2012 I thought we had agreed long ago that the Department

More information

1: Introduction to Object (1)

1: Introduction to Object (1) 1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface

More information

The requirements engineering process

The requirements engineering process 3 rd Stage Lecture time: 8:30-12:30 AM Instructor: Ali Kadhum AL-Quraby Lecture No. : 5 Subject: Software Engineering Class room no.: Department of computer science Process activities The four basic process

More information

The process of interaction design and Prototyping

The process of interaction design and Prototyping Chapter 6 edited The process of interaction design and Prototyping 1 Overview What is involved in Interaction Design? Importance of involving users Degrees of user involvement What is a user-centered approach?

More information

Verification and Validation. Assuring that a software system meets a user s needs. Verification vs Validation. The V & V Process

Verification and Validation. Assuring that a software system meets a user s needs. Verification vs Validation. The V & V Process Verification and Validation Assuring that a software system meets a user s needs Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 19,20 Slide 1

More information

Designing for Scalability. Patrick Linskey EJB Team Lead BEA Systems

Designing for Scalability. Patrick Linskey EJB Team Lead BEA Systems Designing for Scalability Patrick Linskey EJB Team Lead BEA Systems plinskey@bea.com 1 Patrick Linskey EJB Team Lead at BEA OpenJPA Committer JPA 1, 2 EG Member 2 Agenda Define and discuss scalability

More information

Scenarios, Quality Attributes, and Patterns: Capturing and Using their Synergistic Relationships for Product Line Architectures

Scenarios, Quality Attributes, and Patterns: Capturing and Using their Synergistic Relationships for Product Line Architectures Scenarios, Quality Attributes, and Patterns: Capturing and Using their Synergistic Relationships for Product Line Architectures Muhammad Ali Babar National ICT Australia Ltd. and University of New South

More information

Microservice Splitting the Monolith. Software Engineering II Sharif University of Technology MohammadAmin Fazli

Microservice Splitting the Monolith. Software Engineering II Sharif University of Technology MohammadAmin Fazli Microservice Software Engineering II Sharif University of Technology MohammadAmin Fazli Topics Seams Why to split the monolith Tangled Dependencies Splitting and Refactoring Databases Transactional Boundaries

More information

*ANSWERS * **********************************

*ANSWERS * ********************************** CS/183/17/SS07 UNIVERSITY OF SURREY BSc Programmes in Computing Level 1 Examination CS183: Systems Analysis and Design Time allowed: 2 hours Spring Semester 2007 Answer ALL questions in Section A and TWO

More information

Part 5. Verification and Validation

Part 5. Verification and Validation Software Engineering Part 5. Verification and Validation - Verification and Validation - Software Testing Ver. 1.7 This lecture note is based on materials from Ian Sommerville 2006. Anyone can use this

More information

Nick 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 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 information

A developer s guide to load testing

A developer s guide to load testing Software architecture for developers What is software architecture? What is the role of a software architect? How do you define software architecture? How do you share software architecture? How do you

More information

Domain 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 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 information

SOFTWARE ENGINEERING DECEMBER. Q2a. What are the key challenges being faced by software engineering?

SOFTWARE ENGINEERING DECEMBER. Q2a. What are the key challenges being faced by software engineering? Q2a. What are the key challenges being faced by software engineering? Ans 2a. The key challenges facing software engineering are: 1. Coping with legacy systems, coping with increasing diversity and coping

More information

What is Software Architecture

What is Software Architecture What is Software Architecture Is this diagram an architecture? (ATM Software) Control Card Interface Cash Dispenser Keyboard Interface What are ambiguities in the previous diagram? Nature of the elements

More information

Preparing your network for the next wave of innovation

Preparing your network for the next wave of innovation Preparing your network for the next wave of innovation The future is exciting. Ready? 2 Executive brief For modern businesses, every day brings fresh challenges and opportunities. You must be able to adapt

More information

VO Software Engineering

VO Software Engineering Administrative Issues Univ.Prof. Dr. Peter Auer Chair for Information Technology Email: auer@unileoben.ac.at Lecture Thursday 10:15 11:45 Project Lab Montag 16:00 19:00 Literature Helmut Balzert, Lehrbuch

More information

Lessons Learned Operating Active/Active Data Centers Ethan Banks, CCIE

Lessons Learned Operating Active/Active Data Centers Ethan Banks, CCIE Lessons Learned Operating Active/Active Data Centers Ethan Banks, CCIE #20655 @ecbanks Senior Network Architect, Carenection Co-founder, Packet Pushers Interactive http://ethancbanks.com http://packetpushers.net

More information

SOFTWARE REQUIREMENTS ENGINEERING LECTURE # 7 TEAM SKILL 2: UNDERSTANDING USER AND STAKEHOLDER NEEDS REQUIREMENT ELICITATION TECHNIQUES-IV

SOFTWARE REQUIREMENTS ENGINEERING LECTURE # 7 TEAM SKILL 2: UNDERSTANDING USER AND STAKEHOLDER NEEDS REQUIREMENT ELICITATION TECHNIQUES-IV 1 SOFTWARE REQUIREMENTS ENGINEERING LECTURE # 7 TEAM SKILL 2: UNDERSTANDING USER AND STAKEHOLDER NEEDS REQUIREMENT ELICITATION TECHNIQUES-IV 12 th June, 2013 Instructor Information 2 Course Instructor:

More information

ARCHITECTING IN THE GAPS

ARCHITECTING IN THE GAPS ARCHITECTING IN THE GAPS Eoin Woods www.eoinwoods.info! 2 About Me Software architect & development manager at UBS Investment Bank working on equity swaps systems in Equity Derivatives Software architect

More information

Introduction to UML What is UML? Motivations for UML Types of UML diagrams UML syntax Descriptions of the various diagram types Rational Rose (IBM.. M

Introduction to UML What is UML? Motivations for UML Types of UML diagrams UML syntax Descriptions of the various diagram types Rational Rose (IBM.. M Introduction to UML Part I 1 What is UML? Unified Modeling Language, a standard language for designing and documenting a system in an object- oriented manner. It s a language by which technical architects

More information

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design Chapter 6 Architectural Design Lecture 1 1 Topics covered ² Architectural design decisions ² Architectural views ² Architectural patterns ² Application architectures 2 Software architecture ² The design

More information

CATCH ERRORS BEFORE THEY HAPPEN. Lessons for a mature data governance practice

CATCH ERRORS BEFORE THEY HAPPEN. Lessons for a mature data governance practice CATCH ERRORS BEFORE THEY HAPPEN Lessons for a mature data governance practice A guide to working with cross-departmental teams to establish proactive data governance for your website or mobile app. 2 Robust

More information

Making sense of chaos An evaluation of the current state of information architecture for the Web

Making sense of chaos An evaluation of the current state of information architecture for the Web Making sense of chaos An evaluation of the current state of information architecture for the Web Anne de Ridder UW 521 Winter Seminar Series, February 3, 2012 What you ll hear about today A bit about me

More information

The SD-WAN security guide

The SD-WAN security guide The SD-WAN security guide How a flexible, software-defined WAN can help protect your network, people and data SD-WAN security: Separating fact from fiction For many companies, the benefits of SD-WAN are

More information

Introduction to Computing and Systems Architecture

Introduction to Computing and Systems Architecture Introduction to Computing and Systems Architecture 1. Computability A task is computable if a sequence of instructions can be described which, when followed, will complete such a task. This says little

More information

1. Write two major differences between Object-oriented programming and procedural programming?

1. Write two major differences between Object-oriented programming and procedural programming? 1. Write two major differences between Object-oriented programming and procedural programming? A procedural program is written as a list of instructions, telling the computer, step-by-step, what to do:

More information

Incremental development A.Y. 2018/2019

Incremental 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 information

Administrivia. Minute Essay From 4/11

Administrivia. Minute Essay From 4/11 Administrivia All homeworks graded. If you missed one, I m willing to accept it for partial credit (provided of course that you haven t looked at a sample solution!) through next Wednesday. I will grade

More information

Luckily, our enterprise had most of the back-end (services, middleware, business logic) already.

Luckily, our enterprise had most of the back-end (services, middleware, business logic) already. 2 3 4 The point here is that for real business applications, there is a connected back-end for services. The mobile part of the app is just a presentation layer that is unique for the mobile environment.

More information

Chapter 2 Web Development Overview

Chapter 2 Web Development Overview Chapter 2 Web Development Overview Presented by Thomas Powell Slides adopted from HTML & XHTML: The Complete Reference, 4th Edition 2003 Thomas A. Powell Five Pillars of Sites Web sites have five aspects

More information

Software Architecture

Software 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 information

Website Design and Development CSCI 311

Website Design and Development CSCI 311 Website Design and Development CSCI 311 Learning Objectives Understand good practices in designing and developing web sites Learn some of the challenges web design Activity In pairs: describe how you d

More information

A Beginners Guide to UML Part II

A Beginners Guide to UML Part II A Beginners Guide to UML Part II Dan Brown, Dunstan Thomas Consulting Summary In the first part of this article, I examined the origins and definition of the UML to provide a basic understanding of what

More information

Maintaining & Increasing Stakeholder Confidence in IT Architecture

Maintaining & Increasing Stakeholder Confidence in IT Architecture Maintaining & Increasing Stakeholder Confidence in IT Architecture Eoin Woods eoin@artechra.com www.eoinwoods.info 1 Content Defining IT Architecture IT Architecture & Requirements Identifying Stakeholders

More information

Design Iteration: From Evidence to Design. Slides originally by: Dick Henneman

Design Iteration: From Evidence to Design. Slides originally by: Dick Henneman Design Iteration: From Evidence to Design Slides originally by: Dick Henneman Foundations: MS-HCI @ Georgia Tech Context of use Context of development Analyze/ Evaluate Design/B uild Evidence-Based Design

More information

Information System Architecture. Indra Tobing

Information System Architecture. Indra Tobing Indra Tobing What is IS Information architecture is the term used to describe the structure of a system, i.e the way information is grouped, the navigation methods and terminology used within the system.

More information

Introduction to software architecture Revision : 732

Introduction to software architecture Revision : 732 Introduction to software architecture Revision : 732 Denis Conan Septembre 2018 Foreword The content of these slides is extracted from the following references: L. Bass, P. Clements, and R. Kazman. Software

More information

Lecture 7: Software Processes. Refresher: Software Always Evolves

Lecture 7: Software Processes. Refresher: Software Always Evolves Lecture 7: Software Processes What is a Software Development Process? The Lifecycle of a Software Project Agile vs. Disciplined Some common approaches: RUP, SCRUM, XP, ICONIX, Where UML fits in (next lecture)

More information

1 Software Architecture

1 Software Architecture Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to

More information

Design concepts for data-intensive applications

Design concepts for data-intensive applications 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Design concepts for data-intensive applications Attila Adamkó Department of Information Technology, Institute of

More information

Architectural Styles II

Architectural Styles II Architectural Styles II Software Architecture VO/KU (707.023/707.024) Denis Helic, Roman Kern KMI, TU Graz Nov 21, 2012 Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles II Nov 21, 2012 1 / 66

More information

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures Chapter 6 Architectural design 2 PART 1 ARCHITECTURAL DESIGN

More information

Design, prototyping and construction

Design, prototyping and construction Chapter 11 Design, prototyping and construction 1 Overview Prototyping and construction Conceptual design Physical design Generating prototypes Support for design 2 Prototyping and construction What is

More information

Topics. Software Process. Agile. Requirements. Basic Design. Modular Design. Design Patterns. Testing. Quality. Refactoring.

Topics. Software Process. Agile. Requirements. Basic Design. Modular Design. Design Patterns. Testing. Quality. Refactoring. CS310 - REVIEW Topics Process Agile Requirements Basic Design Modular Design Design Patterns Testing Quality Refactoring UI Design How these things relate Process describe benefits of using a software

More information

SIEBEL 15 RELEASE & UPGRADE SUMMARY

SIEBEL 15 RELEASE & UPGRADE SUMMARY SIEBEL 15 RELEASE & UPGRADE SUMMARY Eagle Creek Software Services H UPGRADING SIEBEL WITHOUT SKIPPING A BEAT UPGRADING SIEBEL WITHOUT SKIPPING A BEAT Siebel 15 Release and Upgrade Summary IP2015, also

More information

XVIII. Software Architectures

XVIII. Software Architectures XVIII. Software Architectures Software Architectures UML Packages Client-Server vs Peer-to-Peer 3-Tier and 4-Tier Architectures Horizontal Layers and Vertical Partitions The Model-View-Controller Architecture

More information

Sitecore Projects with GatherContent

Sitecore Projects with GatherContent How to prepare content for Sitecore Projects with GatherContent By Jennifer Davies, Content Strategist, Razorfish Table of Contents 4 Introduction Guide overview 5 Step 1 Define your content structure

More information

REST Easy with Infrared360

REST Easy with Infrared360 REST Easy with Infrared360 A discussion on HTTP-based RESTful Web Services and how to use them in Infrared360 What is REST? REST stands for Representational State Transfer, which is an architectural style

More information

Chapter 2 Overview of the Design Methodology

Chapter 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 information

11/8/ th IEEE Requirements Engineering Conference 27-Sep to 1-Oct, 2010

11/8/ th IEEE Requirements Engineering Conference 27-Sep to 1-Oct, 2010 11/8/2010 18 th IEEE Requirements Engineering Conference 27-Sep to 1-Oct, 2010 Requirements Engineering @ Intel few dedicated requirements engineers central training / coaching department still using Word

More information

THE BENEFITS OF MODEL-BASED ENGINEERING IN PRODUCT DEVELOPMENT FROM PCB TO SYSTEMS MENTOR GRAPHICS

THE BENEFITS OF MODEL-BASED ENGINEERING IN PRODUCT DEVELOPMENT FROM PCB TO SYSTEMS MENTOR GRAPHICS THE BENEFITS OF MODEL-BASED ENGINEERING IN PRODUCT DEVELOPMENT FROM PCB TO SYSTEMS MENTOR GRAPHICS P C B D E S I G N W H I T E P A P E R w w w. m e n t o r. c o m Simulation models are often used to help

More information

TESTING. Overview Slide 6.2. Testing (contd) Slide 6.4. Testing Slide 6.3. Quality issues Non-execution-based testing

TESTING. Overview Slide 6.2. Testing (contd) Slide 6.4. Testing Slide 6.3. Quality issues Non-execution-based testing Slide 6.1 Overview Slide 6.2 Quality issues Non-execution-based testing TESTING Execution-based testing What should be tested? Testing versus correctness proofs Who should perform execution-based testing?

More information

WENDIA ITSM EXPERT TALK

WENDIA ITSM EXPERT TALK WENDIA ITSM EXPERT TALK What to consider when implementing a Self Service Portal A WHITE PAPER BY MEXON TECHNOLOGY 1. Introduction The world of Service Management is, as ever rapidly changing. The IT Service

More information

Case study on PhoneGap / Apache Cordova

Case study on PhoneGap / Apache Cordova Chapter 1 Case study on PhoneGap / Apache Cordova 1.1 Introduction to PhoneGap / Apache Cordova PhoneGap is a free and open source framework that allows you to create mobile applications in a cross platform

More information

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification vs validation Verification: "Are we building the product right?. The software should

More information

Architectural Documentation 1

Architectural Documentation 1 Architectural Documentation Architectural Documentation 1 The Purpose of Architectural Documentation The documentation shall give the reader good understanding of the application's architecture and design.

More information

What is a prototype?

What is a prototype? analysis of stakeholders, field studies ANALYZE Problem scenarios claims about current practice metaphors, information technology, HCI theory, guidelines DESIGN Activity scenarios Information scenarios

More information

Modeling Issues Modeling Enterprises. Modeling

Modeling Issues Modeling Enterprises. Modeling Modeling Issues Modeling Enterprises SE502: Software Requirements Engineering Modeling Modeling can guide elicitation: It can help you figure out what questions to ask It can help to surface hidden requirements

More information

UKEF UK Export Finance. Transformation with the Microsoft Cloud

UKEF UK Export Finance. Transformation with the Microsoft Cloud UKEF UK Export Finance Transformation with the Microsoft Cloud the customer overview Customer UKEF Website www.gov.uk/uk-export-finance Number of employees UKEF s fixed deadline had major financial implications,

More information

Project design process by Heartgrenade

Project design process by Heartgrenade Project design process by Heartgrenade The following document aims to familiarize you with the process of software development that we carry out with our Clients. We divided it into subsequent steps and

More information

XIX. Software Architectures

XIX. Software Architectures XIX. Software Architectures Software Architectures UML Packages Client-Server vs Peer-to-Peer Horizontal Layers and Vertical Partitions 3-Tier and 4-Tier Architectures The Model-View-Controller Architecture

More information

Mobile & More: Preparing for the Latest Design Trends

Mobile & More: Preparing for the Latest Design Trends February 26, 2015 Mobile & More: Preparing for the Latest Design Trends LATEST TRENDS Responsive Takes Over Material Is the New Flat Hero Images Getting Bigger Interactions Are Micro Video in the Background

More information

The Internet. Tim Capes. November 7, 2011

The Internet. Tim Capes. November 7, 2011 The Internet Tim Capes November 7, 2011 What is the Internet? The internet is a global system consisting of millions if interconnected networks. These individual networks are anything from local (a Home

More information

Requirements. CxOne Standard

Requirements. CxOne Standard Requirements CxOne Standard CxStand_Requirements.doc November 3, 2002 Advancing the Art and Science of Commercial Software Engineering Contents 1 INTRODUCTION... 1 1.1 OVERVIEW... 1 1.2 GOALS... 1 1.3

More information

Software Engineering Lifecycles. Controlling Complexity

Software Engineering Lifecycles. Controlling Complexity Software Engineering Lifecycles Class url:http://laser.cs.umass.edu/courses/cs320.spring11/ Controlling Complexity Separation of Concerns Planning Ahead Do a little work now to make later work easier The

More information

Data Scientists / Data Analysts (m/f) educational ackground university degree in data science, computer science, software engineering

Data Scientists / Data Analysts (m/f) educational ackground university degree in data science, computer science, software engineering The International Placement Services (ZAV), a department of the German Federal Employment Agency in cooperation with EURES, is recruiting and placing job seekers who Data Scientists / Data Analysts (m/f)

More information

What about when it s down? An Application for the Enhancement of the SAS Middle Tier User Experience

What about when it s down? An Application for the Enhancement of the SAS Middle Tier User Experience Paper 11421-2016 What about when it s down? An Application for the Enhancement of the SAS Middle Tier User Experience Christopher Blake, Royal Bank of Scotland ABSTRACT The SAS Web Application Server goes

More information

USER RESEARCH Website portfolio prototype

USER RESEARCH Website portfolio prototype USER RESEARCH Website portfolio prototype Researcher & Author: Álvaro Ibargüen Villa UX, UI & Visual Designer Tel. E-mail Online +34 695 42 17 92 alvaroiv1@gmail.com aivweb.es INTRODUCTION 2 OBJECTIVES

More information

SE 2730 Final Review

SE 2730 Final Review SE 2730 Final Review 1. Introduction 1) What is software: programs, associated documentations and data 2) Three types of software products: generic, custom, semi-custom Why is semi-custom product more

More information

CMSC 435: Software Engineering Section 0201

CMSC 435: Software Engineering Section 0201 CMSC 435: Software Engineering Section 0201 Atif M. Memon (atif@cs.umd.edu) 4115 A.V.Williams building Phone: 301-405-3071 Office hours Tu.Th. (11:00am-1:00pm) Don t wait, don t hesitate, do communicate!!

More information

CS 307: Software Engineering. Lecture 10: Software Design and Architecture

CS 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 information

Miki Guest lecture at Abo Akademi University

Miki Guest lecture at Abo Akademi University Miki (@Vaadin) Guest lecture at Abo Akademi University Why? Architectural styles MVC MVP Vaadin UI architecture Agile and architecture 2014-09-22 miki@vaadin.com }> @mikiolsz 3 What makes architecture

More information

Agile Architecture. The Why, the What and the How

Agile Architecture. The Why, the What and the How Agile Architecture The Why, the What and the How Copyright Net Objectives, Inc. All Rights Reserved 2 Product Portfolio Management Product Management Lean for Executives SAFe for Executives Scaled Agile

More information

IPM 15/16 T2.1 Prototyping

IPM 15/16 T2.1 Prototyping IPM 15/16 T2.1 Prototyping Miguel Tavares Coimbra Acknowledgements: Most of this course is based on the excellent course offered by Prof. Kellogg Booth at the British Columbia University, Vancouver, Canada.

More information

Introduction. Architecture Overview

Introduction. Architecture Overview Performance and Sizing Guide Version 17 November 2017 Contents Introduction... 5 Architecture Overview... 5 Performance and Scalability Considerations... 6 Vertical Scaling... 7 JVM Heap Sizes... 7 Hardware

More information

CDN TUNING FOR OTT - WHY DOESN T IT ALREADY DO THAT? CDN Tuning for OTT - Why Doesn t It Already Do That?

CDN TUNING FOR OTT - WHY DOESN T IT ALREADY DO THAT? CDN Tuning for OTT - Why Doesn t It Already Do That? CDN Tuning for OTT - Why Doesn t It Already Do That? When you initially onboarded your OTT traffic to a CDN, you probably went with default settings. And to be honest, why wouldn t you? A standard media

More information

Topic : Object Oriented Design Principles

Topic : Object Oriented Design Principles Topic : Object Oriented Design Principles Software Engineering Faculty of Computing Universiti Teknologi Malaysia Objectives Describe the differences between requirements activities and design activities

More information

1993 Paper 3 Question 6

1993 Paper 3 Question 6 993 Paper 3 Question 6 Describe the functionality you would expect to find in the file system directory service of a multi-user operating system. [0 marks] Describe two ways in which multiple names for

More information

h(p://ihm.tumblr.com/post/ /word- cloud- for- hci- human- computer- interacbon CS5340 Human-Computer Interaction ! January 31, 2013!

h(p://ihm.tumblr.com/post/ /word- cloud- for- hci- human- computer- interacbon CS5340 Human-Computer Interaction ! January 31, 2013! h(p://ihm.tumblr.com/post/105778492/word- cloud- for- hci- human- computer- interacbon CS5340 Human-Computer Interaction January 31, 2013 Today s Class Administrivia User-centered Design Establishing Requirements

More information

COMP 6471 Software Design Methodologies

COMP 6471 Software Design Methodologies COMP 6471 Software Design Methodologies Fall 2011 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/comp6471-fall2011.html Week 7 Outline Software Architecture Layered Architecture Model-View-Control

More information

Please view notes for further information on later slides

Please view notes for further information on later slides Please view notes for further information on later slides 1 2 Mobile telecoms planning is driven primarily by coverage of population and secondarily by coverage of geographic area, often with reference

More information

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh UML big picture Perdita Stevens School of Informatics University of Edinburgh Plan Whence UML? Parts of UML How it all fits together UML as a language Consistency: what does it mean, do we need it? Defining

More information

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems Distributed Architectures & Microservices CS 475, Spring 2018 Concurrent & Distributed Systems GFS Architecture GFS Summary Limitations: Master is a huge bottleneck Recovery of master is slow Lots of success

More information

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT. March 2017 PRINCIPLES OF USER INTERFACE DESIGN

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT. March 2017 PRINCIPLES OF USER INTERFACE DESIGN BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT March 2017 PRINCIPLES OF USER INTERFACE DESIGN EXAMINERS REPORT General Comments Candidates should focus

More information

ISO/IEC TR TECHNICAL REPORT. Software engineering Mock up and prototype A categorization of software mock up and prototype models and their use

ISO/IEC TR TECHNICAL REPORT. Software engineering Mock up and prototype A categorization of software mock up and prototype models and their use This is a preview - click here to buy the full publication TECHNICAL REPORT ISO/IEC TR 14759 First edition 1999-12-01 Software engineering Mock up and prototype A categorization of software mock up and

More information

THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9)

THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9) THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9) By: Mr.Prachet Bhuyan Assistant Professor, School of Computer Engineering, KIIT Topics to be Discussed 9.1 INTRODUCTION 9.2 THE O-O DESIGN PROCESS

More information