Objektorienterad Systemutveckling 2

Storlek: px
Starta visningen från sidan:

Download "Objektorienterad Systemutveckling 2"

Transkript

1 Objektorienterad Systemutveckling Period 3 kurskod C1OB2B Innehåll Kursintroduktion Introduktion Systemarkitekturer Vad innebär systemarkitektur? Lagerindelning Mönster och stilar Tillvägagångssätt Designmönster GRASP GoF Kursmaterialet finns temporärt även på 1

2 KURSINTRODUKTION Kursintroduktion Inblandade lärare Anders Gidenstam, AGD (kursansvarig, examinator) Ny som kursansvarig för OOSU2. Har tidigare undervisat för DE/SV i: Grundläggande programmering med C# (VT09, VT13) Visuell programutveckling med C# (HT09 HT11(/12)) Systemutvecklingsprojekt (HT16) Jens Holgersson, JHO Var med i OOSU2 förra året och OOSU1 nu senast. Johannes Sahlin, JHSA Ny. 2

3 Kursplan - Innehåll Kursen är en fördjupningskurs som bygger vidare på befintliga kunskaper om objektorienterad problemlösning och programmering i C#. De tre huvudsakliga områdena som behandlas i kursen är systemarkitektur, persistent data och användarinteraktion. Kursen syftar också till att öva er i att tillämpa objektorienterad (analys och) design (OO(A)D). Designmönster och designprinciper enligt GRASP används genomgående för att visa på vad som är standardlösning för olika typer av utvecklingsproblem. Kursplan - Innehåll Kursens uppbyggnad utgår ifrån arkitekturen hos ett objektorienterat informationssystem och behandlar de vanligaste formerna av arkitekturlösningar. Fokus ligger på logiska och driftrelaterade arkitekturaspekter. 3

4 Kursplan - Innehåll Persistent data utgör en central del i många system och kursen behandlar lösningar för att hantera interaktionen mellan den objektorienterade lösningen av domänlogiken och data som lagras i t ex databaser med utgångspunkt i ramverket Entity Framework. Kursplan - Innehåll Vidare behandlar kursen aspekter kring användarinteraktion genom att studera interaktions- och gränssnittsdesign. Denna del introducerar även användning av gränssnittskomponenter i C#. 4

5 Kursplan - Förkunskaper Avklarade kurser Databasteknik 7,5 högskolepoäng och Objektorienterad systemutveckling 1 7,5 högskolepoäng eller motsvarande. Dispens måste sökas av alla som inte uppfyller förkunskapskraven. För 21OB1B (OOSU1) går det att invänta resultat från tentamen, men åtkomst till PingPong dröjer då. Dispens ges utan förbehåll till dem som har klarat tentamen och laborationer i DBT och har VG i grundläggande programmering. Övriga fall bedöms individuellt utifrån resultat i LADOK mm. Att läsa en kurs som man fått dispens för medför ett extra ansvar för den enskilde studenten att inhämta och uppdatera nödvändiga förkunskaper Kursmaterialet finns temporärt även på Kursplan - Mål Efter avklarad kurs ska studenten kunna, med avseende på, Kunskap och förståelse 1. Förklara grundläggande koncept i en objektorienterad systemarkitektur, 2. Förklara grundläggande koncept i hantering av persistent data, 3. Förklara grundläggande koncept inom användarinteraktion, 4. Redogöra för tillämpliga metoder och tekniker inom hantering av persistent data, 5. Redogöra för tillämpliga metoder och tekniker inom interaktions- och gränssnittsdesign, 6. Visa kunskap i användningen av UML i arbetet med att designa och dokumentera en objektorienterad systemarkitektur, Färdighet och förmåga 7. Genomföra en objektorienterad arkitekturanalys och -design med stöd av UML, 8. Praktiskt kunna tillämpa metoder och tekniker inom hantering av persistent data med tillämpning i ett objektorienterat programmeringsspråk (C#), 9. Praktiskt kunna tillämpa metoder och tekniker inom interaktions- och gränssnittsdesign med tillämpning i ett objektorienterat programmeringsspråk (C#), Värderingsförmåga och förhållningssätt 10. Visa förmåga att göra en bedömning av lämpligheten av interaktions- och gränssnittsdesign utifrån ett givet problem, 11. Visa förmåga att göra en bedömning av lämpligheten av en systemarkitektur utifrån ett givet problem. 5

6 Kursplan Mål och examinationer Laboration 1 (LAB1): Systemarkitekturuppgift i grupp Högskolepoäng: 1.5 Betygskala: UG Lärandemål: 1. Förklara grundläggande koncept i en objektorienterad systemarkitektur, 6. Visa kunskap i användningen av UML i arbetet med att designa och dokumentera en objektorienterad systemarkitektur, 7. Genomföra en objektorienterad arkitekturanalys och -design med stöd av UML, 11. Visa förmåga att göra en bedömning av lämpligheten av en systemarkitektur utifrån ett givet problem. Kursplan Mål och examinationer Laboration 2 (LAB2): Programmeringsuppgift i grupp Högskolepoäng: 1.5 Betygskala: UG Lärandemål: 2. Förklara grundläggande koncept i hantering av persistent data, 4. Redogöra för tillämpliga metoder och tekniker inom hantering av persistent data, 8. Praktiskt kunna tillämpa metoder och tekniker inom hantering av persistent data med tillämpning i ett objektorienterat programmeringsspråk (C#), 6

7 Kursplan Mål och examinationer Laboration 3 (LAB3): Interaktions- och gränssnittsuppgift i grupp Högskolepoäng: 1.5 Betygskala: UG Lärandemål: 3. Förklara grundläggande koncept inom användarinteraktion, 5. Redogöra för tillämpliga metoder och tekniker inom interaktionsoch gränssnittsdesign, 9. Praktiskt kunna tillämpa metoder och tekniker inom interaktions- och gränssnittsdesign med tillämpning i ett objektorienterat programmeringsspråk (C#), 10. Visa förmåga att göra en bedömning av lämpligheten av interaktions- och gränssnittsdesign utifrån ett givet problem, Kursplan Mål och examinationer Tentamen: (TENT): Salstentamen Högskolepoäng: 3.0 Betygskala: UVG Lärandemål : 1. Förklara grundläggande koncept i en objektorienterad systemarkitektur, 2. Förklara grundläggande koncept i hantering av persistent data, 3. Förklara grundläggande koncept inom användarinteraktion, 4. Redogöra för tillämpliga metoder och tekniker inom hantering av persistent data, 5. Redogöra för tillämpliga metoder och tekniker inom interaktions- och gränssnittsdesign, 6. Visa kunskap i användningen av UML i arbetet med att designa och dokumentera en objektorienterad systemarkitektur, 10. Visa förmåga att göra en bedömning av lämpligheten av interaktions- och gränssnittsdesign utifrån ett givet problem, 11. Visa förmåga att göra en bedömning av lämpligheten av en systemarkitektur utifrån ett givet problem. Tentan kommer vara uppdelad i 3 delar Del 1 omfattar mål 1, 6 & 11 Del 2 omfattar mål 2 & 4 Del 3 omfattar mål 3, 5 & 10 För att bli godkänd på tentan måste varje del vara godkänd. För väl godkänd måste poängsumman nå upp till nivån för väl godkänd. Se till att kunna det som laborationerna prövar! 7

8 Innehåll och progression Grundläggande Programmering med C# Systemanalys och design Objektorienterad Systemutveckling 1 Databasteknik Objektorienterad Systemutveckling 2 Förändringsarbete och design av informationssystem Systemutvecklingsprojekt Innehåll och progression Del 3 Del 1 Grundläggande programmering med C# Objektorienterad systemutveckling 1 Del 2 8

9 Kursplan - Litteratur Microsoft Patterns & Practices Team. Microsoft Application Architecture Guide (Patterns & Practices). Finns gratis online. Deitel, H.M. och Deitel, P.J.. Visual C# 2012 How To Program, Pearson, (senaste upplagan). Benyon, D.. Designing Interactive Systems: A comprehensive guide to HCI, UX and interaction design, Pearson, (senaste upplaga). Litteraturhänvisning (ungefärlig) Kursbok A: Microsoft Application Architecture Guide (Patterns & Practices) B: Visual C# 2012 How To Program C: Designing Interactive Systems: A comprehensive guide to HCI, UX and interaction design Föreläsning Bok:kapitelnummer Systemarkitekturer A: Lagerindelning och -design A: (+16, 20-25) LINQ + LINQ to Entities B: 9+22 Entity Framework + lagerindelning Webresurser DB and Model First B: 22 + Webresurser Code first Webresurser Interaktionsdesign - Introduktion C: 1-5 Uppgiftsorienterad gränssnittsdesign C: ( ) Windows Presentation Foundation B: Webresurser Windows Forms + Lagerseparation B: Webresurser 9

10 Övrigt Schema Kontrollera schemat noggrant Meddela snarast om det förekommer omöjliga konflikter Handledningar och övningar kan krocka med andra kurser Frågor? INTRODUKTION 10

11 GENERAL GUIDELINES Code against interfaces Not against implementations! 11

12 Grundläggande Principer för OO-design Hantera komplexitet (Divide-and-Conquer) Dela upp problemet och lösningen i delar. Inkapsling (Encapsulation) Använda gränssnitt (Interface) Dölja information (Information hiding) Accessnivåer: public, protected, private Abstraktion (Abstraction) Generalisering (Generality) Återanvändning (Extensibility) 24 Interface Is used to ensure a certain behavior. Enables the declaration of variables of interface type. Leads to loose coupling between objects. Makes it possible to implement several interfaces. 12

13 Abstract classes Enables inheritance of behavior and functionality. Enables the declaration of variables of the type of the abstract class. Leads to loose coupling between objects. Not possible to inherit from several abstract classes. Inheritance Inherit properties and functionality from other classes Not always the best solution! 13

14 Delegation Sometimes it is better to use an internal instance of a class to get access to its properties and functionality Again Code against interfaces Not against implementations! 14

15 SYSTEMARKITEKTUR Läsanvisningar Microsoft Application Architecture Guide (Patterns & Practices) Kapitel Onlineresurser Länkar till onlineversioner av kursboken Application Architecture Knowledge Base (utgår från boken) 15

16 Vad är systemarkitektur? Systemarkitektur handlar både om fysisk och logisk uppdelning Logisk uppdelning handlar om lagerindelning och objektdesign Fysisk uppdelning handlar om vilka delar av systemet som körs på vilken enhet Vad innebär systemarkitektur? Systemarkitektur handlar om den övergripande organiseringen av systemet Det handlar om att dela upp ansvaret för olika delar av systemet på ett tydligt sätt som underlättar utveckling och underhåll 16

17 Vad innebär systemarkitektur? Software application architecture is the process of defining a structured solution that meets all of the technical and operational requirements, while optimizing common quality attributes such as performance, security, and manageability (kursboken) Vad innebär systemarkitektur? Software architecture encompasses the set of significant decisions about the organization of a software system including the selection of the structural elements and their interfaces by which the system is composed; (Krutchen, Booch, Bittner & Reitman via kursboken) The highest-level breakdown of a system into its parts; the decisions that are hard to change; (Martin Fowler, Patterns of Enterprise Application Architecture via kursboken) 17

18 Why is Architecture Important? Software must be built on a solid foundation. You may put your application at risk by failing to consider key scenarios, failing to design for common problems, or failing to appreciate the long term consequences of key decisions Architectural decisions are most often concerned with non-functional requirements Architectural analysis and design must be initiated early in the development Målet med arkitekturen The architecture should: Expose the structure of the system but hide the implementation details. Realize all of the use cases and scenarios. Try to address the requirements of various stakeholders. Handle both functional and quality requirements 18

19 Pekpinnar Ett grundantagande inom arkitektur är att systemets design kommer att evolvera över tid Du kan inte förutsäga allt från början En viktig nyckel till framgång inom systemutveckling handlar om att kunna hantera förändrade krav Skapa en arkitektur som tillåter evolvering och anpassning till nya och förändrade krav Pekpinnar Överarbeta inte arkitekturen Gör inga antaganden som inte kan verifieras Se till att lämna öppningar för framtida förändringar Identifiera sådant som leder till stora kostnader om det måste göras om och få dem rätt från början 19

20 Assess your Architecture When testing your architecture, consider the following questions: What assumptions have I made in this architecture? What explicit or implied requirements is this architecture meeting? What are the key risks with this architectural approach? What countermeasures are in place to mitigate key risks? In what ways is this architecture an improvement over the baseline or the last candidate architecture? ARKITEKTURMÖNSTER OCH STILAR 20

21 Vad innebär en arkitekturstil? En arkitekturstil är en samling principer som formar ett applikationssystem Ett generellt ramverk De tillhandahåller: Ett gemensamt språk Möjlighet att kommunicera utan hänsyn till specifikt programmeringsspråk eller plattform Designmönster på arkitekturnivå Arkitekturtyper Arkitekturstilar kan organiseras utifrån deras fokusområde Nästan alltid kombineras flera olika arkitekturstilar Category Communication Deployment Domain Structure Architecture styles Service-Oriented Architecture (SOA), Message Bus Client/Server, N-Tier, 3-Tier Domain Driven Design Component-Based, Object-Oriented, Layered Architecture 21

22 Arkitekturtyper Objektorienterad A design paradigm based on division of responsibilities for an application or system into individual reusable and self-sufficient objects, each containing the data and the behavior relevant to the object. An object oriented design views a system as a series of cooperating objects. Objects are discrete, independent, and loosely coupled; they communicate through interfaces, by calling methods or accessing properties in other objects, and by sending and receiving messages. 22

23 Domändriven design An object-oriented architectural style focused on modeling a business domain and defining business objects based on entities within the business domain. It aims to enable software systems that are a realization of the underlying business domain by defining a domain model expressed in the language of business domain experts. The whole team agrees to only use a single language that is focused on the business domain The Domain Driven Design process holds the goal not only of implementing the language being used, but also improving and refining the language of the domain. This in turn benefits the software being built, since the model is a direct projection of the domain language. Lagerindelning Layers help to differentiate between the different kinds of tasks performed by the components, making it easier to create a design that supports reusability of components Dividing an application into separate layers that have distinct roles and functionalities helps you to maximize maintainability of the code, optimize the way that the application works when deployed in different ways, and provides a clear delineation between locations where certain technology or design decisions must be made. By identifying the generic types of components that exist in most solutions, you can construct a meaningful map of an application or service, and then use this map as a blueprint for your design. 23

24 Lagerindelning Det finns normalt sett alltid minst tre typiska delar En del som möjliggör för användaren att interagera med systemet En del som hanterar affärslogiken Ser till att programmet gör rätt saker En del som möjliggör för systemet att minnas Presentationslagret This layer contains the user oriented functionality responsible for managing user interaction with the system generally consists of components that provide a common bridge into the core business logic encapsulated in the business layer 24

25 Affärs/Domänlagret This layer implements the core functionality of the system encapsulates the relevant business logic. It generally consists of components, some of which may expose service interfaces that other callers (e.g. the presentation layer) can use Datalagret This layer provides access to data hosted within the boundaries of the system, data exposed by other networked systems; perhaps accessed through services. 25

26 Define the Interfaces between Layers The primary goal of layers is to enforce loose coupling between layers a layer should not expose internal details on which another layer could depend the interface to a layer should be designed to minimize dependencies by providing a public interface that hides details of the components within the layer This hiding is called abstraction 26

27 Deplyment: N-Tier / 3-Tier Segregates functionality into separate segments in much the same way as the layered style, but with each segment being a tier located on a physically separate computer. Each tier is completely independent from all other tiers, except for those immediately above and below it. The nth tier only has to know how to handle a request from the n+1th tier, how to forward that request on to the n-1th tier (if there is one), and how to handle the results of the request Tiers vs Layers Tier usually means the physical deployment computer. An individual running server, or a server failover clustering, is one tier. Layer usually means logic software component grouped mainly by functionality Layer is used for software development purpose. Layer software implementation has many advantages and is a good way to achieve N-Tier architecture. Layer and tier may or may not exactly match each other. 27

28 Client/Server Segregates the system into two applications, the client makes requests to the server. The simplest form of client/server system involves a server application that is accessed directly by multiple clients, referred to as a 2-Tier architectural style Komponentbaserad arkitektur Focuses on the decomposition of the design into individual functional or logical components that expose well-defined communication interfaces containing methods, events, and properties. This provides a higher level of abstraction than object-oriented design principles, does not focus on issues such as communication protocols and shared state. 28

29 DESIGNMÖNSTER OCH -PRINCIPER Läsanvisningar Microsoft Application Architecture Guide (Patterns & Practices) Kapitel webbresurser Onlineresurser Länkar till onlineversioner av kursboken Application Architecture Knowledge Base (utgår från boken) GRASP-mönster Designmönster 29

30 The ultimate question Where does this go? User Presentation var apartments = from a in db.apartments where a.state == IL select a; Business Logic Data Access Logic Data Sources Responsibility Driven Design (RDD) Basic idea is to assign responsibilities to the software objects Two basic types of responsibility: Doing and Knowing Doing: doing something, creating an object, doing a calculation, initiate some action in another object, control activity between objects. Generate some activity Knowing: knowing about private encapsulated data, related objects, or things that can be derived or calculated May also have Collaboration, in which an object may collaborate with several other objects to fulfill a responsibility Note that responsibilities are not methods they are an abstraction but methods fulfill responsibilities RDD leads to thinking of the system as a community of collaborating objects, each with a set of responsibilities 61 30

31 GRASP GRASP = General Responsibility Assignment Software Patterns (or Principles) GRASP names and describes basic principles to assign responsibilities useful tool for RDD Provides patterns for assigning responsibilities What is a pattern? A principle or idiom used that provide guidance in the creation of software They have a name, describe a problem, and a solution to the problem Patterns can be applied in various circumstances, to numerous contexts Often these guide the assignment of responsibilities to objects A good pattern is a named and well known problem/solution pair that can be applied in new contexts Naming is important provides a way to identify the pattern Good patterns are usually the result of tried-and-true knowledge, i.e. solutions that have been applied many times before 62 More on GRASP GRASP defines 9 principles These are basic building blocks in OOD Creator Controller Information Expert Low Coupling (evaluative) High Cohesion (evaluative) Polymorphism Pure Fabrication Indirection Protected Variations Följande slides är baserade på C. Larman, Applying UML and Patterns, Pearson,

32 Creator Problem: Who should be responsible for creating a new instance of some class? Basic problem in design, so it s a good idea to have a general principle for deciding how to solve this (i.e., how to assign this responsibility) Solution: Assign class B the responsibility to create class A if one or more of the following is true: B contains or completely aggregates A B records A B closely uses A B has the initializing data for A that will be passed to A when it is created (B is an Expert with respect to creating A) 64 Example: Consider a Monopoly Game example. Who creates the Square object? 65 32

33 Creator First, note that this is a Domain Model, not a design class diagram (DCD) how do we get to the software classes? Look to the Domain Model for inspiration on what the software objects should be Notice that the Board conceptual class contains Squares this suggests a software class composition Board should create Squares, Squares are part of the Board, Board manages their creation and destruction (composition) 66 After reviewing the Domain Model diagram, we can conclude that a Board object would be a good creator for the Square object in our Design Model Note we also include an interaction diagram, so we can create the dynamic object model along with the static object model 67 33

34 Information Expert Problem: What is a basic principle for assigning responsibilities to objects? Solution: Assign a responsibility to the class that has the information needed to fulfill it. Example: Consider the Monopoly game. Suppose an object wants to reference an Square, given its name. Who is responsible for knowing the Square, given its name? Most likely candidate is the Board, because it is composed of Squares Since the Board is composed of Squares, it is the object that is best suited to produce a particular square given the square s name the Board is the Information Expert, it has all of the information needed to fulfill this responsibility See the next slide for how this translates into object design

35 Information Expert: How to Use Think of the objects in your design model as workers that you manage If you have a task to assign (a responsibility), who do you give it to? You give it to the person that has the best knowledge to do the task Occasionally the knowledge to do the task is spread over several objects Interact via several messages to do the work, but there is usually one object responsible for the completion of the task 70 Low Coupling Problem: How to support low dependency, low change impact, and increased reuse in your design? Solution: Assign responsibilities so that coupling remains low Coupling is a measure of how strongly one element is connected to, has knowledge of, or relies on other elements. Low coupling means less dependence on other objects This makes sense if a class with strong coupling is changed, it will affect many other classes, which makes for high change impact Consider the Monopoly Game: We assigned the getsquare responsibility to the Board, because it contains the Squares. What if we assigned it to another class, like Dog? Consider the following diagrams we have increased the coupling in our design, not a good idea 71 35

36 72 Low Coupling: Monopoly Example Note this adds another layer of complexity to the design model: First, Dog must get a list of all of the Squares from Board Only then can it access the Square it wants to satisfy the responsibility of finding the Square instance given its name Increased coupling now both Dog and Board are associated with Square Interaction diagram is a clue that this is not a good way to go Note that this is closely related to the Expert pattern Usually, the Expert is the best choice to fill the responsibility, because using another object will add coupling (the alternate object choice would probably need to be associated with the expert anyway) 73 36

37 Low Coupling: Observations Always good to reduce coupling in design decisions, but can t be the single factor In coding, coupling could mean: Having an attribute that refers to an instance of another object Calling services or methods of another object Referring to an instance of another object in a method Direct or indirect subclass Using an interface Low coupling is good independent objects lessen impact of change 74 GRASP Patterns: High Cohesion Problem: How to keep objects focused, understandable, and manageable, and as a result support Low Coupling? Solution: Assign a responsibility so that cohesion remains high. In other words, only assign strongly related responsibilities to an object. An element with highly related responsibilities that does not do a tremendous amount of work has high cohesion. Low cohesion classes: Complicated, hard to understand Hard to reuse Hard to maintain Brittle; easily affected by change 75 37

38 : Register : Sale makepayment() create() p : Payment addpayment( p ) : Register : Sale makepayment() makepayment() create() : Payment 76 High Cohesion: Observations High cohesion objects are useful when dealing with relational databases design separate classes to deal with different parts of the RDB In general, high cohesion classes usually have few methods with highly related functionality Collaborate with other objects to accomplish tasks Analogy: Avoid overloading one member of your team with too many responsibilities distribute the workload among experts, don t assign them unrelated activities This is similar to modular design High cohesion is related to low coupling bad cohesion leads to bad coupling, and viceversa 77 38

39 GRASP Patterns: Controller Problem: What first object beyond the User Interface layer receives and coordinates ( controls ) a system operation? Solution: Assign responsibility to a class representing one of the following choices: 1. Represents the overall system, a root object, a device that the software is running in, or a major subsystem (these are façade controllers) 2. Represents a use case scenario within which the system event occurs, often called a Handler, Coordinator, or Session. Use the same controller class for all system events in the same use case scenario. Note a session is a conversation between the system and an actor, and is often organized in terms of use cases System operations are operations that are performed as the result of a major system (input) event, like hitting Submit on a form or pressing the End Sale button in the POS A Controller is the first object (beyond any User Interface object) that is responsible for receiving or handling the event and generating the operation 78 GRASP Patterns: Controller Example During Analysis, could have a conceptual class called System that owns system operations but this may not directly translate to a similar class in design System endsale() enteritem() makenewsale() makepayment()

40 GRASP Patterns: Controller Example presses button : Cashier actionperformed( actionevent ) UI Layer :SaleJFrame enteritem(itemid, qty) system operation message Domain Layer :??? Which class of object should be responsible for receiving this system event message? It is sometimes called the controller or coordinator. It does not normally do the work, but delegates it to other objects. The controller is a kind of "facade" onto the domain layer from the interface layer. 80 GRASP Patterns: Controller For the POS example, we could assign the operations of enteritem and endsale to the Register object, or we could create a POSSystem object, or create ProcessSaleHandler, ProcessSaleSession classes and assign the task of handling the system operations to them The Controller is a delegation principle; the Controller principle helps to summarize the choices the developer has to decide which Domain object will receive the work requests Choosing a handler for system events Make sure the controller you specify delegates the work, and does not do it itself. Think of the controller as being the team manager which delegates work to the experts Not a good idea to have the UI object directly delegate the work to the Domain Object this would lead to business logic being used in the UI Layer

41 GRASP Patterns: Controller presses button Cashier actionperformed( actionevent ) UI Layer :SaleJFrame It is undesirable for an interface layer object such as a window to get involved in deciding how to handle domain processes. Business logic is embedded in the presentation layer, which is not useful. Domain Layer 1: makelineitem(itemid, qty) :Sale SaleJFrame should not send this message. 82 GRASP Patterns: Controller presses button : Cashier actionperformed( actionevent ) UI Layer :SaleJFrame system operation message 1: enteritem(itemid, qty) controller Domain Layer :Register 1.1: makelineitem(itemid, qty) :Sale 83 41

42 GRASP Patterns: Controller But do consider the cohesion of the controller Multiple access methods to domain object member data might be less useful than one to get the domain object. 84 Polymorphism Problem: How to handle alternatives based on type? How to create pluggable software components? Solution: When related alternatives or behaviors vary by type (or class), assign responsibilities for the behavior (using polymorphic operations) to the types for which the behavior varies. Polymorphism: Here it means giving the same name to services in different objects when services are similar or related. So for example, the different objects may implement a common interface or be members of the same super-class

43 Polymorphism: Monopoly Example In Monopoly, there are different kinds of squares that require different behavior when landed on: Go square player receives $200 Income Tax square player must pay tax amount Go to Jail square player goes to the Jail Regular square nothing new happens right now, in more detailed use case player can buy or pay rent When designing the simulation application system, we must decide how to assign the responsibility of handling the system operation that occurs when a Player rolls the dice and lands on a square Note that although the Player always lands on a square, there are different behaviors depending upon Square type Avoid doing this as a Switch statement in the system too rigid. Use Polymorphism

44 Polymorphism: Monopoly Example Here we have defined an abstract Square class with an abstract method called landedon(). We can then define subclasses for the types of Squares, and each can (using Polymorphism) define their own behaviors for the landedon() method. Note the Player only needs to be aware of the landedon() method name The Player knows the current location (Square) he/she is on, and the Player rolls the dice and gets the value The Player can then check with the Board to get the next square, and then use the landedon() method to initiate the behavior associated with that square. This is better than having the Player maintain a list of behaviors for each type of square and then having the Player implement the behavior See next slide for examples

45 Polymorphism: Observations Polymorphism is fundamental when designing a system for which a system operation may generate multiple variations of behavior (landedon()) Usually, this will result in the definition of interfaces or abstract classes Use interfaces to support polymorphism without creating a new class hierarchy In general, creating interfaces is more flexible, since you do not need to be a subclass of the super-class to implement the interface 90 Pure Fabrication Problem: If you do not want to violate High Cohesion and Low Coupling, what object should be assigned responsibility if the solutions offered by the Expert principle are not valid? Solution: Assign a highly cohesive set of responsibilities to an artificial or convenience class that does not represent a domain conceptual class i.e., create a new object that does not correspond to a domain object, but has high cohesion, low coupling, and is reusable. This allows us to make up new classes that are not implied by (or directly associated with) the Domain Model Often useful to collect responsibilities which simply cannot be assigned to existing objects in a good (high cohesion, low coupling) way 91 45

46 Pure Fabrication: Monopoly Example Currently, the Player rolls the dice (once for each die), gets the face value as a result of each roll, and computes the total Somewhat complicates the Player object, and the Dice object is not very reusable Can use Pure Fabrication to create a new class, Cup The Cup will be associated with the Dice object, and the Player will request that the Cup roll the dice and return the total The class Cup can be designed so that on instantiation the total number of die is set This class may then be used by other game systems, as is

47 Indirection Problem: Where to assign a responsibility to avoid a direct coupling between two (or more) things? How to de-couple objects so that low coupling is supported and reuse potential remains high? Solution: Assign the responsibility to an intermediate object to mediate between other components or services so that they are not directly coupled. This is very related to Polymorphism and Pure Fabrication Essentially, create a go between or mediator class to insulate (protect) the inner design from external elements which may change

48 Protected Variations Problem: How to design objects, subsystems, and systems so that the variations or instability in these elements does not have an undesirable impact on other elements? Solution: Identify points of predicted variation or instability, assign responsibilities to create a stable interface around them One example: The Don t talk to strangers principle, which states that an object s methods should only send messages (i.e. use methods) of objects that it is directly familiar with Avoid a chain of method calls (foo.geta().getb().getc().getd()), because this traverses along the path of object connections to send a message to a distant object. Dangerous because of the possibility of change along the chain, which could easily break this design (further along you go, more likely something will change and so break) Related to Indirection, Polymorphism (the Tax Calculator example shows Indirection) 96 Gang of Four In 1994, four authors produced a book called Design Patterns (Gamma, Helm, Johnson, Vlissides) Described 23 patterns that are useful for OOD Considered the bible of design pattern books Often referred to as Gang of Four patterns, or GoF Patterns Många nya mönster har lagts till: Designmönster We will call the GRASP ideas principles and the GoF ideas patterns GRASP principles are more high level, general principles of object design GoF patterns are more concrete, solutions to specific problems in object design 97 48

49 Design Patterns as Problem Solution Pairs Conceptually, a design pattern provides a mapping from a specific design problem to a generic solution Design Patterns Defined [Cont.] Knowledge of design patterns simplifies software design by reducing the number of design problems that have to be solved from first principles. Design problems that match documented design patterns, have ready-made solutions. The remaining problems that don't match documented design patterns must be solved from first principles. 49

50 Code Design Design Pattern The following will be familiar to anyone who has written a GUI program in C#: Code Design Design Pattern Likewise, the following will be familiar to anyone who has written a GUI program in Java: 50

51 Code Design Design Pattern In each case, an event handler or callback routine is registered to handle button click events. Each implementation is unique, but in both cases the design is the same. Code Design Design Pattern In both cases the general design problem is how to allow one or more objects (those containing the event handling routines) to be notified when the state of another object (the button) changes. This is a routine design problem for which there exists a reusable solution in the form of the Observer design pattern. 51

52 Observer Intent The Observer design pattern defines a one-to-many relationship between a subject object and any number of observer objects such that when the subject object changes, observer objects are notified and given a chance to react to changes in the subject. Solution Static Structure 52

53 Solution Dynamic Behavior Solution with common base class for subjects 53

54 Vad har vi lärt oss? Systemarkitekturer Vad innebär systemarkitektur? Lagerindelning UI, domän, data Mönster och stilar Client/server, domändriven Designmönster GRASP Creator Controller Information Expert Low Coupling High Cohesion Polymorphism Pure Fabrication Indirection Protected Variations GoF Observer Varför bry sig? Software must be built on a solid foundation Poor architecture may result in software that is unstable, unable to support existing or future business requirements, difficult to deploy or manage in a production environment 54

Objektorienterad Systemutveckling Period 3

Objektorienterad Systemutveckling Period 3 Objektorienterad Systemutveckling 2 2018 Period 3 kurskod C1OB2B Innehåll Kursintroduktion Kursmaterialet finns temporärt även på http://www.gidenstam.org/hb/oosu2 KURSINTRODUKTION Kursintroduktion Inblandade

Läs mer

Support Manual HoistLocatel Electronic Locks

Support Manual HoistLocatel Electronic Locks Support Manual HoistLocatel Electronic Locks 1. S70, Create a Terminating Card for Cards Terminating Card 2. Select the card you want to block, look among Card No. Then click on the single arrow pointing

Läs mer

A metadata registry for Japanese construction field

A metadata registry for Japanese construction field A metadata registry for Japanese construction field LCDM Forum, Japan October 25 th -27 th - 2006 TAKEYA, Isobe LCDM Forum Secretariat Document No. GEC-2005-002 LCDM Forum, Japan LCDM Forum, Japan Non-profit

Läs mer

Design. Vad lärde jag mig förra lekfonen? Hur bidrog jag Fll lärandet? Kravhantering sammanfa0ning 13/04/14

Design. Vad lärde jag mig förra lekfonen? Hur bidrog jag Fll lärandet? Kravhantering sammanfa0ning 13/04/14 Design Vad är design? Vad är arkitektur? Architectural Pa:erns Designprinciper Design Pa:erns UML Domain Driven Design Domänmodell Vad lärde jag mig förra lekfonen? Hur bidrog jag Fll lärandet? Kravhantering

Läs mer

Isometries of the plane

Isometries of the plane Isometries of the plane Mikael Forsberg August 23, 2011 Abstract Här följer del av ett dokument om Tesselering som jag skrivit för en annan kurs. Denna del handlar om isometrier och innehåller bevis för

Läs mer

Mönster. Ulf Cederling Växjö University Ulf.Cederling@msi.vxu.se http://www.msi.vxu.se/~ulfce. Slide 1

Mönster. Ulf Cederling Växjö University Ulf.Cederling@msi.vxu.se http://www.msi.vxu.se/~ulfce. Slide 1 Mönster Ulf Cederling Växjö University UlfCederling@msivxuse http://wwwmsivxuse/~ulfce Slide 1 Beskrivningsmall Beskrivningsmallen är inspirerad av den som användes på AG Communication Systems (AGCS) Linda

Läs mer

6 th Grade English October 6-10, 2014

6 th Grade English October 6-10, 2014 6 th Grade English October 6-10, 2014 Understand the content and structure of a short story. Imagine an important event or challenge in the future. Plan, draft, revise and edit a short story. Writing Focus

Läs mer

Health café. Self help groups. Learning café. Focus on support to people with chronic diseases and their families

Health café. Self help groups. Learning café. Focus on support to people with chronic diseases and their families Health café Resources Meeting places Live library Storytellers Self help groups Heart s house Volunteers Health coaches Learning café Recovery Health café project Focus on support to people with chronic

Läs mer

Förändrade förväntningar

Förändrade förväntningar Förändrade förväntningar Deloitte Ca 200 000 medarbetare 150 länder 700 kontor Omsättning cirka 31,3 Mdr USD Spetskompetens av världsklass och djup lokal expertis för att hjälpa klienter med de insikter

Läs mer

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR Kontrollera vilka kurser du vill söka under utbytet. Fyll i Basis for nomination for exchange studies i samråd med din lärare. För att läraren ska kunna göra en korrekt

Läs mer

Isolda Purchase - EDI

Isolda Purchase - EDI Isolda Purchase - EDI Document v 1.0 1 Table of Contents Table of Contents... 2 1 Introduction... 3 1.1 What is EDI?... 4 1.2 Sending and receiving documents... 4 1.3 File format... 4 1.3.1 XML (language

Läs mer

Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas

Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas The Distributed Application Debugger is a debugging tool for parallel programs Targets the MPI platform Runs remotley even on private

Läs mer

Preschool Kindergarten

Preschool Kindergarten Preschool Kindergarten Objectives CCSS Reading: Foundational Skills RF.K.1.D: Recognize and name all upper- and lowercase letters of the alphabet. RF.K.3.A: Demonstrate basic knowledge of one-toone letter-sound

Läs mer

Writing with context. Att skriva med sammanhang

Writing with context. Att skriva med sammanhang Writing with context Att skriva med sammanhang What makes a piece of writing easy and interesting to read? Discuss in pairs and write down one word (in English or Swedish) to express your opinion http://korta.nu/sust(answer

Läs mer

Kursplan. IK1004 Java - Grafiska användargränssnitt med Swing. 7,5 högskolepoäng, Grundnivå 1. Java - GUI Programming with Swing - Undergraduate Level

Kursplan. IK1004 Java - Grafiska användargränssnitt med Swing. 7,5 högskolepoäng, Grundnivå 1. Java - GUI Programming with Swing - Undergraduate Level Kursplan IK1004 Java - Grafiska användargränssnitt med Swing 7,5 högskolepoäng, Grundnivå 1 Java - GUI Programming with Swing - Undergraduate Level 7.5 Higher Education Credits *), First Cycle Level 1

Läs mer

Stad + Data = Makt. Kart/GIS-dag SamGIS Skåne 6 december 2017

Stad + Data = Makt. Kart/GIS-dag SamGIS Skåne 6 december 2017 Smart@Helsingborg Stadsledningsförvaltningen Digitaliseringsavdelningen the World s most engaged citizens Stad + Data = Makt Kart/GIS-dag SamGIS Skåne 6 december 2017 Photo: Andreas Fernbrant Urbanisering

Läs mer

Designmönster för sociala användningssituationer

Designmönster för sociala användningssituationer Designmönster för sociala användningssituationer Baserat på Interaction design patterns for computers in sociable use, kommande artikel i International Journal of Computer Applications in Technology, matar@ida.liu.se

Läs mer

CHANGE WITH THE BRAIN IN MIND. Frukostseminarium 11 oktober 2018

CHANGE WITH THE BRAIN IN MIND. Frukostseminarium 11 oktober 2018 CHANGE WITH THE BRAIN IN MIND Frukostseminarium 11 oktober 2018 EGNA FÖRÄNDRINGAR ü Fundera på ett par förändringar du drivit eller varit del av ü De som gått bra och det som gått dåligt. Vi pratar om

Läs mer

Problem som kan uppkomma vid registrering av ansökan

Problem som kan uppkomma vid registrering av ansökan Problem som kan uppkomma vid registrering av ansökan Om du har problem med din ansökan och inte kommer vidare kan det bero på det som anges nedan - kolla gärna igenom detta i första hand. Problem vid registrering

Läs mer

Examensarbete Introduk)on - Slutsatser Anne Håkansson annehak@kth.se Studierektor Examensarbeten ICT-skolan, KTH

Examensarbete Introduk)on - Slutsatser Anne Håkansson annehak@kth.se Studierektor Examensarbeten ICT-skolan, KTH Examensarbete Introduk)on - Slutsatser Anne Håkansson annehak@kth.se Studierektor Examensarbeten ICT-skolan, KTH 2016 Anne Håkansson All rights reserved. Svårt Harmonisera -> Introduktion, delar: Fråga/

Läs mer

Beijer Electronics AB 2000, MA00336A, 2000-12

Beijer Electronics AB 2000, MA00336A, 2000-12 Demonstration driver English Svenska Beijer Electronics AB 2000, MA00336A, 2000-12 Beijer Electronics AB reserves the right to change information in this manual without prior notice. All examples in this

Läs mer

Senaste trenderna inom redovisning, rapportering och bolagsstyrning Lars-Olle Larsson, Swedfund International AB

Senaste trenderna inom redovisning, rapportering och bolagsstyrning Lars-Olle Larsson, Swedfund International AB 1 Senaste trenderna inom redovisning, rapportering och bolagsstyrning Lars-Olle Larsson, Swedfund International AB 2 PwC undersökning av börsföretag & statligt ägda företag Årlig undersökning av års- &

Läs mer

Materialplanering och styrning på grundnivå. 7,5 högskolepoäng

Materialplanering och styrning på grundnivå. 7,5 högskolepoäng Materialplanering och styrning på grundnivå Provmoment: Ladokkod: Tentamen ges för: Skriftlig tentamen TI6612 Af3-Ma, Al3, Log3,IBE3 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles

Läs mer

RUP är en omfattande process, ett processramverk. RUP bör införas stegvis. RUP måste anpassas. till organisationen till projektet

RUP är en omfattande process, ett processramverk. RUP bör införas stegvis. RUP måste anpassas. till organisationen till projektet RUP är en omfattande process, ett processramverk RUP bör införas stegvis RUP måste anpassas till organisationen till projektet Volvo Information Technology 1 Även RUP har sina brister... Dåligt stöd för

Läs mer

SOA One Year Later and With a Business Perspective. BEA Education VNUG 2006

SOA One Year Later and With a Business Perspective. BEA Education VNUG 2006 SOA One Year Later and With a Business Perspective BEA Education VNUG 2006 Varför SOA är viktigt? As margins erode companies need to optimize for process and operational efficiency or find new markets

Läs mer

State Examinations Commission

State Examinations Commission State Examinations Commission Marking schemes published by the State Examinations Commission are not intended to be standalone documents. They are an essential resource for examiners who receive training

Läs mer

Vad kännetecknar en god klass. Vad kännetecknar en god klass. F12 Nested & Inner Classes

Vad kännetecknar en god klass. Vad kännetecknar en god klass. F12 Nested & Inner Classes Vad kännetecknar en god klass F12 Nested & En odelad, väldefinierad abstraktion Uppgiften kan beskrivas kort och tydlig Namnet är en substantiv eller adjektiv som beskriver abstraktionen på ett adekvat

Läs mer

Make a speech. How to make the perfect speech. söndag 6 oktober 13

Make a speech. How to make the perfect speech. söndag 6 oktober 13 Make a speech How to make the perfect speech FOPPA FOPPA Finding FOPPA Finding Organizing FOPPA Finding Organizing Phrasing FOPPA Finding Organizing Phrasing Preparing FOPPA Finding Organizing Phrasing

Läs mer

Om oss DET PERFEKTA KOMPLEMENTET THE PERFECT COMPLETION 04 EN BINZ ÄR PRECIS SÅ BRA SOM DU FÖRVÄNTAR DIG A BINZ IS JUST AS GOOD AS YOU THINK 05

Om oss DET PERFEKTA KOMPLEMENTET THE PERFECT COMPLETION 04 EN BINZ ÄR PRECIS SÅ BRA SOM DU FÖRVÄNTAR DIG A BINZ IS JUST AS GOOD AS YOU THINK 05 Om oss Vi på Binz är glada att du är intresserad av vårt support-system för begravningsbilar. Sedan mer än 75 år tillverkar vi specialfordon i Lorch för de flesta olika användningsändamål, och detta enligt

Läs mer

Software Design Introduction

Software Design Introduction 1/17 Software Design Introduction Mikael Svahnberg 1 2016-03-08 1 Mikael.Svahnberg@bth.se www.bth.se About Me: Mikael Svahnberg Associate Professor, PhD in Software Engineering mailto:mikael.svahnberg@bth.se

Läs mer

Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm

Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm Guldplätering kan aldrig helt stoppa genomträngningen av vätgas, men den får processen att gå långsammare. En tjock guldplätering

Läs mer

Vässa kraven och förbättra samarbetet med hjälp av Behaviour Driven Development Anna Fallqvist Eriksson

Vässa kraven och förbättra samarbetet med hjälp av Behaviour Driven Development Anna Fallqvist Eriksson Vässa kraven och förbättra samarbetet med hjälp av Behaviour Driven Development Anna Fallqvist Eriksson Kravhantering På Riktigt, 16 maj 2018 Anna Fallqvist Eriksson Agilista, Go See Talents linkedin.com/in/anfaer/

Läs mer

Resultat av den utökade första planeringsövningen inför RRC september 2005

Resultat av den utökade första planeringsövningen inför RRC september 2005 Resultat av den utökade första planeringsövningen inför RRC-06 23 september 2005 Resultat av utökad första planeringsövning - Tillägg av ytterligare administrativa deklarationer - Variant (av case 4) med

Läs mer

Ett hållbart boende A sustainable living. Mikael Hassel. Handledare/ Supervisor. Examiner. Katarina Lundeberg/Fredric Benesch

Ett hållbart boende A sustainable living. Mikael Hassel. Handledare/ Supervisor. Examiner. Katarina Lundeberg/Fredric Benesch Ett hållbart boende A sustainable living Mikael Hassel Handledare/ Supervisor Examinator/ Examiner atarina Lundeberg/redric Benesch Jes us Azpeitia Examensarbete inom arkitektur, grundnivå 15 hp Degree

Läs mer

Kursplan. AB1029 Introduktion till Professionell kommunikation - mer än bara samtal. 7,5 högskolepoäng, Grundnivå 1

Kursplan. AB1029 Introduktion till Professionell kommunikation - mer än bara samtal. 7,5 högskolepoäng, Grundnivå 1 Kursplan AB1029 Introduktion till Professionell kommunikation - mer än bara samtal 7,5 högskolepoäng, Grundnivå 1 Introduction to Professional Communication - more than just conversation 7.5 Higher Education

Läs mer

Kursutvärderare: IT-kansliet/Christina Waller. General opinions: 1. What is your general feeling about the course? Antal svar: 17 Medelvärde: 2.

Kursutvärderare: IT-kansliet/Christina Waller. General opinions: 1. What is your general feeling about the course? Antal svar: 17 Medelvärde: 2. Kursvärdering - sammanställning Kurs: 2AD510 Objektorienterad programmering, 5p Antal reg: 75 Program: 2AD512 Objektorienterad programmering DV1, 4p Antal svar: 17 Period: Period 2 H04 Svarsfrekvens: 22%

Läs mer

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE SVENSK STANDARD SS-ISO/IEC 26300:2008 Fastställd/Approved: 2008-06-17 Publicerad/Published: 2008-08-04 Utgåva/Edition: 1 Språk/Language: engelska/english ICS: 35.240.30 Information technology Open Document

Läs mer

Swedish adaptation of ISO TC 211 Quality principles. Erik Stenborg

Swedish adaptation of ISO TC 211 Quality principles. Erik Stenborg Swedish adaptation of ISO TC 211 Quality principles The subject How to use international standards Linguistic differences Cultural differences Historical differences Conditions ISO 19100 series will become

Läs mer

Custom-made software solutions for increased transport quality and creation of cargo specific lashing protocols.

Custom-made software solutions for increased transport quality and creation of cargo specific lashing protocols. Custom-made software solutions for increased transport quality and creation of cargo specific lashing protocols. ExcelLoad simulates the maximum forces that may appear during a transport no matter if the

Läs mer

Skattejurist för en dag på Deloitte i Malmö! 26 april 2016

Skattejurist för en dag på Deloitte i Malmö! 26 april 2016 Skattejurist för en dag på Deloitte i Malmö! 26 april 2016 Ett samarbete med Lunds Universitet på kursen internationell beskattning Charlotta Hansen GES Emmy Håkansson GES Christian Schwartz GES Fanny

Läs mer

Kursplan. MT1051 3D CAD Grundläggande. 7,5 högskolepoäng, Grundnivå 1. 3D-CAD Basic Course

Kursplan. MT1051 3D CAD Grundläggande. 7,5 högskolepoäng, Grundnivå 1. 3D-CAD Basic Course Kursplan MT1051 3D CAD Grundläggande 7,5 högskolepoäng, Grundnivå 1 3D-CAD Basic Course 7.5 Higher Education Credits *), First Cycle Level 1 Mål Studenten ska efter avslutad kurs ha inhämtat grunderna

Läs mer

Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document

Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document Användarhandledning inloggning Logga in Gå till denna webbsida för att logga in: http://csportal.u4a.se/

Läs mer

DVG C01 TENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES EXAMINATION :15-13: 15

DVG C01 TENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES EXAMINATION :15-13: 15 DVG C01 TENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES EXAMINATION 120607 08:15-13: 15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Bilaga A: BNF-definition En ordbok: studentenshemspråk engelska Betygsgräns:

Läs mer

Webbreg öppen: 26/ /

Webbreg öppen: 26/ / Webbregistrering pa kurs, period 2 HT 2015. Webbreg öppen: 26/10 2015 5/11 2015 1. Du loggar in på www.kth.se via den personliga menyn Under fliken Kurser och under fliken Program finns på höger sida en

Läs mer

Kvalitetsarbete I Landstinget i Kalmar län. 24 oktober 2007 Eva Arvidsson

Kvalitetsarbete I Landstinget i Kalmar län. 24 oktober 2007 Eva Arvidsson Kvalitetsarbete I Landstinget i Kalmar län 24 oktober 2007 Eva Arvidsson Bakgrund Sammanhållen primärvård 2005 Nytt ekonomiskt system Olika tradition och förutsättningar Olika pågående projekt Get the

Läs mer

Webbregistrering pa kurs och termin

Webbregistrering pa kurs och termin Webbregistrering pa kurs och termin 1. Du loggar in på www.kth.se via den personliga menyn Under fliken Kurser och under fliken Program finns på höger sida en länk till Studieöversiktssidan. På den sidan

Läs mer

Sammanfattning. Revisionsfråga Har kommunstyrelsen och tekniska nämnden en tillfredställande intern kontroll av att upphandlade ramavtal följs.

Sammanfattning. Revisionsfråga Har kommunstyrelsen och tekniska nämnden en tillfredställande intern kontroll av att upphandlade ramavtal följs. Granskning av ramavtal Januari 2017 1 Sammanfattning Uppdrag och Bakgrund Kommunen upphandlar årligen ett stort antal tjänster via ramavtal. Ramavtalen kan löpa under flera år och tjänster avropas löpande

Läs mer

Datasäkerhet och integritet

Datasäkerhet och integritet Chapter 4 module A Networking Concepts OSI-modellen TCP/IP This module is a refresher on networking concepts, which are important in information security A Simple Home Network 2 Unshielded Twisted Pair

Läs mer

Objekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018

Objekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018 Objekt-orienterad programmering och design DIT953 Niklas Broberg, 2018 Kursteamet Niklas Broberg kursansvarig, föreläsare, examinator Johannes Åman Pohjola föreläsare Assistenter: Karin Wibergh Sarosh

Läs mer

Kursplan. FÖ3032 Redovisning och styrning av internationellt verksamma företag. 15 högskolepoäng, Avancerad nivå 1

Kursplan. FÖ3032 Redovisning och styrning av internationellt verksamma företag. 15 högskolepoäng, Avancerad nivå 1 Kursplan FÖ3032 Redovisning och styrning av internationellt verksamma företag 15 högskolepoäng, Avancerad nivå 1 Accounting and Control in Global Enterprises 15 Higher Education Credits *), Second Cycle

Läs mer

Föreläsning 8. Designmönster

Föreläsning 8. Designmönster Föreläsning 8 Designmönster Designmönster När man designar program kan det vara viktigt att förstå hur man tidigare gått till väga när man konstruerat program. Kännedom om dessa tillvägagångssätt kan snabba

Läs mer

Methods to increase work-related activities within the curricula. S Nyberg and Pr U Edlund KTH SoTL 2017

Methods to increase work-related activities within the curricula. S Nyberg and Pr U Edlund KTH SoTL 2017 Methods to increase work-related activities within the curricula S Nyberg and Pr U Edlund KTH SoTL 2017 Aim of the project Increase Work-related Learning Inspire theachers Motivate students Understanding

Läs mer

Biblioteket.se. A library project, not a web project. Daniel Andersson. Biblioteket.se. New Communication Channels in Libraries Budapest Nov 19, 2007

Biblioteket.se. A library project, not a web project. Daniel Andersson. Biblioteket.se. New Communication Channels in Libraries Budapest Nov 19, 2007 A library project, not a web project New Communication Channels in Libraries Budapest Nov 19, 2007 Daniel Andersson, daniel@biblioteket.se 1 Daniel Andersson Project manager and CDO at, Stockholm Public

Läs mer

Klicka här för att ändra format

Klicka här för att ändra format på 1 på Marianne Andrén General Manager marianne.andren@sandviken.se Sandbacka Park Högbovägen 45 SE 811 32 Sandviken Telephone: +46 26 24 21 33 Mobile: +46 70 230 67 41 www.isea.se 2 From the Off e project

Läs mer

Module 1: Functions, Limits, Continuity

Module 1: Functions, Limits, Continuity Department of mathematics SF1625 Calculus 1 Year 2015/2016 Module 1: Functions, Limits, Continuity This module includes Chapter P and 1 from Calculus by Adams and Essex and is taught in three lectures,

Läs mer

Designmönster/Design patterns

Designmönster/Design patterns Johan Eliasson Design patterns Designmönster/Design patterns Vad är det? Beprövade lösningar till återkommande programmeringsproblem Plattformsoberoende Beskrivs ofta med hjälp av UML Baseras på en bok

Läs mer

CVUSD Online Education. Summer School 2010

CVUSD Online Education. Summer School 2010 CVUSD Online Education Summer School 2010 A New Frontier for Education This is an exciting time for CVUSD First opportunity for the Online US History course and second time for the Online Health course

Läs mer

EVALUATION OF ADVANCED BIOSTATISTICS COURSE, part I

EVALUATION OF ADVANCED BIOSTATISTICS COURSE, part I UMEÅ UNIVERSITY Faculty of Medicine Spring 2012 EVALUATION OF ADVANCED BIOSTATISTICS COURSE, part I 1) Name of the course: Logistic regression 2) What is your postgraduate subject? Tidig reumatoid artrit

Läs mer

Authentication Context QC Statement. Stefan Santesson, 3xA Security AB stefan@aaa-sec.com

Authentication Context QC Statement. Stefan Santesson, 3xA Security AB stefan@aaa-sec.com Authentication Context QC Statement Stefan Santesson, 3xA Security AB stefan@aaa-sec.com The use case and problem User identities and user authentication is managed through SAML assertions. Some applications

Läs mer

Workplan Food. Spring term 2016 Year 7. Name:

Workplan Food. Spring term 2016 Year 7. Name: Workplan Food Spring term 2016 Year 7 Name: During the time we work with this workplan you will also be getting some tests in English. You cannot practice for these tests. Compulsory o Read My Canadian

Läs mer

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås Schenker Privpak AB Interface documentation for web service packageservices.asmx 2012-09-01 Version: 1.0.0 Doc. no.: I04304b Sida 2 av 7 Revision history Datum Version Sign. Kommentar 2012-09-01 1.0.0

Läs mer

Övning 5 ETS052 Datorkommuniktion Routing och Networking

Övning 5 ETS052 Datorkommuniktion Routing och Networking Övning 5 TS5 Datorkommuniktion - 4 Routing och Networking October 7, 4 Uppgift. Rita hur ett paket som skickas ut i nätet nedan från nod, med flooding, sprider sig genom nätet om hop count = 3. Solution.

Läs mer

LARS. Ett e-bokningssystem för skoldatorer.

LARS. Ett e-bokningssystem för skoldatorer. LARS Ett e-bokningssystem för skoldatorer. Därför behöver vi LARS Boka dator i förväg. Underlätta för studenter att hitta ledig dator. Rapportera datorer som är sönder. Samordna med schemaläggarnas system,

Läs mer

http://marvel.com/games/play/31/create_your_own_superhero http://www.heromachine.com/

http://marvel.com/games/play/31/create_your_own_superhero http://www.heromachine.com/ Name: Year 9 w. 4-7 The leading comic book publisher, Marvel Comics, is starting a new comic, which it hopes will become as popular as its classics Spiderman, Superman and The Incredible Hulk. Your job

Läs mer

SWESIAQ Swedish Chapter of International Society of Indoor Air Quality and Climate

SWESIAQ Swedish Chapter of International Society of Indoor Air Quality and Climate Swedish Chapter of International Society of Indoor Air Quality and Climate Aneta Wierzbicka Swedish Chapter of International Society of Indoor Air Quality and Climate Independent and non-profit Swedish

Läs mer

endast har ett korrekt alternativ. Om

endast har ett korrekt alternativ. Om Objektorienterad programmering i Java Provmoment: Ladokkod: Tentamen ges för: Tentamen NOJ011-20132-A51H3- Systemarkitektprogrammet 7,5 högskolepoäng Tentamensdatum: 2014-01-08 Tid: 09:00 14:00 Hjälpmedel:

Läs mer

The Municipality of Ystad

The Municipality of Ystad The Municipality of Ystad Coastal management in a local perspective TLC The Living Coast - Project seminar 26-28 nov Mona Ohlsson Project manager Climate and Environment The Municipality of Ystad Area:

Läs mer

The Swedish National Patient Overview (NPO)

The Swedish National Patient Overview (NPO) The Swedish National Patient Overview (NPO) Background and status 2009 Tieto Corporation Christer Bergh Manager of Healthcare Sweden Tieto, Healthcare & Welfare christer.bergh@tieto.com Agenda Background

Läs mer

Från extern till intern på tre dagar Erfarenheter från externa lärares pedagogiska kompetensutveckling

Från extern till intern på tre dagar Erfarenheter från externa lärares pedagogiska kompetensutveckling Från extern till intern på tre dagar Erfarenheter från externa lärares pedagogiska kompetensutveckling Maria Göransdotter, Designhögskolan, Umeå Universitet Margareta Erhardsson, Universitetspedagogiskt

Läs mer

Kursplan. FÖ1038 Ledarskap och organisationsbeteende. 7,5 högskolepoäng, Grundnivå 1. Leadership and Organisational Behaviour

Kursplan. FÖ1038 Ledarskap och organisationsbeteende. 7,5 högskolepoäng, Grundnivå 1. Leadership and Organisational Behaviour Kursplan FÖ1038 Ledarskap och organisationsbeteende 7,5 högskolepoäng, Grundnivå 1 Leadership and Organisational Behaviour 7.5 Credits *), First Cycle Level 1 Mål Efter genomförd kurs skall studenterna

Läs mer

Adding active and blended learning to an introductory mechanics course

Adding active and blended learning to an introductory mechanics course Adding active and blended learning to an introductory mechanics course Ulf Gran Chalmers, Physics Background Mechanics 1 for Engineering Physics and Engineering Mathematics (SP2/3, 7.5 hp) 200+ students

Läs mer

Module 6: Integrals and applications

Module 6: Integrals and applications Department of Mathematics SF65 Calculus Year 5/6 Module 6: Integrals and applications Sections 6. and 6.5 and Chapter 7 in Calculus by Adams and Essex. Three lectures, two tutorials and one seminar. Important

Läs mer

Systemutveckling. Historiskt grundad introduktion

Systemutveckling. Historiskt grundad introduktion Systemutveckling Historiskt grundad introduktion Kvalitet som tema Dataområdet kännetecknas av ständig förändring - utveckling - expansion Varje "nyhet" en förbättring Anta att förbättringarna är, eller

Läs mer

Service och bemötande. Torbjörn Johansson, GAF Pär Magnusson, Öjestrand GC

Service och bemötande. Torbjörn Johansson, GAF Pär Magnusson, Öjestrand GC Service och bemötande Torbjörn Johansson, GAF Pär Magnusson, Öjestrand GC Vad är service? Åsikter? Service är något vi upplever i vårt möte med butikssäljaren, med kundserviceavdelningen, med företagets

Läs mer

2.1 Installation of driver using Internet Installation of driver from disk... 3

2.1 Installation of driver using Internet Installation of driver from disk... 3 &RQWHQW,QQHKnOO 0DQXDOÃ(QJOLVKÃ'HPRGULYHU )RUHZRUG Ã,QWURGXFWLRQ Ã,QVWDOOÃDQGÃXSGDWHÃGULYHU 2.1 Installation of driver using Internet... 3 2.2 Installation of driver from disk... 3 Ã&RQQHFWLQJÃWKHÃWHUPLQDOÃWRÃWKHÃ3/&ÃV\VWHP

Läs mer

FANNY AHLFORS AUTHORIZED ACCOUNTING CONSULTANT,

FANNY AHLFORS AUTHORIZED ACCOUNTING CONSULTANT, FANNY AHLFORS AUTHORIZED ACCOUNTING CONSULTANT, SWEDEN HOW TO CREATE BLOG CONTENT www.pwc.se How to create blog content Fanny Ahlfors Authorized Accounting Consultant 5 Inbound Methodology Attract Convert

Läs mer

MÅLSTYRNING OCH LÄRANDE: En problematisering av målstyrda graderade betyg

MÅLSTYRNING OCH LÄRANDE: En problematisering av målstyrda graderade betyg MÅLSTYRNING OCH LÄRANDE: En problematisering av målstyrda graderade betyg Max Scheja Institutionen för pedagogik och didaktik Stockholms universitet E-post: max.scheja@edu.su.se Forskning om förståelse

Läs mer

Kursplan. NA3009 Ekonomi och ledarskap. 7,5 högskolepoäng, Avancerad nivå 1. Economics of Leadership

Kursplan. NA3009 Ekonomi och ledarskap. 7,5 högskolepoäng, Avancerad nivå 1. Economics of Leadership Kursplan NA3009 Ekonomi och ledarskap 7,5 högskolepoäng, Avancerad nivå 1 Economics of Leadership 7.5 Higher Education Credits *), Second Cycle Level 1 Mål Studenterna skall efter genomgången kurs: kunna

Läs mer

Cross sectional planning for pandemic influenza in Sweden

Cross sectional planning for pandemic influenza in Sweden Cross sectional planning for pandemic influenza in Sweden The task 1. Integrated planning across different sectors. A pandemic will impact on the whole of government and society. While Norway has a well-developed

Läs mer

Här kan du checka in. Check in here with a good conscience

Här kan du checka in. Check in here with a good conscience Här kan du checka in med rent samvete Check in here with a good conscience MÅNGA FRÅGAR SIG hur man kan göra en miljöinsats. Det är egentligen väldigt enkelt. Du som har checkat in på det här hotellet

Läs mer

Installation Instructions

Installation Instructions Installation Instructions (Cat. No. 1794-IE8 Series B) This module mounts on a 1794 terminal base unit. 1. Rotate keyswitch (1) on terminal base unit (2) clockwise to position 3 as required for this type

Läs mer

Enterprise App Store. Sammi Khayer. Igor Stevstedt. Konsultchef mobila lösningar. Teknisk Lead mobila lösningar

Enterprise App Store. Sammi Khayer. Igor Stevstedt. Konsultchef mobila lösningar. Teknisk Lead mobila lösningar Enterprise App Store KC TL Sammi Khayer Konsultchef mobila lösningar Familjen håller mig jordnära. Arbetar med ledarskap, mobila strategier och kreativitet. Fotbollen ger energi och fokus. Apple fanboy

Läs mer

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016 Objekt-orienterad Programmering och Design TDA551 Alex Gerdes, HT-2016 Kursteamet Dr. Alex Gerdes kursansvarig, föreläsare Dr. Niklas Broberg examinator, (föreläsare) Fredrik Sjöholm handledare Johan Andersson

Läs mer

WhatsApp finns för dessa plattformar:

WhatsApp finns för dessa plattformar: WhatsApp finns för dessa plattformar: Hur funkar det? WhatsApp Messenger is a cross-platform mobile messaging app which allows you to exchange messages without having to pay for SMS. WhatsApp Messenger

Läs mer

The reception Unit Adjunkten - for newly arrived pupils

The reception Unit Adjunkten - for newly arrived pupils The reception Unit Adjunkten - for newly arrived pupils Shortly on our work Number of received pupils: - 300 for school year 2014-2015 - 600 for school year 2015-2016 - 220 pupils aug-dec 2016 - ca. 45

Läs mer

Quick-guide to Min ansökan

Quick-guide to Min ansökan Version 2015-05-12 Quick-guide to Min ansökan Before filling in the application To be able to fill in an application you need to create a user account (instructions on p. 3). If you have already created

Läs mer

Alias 1.0 Rollbaserad inloggning

Alias 1.0 Rollbaserad inloggning Alias 1.0 Rollbaserad inloggning Alias 1.0 Rollbaserad inloggning Magnus Bergqvist Tekniskt Säljstöd Magnus.Bergqvist@msb.se 072-502 09 56 Alias 1.0 Rollbaserad inloggning Funktionen Förutsättningar Funktionen

Läs mer

KPMG Stockholm, 2 juni 2016

KPMG Stockholm, 2 juni 2016 KPMG Stockholm, 2 juni 2016 Inställningen till skatt förändras fundamentalt ses inte längre bara som en kostnad som behöver hanteras Förväntningarna på transparens kring skatt ökar Skatt framförallt rättviseaspekter

Läs mer

Boiler with heatpump / Värmepumpsberedare

Boiler with heatpump / Värmepumpsberedare Boiler with heatpump / Värmepumpsberedare QUICK START GUIDE / SNABBSTART GUIDE More information and instruction videos on our homepage www.indol.se Mer information och instruktionsvideos på vår hemsida

Läs mer

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018 Objekt-orienterad Programmering och Design TDA552 Alex Gerdes, HT-2018 Kursteamet Dr. Alex Gerdes examinator och föreläsare (Dr. Niklas Broberg föreläsare) Handledare: Sólrún Halla Einarsdóttir Yazan Ghafir

Läs mer

Sara Skärhem Martin Jansson Dalarna Science Park

Sara Skärhem Martin Jansson Dalarna Science Park Sara Skärhem Martin Jansson Dalarna Science Park Sara Skärhem Martin Jansson Vad är innovation? På Wikipedia hittar man: En innovation är en ny idé, till exempel i form av en produkt, lösning, affärsidé,

Läs mer

Styrteknik: Binära tal, talsystem och koder D3:1

Styrteknik: Binära tal, talsystem och koder D3:1 Styrteknik: Binära tal, talsystem och koder D3:1 Digitala kursmoment D1 Boolesk algebra D2 Grundläggande logiska funktioner D3 Binära tal, talsystem och koder Styrteknik :Binära tal, talsystem och koder

Läs mer

Hur arbetar vi praktiskt i SAG?

Hur arbetar vi praktiskt i SAG? Hur arbetar vi praktiskt i SAG? Safety Programme Safety Plan Årsplan Analys SRB Riskbaserad tillsyn Analysforum SPI Sverige (SPT) Riskregister Hazard log SAG Standardisering Tillsyn ASR rapporter ICAO

Läs mer

PORTSECURITY IN SÖLVESBORG

PORTSECURITY IN SÖLVESBORG PORTSECURITY IN SÖLVESBORG Kontaktlista i skyddsfrågor / List of contacts in security matters Skyddschef/PFSO Tord Berg Phone: +46 456 422 44. Mobile: +46 705 82 32 11 Fax: +46 456 104 37. E-mail: tord.berg@sbgport.com

Läs mer

The Finite Element Method, FHL064

The Finite Element Method, FHL064 The Finite Element Method, FHL064 Division of Solid Mechanics Course program, vt2, 20 Course description The finite element method (FEM) is a numerical method able to solve differential equations, i.e.

Läs mer

Designmönster, introduktion. Vad är det? Varför skall man använda mönster?

Designmönster, introduktion. Vad är det? Varför skall man använda mönster? Designmönster, introduktion. Vad är det? Varför skall man använda mönster? Kent Petersson EMW, Mölndal Datavetenskap, Chalmers epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL: http://www.cs.chalmers.se/~kentp

Läs mer