Download presentation
Presentation is loading. Please wait.
1
E-commerce Project Erik Zeitler
2
2015-06-02Erik Zeitler2 Lab 2 Will be anounced and scheduled later We will deploy Java Server Pages on a Tomcat server.
3
2015-06-02Erik Zeitler3 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 1 st
4
2015-06-02Erik Zeitler4 Project plan Project plan deadline: Feb 8 th 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
5
2015-06-02Erik Zeitler5 Office hours I will be available for questions during the following times,
6
2015-06-02Erik Zeitler6 Mid term report Request a time slot from me E-mail me During week 10 (Mar 3 rd – Mar 7 th ) Any time between 10.15 and 17.15 We will talk about the progress of your project
7
2015-06-02Erik Zeitler7 Final presentation Presentations Mon, Mar 31 st (all day) Presentation of your project Demonstration of a working solution
8
2015-06-02Erik Zeitler8 Final report A written report, including The business case A description of the system Deadline To be announced. Probably Tue, Apr 1 st We will ask questions
9
2015-06-02Erik Zeitler9 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
10
2015-06-02Erik Zeitler10 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)
11
2015-06-02Erik Zeitler11 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
12
2015-06-02Erik Zeitler12 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
13
(Test Driven) Software Development Erik Zeitler
14
2015-06-02Erik Zeitler14 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
15
2015-06-02Erik Zeitler15 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
16
2015-06-02Erik Zeitler16 Example of an ER diagram
17
2015-06-02Erik Zeitler17 Why ER diagrams? ”Keep talking about the algorithms, and everyone will stay totally mystified” ”Show the ER diagram, and everything else will be obvious”
18
2015-06-02Erik Zeitler18 Software development is all about Getting Things Done Priorities in software development: Make it work Make it beautiful Make it fast
19
2015-06-02Erik Zeitler19 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.
20
2015-06-02Erik Zeitler20 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 pass we know that the program works – for the test cases. A test is a piece of documentation
21
2015-06-02Erik Zeitler21 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…
22
2015-06-02Erik Zeitler22 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
23
2015-06-02Erik Zeitler23 A good set of tests 1.covers all code 2.performs tests of different scales 3.tests for all cases, including edge cases and errors
24
2015-06-02Erik Zeitler24 Different sized tests isolation, speed confidence in whole system Large (regression) Medium (integration) Small (unit)
25
2015-06-02Erik Zeitler25 Where is the bug? vs. ”Test failed”
26
2015-06-02Erik Zeitler26 Does the entire system work? vs. + + ++
27
2015-06-02Erik Zeitler27 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
28
2015-06-02Erik Zeitler28 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).
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.