On completion of this unit the student should be able to develop and evaluate a software solution that meets requirements, evaluate the effectiveness of the development model and assess the effectiveness of the project plan.
-- VCE Computing Study Design 2020-2023
We'll continue to use Python and PySimpleGUI for building software applications. This will be the main focus for this unit.
A sequence of programming (GUI and algorithms) tasks
Quizzes on Theory
A practice usability task
2nd half of the SAT, which is the Development & Evaluation phases of the PSM. See the SAT page on this site.
Review: Data Types, Data Structures, File Formats from Unit 3
Review: Data Integrity & Data Validation
Storage Media - pros and cons, speed, size
HDD and SDD, RAID arrays
Removable Storage: (USB) Flash Drives, Optical, Tape Drives
Network Storage and Cloud Storage
File naming schemes and Folder structures
Backups: Plans require schedules, types, locations, media
Copies of current data in case of loss due to human error, accidents, fire/flood, malicious acts, malware, etc...
Types: Full, Differential, Incremental
Archives - Moves data off main storage/database to save costs, speed up more common data access, legal reasons, etc...
The problem of bitrot and longterm archives (github archive)
Version Control - usually for source code / plain text. Allows for
multiple people to work on same project & manage "merge conflicts"
experiments to be tried on code without threatening main branch code
Changes to be rolled back. Authorship of code to be determined. Etc...
Security - TODO
Four Levels of Testing Software (guru99.com/levels-of-testing)
Unit Testing: checks if software components are fulfilling functionalities or not. (functions, classes, modules, etc)
Integration Testing: checks the data flow from one module to other modules.
System Testing: tests software integrated in information system. Involves load, performance, reliability, and security testing. [Not really part of this course]
Acceptance Testing: checks the requirements of a specification or contract are met as per its delivery.
Unit Testing and Integration Testing should be automated and can be tested using test data and the results recorded in a test table like we saw in Unit 3. Part of Development Phase.
Acceptance testing we will do as part of the Evaluation Phase and will be the basis for the Software Evaulation report in the SAT.
Usability should be considered and tested at all stages of design and implementation. Usability 101 - Nielsen Group
Lots of sites that pay you to do usability testing, eg
Review: Characteristics of Effective and Efficient Solutions