Software Architecture Design Patterns

2y ago
49 Views
3 Downloads
1,008.54 KB
16 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Bria Koontz
Transcription

Software ArchitectureDesign PatternsLecture 032017-2018Mobile Games Development & Promotion, MaksimenkovaOlga, FCS, SSI1

Today Game architecture (remind) Design patterns (referenced lecture)2017-2018Mobile Games Development & Promotion,Maksimenkova Olga, FCS, SSI2

Software Architecture Architecture is the fundamental organization of a system embodiedin its components, their relationships to each other, and tothe environment, and the principles guiding its design and evolution.[IEEE 1471] The software architecture of a program or computing system is thestructure or structures of the system, which comprise softwareelements, the externally visible properties of those elements, and therelationships among them. Architecture is concerned with the publicside of interfaces; private details of elements—details having to dosolely with internal implementation—are not architectural [SoftwareArchitecture in Practice (2nd edition), Bass, Clements, and Kazman] What is a software ational/library/feb06/eeles/) Software architecture and design. Chapter 1. What is software rary/ee658098.aspx)2017-2018Mobile Games Development & Promotion,Maksimenkova Olga, FCS, SSI3

Architectural Style An architectural style defines a family of systems in terms of a patternof structural organization. More specifically, an architectural styledetermines the vocabulary of components and connectors that canbe used in instances of that style, together with a set of constraintson how they can be combined. These can include topologicalconstraints on architectural descriptions (e.g., no cycles). Otherconstraints—say, having to do with execution semantics—might alsobe part of the style definition. [David Garlan and Mary Shaw, January 1994, CMU-CS-94-166, see "AnIntroduction to Software Architecture" tro softarch/intro softarch.pdf]2017-2018Mobile Games Development & Promotion,Maksimenkova Olga, FCS, SSI4

Key Architecture Principles Build to change instead of building to last. Consider how the application mayneed to change over time to address new requirements and challenges, andbuild in the flexibility to support this. Model to analyze and reduce risk. Use design tools, modeling systems such asUnified Modeling Language (UML), and visualizations where appropriate to helpyou capture requirements and architectural and design decisions, and to analyzetheir impact. However, do not formalize the model to the extent that itsuppresses the capability to iterate and adapt the design easily. Use models and visualizations as a communication and collaboration tool.Efficient communication of the design, the decisions you make, and ongoingchanges to the design, is critical to good architecture. Use models, views, andother visualizations of the architecture to communicate and share your designefficiently with all the stakeholders, and to enable rapid communication ofchanges to the design. Identify key engineering decisions. Use the information in this guide tounderstand the key engineering decisions and the areas where mistakes aremost often made. Invest in getting these key decisions right the first time so thatthe design is more flexible and less likely to be broken by changes. Chapter 1: What is Software Architecture? aspx)2017-2018Mobile Games Development & Promotion,Maksimenkova Olga, FCS, SSI5

Key Architectural Styles Client/Server segregates the system into two applications, where the clientmakes requests to the server. In many cases, the server is a database withapplication logic represented as stored procedures. Component-Based Architecture decomposes application design into reusablefunctional or logical components that expose well-defined communicationinterfaces. Domain Driven Design an object-oriented architectural style focused onmodeling a business domain and defining business objects based on entitieswithin the business domain. Layered Architecture partitions the concerns of the application into stackedgroups (layers). N-Tier / 3-Tier segregates functionality into separate segments in much the sameway as the layered style, but with each segment being a tier located on aphysically separate computer. Object-Oriented a design paradigm based on division of responsibilities for anapplication or system into individual reusable and self-sufficient objects, eachcontaining the data and the behavior relevant to the object. Service-Oriented Architecture (SOA) refers to applications that expose andconsume functionality as a service using contracts and messages.2017-2018Mobile Games Development & Promotion,Maksimenkova Olga, FCS, SSI6

Games Architecture (Refs) Introduction to Component Based Architecture in tion-tocomponent-based-architecture-in-games) Remember of Software Architecture /software-architectureantipatterns)2017-2018Mobile Games Development & Promotion,Maksimenkova Olga, FCS, SSI7

Design patters A pattern is that it is a solution to a problem in a context M. Fauler, What is a atterns.html) Design patterns n-patternsrevisited.html)2017-2018Mobile Games Development & Promotion,Maksimenkova Olga, FCS, SSI8

Singleton The pattern ensures that the class is instantiated only once and thatall requests are directed to that one and only object.C# 3.0 Design patterns, J. Bishop2017-2018Mobile Games Development & Promotion,Maksimenkova Olga, FCS, SSI9

Singleton in Games Why to avoid singletons, see ) Krakendev. Defeating the anti-pattern bully. Part 1 – singletons) D. Buchanan The Singleton /singleton-anti-pattern/) More about software architecture antipatterns /software-developmentantipatterns)2017-2018Mobile Games Development & Promotion,Maksimenkova Olga, FCS, SSI10

Factory Method The pattern is a way of creating objects, but letting subclasses decideexactly which class to instantiate. Various subclasses mightimplement the interface; the Factory Method instantiates theappropriate subclass based on information supplied by the client orextracted from the current state.C# 3.0 Design patterns, J. Bishop2017-2018Mobile Games Development & Promotion,Maksimenkova Olga, FCS, SSI11

Observer The pattern defines a relationship between objects so that when onechanges its state, all the others are notified accordingly.C# 3.0 Design patterns, J. Bishop2017-2018Mobile Games Development & Promotion,Maksimenkova Olga, FCS, SSI12

State When the state inside an object changes, it can change its behaviorby switching to a set of different operations.C# 3.0 Design patterns, J. Bishop2017-2018Mobile Games Development & Promotion,Maksimenkova Olga, FCS, SSI13

Assignment In groups of 2 Revise games patterns introduced in “Game programming tents.html) Sequencing patternsBehavioral patternsDecoupling patternsOptimization patterns For more information use Fabien Sanglard’s website(http://fabiensanglard.net) and Michael Haney’s post “Design patterns ingame lHaney/20110920/90250/Design Patterns in Game Programming.php) Prepare short (15 min) introduction of studied group of patterns 2017-2018Name of a group, list of patternsExplain the connection between patterns and games scenarios, features, etc.Give illustrations and examplesUtilize extra links on your topic in OneNote in Collaboration SpaceThe thesis for your introduction should be also presented in OneNoteMobile Games Development & Promotion,Maksimenkova Olga, FCS, SSI14

Links Alsphaugh T.A. Software /architecture.html) Meyer, B., Pedroni, M. Lecture 15: Architectural 50/slides/15 softarch styles.pdf) Game Development. Stack exchange (http://gamedev.stackexchange.com/) Designing for Mobile, Part 1: Information ning-for-mobile-part-1-informationarchitecture/) Designing Elegant Mobile Games ant-mobile-games/) M. Rohs Mobile Input & Output s1011/mmi2/mmi2-3d-MobileIO.pdf)2017-2018Mobile Games Development & Promotion,Maksimenkova Olga, FCS, SSI15

Links M. Haney Design Patterns in Game Haney/20110920/90250/Design Patterns in Game Programming.php) R. Nystrom Game Programming ts.html) M. Luedke Common Design Patterns for n-design-patternsfor-android) Mobile Application Architecture Guide obile Architecture Guide v1.1.pdf) I. Astahovs Use of Design Patterns for Mobile Game iva2:546698/FULLTEXT01.pdf)2017-2018Mobile Games Development & Promotion,Maksimenkova Olga, FCS, SSI16

Software Architecture Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. [IEEE 1471] The software architecture of a program or computing system is the structure or

Related Documents:

Contents 1 Software Architecture 2 Architectural Styles Layered Architecture 3 Design Patterns GoF Design Patterns Enterprise Design Patterns Other Useful Patterns 4 Spring Web Application Architecture 5 Conclusions Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application

LLinear Patterns: Representing Linear Functionsinear Patterns: Representing Linear Functions 1. What patterns do you see in this train? Describe as What patterns do you see in this train? Describe as mmany patterns as you can find.any patterns as you can find. 1. Use these patterns to create the next two figures in Use these patterns to .

1. Transport messages Channel Patterns 3. Route the message to Routing Patterns 2. Design messages Message Patterns the proper destination 4. Transform the message Transformation Patterns to the required format 5. Produce and consume Endpoint Patterns Application messages 6. Manage and Test the St Management Patterns System

Basic Concepts Software Architecture Lecture 3 2 Software Architecture Foundations, Theory, and Practice What is Software Architecture? Definition: A software system’s architecture is the set of principal design decisions about the system Software architecture is the blu

Distributed Systems Stream Groups Local Patterns Global Patterns Figure 1: Distributed data mining architecture. local patterns (details in section 5). 3) From the global patterns, each autonomous system further refines/verifies their local patterns. There are two main options on where the global patterns are computed. First, all local patterns

Creational patterns This design patterns is all about class instantiation. This pattern can be further divided into class-creation patterns and object-creational patterns. While class-creation patterns use inheritance effectively in the instantiation process, object-creation patterns

Currently, there isn't a specific method to find patterns for Enterprise Information Architecture in the area of Government. The goal of this work is to investigate the use of patterns and anti-patterns and propose a method to generate Enterprise Information Architecture patterns catalog for the Portuguese Government.

architecture so that it is easy to out line the software architecture efficiently [4]. The architecture of software is designed to validate and verify, which requirements can be implemented and which cannot. Architecture of a software system generally restrict the developer within the scope, more the software is closest to the architecture more .