Vad ska ni göra? ProgramvaruUtveckling för Stora System. Kravförvirring. 9 frågor till prefekten. Christin Lindholm

Relevanta dokument
Krav. Kravhantering Christin Lindholm

produkters egenskaper och innehåll

2I1070 Lektion 2 Servlets och databaskopplingar Internetprogrammering 2I1049 Treskiktsarkitektur Klient-server med servlets

F8 Webbteknologier 1. Dynamiska webbsidor

Tentamen ITK:P2. Inga hjälpmedel tillåtna förutom penna och papper. Skriv tydligt och texta gärna. 14 st frågor, 70 poäng.

Servlets y JSP Fernando Berzal,

Christin Lindholm. Programvaruutveckling av Stora Projekt, PUSP ETSF20. Välkomna! Vad händer idag?

Christin Lindholm. Programvaruutveckling av Stora Projekt, PUSP ETSF20. Välkomna! Vad händer idag?

Christin Lindholm. Programvaruutveckling av Stora System, PUSS ETS032. Välkomna! Vad är ett projekt?

Klientprogrammering mot databaser

F9 Webbteknologier 1. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

Innehåll. Föreläsning 3. javax.naming.context. javax.sql.datasource. Vad är JDBC? Java Naming and Directory Interface(JNDI) Viktigaste metoder:

Lösningsförslag, tentamen i Databaser

2I1073 Lektion 2. Lektion 2a. Lektion 2a. Servlets, säkerhet, och filhantering. import java.io.*; import javax.servlet.*; import javax.servlet.http.

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

Sample exam questions. Database exam TIG058

EDA095 HTML. Per Andersson. April 26, Lund University Innehåll: HTML, CSS, DOM, JavaScript

Kursprogram, ETSF20 Programvaruutveckling för stora projekt (PUSP), 7,5 hp

Webbprogrammering. Sahand Sadjadee

DB, DATA, LOGIC, EXPOSURE (WEB)

Föreläsning 3. Programvaruutveckling för Stora System. Målsättning i programvaruprojekt. Fel och risker. Christin Lindholm

How to format the different elements of a page in the CMS :

F6 Objektorienterad design. ID1004 Objektorienterad programmering Fredrik Kilander

Exempel. Lektion 4. Innehåll. Fördefinierade variabler. PageContext. Java Server Pages (JSP) DD2483 Enterprise Java 6 hp

Installation av F13 Bråvalla

Högskolan Dalarna sid 1 av 5 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Webbregistrering pa kurs och termin

Support Manual HoistLocatel Electronic Locks

Translation Changes in Swedish EBSCOhost Interface

Beijer Electronics AB 2000, MA00336A,

F10 Webbteknologier. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

Föreläsning 3. Programvaruutveckling för Stora System. Målsättning i programvaruprojekt. Veckan. Christin Lindholm.

Recitation 4. 2-D arrays. Exceptions

Webbreg öppen: 26/ /

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

Basic Internet Programming. Servlets, Cookies and Sessions. Björn Eiderbäck Cristian Bogdan

Surfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets

Classpath. Class loading + resurser. Class loader. jar-filer

Lab 6: ASP.NET 2.0 Providermodellen

Webbteknik II. Föreläsning 5. Restless farewell. John Häggerud, 2011

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Skriftlig tentamen den 25 oktober 2014 Kravhantering, ETS672, 7,5 hp

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Kursprogram: ETSN05 Programvaruutveckling för stora system, 2014 (7,5 hp)

LARS. Ett e-bokningssystem för skoldatorer.

Nya webbservern Dvwebb.mah.se

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

Introduk+on +ll programmering i JavaScript

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Classes och Interfaces, Objects och References, Initialization

Karlstads Universitet, Datavetenskap 1

Matthew Thurley Industriell bildanalys (E0005E) Response rate = 65 %

PHP-presentation Dataföreningens Open Source-nätverk

Kursprogram, ETS032 Programvaruutveckling för stora system (PUSS), 7,5 hp

UTLYSNING AV UTBYTESPLATSER VT12 inom universitetsövergripande avtal

Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Introduktion HTML och PHP 732G16 Databaser design och programmering

Du skall naturligtvis visa körexempel med output där det behövs i din rapport!

Quality-Driven Process for Requirements Elicitation: The Case of Architecture Driving Requirements

Introduktion till Entity Framework och LINQ. Källa och läs mer

Exempel. Föreläsning 6. Innehåll. Fördefinierade variabler. PageContext. Java Server Pages (JSP) DD2390 Internetprogrammering 6 hp

Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix

teknisk manual Direktbetalning handelsbanken.se/e-handel

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

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

Genomgång av tentamen. Databasteknik ITHS 4/3 2016

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Webbprogrammering - 725G54 PHP. Foreläsning II

Projekthandledning (PH) Grundsystemet (GS) Utvecklingsmiljön (UM)

Testning som beslutsstöd

Avancerade Webbteknologier

Filbeskrivningar Eller på särskild CD skiva

UML use cases. Mikael Söderström Institutionen för informatik Umeå universitet

Services + REST och OAuth

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

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

INTRODUKTION TILL JDBC

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

Support for Artist Residencies

FÖRSLAG TILL LÖSNINGAR, TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2, , kl

QC i en organisation SAST

Swedbank Mobile Loadtesting. LoadRunner Mobile App protocol

Lathund till PsycINFO (OVID)

Datasäkerhet och integritet

Arbeta med Selected Works en lathund

Principles of subclasses. Objekt-orienterad programmering och design Alex Gerdes, 2018

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

JavaScript in SharePoint and not just for Apps. Wictor Wilén

Från Excel laddningar till web arbetsflöden

Produktens väg från idé till grav

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Webbaserade informationssystem med PHP och databaser

Webbaserade informationssystem med PHP och databaser

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Detta dokument skall ge en kortfattad introduktion till Jasmine installationen vid DSV.

Hur integrera Active Directory och DNS? Rolf Åberg, Simplex System

En ansats till behovsstyrd applikationsutveckling

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

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

endast har ett korrekt alternativ. Om

Transkript:

ProgramvaruUtveckling för Stora System Christin Lindholm Vad ska ni göra? Tidrapporteringssystem Administration Tidrapportering Projektledning Projektledare (PG) Systemansvariga (SG) Valfri funktionalitet Utvecklare (UG) Testare (TG) 2 Kravförvirring Rollerblades och pälsdjur förbjudna i denna byggnad Husprefekten Hur skall detta krav tolkas? 9 frågor till prefekten Gäller förbudet både och eller antingen eller? Får pälsdjur åka rollerblades? Får man bära sina rollerblades i en väska? Får man bära pälsdjur i en väska? Är det ok om man rakar av pälsen? Får man ha vinterpäls & pälsmössa? Kan jag ha inlines av annat märke än rollerblades? Får jag åka vanliga rullskridskor? Skateboard? Om pluralis avses - får jag hanka mig fram på EN rollerblade? 3 4

Exempel: Luftvärnsrobot Mål: En luftvärnsrobot som hotar skeppet den avfyrades ifrån ska självdestruera Exempel: Implementerat krav Krav: Luftvärnsroboten ska självdestruera då roboten svängt 180 grader från avfyrningsläget í 5 6 Exempel: Problemet Scenario: Vid provskjutning avfyrades en robot men den lämnade inte robotrampen. Skeppet vände hemåt för att åtgärda felet och desarmera roboten. Syftet med krav Beskrivning av kundens förväntningar på produkten Bas för kontakt mellan kund och leverantör Underlag för implementation Referens för verifiering Beskrivning av färdig produkt 7 8

Ekonomiska aspekter Kravhantering (Requirements Engineering) Metoder och tekniker för att Samla in Dokumentera Validera krav Spåra krav genom utvecklingsprocessen. Fokus på Vad systemet ska göra 9 10 Kravhantering viktiga uppgifter Kravhanteringsprocessen Konceptualisera problemet och kraven Ta fram och samla in kraven Prioritera och välja bland kraven När är man färdig? Dokumentation Spårning Validering Ändringshantering Kravinsamling Specifikation Validering Hur ska vi fånga in kraven? Hur ska vi dokumentera kraven? Hur ska vi säkra att vi gör rätt? 11 12

Kravspecifikation (SRS) Kravtyper Mål: Dokumentera kundens krav på sätt som gör att utvecklarna vet exakt vad som krävs av systemet. Några kvalitetsegenskaper hos kravspecifikation: Korrekthet Fullständighet Verifierbarhet Entydighet Motsägelsefrihet Spårbarhet Organiserad Motiverad Funktionella krav Datakrav Kvalitetskrav Projektkrav 13 14 Funktionella krav Vad systemet eller produkten ska göra Specificerar ofta indata och utdata Datakrav En typ av funktionella krav Vilken data som ska in och ur systemet Vilken data som ska lagras Ex: 1. Kunder ska sparas i systemet 15 16

Kvalitetskrav Olika typer av kvalitetskrav Icke-funktionella krav Hur systemet ska fungera Användbarhet Tillförlitlighet Prestanda Underhållbarhet Säkerhet Skärmbilden ska synas på en meters håll T ex accepterad nertid T ex svarstider Krav på t ex designen T ex inloggning 17 18 Jämför GS:SRS Bakgrund & Målsättningar Terminologi Kravuppdelning Krav: Tidrapportering Context diagram Funktionella krav Login and logout Data Administration Generella krav Kvalitets krav Användare ska kunna skapa, uppdatera och ta bort tidrapporter Underhållbarhet Prestanda Projektkrav Utvecklingsmiljö, Leveranskrav, etc. 19 20

Krav Kravnumrering Alla krav ska vara spårbara!!! Analys/Design Test specifikation Kod etc. 21 För att åstadkomma spårbarhet till krav: Löpande numrering som inleds med delkapitelnummer Varför är detta bra? Samma kapitelstruktur som GS:SRS Ange vilka krav som gäller fortfarande och vilka som ev. stryks i GS:SRS Ändra inga krav i GS:SRS - stryk gammalt och lägg till nytt OBS! Ändra aldrig 22 numreringen Arbetet med SRS Varje UG analyserar och formulerar kraven SG sammanställer, fixar terminologi Testarna agerar lämpligen granskare SVVS beror av SRS -> synkroniseringsproblem Projektbibliotek Se PH:4.5 Projektbibliotek Dokumentbibliotek Dokument som produceras under projektets gång åtkomliga för externa granskare och gruppensmedlemmar Arbetsbibliotek Alla dokument ska finnas tillgängliga elektroniskt åtkomliga för gruppens medlemmar. 23 SVN eller likande 24

För projektet Processen Produkten Betygskriterier Slutrapporten För individen Individuell slutrapport Kamratbedömning Processen Hur väl följs den specificerade processen? Mäts via Projektbiblioteket och epuss. Stäms av vid 3 tillfällen (SSR, PDR, PR) 25 26 Produkten Vilken kvalitet har produkten? Produktnivå: Hur begränsad/förenklad är produkten? (Begränsningar för användaren förenklar projektet). Specifikationsenhetlighet: Hur väl stämmer den levererade produkten stämmer överens SRS:en? Tillförlitlighet och Robusthet: Hur väl har projektet lyckats säkra kvalitén på produkten? Slutrapporten (max 20s) Vad innehåller slutrapporten? Nivå: Hur långt når rapporten i de tre stegen: 1) VAD har hänt (datarapportering)? 2) VARFÖR blev det så (orsaksanalys)? 3) HUR ska man göra för att förbättra (processförbättringsanalys)? Kvalité: Hur väl rapporterad är den valda nivån. 27 28

Individuella rapporten (max 2s) Vad innehåller den individuella rapporten? Nivå: Hur långt når rapporten i beskrivningen av reflektioner utifrån roll i projektet utifrån ett antal nyckelord. Kvalité: Hur väl rapporterad är den valda nivån. Betygssteg 1. Underkänt som kräver omarbete 2. Underkänt men som är ok om det sammanslagna betyget blir minst 3 3. Godkänt genomförande/resultat 4. Väl godkänt genomförande/resultat 5. Mycket väl godkänt genomförande/ resultat 29 30 Produkten Nytt tidrapporteringssystem Webbaserat Titta på epuss, kundens uppdragsbeskrivning, kursinstruktioner Förbättringar av nuvarande system OK (välkommet) Generalisering möjlig (användning utanför kursen) 31 Några basal funktioner vi tänkt på Tidrapportering För projektmedlemmar rapportera tid (per fas, per dokument etc) Rapportgenerering Summera använd tid per person, fas, dokument etc För projektledare och andra ledare 32

forts basala funktioner HTML Administration Definiera projekt Lägg till/ta bort projektmedlemmar etc. Grundläggande statistik Tid använt per fas, per dokument per projektmedlem etc (se kap 8.2.2 sid 39).html file on the server: <html> <head> <title> A page with html </title> </head> <body> <h1> A heading </h1> Some text written in different ways <p> A new paragraph. </body> </html> 33 <h1> Some forms </h1> HTML Forms Server responses to user data (some steps) <form> First name: <input type="text" name="firstname" > <br> Last name: <input type="text" name="lastname" > </form> <form> <input type="radio" name="university" value="lth" > LTH <br> <input type="radio" name="university" value="chalmers" > Chalmers <br> <input type="radio" name="university" value="kth" > KTH <br> </form> 1. The server displays a page with a form 2. The user enters data in the form and presses a submit button or similar 3. The server analyzes the data that was entered in the form 4. The server displays a new page with a new form

<html> <head><title> FANTASTIC WEB APPLICATION </title></head> <body> Please enter your name <p> <form name="input" method="get"> <p> Name: <input type="text" name="user"> <p> <input type="submit value="submit"> </body> </html> submit In the server: abstract class HttpServlet Provides an abstract class to be subclassed to create an HTTP servlet suitable for a Web site. A subclass of HttpServlet must override at least one method, usually one of these: doget, if the servlet supports HTTP GET requests dopost, for HTTP POST requests doput, for HTTP PUT requests dodelete, for HTTP DELETE requests init and destroy, to manage resources that are held for the life of the servlet getservletinfo, which the servlet uses to provide information about itself [http://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/httpservlet.html] public class Survey extends HttpServlet { protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { // Get data from form name = request.getparameter("user"); // To write the next page PrintWriter out = response.getwriter(); Printing the next page PrintWriter out = response.getwriter(); out.println("<html>"); out.println("<head><title> the title</title></head>"); out.println("<body>"); out.println(formgenerator.namerequestform()); out.println("</body></html>");

HttpSession (Store data during a user session) HttpSession session = request.getsession(true); // example of storing data session.setattribute("name", name); In Eclipse EE New project: File -> New -> Dynamic Web Project New Servlet: File -> New -> Servlet Possible to run a server inside Eclipse Export.war-file: File -> Export // example of retrieving data name = (String) session.getattribute("name"); How to store data? In Java Collections? Loose data when server is restated In files? Depends on file system In Database Management Systems (DBMS)? Made for this Atomicy, consistency, isolation, durability Different views

Data stored in tables (relational database) SQL Students: Student name Birth year Program Courses Course name Teacher Book Course selections Student name Course name Structured Query Language Language for managing data in a relational database MySQL is one system for this Some examples create table Respondents (name varchar(100), primary key (name)); create table Cities (Cityname varchar(100), population integer, primary key (cityname)); insert into Respondents (name) values('martin Host'); select * from Respondents;

Connecting to the database in Java (jdbc) // open connection conn = DriverManager.getConnection("jdbc:mysql:// vm26.cs.lth.se/survey?" + "user=<>&password=<>"); // Example: retrieving data Statement stmt = conn.createstatement(); ResultSet rs = stmt.executequery("select * from Respondents"); while (rs.next( )) { String name = rs.getstring("name"); System.out.println(name); } stmt.close(); Prepared statements Vi rekommenderar prepared statements Uppgift för SG Design av databasen Viktigt för att undvika duplikat, inkonsistens. Lärs ut i databaskusen Prata även med designexperten Vid leverans Det ska finnas data i databasen! 52

Läs http://www.coreservlets.com/apache- Tomcat-Tutorial/tomcat-7-witheclipse.html http://tomcat.apache.org/tomcat-5.5- doc/servletapi/javax/servlet/http/ HttpServlet.html http://tomcat.apache.org/tomcat-5.5- doc/servletapi/javax/servlet/http/ HttpSession.html http://www.w3schools.com/html/ http://dev.mysql.com/ 53 Vad gör man? Om man inte får all information? Eget ansvar! 54 Nästa vecka Måndag 25/1 kl. 10-12 Fö3 Kick-off SG (UG) 12.15 och TG 13.15 i sal E412 Onsdag 27/1 kl. 10-12 Fö4 Fredag 29/1 Ö2 krav 55