Activity 2: Software Development Lifecycle (SDLC) Simulation
• Activity:
o Choose a simple software project (e.g., a basic calculator app, a simple game).
o Group Activity (per group).
o Present different roles (e.g., project manager, analyst, designer, developer,
· Project Manager (PM): Manages planning and team coordination.
· Business Analyst (BA): Defines and documents game requirements.
· UI/UX Designer: Designs the user interface and experience.
· Game Developer: Codes game mechanics and AI.
· QA Tester: Tests and ensures game quality.
· Marketing Specialist: Promotes the game and manages content.
· Customer Support: Handles player support and feedback
o SDLC phases:
o Requirement Gathering: Define the project scope, user needs, and functionalities.
Project Scope:
Develop a simple and engaging Pong game for single-player mode, where the opponent is AI.
The game will feature basic graphics, smooth gameplay, and responsive controls, focusing on
delivering a clean, enjoyable gaming experience.
User Needs:
Entertainment: Fun gameplay for solo or multiplayer.
Simple Controls: Easy-to-learn controls for quick play.
Accessibility: Playable on computers with minimal setup.
Visual/Audio Feedback: Clear feedback for actions like hits and scoring.
Functionalities:
Main Menu: Start game and quit.
Game Modes:
Single-Player: Play against AI with varying difficulty levels.
Gameplay Mechanics:
Paddle and ball movement with scoring system.
Game ends when a set score or time limit is reached.
Graphics:
Simple 2D graphics
· Settings: None
· Instructions/Help: None
· Pause/Resume: None
· End Game Screen: Display final score with options to restart or quit.
o Design: Create a design for the software, including user interface, data structures, and
algorithms.
User Interface Design
Main Menu:
Background: Display a background image or color.
Menu Options: Include buttons for "PLAY," "OPTIONS," and "QUIT."
Text: Display the title ("MAIN MENU") prominently.
Button Styling: Buttons change color on hover.
Game Screen:
Background: Black or any solid color with optional textures.
Paddles: Display on the left and right sides of the screen.
Ball: Centered on the screen, moving within the game area.
Score Display: Show scores at the top center of the screen.
End Screen: Display scores and winner message when the game ends.
Options Screen:
Background: Simple or textured background.
Options: Display options or settings, if any.
Back Button: None.
Play Screen:
Background: Simple or textured background.
Instructions/Information: None.
Data Structures
1. Paddle:
Type: pygame.Rect
Attributes:
x (horizontal position)
y (vertical position)
width (width of the paddle)
height (height of the paddle)
speed (movement speed)
2. Ball:
Type: pygame.Rect
Attributes:
x (horizontal position)
y (vertical position)
size (diameter if circular, width/height if rectangular)
speed_x (horizontal speed)
speed_y (vertical speed)
3. Score:
Type: int
Attributes:
player_score (score for the player)
opponent_score (score for the opponent)
Algorithms
Movement:
Paddles: Player moves with arrow keys; opponent follows the ball vertically.
Ball: Moves based on speed_x and speed_y; bounces off walls and paddles.
Collision Detection:
Walls: Reverse speed_y if the ball hits the top or bottom.
Paddles: Reverse speed_x if the ball hits a paddle.
Scoring and Game Logic:
Scoring: Increment score when the ball passes a paddle; reset ball and randomize
direction.
Game Over: Check if the score reaches MAX_SCORE and display results.
Rendering:
Draw: Use pygame.draw.rect for paddles, pygame.draw.ellipse for the ball, and update
with pygame.display.update().
Menu Navigation:
Buttons: Detect mouse input to change button colors and perform actions.
Transitions: Move between main menu, options, play, and end screens.
o Development: Implement the software using a chosen programming language.
Development
· Objective: Create a Pong game using Python and Pygame.
· Steps:
1. Set up Python and Pygame.
2. Implement game features: paddle movement, ball physics, and scoring.
3. Design the user interface.
4. Integrate and debug the game.
o Testing: Test the software for functionality, usability, and security
Testing
Objective: Ensure the game is functional, user-friendly, and secure.
Approach:
Functionality: Test game mechanics and features.
Usability: Evaluate user experience and controls.
Security: Check for vulnerabilities.
.
o Deployment: Release the software to users.
Deployment
Objective: Release the game to users.
Steps:
Package the game and prepare documentation.
Distribute through appropriate platforms.
Provide support and address user feedback.
WALA PA TONG SAGOT
Maintenance: Provide ongoing support and updates.
Discussion: Reflect on the challenges and benefits of each
phase, the importance of collaboration, and the iterative
nature of software development.