** NOTICE! These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer Science and Engineering, University of Mälardalen, Västerås, Sweden and at the Faculty of Electrical Engineering and Computing, University of Zagreb, Croatia (year 2013/2014). For all other purposes, authors’ written permission is needed! The purpose of these materials is to help students in better understanding of lectures in DSD and not their replacement!
** Distributed Software Development
** Requirement & Design Georgy Shabunin Project Plan & Status Report David Riobó
** Relsem Team Ivan LučinGeorgy Shabunin Michele CastellanaŽeljko KraljevićDavid Riobo Mladen Subotić
** Outline System Goal RequirementsDesign Project plan Project Status
System Goal
* * Use Case Models
Functional Requirements 1/2 Manager Web AppDriver Viewing user’s schema; Selecting RDF endpoints; Creating relations; Editing schema and particular relations. Client App - Server App connect through JDBC postgres driver; PostgreSQL for transfering the query and result; Query parsing.
Functional Requirements 2/2 DBMSSemantic layer Query validation; Simple SELECT statements; Inner join on multiple relations. Querying (SPARQL) remote and local data sources; Retrieve source meta- data; Extandable with heterogeneous, distributed sources.
** Non-Functional Requirements Usability ReliabilityPerformance
** Component Architecture
Step 1. Create DB schema definition. Data Flow 1/2
Step 2. Deliver the required data to the Client App. Data Flow 2/2
GUI
** Driver JDBC 4.1 JSR open source RDB driver specification PostgreSQL protocol protocol for server-client communication ANTLR SQL parse, syntax check and validation Semantic layer Jena API Java RDF API for querying semantic data SPARQL query language for semantic data sources Technologies and tools
Manager back/front end Jersey API for building RESTful web-services javascript front-end code backbone.js javascript structuring framework require.js, underscore.js dependency injection & utilities HTML5, CSS visuals Technologies and tools
Agile Software Development Week iterations(7) Steps: 1.Detailed week plan 2.Identify problems 3.Design 4.Implementation 5.Testing 6.Integration Development methodology
First requirements, creating teams, separating jobs MILESTONE /DELIVERABLE 1 MILESTONE/DE LIVERABLE 2 Milestones
Milestone 1
Communication Client/Server Definition of interfaces Basic functionalities for administration Basic parsing functionality Application works with ad hoc data Slightly behind schedule
Milestone 2
Integration of all layers Data types support All parsing functionality All functional requirements are fully implemented Application works with real world data Milestone 2
Weekly documents Deriverable documents Minutes of Meeting Weekly summary Never delete documents! Documentation
Activity plan 1
Activity plan 2
Activity plan 3
Divergent project tracks Project feasibility Team members leave the project Communication issues Integration problems Lack of experience Team members miss meetings Language misunderstanding Project Risks
First iteration results ●Front-end, DBMS and semantic assignments finished as supposed ●Problems with the type 4 JDBC client- server connection. Progress
Actions after first iteration/Second iteration Redistribution of work to finish the server-client part on the second iteration. Connection of all parts. Test of functionality with mocked data. Progress
Thank you for your attention! Questions?