Copyright © 2003 Systek OOs gjenfødsel? Innlegg til Systek’s teknologisamling Johannes Brodwall.

Slides:



Advertisements
Liknende presentasjoner
DROPS simulator - konspetet •En ny tilnærming til å forhindre DROPS •En interaktive 3D simulering av riggen, som gjør det mulig for brukeren å: - utføre.
Advertisements

Ruby on Rails: Making simple stuff simple “Rails is a full-stack, open-source web framework in Ruby for writing real-world applications with joy and less.
Everyone Print Kalle Snarheim.
Ordspr./ proverbs 4,18 Rettferdiges sti er som morgenens lysskjær, det vokser til det blir høylys dag. The way of the righteous is like the first gleam.
DESEMBERKONFERANSEN Kristian Siem SS7 New Vessels
Organization and board
Gruppemedlemmer Gruppa består av: Magnus Strand Nekstad – s156159
- derfor går vi mobilt Espen Olsen Langfeldt, redaksjonssjef VG Mobil, Fagpressedagen 2013.
GMO-situation in Norway Kathrine & Marte, Nordic-Baltic NGO meeting 2012.
The Trondheim Toll Ring System
NUUG.topic = Ruby.new Johannes Brodwall Takk til Dave Thomas for bruk av enkelte slides.
Ledelsesinformasjonsystem
Unit testing Gruppe 2: Kjartan Haugen Jon Gunnar Bjørkmo
Slide 2:. Forretningsmodellen forklart på engelsk og norsk
Mobile Phone authorised Services through Near Field Communications Hans-Christian Haugli, Elin Melby, Josef Noll.
Web Services gjennom eksempler Johannes Brodwall.
Strategisk og taktisk SOA Fagforbundet/Sykehuspartner Johannes Brodwall, Ikke virksomhetsarkitekt Steria Norway.
Key takes from the CXPA breakfast meeting 19th of march 2013 Summarized by KOBRA – Full text from Post It notes available in notes 1.
Det tar år å innføre smidige metoder i store organisasjoner… english inside™ Smidig
Designing the User Interface (Antall brukere == Antall meninger)
Faktoranalyse Thore Egeland UiO/HIO 9 sept
 Hvorfor kommuniserer vi vitenskap?  Hvordan kommuniserer vi vitenskap?
International MSc in Chemical Engineering? Background –Continuing crisis in student recruitment –Desire to provide an international option, more international.
Nettverk Software Protocol Hierarchies
Android-Programmering Våren Lagring av data SharedPreferences Filsystem Database.
Linked Data og UBiT Rurik Thomas Greenall, NTNU Library.
Web-applikasjoner Prosjekt3 Logging Gruppe 9 Malik Muhammad Naeem Kevan Qureshi.
SINTEF Fiskeri og havbruk AS 1 Yngelfôr til torsk Kan vi erstatte levendefôr med nytt formulert fôr nå? Jose Rainuzzo Seniorforsker SINTEF Fiskeri og Havbruk.
Forum Produktutvikling og Design Temadag om Mekatronikk og produktutvikling Johan Rusaanes FMC Kongsberg Subsea.
Konseptuell modell Hvordan skal dette se ut ifra brukeren?
Kap 05 Abstrakte datastrukturer. Arv - Implementering Interface / Abstrakte klasser / Konkrete klasser Concrete classAbstract class Interface extends.
Men hva mener de som har klart det? Børge Haugset (NTNU&SINTEF)
Hva er Interaksjon Design?
1 Information search for the research protocol in IIC/IID Medical Library, 2013.
Copyright © 2003 Systek J2EE Teknologier Java Workshop CBA Johannes Brodwall, Systek as.
Extreme Programmering En Diskusjon Av Johannes Brodwall.
Britt-Ingjerd Nesheim Forskningsbasert undervisning - hva er det? Og trenger vi det?
Nasjonalt kvalifikasjonsrammeverk og læringsmål i forskerutdanningen
WHY WE’RE STRENGTHENING ROTARY. OBJECTIVES  Clarify what Rotary stands for, how it’s different and why people should care  Elevate awareness and understanding.
Triggere Mutasjoner i basen. Triggers Triggers are stored procedures that execute automatically when something (event) happens in the database: : data.
JavaOne oppsumering tobias k torrissen
  Den perfekte julegaven til Javakoden din Johannes Brodwall Steria.
Skriverammer FORSLAG TIL SKRIVERAMME ENGLISH AS A WORLD LANGUAGE
Forskningsetikk og premiering av deltakere i forskning: Hva sier NESHs retningslinjer og hvilke forskningsetiske spørsmål reises? Bergen, 27, februar 2009.
1 About critical attitude when reading Lill Kristiansen, Prof. Dr. Scient Department of Telematics, NTNU Material was originally written.
Økonomiske forutsetninger Gullfaks landsbyen 2007.
EU-program Gjennom EØS-avtalen, bilaterale avtaler og nasjonale tiltak er Norge en aktiv partner i flere samarbeids- og utvekslingsprogrammer innen EU-området.
OOT Seminar H-97 CORBA Praktisk del. Valg av ORB implementasjon n Har valgt å bruke Visigenic sin ORB implementsjon n ORB’en er 100% Java kodet n Bygger.
Trondheim 6. mars 2014 Mørke skyer i horisonten?.
fra nachspiel ide til eksport vare
02 - Java datatyper Grundlæggende om datatyper og variable.
1 | 2010 Internetteknologi 2 (ITNET2) Kort teknisk ASP.NET introduktion Mandag den 4/ Jesper Tørresø.
Publisering i åpne kanaler Anne Storset Institutt for mattrygghet og Infeksjonsbiologi.
Planning and controlling a project Content: Results from Reflection for action The project settings and objectives Project Management Project Planning.
Understanding the book Race of the Birkebeiners by Lise Lunge-Larsen, Mary Azarian (Illustrator)
Dias 1 Lene Offersgaard Center for Sprogteknologi, Københavns Universitet DK-CLARIN status WP 5.
The Thompson Schools Improvement Project Process Improvement Training Slides (Current State Slides Only) October 2009.
Primary French Presentation 10 Colours L.I. C’est de quelle couleur?
SoMe – dei nye privatarkiva?
Lecture 29.
The Norwegian Hydrografic Pilot
Hvilke muligheter finnes i andre deler av 6RP?
Hva er XP ? Ikke ekstrem, men heller meget forsiktig
Design driven Innovation Programme (DIP)
Biological quality assurance in Norway– Biological standards
LO2 – Understand Computer Software
What belongs in state storage API’s?
Developing an Educational Web Application for Student Training in Geographical Information Systems (GIS) Derek Morris Jr. , Edsel Norwood , Disaiah Bennett.
Figure 1. (A) The synthesis protocol (18) that AptaBlocks relies on
Utskrift av presentasjonen:

Copyright © 2003 Systek OOs gjenfødsel? Innlegg til Systek’s teknologisamling Johannes Brodwall

Copyright © 2003 Systek Hva er objektsorientering? "The term object was first formally applied in the Simula language, and objects typically existed in Simula programs to simulate some aspect of reality" [Booch 91, p77]. ”In the so-called Scandinavian approach (originating in Simula), the main point is that programs expressed in an object-oriented manner will be more understandable and manageable for human beings.” [ootips.org]

Copyright © 2003 Systek Hvilke objekter er i våre programmer? Brukergrensesnitt-objekter Transaksjonshåndteringsobjekter Datatransportobjekter Dataaksessobjekter HTTP-håndteringsobjekter Meldinghåndteringsobjekter Hvor er brukerens objekter?

Copyright © 2003 Systek Teknologi 1: Naked objects Et rammeverk i Java En filosofi De sentrale objektene i programmet skal være objektene i brukens begrepsverden Brukeren skal ha mulighet til å manipulere disse objektene fritt

Copyright © 2003 Systek Et eksempel

Copyright © 2003 Systek Litt kode public class Project extends AbstractNakedObject { private TextString projectTitle = new TextString(); private InternalCollection tasks = new InternalCollection(Task.class, this); private Contact owner; public TextString getProjectTitle() { return projectTitle; } /* org.nakedobjects.object.AbstractNakedObject#title() */ public Title title() { return new Title(projectTitle.title().toString() + " (" + tasks.size() + " tasks)"); } public final InternalCollection getTasks() { return tasks; } public void addTasks(Task task) { tasks.add(task); task.associateProject(this); objectChanged(); } public void removeTasks(Task task) { tasks.remove(task); task.disassociateProject(this); objectChanged(); } public void associateOwner(Contact owner) { this.owner = owner; if ( owner != null ) owner.getProjects().remove(this); } public void disassociateOwner(Contact owner) { if ( this.owner != null ) owner.getProjects().remove(this); this.owner = null; }

Copyright © 2003 Systek Brukergrensesnitt

Copyright © 2003 Systek Bygget inn test-støtte public class ECSStories extends AcceptanceTest { public void story4CopyBooking() { story("Copy a Booking from a customers previous booking"); step("Retrieve the customer by name."); View customer = getClassView("Customers").findInstance("Pawson"); step("Retrieve the booking object by its reference number."); View booking = customer.getField("Bookings", "#2 Confirmed"); step("Create a copy of the booking which will copy the the details."); View copiedBooking = booking.rightClick("Copy Booking"); checkFieldsIn(copiedBooking); checkField("Customer", booking.getField("Customer")); //... step("Specify when."); booking.fieldEntry("Date", "Dec 17, 2001"); booking.fieldEntry("Time", "6:30:00 PM"); //... }

Copyright © 2003 Systek Automatisk generert rapport

Copyright © 2003 Systek Naked objects: Noen tanker Designing and developing business systems using naked objects offers four principal benefits: Naked objects can better accommodate future changes to business requirements. Naked objects empower the user. Naked objects improve communication between developers and users. Naked objects can speed up the development process. Kilde: Richard Pawson

Copyright © 2003 Systek Noen detaljer Automatisk objekts-relasjonsmapping (Men fungere ikke alltid like bra) Toveisrelasjoner er vanskeligere med OO enn med databaser

Copyright © 2003 Systek Teknologi 2: Prevalence Hvorfor bruker vi alltid databaser? Prevalence: Legg alle objekter i RAM! RAM is getting cheaper every day. Researchers are announcing major Breakthroughs In Memory Technology. Even today, servers with multi- gigabyte RAM are commonplace. For many systems it is already feasible to keep all business objects in RAM. [ - PrevalenceSkepticalFAQ ] Breakthroughs In Memory TechnologyPrevalenceSkepticalFAQ Prevayler hevder å være flere1000 ganger raskere enn relasjonsdatabaser Forutsetning: Alle business-objekter får plass i RAM

Copyright © 2003 Systek Implementasjon Alle endringer til objekter skjer via Command Objects (A i ACID) Alle command objects legges i logg før de utføres (D i ACID) Command objects utføres serielt (I i ACID) Periodisk lagres alle objekter til snapshot

Copyright © 2003 Systek ACID A – (Atomic) Utviklers ansvar (men støttet) C – (Consistent) Utviklers ansvar (men det er vanlig) I – (Isolated) Alle Command Objects utføres serielt D – (Durable) Command Log og snapshots sørger for dette

Copyright © 2003 Systek Implementasjoner Prevayler – Open-Source Java implementasjon Bamboo.Prevalence – Open-Source.NET implementasjon Madeleine – Open-Source Ruby implementasjon En typisk implementasjon tar < 1000 kodelinjer

Copyright © 2003 Systek Oppsummering Naked objects og Prevalence fokuserer på objektene i brukernes begrepsverden Radikalt forskjellig fra mainstream: Automatisk UI istedet for kodet UI Ikke relasjonsdatabaser Vil det fungere i de applikasjonene vi utvikler? Skalerer det? (Hvor mye må vi skalere?) Sparer det arbeid? Vil det fungere med “mine data”?

Copyright © 2003 Systek Tilslutt Spørsmål? Er noen av disse ideene gode? Er de forferdelige? Hva kan vi lære fra dem? Hva skal til for å gjøre dem bra nok? Kjenner noen til relaterte teorier?