CP31010: Fundamentals of Software Engineering BGAZM Team: Adrian Zatta Angela McCarthy Anthony Bath Matthew Grasso.

Slides:



Advertisements
Similar presentations
Using the Palm Pilot for Data Collection. Overview: These procedures will assist when using the Palm Pilot for: Physical Inventory Counts Bar Code Collection.
Advertisements

1 G54PRG Programming Lecture 1 Amadeo Ascó Adam Moore 22 GUI Programming I.
CC SQL Utilities.
Unit 3 Graphical User Interface (GUI) Dr. Magdi AMER.
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
Chapter 6 Graphical User Interface (GUI) and Object-Oriented Design (OOD)
Java Programming, 3e Concepts and Techniques Chapter 5 Arrays, Loops, and Layout Managers Using External Classes.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Introduction To Form Builder
A Guide to MySQL 3. 2 Objectives Start MySQL and learn how to use the MySQL Reference Manual Create a database Change (activate) a database Create tables.
Implementation/Acceptance Testing / 1 Implementation and Acceptance Testing Physical Implementation Criteria: 1. Data availability 2. Data reliability.
Chapter 6 Graphical User Interface (GUI) and Object-Oriented Design (OOD)
Chapter 6: Graphical User Interface (GUI) and Object-Oriented Design (OOD) J ava P rogramming: Program Design Including Data Structures Program Design.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Java Programming Chapter 10 Graphical User Interfaces.
Denise Luther Senior IT Consultant Practical Technology Enablement with Enterprise Integrator.
ACM/JETT Workshop - August 4-5, ExceptionHandling and User Interfaces (Event Delegation, Inner classes) using Swing.
4-1 INTERNET DATABASE CONNECTOR Colorado Technical University IT420 Tim Peterson.
Functions of a Database Management System
1 PHP and MySQL. 2 Topics  Querying Data with PHP  User-Driven Querying  Writing Data with PHP and MySQL PHP and MySQL.
Welcome to CIS 083 ! Events CIS 068.
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
Navigating database with windows forms.. Tiered applications  Provide a means to develop many presentations of the same app  Makes changes to the back.
Creating a Web Site to Gather Data and Conduct Research.
1 Event Driven Programming wirh Graphical User Interfaces (GUIs) A Crash Course © Rick Mercer.
Java Programming: From Problem Analysis to Program Design, Second Edition1  Learn about basic GUI components.  Explore how the GUI components JFrame,
GRITS Manage Orders Training Overview: Inventory and Manage Orders Functions 05/08/2014.
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
1 CSC111H Graphical User Interfaces (GUIs) Introduction GUIs in Java Understanding Events A Simple Application The Containment Hierarchy Layout Managers.
Graphic User Interface. Graphic User Interface (GUI) Most of us interact with computers using GUIs. GUIs are visual representations of the actions you.
Graphics and Event-Driven Programming in Java John C. Ramirez Department of Computer Science University of Pittsburgh.
S9k Production Floor System Ingredient Inventory Production Inventory Production Dashboard.
Windows Forms Navigating database with windows forms.
A Guide to MySQL 3. 2 Introduction  Structured Query Language (SQL): Popular and widely used language for retrieving and manipulating database data Developed.
When buying a product in today’s marketplace, an individual is faced with the challenge of remembering an abundance of information about the product that.
An Introduction to Programming and Object Oriented Design using Java 3 rd Edition. Dec 2007 Jaime Niño Frederick Hosch Chapter 18 Integrating user interface.
CS-1020 Dr. Mark L. Hornick 1 Event-Driven Programming.
Enterprise Integrator CISTECH R7.8 SERIES Denise Luther Senior Consultant, Technical Services
Database Management Systems (DBMS)
Java Programming: From Problem Analysis to Program Design, 3e Chapter 6 Graphical User Interface (GUI) and Object-Oriented Design (OOD)
Java Programming: From Problem Analysis to Program Design, Second Edition1 Lecture 5 Objectives  Learn about basic GUI components.  Explore how the GUI.
Swinging in Your Java Playground. Background Swing is a part of the Java Foundation Classes (JFC). The JFC is made up of features intended to give a programmer.
Database Security Cmpe 226 Fall 2015 By Akanksha Jain Jerry Mengyuan Zheng.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
Task #1 Create a relational database on computers in computer classroom 308, using MySQL server and any client. Create the same database, using MS Access.
Ajmer Singh PGT(IP) JAVA IDE Programming - I. Ajmer Singh PGT(IP) GUI (Graphical User Interface) It is an interface that uses a graphic entities along.
Sadegh Aliakbary Sharif University of Technology Fall 2011.
CP3110 – Assignment 2 Bramby’s Bakery Supply chain management software.
JAVA: An Introduction to Problem Solving & Programming, 6 th Ed. By Walter Savitch ISBN © 2012 Pearson Education, Inc., Upper Saddle River,
Library Online Resource Analysis (LORA) System Introduction Electronic information resources and databases have become an essential part of library collections.
Chapter 10 - Writing Graphical User Interfaces1 Chapter 10 Writing Graphical User Interfaces.
Chapter 6 Graphical User Interface (GUI) and Object-Oriented Design (OOD)
Day in the Life (DITL) Production Operations with Energy Builder Copyright © 2015 EDataViz LLC.
 Mid-sized takeaway store  Takes orders and creates meals with the available ingredients for distribution to customers  Upon the consumption or acquisition.
Java Visual Applications CSIS 3701: Advanced Object Oriented Programming.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter Chapter 7 ( Book Chapter 14) GUI and Event-Driven Programming.
Agenda for Today  DATABASE Definition What is DBMS? Types Of Database Most Popular Primary Database  SQL Definition What is SQL Server? Versions Of SQL.
3 A Guide to MySQL.
TRANSACTION PROCESSING SYSTEM (TPS)
A First Look at GUI Applications
Database Systems: Design, Implementation, and Management Tenth Edition
The Client/Server Database Environment
Java Programming: From Problem Analysis to Program Design,
PC02 Term 1 Project Basic Messenger. PC02 Term 1 Project Basic Messenger.
Lecture 1: Multi-tier Architecture Overview
Computer Science Projects Database Theory / Prototypes
Advanced Programming in Java
These slides are for reference only. They are not "lecture notes"
Presentation transcript:

CP31010: Fundamentals of Software Engineering BGAZM Team: Adrian Zatta Angela McCarthy Anthony Bath Matthew Grasso

Presentation Overview Introduction Software Development Team Background Problem Definition Issues Solutions Threat Model Prototyping Environments Java C# Use Case Analysis Business Rule Integration Use Case Design High Level Design Use Case Implementation Low Level Implementation Code Review Peer Review Closing

Background Townsville Tavern and Brewery Tavern hours Sun-Thurs 10AM – Late Fri-Sat ( *and special events ) 10AM – 3PM Brewery hours Mon-Sun 9AM – 7PM Townsville Tavern and Brewery stocks and sells various alcoholic beverages Brewery also supplies local pubs in the region and exports Australia- wide

Problem Definition Issues Stock and Inventory handled manually Counted at the end of each night, inventory adjusted accordingly Orders: Importing and exporting done manually Takes up time Large cost on business due to excess manual labour and large hours

Problem Definition Solutions Supply Chain Management System Keeps accurate count of stock Inventory adjusted when stock scanned out/in Automated/scheduled ordering of stock Reduces cost – procedures automated Reduces time – removes the need for manual counts

Problem Definition Threat Model ThreatRisk ValueCounter Measures Unauthorised Users4 System kept behind counter, away from public access. System stored on private machine Data Corruption5 System keeps backups to revert to in the event of data corruption. User Errors3 Staff to be trained to ensure errors do not occur. Risk high when system first introduced, but risk will be reduced with time and training. Data Connectivity6 If system cannot connect to database, will instead update a database on local system. Local system will then update main database once connection re-established. Loss of Data/Resources 4 To minimize the risk of loss of data/resources (such as natural disasters, eg. cyclone, fire), all data records are backed up externally from the site. These then can be easily accessed to replace lost data.

Architectural Representation Client Server Client PC (Windows) Client PC (Windows) Client Software (Software requirements) Client Software (Software requirements) Data Storage Unit

Software Requirements Create inventory items Edit inventory items Delete inventory items Display inventory amounts Edit inventory amounts Automatic inventory update Automatic stock ordering.....

Use Case - Create Inventory Item – Goals and Constraints Constraints: The User is at the “Create Inventory Item” UI and has entered details of new item. Goal: The inventory item has been added to the data storage unit.

Use Case View – Create Inventory Item Item details Confirms details Data Access Object Persisten t Storage Create Inventory Item Delete Inventory Item Item details

Use Case – Create Inventory Item Primary Actor: User Secondary Actors: N/A Pre-Condition:The User is at the “Create Inventory Item” UI and has entered details of new item. Goal:The inventory item has been added to the data storage unit. Main Path 1. The User clicks the “Create” button. 2. The system validates the details that were entered. 3. The system confirms the new inventory item does not exist on the data storage unit. 4. The system adds the new inventory item to the data storage unit. 5. System returns to Manage Inventory Display. Extensions 1.1 User clicks “Cancel” and returns to Manage Inventory Display. 2.1 If inventory item details are incorrectly filled in, a message is displayed. 2.2 Return to step 2 of the Main Path. 3.1 If the inventory item already exists, a message is displayed 3.2 Return to step 2 of the Main Path.

Use Case – Create Inventory Item Supporting User Interface

Use Case Analysis, Design and Implementation UIManageInventory Main menu UI for the management of inventory including Creation Editing Deletion Simply extends JFrame and contains 4 Jbuttons and a JLabel (heading, purely aesthetics) Due to the custom nature of the design, layout managers were not utilized instead absolute positioning was implemented

JButton JLabel JFrame

Use Case Analysis, Design and Implementation UICreateInventoryItem This is the UI that was seen two slides ago Again extends JFrame and contains JButton, JTextField and JLabel components Text fields accept user input in the form of a String data type Buttons used for progression (Create) and regression (Back) Singleton pattern used for all UI’s to prevent multiple instances

JButton JTextField JLabel JFrame

Use Case Analysis, Design and Implementation UCCreateInventoryItem Contains the code to implement the Create Inventory Item Use Case that Matthew discussed Implements a Use Case Controller which has a single abstract function run() Adapter pattern utilized for “attaching” use cases to buttons ie UCC-> ActionListener Adapter This allows use cases to be ran when user clicks a button In the case of this use case, it is run when the user clicks “Create” from the Create Inventory Item UI

Use Case Analysis, Design and Implementation InventoryDAO Data Access Object to read and write to data storage unit (DAO Pattern) Contains all the SQL queries in functions createInventoryItem(InventoryItem newItem) Etc (unrelated to this UC) Contains validation rules for length of fields, exists or not, etc

Use Case Analysis, Design and Implementation Datafiles Overview For this use case, there is a single data source User input via keyboard/mouse Validation is used to ensure all fields are filled in and new item doesn’t already exist in DB No output files are generated No initialization files are required

Use Case Analysis, Design and Implementation Dataflow For this use case, there is only one simple direction of data flow: User enters the data via the keyboard into the UI, then clicks the button to allow the item to be created on the data storage unit UI User Data Storage Unit

Use Case Analysis, Design and Implementation Data Storage A MySQL database running on a local server at the client’s business This is to allow for efficient data transfer over a Local Area Network Off-site back-up exists for record-keeping in the case of corruption or loss of data due to disasters

Prototyping Environments Java C# Portability Used across multiple platforms Portability.NET

Software Demonstration

Code Review Class Problem private void makePanel() { tabbedPane = new JTabbedPane(); itemTabbedPane = new JTabbedPane(); createItemTextField = new JTextField(20); deleteItemTextField = new JTextField(20); JPanel createItemPane = new JPanel(); GridLayout experimentLayout = new GridLayout(0,2); createItemPane.setLayout(experimentLayout); JLabel createItemHeader = new JLabel("Create New Item"); JLabel blank = new JLabel(""); createItemButton = new JButton("Create Item"); UCCreateItem ucCreateItem = new UCCreateItem(this); createItemButton.addActionListener(new UCCToALAdapter(ucCreateItem)); createItemPane.add(createItemHeader); createItemPane.add(blank); createItemPane.add(createItemTextField); createItemPane.add(createItemButton);...

Code Review Function Problem public function addInventoryItem() { $theDisplay = new DisplayUI(); $theDisplay->displayAddItemForm(); $this->viewInventory(); } public function submitInventoryItem($iname,$iqty) { $theDisplay = new DisplayUI(); $this->pharseQ( "INSERT INTO inventory (`item_id`, `item_name`, `item_qty`) VALUES (NULL, '". $iname. "', '". $iqty. "')"); echo " Item Submitted \n"; }

Code Review Error Handling $sql="INSERT INTO Customer (Customer_Name, Customer_Password, Customer_ ) VALUES ('$_POST[formusername]','$_POST[formpassword]','$_POST[form ]')"; if (!mysql_query(($sql,$con)) { die('Error: '. mysql_error()); }

Code Review Variable Problem private static Container frame1; frame1 = getContentPane(); frame1.add(BorderLayout.NORTH, new HeaderField()); frame1.add(BorderLayout.WEST, new SideAdd()); frame1.add(BorderLayout.CENTER, new TabField()); jLabel1 = new javax.swing.JLabel(); (unused)

Questions?

Thank you