MacBank ABM Demonstration

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Presented by: Yaseen Ali, Suraj Bhardwaj, Rohan Shah Yaseen Ali, Suraj Bhardwaj, Rohan Shah Mechatronics Engineering Group 302 Instructor: Dr. K. Sartipi.
Project management Project manager must;
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
UML and Systems Analysis MIS3502: Application Integration and Evaluation David Schuff
Requirements and Design
Requirements Analysis CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology January 7, 2003.
Unit 211 Requirements Phase The objective of this section is to introduce software system requirements and to explain different ways of expressing these.
Overview of Software Requirements
Introduction to Computer Technology
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Effective Methods for Software and Systems Integration
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
LESSON 8 Booklet Sections: 12 & 13 Systems Analysis.
Managing the development and purchase of information systems (Part 1)
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Understand Application Lifecycle Management
Presented by Khaled Chebaro, Yaser Jafar, Orin Pereira KYO Engineering Consultants Inc. on 27/11/07 Automated Banking Machine for MacBank Inc. SFWR 3M04.
End HomeWelcome! The Software Development Process.
Putting together a complete system Chapter 10. Overview  Design a modest but complete system  A collection of objects work together to solve a problem.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
SFWR ENG 3KO4 Software Development Fall 2009 Instructor: Dr. Kamran Sartipi Software Requirement Specification (SRS) for the Automated Banking Machine.
SFWR ENG 3KO4 Software Development for Computer/Electrical Engineering Fall 2009 Instructor: Dr. Kamran Sartipi Software Requirement Specification (SRS)
The Systems Development Life Cycle
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Week 3: Requirement Analysis & specification
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
1 Advanced Computer Programming Project Management: Basics Copyright © Texas Education Agency, 2013.
 System Requirement Specification and System Planning.
MANAGEMENT INFORMATION SYSTEM
Software Development.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
User-centred system design process
GUI Design and Coding PPT By :Dr. R. Mall.
John D. McGregor Session 9 Testing Vocabulary
Requirements Analysis Scenes
Chapter 18 Maintaining Information Systems
The Systems Engineering Context
IEEE Std 1074: Standard for Software Lifecycle
Software Configuration Management
Systems Analysis and Design
Developing Information Systems
Requirements Analysis and Specification
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
IS442 Information Systems Engineering
Chapter 4 Software Requirements
John D. McGregor Session 9 Testing Vocabulary
CSC480 Software Engineering
Managing the development of information systems (Part 1)
John D. McGregor Session 9 Testing Vocabulary
Engineering Processes
Test Planning Mike O’Dell (some edits by Vassilis Athitsos)
Lecture 09:Software Testing
Verification and Validation Unit Testing
SAD ::: Spring 2018 Sabbir Muhammad Saleh
Chapter 13: Systems Analysis and Design
Gathering Systems Requirements
Project Management Process Groups
Using Use Case Diagrams
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
Building Valid, Credible, and Appropriately Detailed Simulation Models
Chapter 5 Architectural Design.
Gathering Systems Requirements
SOFTWARE DEVELOPMENT LIFE CYCLE
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
System Analysis and Design:
UML Design for an Automated Registration System
Presentation transcript:

MacBank ABM Demonstration By: Jasper Chan Kevin Bezjak Thomas Griffatong 16/02/2019

Outline Course information What is software engineering? Why is it so important? Software Life Cycle What is a specification? How do you verify it? Request for Proposal – How do we transition from RFP to SRS? Our SRS document How do we go from High-level design to Low-level design? What is a MacBank ABM? ABM Implementation Conclusion What can we take home from all this? 16/02/2019

Course Information Course: 3K04 - Software Development Professor: Dr. Kamran Sartipi Focus: Software Design Process Documentation Using Specification Module specification, interfaces, internal and documentation Software inspection and testing Professional responsibility 16/02/2019

People involved Jasper Chan 3rd year Mechatronics Kevin Bezjak 3rd year Computer Engineering Thomas Griffatong 3rd year Computer Engineering 16/02/2019

What is Software Engineering? Software engineering is an engineering discipline which is concerned with all aspects of software production The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software -- IEEE definition 16/02/2019

Why is Software Eng. Important? Standardization as to how to create a piece of software to minimize errors Errors can be fatal! Therac-25 Software failed to detect and prevent patient from receiving overdose of radiation Inadequate software design and development process resulted in the deaths of three people due to radiation poisoning 16/02/2019

Software Life Cycle Requirements and analysis and specification Purpose: Identify and document the exact requirements for the system Example: ABM interview, SRS System design and specification High-level/Architectural Design – overall organization of system in terms of high level components and interactions among them Low-level/Detailed Design – Defining interfaces within in each component and relationships between other components Example: SDS Coding and module testing Engineer produces actual code that will be delivered to customer Example: When we were physically coding our modules etc Integration and system testing All modules that have been developed and tested individually are put together to be tested as a whole system Example: Putting it together to test, GUI etc Delivery and maintenance After system passes all tests, it is delivered to the customer and enters modification phase Example: Lab 10 when we handed in our ABM software 16/02/2019

Specification A statement of agreement between producer and consumer Emphasizes on what to do vs how to do it Good specifications are precise, clear, unambiguous, consistent with internal/external completeness Example of good specifications: Keep track of the amount of money the ABM machine contains in its stock and alert the bank staff when the stock is equal, or less than $10,000. 16/02/2019

Specification (continued) Uses of Specification: Statement of user requirements Can lead to failure if not clear Statement of the interface between the machine and controlled environment Miscommunication can cause unexpected inputs and the system can fail Statement of requirements for implementation Write out SRS, SDS etc Reference point during maintenance Something you can refer to when you make an upgrade to the system 16/02/2019

Specification (continued) How do we verify specification? Observe dynamic behaviour of the system to check whether it does what we think it should do (aka simulator) Analyzing the properties of system to deduce specifications (called property analysis) 16/02/2019

Request for Proposal (RFP) – How do we transition from RFP to SRS? Document that provides us general information with regards to the client, Brief hardware specification and general software requirements It was our job to clarify ambiguous requirements and inquire additional information for exact details as to how each method was to be handled This was the given Request for Proposal 16/02/2019

Our SRS document An SRS is the customer's assurance that the development organization understands the issues or problems to be solved and the software behaviour necessary to address those problems Serves as an input to the design specification; parent document to subsequent documents It also serves as a product validation check Careful review and analysis of RFP Generate questions to ask and clarify requirements Here is our SRS 16/02/2019

How did we create our High-level design? Information used from the SRS: User Interface Functional Requirements Use Case Diagram 16/02/2019

Architecture Component diagram designed off the Use Case 16/02/2019

Architecture: User Interface User interface is where customer interacts with machine Connected to transaction Customer uses it to call transactions Staff also use it for their needs 16/02/2019

Architecture: Transaction User interface calls transactions Depending on input certain transaction done Also communicates with the database for accounts and their information to be used Updates database when customer finished 16/02/2019

Architecture: Database Holds all info for ABM Amount of money left inside Customer accounts and information 16/02/2019

Architecture: Staff Interface Uses the UI to access ABM for restocking In our software, we used a button to represent it but in real life, it would be replaced with a key hole 16/02/2019

High Level Design – State Chart 16/02/2019

High Level Design Started with the skeleton: Main screen, PIN screen and transactions Built off the base to incorporate more advanced designs such as PIN errors and turning off the ABM. Added step by step until all requirements are met 16/02/2019

How did we go from High-level to Low-level design – Step 1 Carefully review the High-level design state chart and write out our module overview This is a crucial step since it is the basis for our low-level design Our approach: sit down as a group and start writing the module of the initial state of the machine to the end Bring out ideas as to how to implement to create a better idea as to what variables are needed, what other modules can access it etc 16/02/2019

Step 2 We needed to then establish the relationship between each module with a Class Diagram This step helps us visualize how each module is going to be used and ultimately, implemented 16/02/2019

Step 3 Write out our Module Specification with state charts for each individual module for clarity and visual representation This describes in detail about each module Information such as the amount of variables, which modules can call on etc is shown 16/02/2019

What is the MacBank ABM? Automated Bank Machine (ABM) used to decrease waiting time for clients who want to use basic banking activities Graphical User Interface (GUI) Magnetic Card Reader Keypad Envelope slot 16/02/2019 Money output

ABM Implementation Java was chosen because it has a GUI, more libraries and is a lot more functional GUI: Created using the wizard Followed what was created in our documentation 16/02/2019

ABM Implementation (Part 2) 30 sec Timer: ABM signs out if inactive Easily implemented with swing C would require a timer Reset accounts on midnight Accesses the system time of computer Not able to do this in C 16/02/2019

ABM Implementation (Part 3) Classes: Using classes makes passing information for transactions and database much easier Keeps certain data protected from access 16/02/2019

ABM Demonstration 16/02/2019

Conclusion What did we learn about teamwork? Full dedication to the project and team regardless of personal schedules Rising up to the occasion when your teammate requires help It is greatly beneficial to work with students from different programs; widens the area of expertise available at disposal Valuable Lesson: How to transition from interview to finished product 16/02/2019

What can we take home from all this? We can safely say that we are confident in our own abilities to be able to contribute our work for any future SRS and SDS documents that may come in our future career Don’t get cocky though! There is still a lot we can learn about software development & documentation! Heh.. Cock-y… 16/02/2019

Thank you for your attention! 16/02/2019

16/02/2019

16/02/2019 Return to page