You are on page 1of 34

Introduction Concepts Implementation Future plans

License Manager for NSN

Piotr Sobczyk, Sebastian Spiegel

30 June 2010

1 / 24
Introduction Concepts Implementation Future plans

Agenda

1 Introduction

2 Concepts

3 Implementation

4 Future plans

2 / 24
Introduction Concepts Implementation Future plans

1 Introduction

2 Concepts

3 Implementation

4 Future plans

3 / 24
Introduction Concepts Implementation Future plans

About us

We are...
Students of computer science at Faculty of Electronics at
Wroclaw University of Technology.
And...

4 / 24
Introduction Concepts Implementation Future plans

About us

We are...
Students of computer science at Faculty of Electronics at
Wroclaw University of Technology.
And...

4 / 24
Introduction Concepts Implementation Future plans

java geeks ;-)

5 / 24
Introduction Concepts Implementation Future plans

Group members

Bartªomiej Guzy
Magdalena Kusz
Dominik Michalski
Piotr Sobczyk
Sebastian Spiegel
Šukasz Szwedo

Mail of group leader: sobczyk.peter@gmail.com

6 / 24
Introduction Concepts Implementation Future plans

Project description

Application for license generation and management.

7 / 24
Introduction Concepts Implementation Future plans

Requirements

Easy and intuitive GUI


Automatization of licenses generation
Ability to extend functionality
Use of free tools and technologies

8 / 24
Introduction Concepts Implementation Future plans

Old problems...

Problems with current license management system used in NSN


non-intuitive
overcomplicated
not fully automated

9 / 24
Introduction Concepts Implementation Future plans

1 Introduction

2 Concepts

3 Implementation

4 Future plans

10 / 24
Introduction Concepts Implementation Future plans

Basic concepts, pt.1

USER - a client of the system with personal information such


as name, surname, e-mail, etc.
USER CREDENTIALS - user's account specied with id,
login, domain; one user may have many accounts
FEATURE - functionality of application (e.g. printing,
exporting to pdf)
CATEGORY - additional term used to describe groups of
features (e.g. MS Word)

11 / 24
Introduction Concepts Implementation Future plans

Basic concepts, pt.2

PRODUCT - a set of features from many/various categories


(e.g. bundle of features created for members of programming
workshop)
PRODUCT VERSION - various versions of particular
product (e.g. MS Oce 2007)
PRIVILEGE - privilege which is required when a client applies
for a license of product version
LICENSE - set of rights (dened by privileges) for product
versions, assigned to user's accout; license is delivered to client

12 / 24
Introduction Concepts Implementation Future plans

Basic concepts, pt.3

13 / 24
Introduction Concepts Implementation Future plans

1 Introduction

2 Concepts

3 Implementation

4 Future plans

14 / 24
Introduction Concepts Implementation Future plans

Architecture

Many layers
Separation of
concerns
MVC
Domain Driven
Development
Composite views

15 / 24
Introduction Concepts Implementation Future plans

Architecture

Many layers
Separation of
concerns
MVC
Domain Driven
Development
Composite views

15 / 24
Introduction Concepts Implementation Future plans

Architecture

Many layers
Separation of
concerns
MVC
Domain Driven
Development
Composite views

15 / 24
Introduction Concepts Implementation Future plans

Architecture

Many layers
Separation of
concerns
MVC
Domain Driven
Development
Composite views

15 / 24
Introduction Concepts Implementation Future plans

Architecture

Many layers
Separation of
concerns
MVC
Domain Driven
Development
Composite views

15 / 24
Introduction Concepts Implementation Future plans

Architecture

Many layers
Separation of
concerns
MVC
Domain Driven
Development
Composite views

15 / 24
Introduction Concepts Implementation Future plans

Technologies

Java
Swing (with
MigLayout)
JDBC
Google Guice

16 / 24
Introduction Concepts Implementation Future plans

Technologies

Java
Swing (with
MigLayout)
JDBC
Google Guice

16 / 24
Introduction Concepts Implementation Future plans

Technologies

Java
Swing (with
MigLayout)
JDBC
Google Guice

16 / 24
Introduction Concepts Implementation Future plans

Technologies

Java
Swing (with
MigLayout)
JDBC
Google Guice

16 / 24
Introduction Concepts Implementation Future plans

Technologies

Java
Swing (with
MigLayout)
JDBC
Google Guice

16 / 24
Introduction Concepts Implementation Future plans

Continuous integration

Continuous integration tool - Hudson


Automatic tests launching
Emails to developers after every failed build
Statistics in graphical form
Artifacts
application prepared for distribution

Javadoc

17 / 24
Introduction Concepts Implementation Future plans

Testing

JUnit for unit testing


TDD

easy regressions detection

DbUnit for integration testing


is everything ok with data storage layer?

H2 for PostgreSQL emulation

Fitnesse for acceptance testing


tests real use cases

thorough tests of all application layers

comunication beetwen client and developer

problems: time consuming, bugs in Fitnesse

18 / 24
Introduction Concepts Implementation Future plans

Fitnesse

19 / 24
Introduction Concepts Implementation Future plans

Project managment

Project management and bug-tracking tool


Mantis for bugs
Google Spreadsheet for simple task assigning

We wanted something better and chose Redmine


one tool to rule them all
bugs, feature requests and tasks in one place
good integration with SVN

20 / 24
Introduction Concepts Implementation Future plans

1 Introduction

2 Concepts

3 Implementation

4 Future plans

21 / 24
Introduction Concepts Implementation Future plans

Project in progress...

New use cases to


implement
Automatic mail

generation

Security

New experience to gain


Reporting module in next
semester?

22 / 24
Introduction Concepts Implementation Future plans

23 / 24
Introduction Concepts Implementation Future plans

Any questions?

24 / 24

You might also like