# VCE Software Development ## Characteristics of User Experience (UX) Guide According to the **VCAA Study Design (from 2025)**, **User Experience (UX)** is defined as: > *"The consideration of how users perceive and respond when interacting with a digital system."* In Unit 3 Outcome 2 (Criterion 5), students must demonstrate and justify how these UX characteristics have been integrated into their detailed designs. They are also evaluated during development (Criterion 6 & 7), testing (Criterion 8), and beta testing (Criterion 9). This guide explores the four key UX characteristics: **Affordance**, **Interoperability**, **Security**, and **Usability**, showing how they apply practically to software design and development. --- ## 1. Affordance ### Definition **Affordance** refers to the visual or physical properties of an interface element that hint at how it is used. It gives the user immediate clues about what action can be taken, without requiring instructions. ### Practical UI Examples * **Buttons:** Designed with rounded corners, a light drop shadow, and a distinct background color to make them look "raised" and clickable. Adding hover animations (e.g., button color shifts, cursor changes to a hand icon) reinforces this. * **Text Boxes:** Enclosed in a clear rectangular border with a white background and a flashing vertical cursor (insertion point) to invite typing. Including grey placeholder text (e.g., `"Enter username..."`) provides immediate context. * **Dropdown Menus:** A downward-facing arrow or chevron icon ($\vee$) indicating that clicking will expand a list of options. * **Disabled Fields:** Grayed-out text and background, coupled with a crossed-out circle cursor ($\varnothing$) when hovered, indicating that the field is non-interactive. --- ## 2. Interoperability ### Definition **Interoperability** is the capacity of a software solution or system to interact, communicate, and exchange data with external data sources or other software systems. It ensures your software does not operate in a vacuum. ### Practical Examples * **Structured File Formats:** Designing your code to read from and write to standard, cross-platform file structures such as **CSV**, **XML**, or **JSON** (as mandated in the VCAA programming requirements). * **Database Connectivity:** Connecting your application logic layer to an external SQL or cloud database using standard APIs or connection strings. * **Application Programming Interfaces (APIs):** Using REST or GraphQL APIs to pull live data (e.g., weather forecasts, payment gateways, geographical maps) into your solution. * **Export Functions:** Allowing users to download data tables as a `.csv` or `.xlsx` file so it can be opened and manipulated in spreadsheet tools like Microsoft Excel. --- ## 3. Security (Authentication & Data Protection) ### Definition **Security** focuses on how both the user interface (UI) and the backend database protect personal and transactional user data, verify identity, and build user trust in the system's safety. ### Practical Examples * **Password Masking:** Using bullet points or asterisks (e.g., `••••••••`) to hide characters entered into password fields to prevent "shoulder surfing" in public areas. * **Authentication Feedback:** Designing login error messages to be generic (e.g., `"Invalid email or password"` instead of `"Email address not found"`). This prevents username enumeration attacks where hackers guess active account emails. * **SSL/HTTPS Indicators:** Designing web application headers to display security badges or lock symbols to reassure users that their connection is encrypted. * **Role-Based Access Control (RBAC):** Restricting specific screens or controls based on user roles (e.g., graying out the "Delete Database" button for standard users while keeping it active for Administrators). --- ## 4. Usability ### Definition **Usability** is the overall measure of how easy, efficient, accessible, and error-tolerant a software solution is. It encompasses system speed, navigation simplicity, accessibility considerations, and recovery from errors. ### Practical Examples * **System Speed / Performance:** Using efficient searching and sorting algorithms (e.g., Binary Search instead of Linear Search for large arrays) to ensure screens load rapidly and search queries return results in under 2 seconds. * **Accessibility:** * Ensuring high contrast between text and background (e.g., dark text on a light background). * Designing layouts with clear tab indexes so users can navigate the software using only a keyboard. * Using color-blind friendly palettes (avoiding red-on-green pairings for critical actions). * **Error Prevention and Recovery:** * Displaying clear validation messages directly next to fields (e.g., *"Please enter a valid 10-digit phone number"* in red text) when invalid data is keyed. * Including "Cancel" or "Undo" buttons to let users reverse accidental operations. --- ## 5. Summary: UX Mapping in the SAT Make sure to carry these four UX characteristics through the entire life cycle of your School-assessed Task: 1. **Design Stage (Criterion 5):** Annotate your user interface mock-ups and logic diagrams to explain *how* and *why* you applied **Affordance**, **Interoperability**, **Security**, and **Usability**. 2. **Testing Stage (Criterion 8):** Design test cases to test your security functions (e.g., verifying that invalid passwords block login) and usability features (e.g., verifying tab index navigation order). 3. **Beta Testing (Criterion 9):** Write specific beta test scenarios where your test users evaluate the system's **Usability** (speed, ease of use) and **Security**, and collect their feedback in a post-test survey or interview.