28
E-commerce Project Erik Zeitler

E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2 Will be anounced and scheduled later We will deploy Java Server Pages on a Tomcat server

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Page 1: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

E-commerce Project

Erik Zeitler

Page 2: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 2

Lab 2

Will be anounced and scheduled later

We will deploy Java Server Pages on a Tomcat server.

Page 3: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 3

Form groups

I want the following information from each group:• Names, ”personal numbers”, e-mail

addresses• Contact person (”project leader”)

Deadline for group formation: Friday Feb 1st

Page 4: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 4

Project plan

Project plan deadline: Feb 8th

Project plan:• Description of the business case

”How will you make money?”

• A system architecture ”How will it work?” Must include

• ER diagram• Use cases• Description of user interface

• An implementation plan

Page 5: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 5

Office hours

I will be available for questions during the following times,

<see posting on web page>

Page 6: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 6

Mid term report

Request a time slot from me• E-mail me• During week 10 (Mar 3rd – Mar 7th)• Any time between 10.15 and 17.15

We will talk about the progress of your project

Page 7: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 7

Final presentation

Presentations• Mon, Mar 31st (all day)• Presentation of your project• Demonstration of a working solution

Page 8: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 8

Final report

A written report, including• The business case• A description of the system

Deadline• To be announced. • Probably Tue, Apr 1st

We will ask questions

Page 9: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 9

Dream up a business case

Think of a service you want to see Figure out how to do it in a way that

doesn’t suck Do it

Page 10: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 10

How to do it?

Think about the use cases• How will the service be used

Cut the work into pieces• User Interface, application code, database

Assign pieces within the project group Use Test Driven Development

• Test each piece (unit tests)• Test all pieces together

(integration/regression tests)

Page 11: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 11

Rapid prototyping

Make a simple prototype ASAP• See what new ideas it gives you• ”Often, users don’t know what they want

until they see it”

– Steve Jobs

Show the prototype to other project groups• Give feedback to each other

Page 12: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 12

E-commerce and security?

How can you make sure that• The customers won’t fool you• The customers won’t fool each other• Your site won’t be compromised

Page 13: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

(Test Driven) Software Development

Erik Zeitler

Page 14: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 14

Three-tier architecture

User Interface• What should the user see?• Make drawings

Database• What information will you keep?• Do data modelling, using ER diagrams

Business logic• How will you present the data to the users?• For any non-trivial function, do test driven

development

Page 15: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 15

Data modelling

Keep persistent data in a database• Customer information• Banking information• Inventory

What do you carry, and how much do you have right now?

• Past activity What has the customer bought? What has the customer looked at?

What information do you want to store? Why? Make an Entity Relationship diagram

• Translate the ER diagram into SQL tables

Page 16: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 16

Example of an ER diagram

Page 17: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 17

Why ER diagrams?

”Keep talking about the algorithms, and everyone will stay totally mystified”

”Show the ER diagram, and everything else will be obvious”

Page 18: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 18

Software development is all about Getting Things Done

Priorities in software development:• Make it work• Make it beautiful• Make it fast

Page 19: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 19

How?

1. How to make it work?• First write tests,

then write code.This is called Test Driven Development.

2. How to make it beautiful?• Re-factor

3. How to make it fast?• Don’t worry about performance until

performance is a problem.

Page 20: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 20

Why?

Because• Debugging sucks• Testing rocks

Because does it A test is a specification

• The capabilities of a program is defined by its tests

• If the tests passwe know that the program works – for the test cases.

A test is a piece of documentation

Page 21: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 21

The rules of TDD are simple

1. You can't write production code unless there is a broken test.

• First write a test, then write the code

2. When there is a broken test, you change your code to make it pass.

3. When your code is working, you refactor to eliminate any code smells…

Page 22: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 22

What is code smell?

”Something is fishy about the code” http://en.wikipedia.org/wiki/Code_smell Examples:

• Large method A function that is > 1 page

• Duplicated method A method, function, or procedure that is very

similar to another.

• Contrived Complexity Forced usage of overly complicated design

patterns where simpler design would suffice

Page 23: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 23

A good set of tests

1. covers all code2. performs tests of different scales3. tests for all cases, including edge

cases and errors

Page 24: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 24

Different sized tests

isolation,speed

confidence in whole system

Large(regression)

Medium(integration)

Small(unit)

Page 25: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 25

Where is the bug?

vs.

”Test failed”

”Test failed”

Page 26: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 26

Does the entire system work?

vs.

+

+

+ +

Page 27: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 27

Tests for edge cases and errors

No data, null pointers, garbage data

Very important!• Make sure that no component crashes

• Then, the entire system is more likely to stay alive.

Write tests for invalid input data, like• empty strings• null pointers• broken input data

Generate exceptions in the production code,catch these exceptions in the test code

Page 28: E-commerce Project Erik Zeitler. 2015-06-02Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server

23-04-18 Erik Zeitler 28

Automated tests

Netbeans has some infrastructure for testing• You did it in Lab 1, ”Java SE Intro”:Right-click the LibClass.java node in the

Projects window and choose Tools >Create JUnit Tests (Ctrl-Shift-U).