coding alpacas alpacabid: phase two design presentation presentation available at...
TRANSCRIPT
Coding AlpacasAlpacaBid: Phase Two Design Presentation
Presentation available at sourceforge.net/codingalpacas
Who We Are
Left to Right:• Jonathan• Rob• Kyle• Alan
Why Alpacas Make Good Engineers:• Highly trained• Intelligent• Mediocre understanding of
the software engineering process• Incredibly in-depth by
farm animal standards
Usage Scenarios
Use Case ID
Use Case Name
Use Case description Primary Actor
Preconditon
1 SignUp User signs up for an account on our site using valid data
User access the webUI, press "create account" button
2 SignUpInvalid
User signs up for an account on our site using invalid or incomplete data
User access the webUI, press “create account” button
3 LoginNative User logs into our service using an alpacabid account
User access the webUI, press login button
4 Login3rdParty
User logs into our service using a 3rd party account
User access the webUI, press login button
5 timeOut System times out due to inactivity User be logged into webUI and inactive for 1 hour
6 searchDefault
User searches for an auction using the default criteria (incomplete auctions only)
Buyer logged into system, in search domain
7 searchFinished
User searches for a closed auction Buyer logged into system, in search domain
8 searchAll User searches all auctions Buyer logged into system, in search domain
9 addAuction User creates a new auction Seller logged into system, in listing domain
10 addAuctionInvalid
User creates a new auction but uses invalid or incomplete data
Seller logged into system, in listing domain
11 placeBid User places bid on item Buyer logged into system, on specific auction page
12 winItem Winner is notified that they won auction Buyer auction ends13 endAuction winItem is triggered, auction marked as
complete (bidding is now prohibiited) seller is notified
Seller server system time reaches end time of given auction
14 sendMessage
user sends message to other user User logged into system, in messaging domain
15 sendMessageInvalid
user sends message to invalid username User logged into system, in messaging domain
16 addFavorite user clicks "add this seller to my favorite sellers list"
Buyer logged into system, on product page
17 viewFavorites
user clicks "view auctions by my favorites" Buyer logged into system, on main page
18 leaveRating user click “leave feedback” button Buyer logged into system, on personal page
AlpacaBid features all requirements in the original build spec, plus the following four “extra’ features:• Third party authentication
where users can log into AlpacaBid with Google or Facebook Accounts
• Seller feedback where buyers can leave public comments for sellers
• User-to-User messaging• “Favorite Sellers” feature
which includes an aggregated list of items being sold by members of the buyer’s favorite sellers list
Current Status
• Yellow•Way behind schedule• Still manageable
• Challenges Still ahead• ASP.NET• Timeliness
Current Status (continued)
• Hours worked: 50• Roughly 10 hours of working on the report per person• Another few hours on the PowerPoint• There is a reason that they don’t use OpenOffice in the real world
• We now all know ASP.NET• We thought we knew SQL until a few hours ago
• Framework status: Mountain Dew Color (Yellowish Green)• Version Control is still a disaster…sort of
Data Dictionary
Category Attribute Type Acceptable Values Source Security
Customer CustomerID 20x Any letter/numberCustomer Account Creation
Cannot be changed
Customer Password 20x Any letter/numberCustomer Account Creation Customer
Customer First Name 20a All lettersCustomer Account Creation Customer
Customer Last Name 20a All lettersCustomer Account Creation Customer
Customer Address 20x Any letter/numberCustomer Account Creation Customer
Customer City 20a All lettersCustomer Account Creation Customer
Customer State 2a All lettersCustomer Account Creation Customer
Customer Zip 5n NumbersCustomer Account Creation Customer
Customer Email 20xAll usable letter/numbers/symbols
Customer Account Creation Customer
Listing ListingID 20x Any letter/number Listing CreationCannot be changed
Listing Category 20x Any letter/number Listing Creation CustomerListing End Date 10x Date Values/Symbols Listing Creation Customer
Listing Winning Customer ID 20x Any letter/number Place Bid Bid MethodListing Current Bid 20n Any numbers Listing Creation Bid Method
Message MessageID 20n Any numbers Message CreationCannot be changed
Message SenderID 20x Any letter/number Message Creation CustomerMessage ReceiverID 20x Any letter/number Message Creation CustomerMessage Body 200x Anything Message Creation CustomerMessage Send Date 10x Date Values/Symbols Message Creation Customer
User Reviews ReviewID 20x Any letter/number Review CreationCannot be changed
User Reviews ReviewerID 20x Any letter/number Review Creation CustomerUser Reviews SellerID 20X Any letter/number Review Creation CustomerUser Reviews OverallRating 1n Number 0 <= n <= 5 Review Creation Customer
User Reviews Review Description 200x Anything Review Creation Customer
Autobid AutoBidID 20x Any letter/number Autobid CreationCannot be changed
Autobid ListingID 20x Any letter/number Autobid Creation Customer
Autobid CustomerID 20x Any letter/number Autobid CreationCannot be changed
Autobid maxBid 20n Any number > Current Bid Autobid Creation Customer
Functional Model Issues
• Login using AlpacaBid account or supported third party account• Incorporate built-in ASP.NET login system• Familiarize with openAuth
• Buying• Understanding the 10% rule
• Listing• Relatively simple implementation
• Posting a review• John’s problem• Likely to utilize messaging API
Functional Model Issues (continued)
• Favorite Sellers• Likely to utilize search API
• Private Messages• Simple Implementation on product page
• Searching• Simple implementation, but may have trouble integrating with web
page and optimizing for performance
Software Interface Issues
• Human Interface will be through ASP.NET• Getting better, still not perfect• We currently have 7 GUI pages: Login, Search/Search Results/View
Item/Create Listing/Private Messages/View Reviews/Post Review/Favorite Sellers
• Will probably need more• May combine view/post review screens
• Back-end Interface• Original plan was LINQ• Might be easier to ditch LINQ in favor of raw SQL connections unless
Professor Steiner wants to help us with it
Behavioral Model
• The central functionality of AlpacaBid (auction site) defines its core behavior
• Prior to expiration, the system will accept new bids• Bidding must follow 10% rule
• This has been a recurring cause of concern
• System always accepts new items
• Post-Auction behavior• Email notifications to buyer and seller?
Restrictions, Limitations, and Constraints
• Management• Challenging launch date• SQL Server EULA restrictions
• Technical Restrictions• Product will be shipped to customer on a preconfigured virtual
machine• C# and SQL• Must run on Microsoft SQL 2012 Express
• Database must not exceed 10GB under normal operating conditions• Development team must be aware of some minor differences between
MySQL code and MSSQL code.
Testing Plan
• Unit Testing• Domain based• White and black box• Multi-level
• Acceptance (usability) Testing• 80/20 rule
• System Testing• Automated• Might not actually happen if deemed unnecessary
Testing Plan (continued)
• Writing Test Cases• Design for failure• Developers write unit test cases• Everyone writes Acceptance
• Loosely based on use cases
• Performance standards must be predefined• Crashing (never)• Speed (in ms)• Simultaneous connections
• Documentation• All bugs will be documented on SourceForge• Bug fixes will be assigned to the original coder