1 / 34

Udarbejdet i perioden: 5. marts til 3. juni 2004

Denne præsentation vil sandsynligvis medføre diskussion blandt tilhørerne, hvilket vil resultere i handlingspunkter. Hvis du vil bruge PowerPoint til at holde styr på dem under præsentationen, skal du Klikke med højre museknap i Diasvisning Vælge “Referent” Vælge fanen “Handlingspunkter”

lei
Download Presentation

Udarbejdet i perioden: 5. marts til 3. juni 2004

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Denne præsentation vil sandsynligvis medføre diskussion blandt tilhørerne, hvilket vil resultere i handlingspunkter. Hvis du vil bruge PowerPoint til at holde styr på dem under præsentationen, skal du • Klikke med højre museknap i Diasvisning • Vælge “Referent” • Vælge fanen “Handlingspunkter” • Skrive handlingselementerne, efterhånden som de kommer frem • Klikke på OK for at slette denne boks • Derved oprettes der automatisk et dias med handlingspunkter sidst i præsentationen, hvor de punkter, du har noteret, vil stå. Hovedprojekt MII Aalborg Universitet Rørende Intelligent Udarbejdet i perioden: 5. marts til 3. juni 2004

  2. 1 Fremlæggelse af projekt • Indledning, teori (Model, Servlets mm.) • Peter • UML gennemgang • Preben • Together-oplæg • Anders • Sammenligning med eksisterende løsning • – Hans Peter • Konklusion, perspektivering, alternative løsningsforslag • Noah Cirka 12 minutter per indlæg

  3. 2 Indledning, teori (Model, Servlets mm.) • Indledning • væsentlige teorier og metoder fra PE-kurser • OOP, (OOAD) samt Client-/Server programmering. • I forhold til materiale (OOP/Client/server) mangler i projektet to primære områder: • Kommunikation via streams • Brug af interfaces

  4. 3 Teori • Java 2 Standard Edition (J2SE) • Java 2 Platform Enterprise Edition (J2EE) • Java Servlets • Java Server Pages (JSP) • Java DataBase Connectivity (JDBC) • Java 2 Micro Edition (J2ME)

  5. Access Database MVC, Servlet, JSP med JDBC/ODBC 1..m klienter 3 2 4 1 INTERNET 4 Teori Arkitektur • 3-lags arkitektur

  6. 5 Teori Servlet import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class ClientConsume extends HttpServlet { private static final int NO_POF_PIPES = 17; private static final String CONTENT_TYPE = "text/html"; //Initialize global variables private MainWindow lnkMainWindow; private DBBoundary lnkDBBoundary; private Login lnkLogin; private HttpSession session; public void init() throws ServletException { lnkDBBoundary = new DBBoundary(); lnkMainWindow = new MainWindow(lnkDBBoundary); lnkLogin = new Login(lnkDBBoundary, lnkMainWindow); } //Process the HTTP Get request showing parametres public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //Process the HTTP Put request public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }

  7. 6 Teori Servlet (fortsat) switch (select) { case 1: //Login …. …. response.sendRedirect("ClientProduce.jsp"); break; case 2: // Sprog …. …. response.sendRedirect("ClientProduce.jsp"); break; case 3: // Beregn …. …. response.sendRedirect("ClientProduce.jsp"); break;

  8. 7 Teori JSP • JSP <%@ page import = "java.text.DecimalFormat " %> <html> <head> <title>ClientProduce</title> …. <form name="Pipe" action="/ClientConsume" method="post"> <table name="mainTable1" align="center" width="600" border="0"> <tr><td><input type=text value="<%=a[0]%>" size="8" name="temp1"></td> …. <%%> …. </form> </body>

  9. 8 Teori MVC • Model-View-Controller (MVC)

  10. Denne præsentation vil sandsynligvis medføre diskussion blandt tilhørerne, hvilket vil resultere i handlingspunkter. Hvis du vil bruge PowerPoint til at holde styr på dem under præsentationen, skal du • Klikke med højre museknap i Diasvisning • Vælge “Referent” • Vælge fanen “Handlingspunkter” • Skrive handlingselementerne, efterhånden som de kommer frem • Klikke på OK for at slette denne boks • Derved oprettes der automatisk et dias med handlingspunkter sidst i præsentationen, hvor de punkter, du har noteret, vil stå. UML anvendt til applikationen(Unified Modeling Language) Rørende Intelligent Preben Melgaard

  11. 1 Præsentation af de anvendte diagramtyper • Deployment diagram • Use case diagram • Aktivitetsdiagram • Klassediagram • Sekvensdiagram

  12. 2 Deployment diagram • Viser den fysiske arkitektur af hardware og software i systemet

  13. 3 Use case diagram • Viser et antal aktører og deres forbindelse til use cases som systemet tilbyder • Beskrivelse af funktionalitet • Tekst eller aktivitetsdiagram • Definerer funktionelle krav til systemet

  14. 4 Aktivitetsdiagram • Viser sekventiel flow af aktiviteter • Bruges typisk til at beskrive de aktiviteter der skal til for at udføre en operation

  15. 5 Klassediagram • Associeret • Afhængige • Pakket • Viser den statiske struktur af klasser

  16. 6 Sekvensdiagram • Viser dynamisk samarbejde mellem objekter • Speciel god til at vise timing i sekvenser • Viser beskeder sendt mellem objekter • Viser tiden lodret nedad

  17. 7 Andre mulige diagramtyper • State diagram • Viser et objekts tilstande og de hændelser, som giver et tilstandsskift • Kan laves både for klasser og hele systemet • Collaboration diagram • Viser det dynamiske samarbejde mellem objekter • Ikke så gode til at vise timing • Componet diagram • Viser fysiske komponent associationer • F.eks. Kildetekstfiler, binære filer og exe-filer. • Anvendes i programmeringen

  18. Denne præsentation vil sandsynligvis medføre diskussion blandt tilhørerne, hvilket vil resultere i handlingspunkter. Hvis du vil bruge PowerPoint til at holde styr på dem under præsentationen, skal du • Klikke med højre museknap i Diasvisning • Vælge “Referent” • Vælge fanen “Handlingspunkter” • Skrive handlingselementerne, efterhånden som de kommer frem • Klikke på OK for at slette denne boks • Derved oprettes der automatisk et dias med handlingspunkter sidst i præsentationen, hvor de punkter, du har noteret, vil stå. Together-oplæg Rørende Intelligent Anders Rieck Sørensen

  19. 1 Teknologivalg • Kontrolleren • Java (SDK/JDK) • MS-Access • SQL (JDBC/ODBC) • Præsentationen • JSP • HTML/DHTML • JavaScript • CSS

  20. 2 Udviklingsværktøjer • Together • UML • Java-klasser • JSP • Aftestning/debugning • FrontPage • HTML / DHTML / CSS / JavaScript

  21. 3 Implementeringsforløb • Første version • Java-klasserne fordelt til de enkelte gruppemedlemmer og aftestet før de blev frigivet. • Anden version • Javaklasserne blev samlet i et projekt • Konstruktørerne blev fastlagt • Login.htm og clientProcedure.jsp

  22. 4 Demonstration • Gennemgang • Diagrammerne • Editor • Kørsel

  23. 5 Opsummering • Together • UML diagrammer og implementering god sammenhæng • Fint udviklingsværktøj • God i implementering og aftestning fasen • Reducer tidsforbrug • FrontPage • God i udvikling skærmbilleder • Reducer tidsforbug • Generelt • Kun to udviklingsværktøjer

  24. Sammenligning af .NET- og Java-applikation Rørende Intelligent Hans Peter Lybæk

  25. 1 Om applikationerne • .NET-applikationen • Programmeret i Visual Basic.Net • Findes via adressen http://www.vbdotnet.dk/ • Java-applikationen • Programmeret i Java • Findes via adressen http://www.pbdesign.dk/mii

  26. 2 Test af performance (hastighed) • Test af hastighed • Visuel test • Konkret hastighedsmåling • Demo .NET-applikation Java-applikation

  27. 3 .NET vs Java • Forskelle • .NET-applikation • Opdaterer med direkte adgang til databasen (hele siden opdateres) • 100% adskillelse af HTML og programkode (se eksempel) • Java-applikation • Rullevinduernes værdier er lagret via arrays i JavaScript, hvorved kun de aktuelle menuer loades og dermed ikke hele siden

  28. 4 Konkret hastighedsmåling • Indførelse af timestamps, når beregning starter og slutter • .NET-kode: Private Sub Calculate_heat() Dim dTime1, dTime2 As DateTime Dim tCount1, tCount2 As Integer dTime1 = Now //Here goes the calculation GetPipeDimensions() GetPipeSpecs() … dTime2 = Now tCount2 = dTime2.Subtract(dTime1).Seconds() tCount1 = dTime2.Subtract(dTime1).Milliseconds() Response.Write("Tid: " & tCount2 & " sek., " & tCount1 & " millisek.") End Sub

  29. 5 Java-applikation • Java-kode: long[] laT = new long[2]; Date timestamp = new Date(); laT[0] = timestamp.getTime(); // Start tid switch (select) { case 3: // Beregn daRes = lnkMainWindow.beregn(daT[0], daT[1], daT[2], iaD[0], daLength); session.setAttribute("result", daRes); session.setAttribute("navn", valg); Date timestamp3 = new Date(); laT[1] = timestamp3.getTime(); // Slut tid session.setAttribute("time", laT); response.sendRedirect("ClientProduce.jsp"); break;

  30. 6 Vurdering af resultater • Visuel test • Java-applikation er hurtigst til at eksekvere på klientsiden (eksempelvis skift af rullevinduer) • Java-applikation vurderes til at være lidt hurtigere til at skifte sprog (der er ikke målt tid på dette) • De to applikationer er cirka lige hurtige til at udføre en beregning • Konkret hastighedsmåling • Beregninger: • .NET: 0sek, 430 millisekunder • Java: 0sek, 140 millisekunder • Sprog • .NET: 0sek, 15 millisekunder • Java: 0sek, 32 millisekunder

  31. 7 Eksempel på databaseopslag i .NET • Klasse clsDimensions Imports System.Data Imports System.Data.OleDb Public Class clsDimensions Inherits System.Web.UI.Page Dim i As Integer Dim pDim(16) As Integer Dim strCn As String Public Function GetDimensions() As Integer() strCn = "Provider=Microsoft.jet.oledb.4.0;Data Source=" & Server.MapPath("fluids.MDB") & ";" Dim strSql As String = "Select dimension FROM material_spec ORDER BY id ASC" Dim objConnection As New OleDbConnection(strCn) Dim objCommand As New OleDbCommand(strSql, objConnection) Dim objDataReader As OleDbDataReader objConnection.Open() objDataReader = objCommand.ExecuteReader() i = 0 Do While objDataReader.Read() = True pDim(i) = objDataReader("dimension") i += 1 Loop objDataReader.Close() objConnection.Close() Return pDim End Function End Class

  32. 8 Eksempel på databaseopslag i Java • Java: public double[] GetDimensions(){ double[] dimension=new double[18]; int taeller = 0; String strSql = "SELECT Dimension FROM material_spec ORDER BY id ASC"; try{ Statement statement1 = connectionfluids.createStatement(); ResultSet res1 = statement1.executeQuery(strSql); while (res1.next()){ dimension[taeller] = res1.getInt("Dimension"); taeller++; } }catch (Exception fagex){System.out.println("kunne ikke finde dimensionen "+fagex);} return dimension; }

  33. 9 .NET-kode • Eksempel • Man indtaster en tekst og det indtastede returneres i en label <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="GeorgFischer.WebForm1"%> <!DOCTYPEHTMLPUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>WebForm1</title> <metaname="GENERATOR"content="Microsoft Visual Studio.NET 7.0"> <metaname="CODE_LANGUAGE"content="Visual Basic 7.0"> <metaname=vs_defaultClientScriptcontent="JavaScript"> <metaname=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body> <formid="Form1"method="post"runat="server"> <asp:Labelid=Label1runat="server">Enter some text:</asp:Label> <asp:TextBoxid=TextBox1runat="server"></asp:TextBox> <asp:Buttonid=Button1runat="server"Text="Click me"></asp:Button> <br> <asp:Labelid=Label2runat="server">You entered:</asp:Label> <asp:Labelid=Label3runat="server">Label</asp:Label> </form> </body> </HTML>

  34. 10 Kodefil (Webform1.aspx.vb) • Dette er kodefilen, der anvendes af aspx-filen PublicClass WebForm1 Inherits System.Web.UI.Page ProtectedWithEvents Label1 As System.Web.UI.WebControls.Label ProtectedWithEvents TextBox1 As System.Web.UI.WebControls.TextBox ProtectedWithEvents Button1 As System.Web.UI.WebControls.Button ProtectedWithEvents Label2 As System.Web.UI.WebControls.Label ProtectedWithEvents Label3 As System.Web.UI.WebControls.Label PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Label3.Text = TextBox1.text EndSub EndClass

More Related