Setting A Marking Guide: SWE413 Software Development: Section A: Short Answer Questions (3 Marks Each, Total 15 Marks)
Setting A Marking Guide: SWE413 Software Development: Section A: Short Answer Questions (3 Marks Each, Total 15 Marks)
Setting A Marking Guide: SWE413 Software Development: Section A: Short Answer Questions (3 Marks Each, Total 15 Marks)
1. Requirements Specification:
2. System Architecture:
a) Static Architecture:
b) Dynamic Architecture:
Describes the system's behavior at runtime, including process flow, data flow, and how
components interact dynamically.
Example: A sequence diagram illustrating how objects interact to perform a specific task.
Standardization and Consistency: Ensures all components are installed properly and
versions are compatible.
Ease of Deployment: Makes software installation simpler and less error-prone,
especially across multiple machines.
Dependency Management: Automatically installs any required libraries or dependencies
for the software to function.
Uninstallation: Provides a central point to remove software cleanly, including associated
files and configurations.
Steps:
Stakeholder Roles:
Components:
Interactions:
Users interact with the Web Interface to submit search queries, manage accounts,
borrow/return books.
The Web Interface sends requests and receives responses from the Business Logic
Layer.
The Business Logic Layer validates requests, interacts with the Data Access Layer
to access/manipulate data, and sends responses back to the Web Interface.
The Data Access Layer performs database operations (queries, updates) based on
instructions from the Business Logic Layer.
To ensure the quality and functionality of your task management application, consider a
multi-layered testing approach:
1. Unit Testing: Test individual units of code (functions, modules) in isolation to verify they
behave as expected with various inputs.
2. Integration Testing: Test how different modules interact with each other to ensure data
flows correctly between them.
3. Functional Testing: Test the application's core functionalities against the defined
requirements document. Verify features like creating tasks, setting deadlines, marking
tasks complete, and notifications.
4. Usability Testing: Observe real users interacting with the application to discover usability
issues, identify navigation difficulties, and gather feedback on the user interface.
5. Non-Functional Testing: Test non-functional aspects like performance (speed,
responsiveness under load), security (data integrity, user authentication), and
compatibility across different devices and operating systems.
Creating an installation package simplifies deployment and ensures all necessary files
and configurations are installed correctly. Here's how to approach it:
Process:
1. Choose a Packaging Tool: Select a tool appropriate for your target operating
system (e.g., Windows Installer (.msi), NSIS for Windows, Package Managers like
APT/Yum for Linux).
2. Gather Application Files: Include all application binaries, libraries, configuration
files, and resources needed for the application to run.
3. Define Installation Steps: Specify the sequence of steps involved in setting up the
application environment, including directory creation, file placement, registry
settings (if applicable).
4. Configure Shortcuts and File Associations: Create desktop shortcuts, program
menu entries, and define file associations (if applicable) for users to easily access
the application.
5. Uninstallation Support: Allow users to remove the application and its associated
files cleanly.
Benefits:
Simplified Deployment: Makes installing and running the application easier for
users.
Consistency: Ensures all necessary files are installed correctly across different
machines.
Version Control: Allows managing different versions of the application and simplifies
updates.