Setting A Marking Guide: SWE413 Software Development: Section A: Short Answer Questions (3 Marks Each, Total 15 Marks)

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

SETTING A

Marking guide: SWE413 Software Development


Section A: Short Answer Questions (3 marks each, total 15 marks)

1. Requirements Specification:

 A document that defines the functional and non-functional requirements of a


software system.
 Importance:
o Provides a clear understanding of what the software needs to do and how it should
behave.
o Serves as a baseline for development, testing, and verification.
o Facilitates communication between stakeholders (clients, developers).

2. System Architecture:

a) Static Architecture:

 Defines the high-level structure of the system, focusing on components, their


relationships, and communication protocols.
 Example: A layered architecture might have presentation, business logic, and data
access layers.

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.

3. Key Considerations When Coding:

 Readability and Maintainability: Code should be clear, well-structured, and easy to


understand for others who might work on it later.
 Efficiency and Performance: Code should be optimized to use resources effectively
and avoid unnecessary processing or delays.
 Error Handling and Testing: Code should incorporate mechanisms to handle
potential errors and exceptions gracefully.

4. Purpose of Testing in Software Development:

 To identify and fix bugs or defects in the software before deployment.


 To ensure the software meets the specified requirements.
 To verify the software functions as intended under various conditions.
 To improve software quality and reliability.

5. Benefits of Software Package Installation:

 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.

Question 1: Library Management System (25 marks)


a) Requirements Specification Steps and Stakeholders (10 marks):

Steps:

1. Elicitation: Gather information from stakeholders about needs, expectations, and


constraints. This may involve interviews, workshops, user stories documentation.
2. Analysis: Organize the gathered information, identify system functionalities, and define
user roles and access levels.
3. Specification: Document the requirements in a clear and concise format. This document
outlines functional and non-functional requirements (performance, security).
4. Validation: Review the requirements document with stakeholders to ensure it accurately
reflects their needs. Make adjustments as necessary.
5. Verification: Continuously confirm that the documented requirements are met throughout
the development process.

Stakeholder Roles:

 Librarians: Understand library operations and workflow, provide input on search


functionalities, borrowing/return processes, and user management.
 Students/Faculty: Provide user perspective, specify search criteria, expectations
from borrowing/returning books, and account management features.
 System Administrator/IT Department: Define technical requirements, security
considerations, data integrity needs, and hardware/software infrastructure.

b) System Static Architecture Diagram (15 marks):

Components:

1. Presentation Layer (Web Interface): Provides a user-friendly interface for searching


books, managing accounts, borrowing/returning books.
2. Business Logic Layer: Handles core functionalities like book search, user authentication,
borrowing/returning logic, account management.
3. Data Access Layer: Interacts with the database to store and retrieve book information,
user data, borrowing history, etc.
4. Database: Stores all system data (books, users, borrowing history, system
configurations).

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.

Rationale for Layered Architecture:

 Separation of Concerns: Each layer focuses on specific functionality, promoting


modularity and maintainability.
 Scalability and Reusability: Changes or updates in one layer can be made without
affecting others, making the system more adaptable to future needs.
 Improved Security: Separating the presentation layer from the data access layer
enhances security by controlling access to core data from the user interface.

Question 2: Task Management Application (25 marks)


a) Testing Strategies for Task Management App (10 marks):

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.

b) Creating an Installation Package (15 marks):

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.

Key Features and Components:

 Installer Application: The executable initiating the installation process.


 Application Files: Binaries, libraries, and resources required by the application.
 Configuration Files: Files containing application settings and configuration data.
 Readme File: Instructions for using the application and any specific requirements.
 License Agreement (Optional): Legal terms and conditions for using the application.

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.

You might also like