Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
22 views17 pages

COMP410 - Assignment 1

Uploaded by

extrahuzaifa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views17 pages

COMP410 - Assignment 1

Uploaded by

extrahuzaifa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

COMP410 - Assignment

Planning and Conceptualizing a Software Project – Part 1 & Part 2


Table of Contents
1. Software Description ................................................................................................................................ 4
2. Process Model Selection ......................................................................................................................... 10
Selected Model: Agile Development ...................................................................................................... 10
Why Agile Works for FitBuddy: ............................................................................................................... 11
3. Global Team Collaboration ..................................................................................................................... 11
Collaboration Tools and Practices:.......................................................................................................... 11
Use of Social Media:................................................................................................................................ 12
Challenges and Mitigation Strategies: .................................................................................................... 12
4. Ease of Use and Accessibility .................................................................................................................. 12
Usability Strategies: ................................................................................................................................ 12
Accessibility Measures: ........................................................................................................................... 12
5. Use of Design Patterns ............................................................................................................................ 13
Advantages of Using Design Patterns: .................................................................................................... 13
Disadvantages: ........................................................................................................................................ 13
Design Patterns Chosen: ......................................................................................................................... 13
Planning and Conceptualizing a Software Project – Part 2 ......................................................................... 14
1. Software Description .............................................................................................................................. 14
(Refer to Part 1 – FitBuddy’s full description as written above.) ............................................................ 14
2. Ensuring Software Quality ...................................................................................................................... 14
Verification and Validation Techniques: ................................................................................................. 14
Test Automation: .................................................................................................................................... 14
Code Reviews and Static Analysis: .......................................................................................................... 14
Performance Testing: .............................................................................................................................. 14
3. Security Issues and Mitigation ................................................................................................................ 15
Key Security Measures: ........................................................................................................................... 15
Threat Modeling: .................................................................................................................................... 15
Penetration Testing:................................................................................................................................ 15
Input Validation & Error Handling: ......................................................................................................... 15
Security Best Practices: ........................................................................................................................... 15
4. Software Configuration Management .................................................................................................... 15
SCM Repository Contents: ...................................................................................................................... 15
Change Management Process: ............................................................................................................... 16
5. Software Metrics ..................................................................................................................................... 16
Metrics Categories and ........................................................................................................................... 16
1. Software Description
Project Title: FitBuddy – Personal Fitness and Wellness Mobile App

In today’s fast-paced, tech-driven society, personal health is often compromised due to demanding
schedules, sedentary lifestyles, and lack of access to personalized fitness coaching. FitBuddy is designed
to bridge this gap by offering users a comprehensive fitness and wellness platform directly from their
mobile devices. The app is intended for Android and iOS platforms and will be developed using a cross-
platform framework such as Flutter or React Native to ensure consistency and reach.

FitBuddy empowers users to take control of their physical and mental health through an intuitive, AI-
powered personal coaching app. It offers dynamic workout recommendations based on user goals, health
conditions, and lifestyle habits. Upon registration, users input personal data (age, weight, fitness goals,
restrictions), and the app generates a personalized fitness plan that evolves as the user progresses.

Designed with a modern, clean interface, the app focuses on ease of use, ensuring that users across all age
groups and abilities can comfortably navigate its features. It supports wearable integration (e.g., Fitbit,
Apple Watch) and provides data synchronization with Google Fit and Apple Health.

The core objective is to combine fitness, mental wellness, and community engagement into one cohesive
ecosystem that motivates users to achieve and sustain a healthier lifestyle.
2. Process Model Selection
Selected Model: Agile Development
FitBuddy will follow the Agile process model due to the dynamic and user-centered nature of the project.
Agile allows us to work in short development cycles (sprints), providing iterative versions of the product
that can be tested, evaluated, and improved upon with feedback. Given that mobile applications require
frequent updates based on user behavior and market trends, Agile's adaptability is essential.
Why Agile Works for FitBuddy:
 User-Centered Iteration: We can test MVPs (Minimum Viable Products) and make changes
based on real user feedback.

 Sprint Planning: Helps the team prioritize key features like workout plans, tracker integration,
and community forums efficiently.

 Frequent Deliverables: Stakeholders and users can see progress regularly, maintaining interest
and trust in the product.

 Global Team Collaboration: Agile fosters constant communication and task tracking, critical
for distributed teams.

 Managing Scope Flexibility: Requirements can evolve as the market or user preferences change,
making it easier to pivot or add features without restarting development.

Why Not Waterfall:

The Waterfall model is linear and rigid, which doesn't fit the flexible, ever-evolving nature of FitBuddy.
Once a phase is completed in Waterfall, returning to make changes is difficult. If user feedback during
testing reveals necessary design changes, implementing them in Waterfall would be costly and time-
consuming.

Why Not Spiral:

The Spiral model offers risk assessment and iterative development but at a high complexity and cost. It is
more suitable for large-scale enterprise systems with critical risk elements. For FitBuddy, with its mobile-
first design and smaller development team, Agile provides a more streamlined and resource-efficient
approach.

3. Global Team Collaboration


In a globalized development environment, FitBuddy will be built by a distributed team spread across
various geographic locations. Remote collaboration offers access to diverse talent and cost-effective
resource allocation, but it also brings communication and coordination challenges.

Collaboration Tools and Practices:


 Project Management: Tools like Jira and Trello will be used to track progress, assign tasks, and
manage sprint cycles.

 Communication: Slack will be the primary messaging platform, supplemented by weekly Zoom
video calls for sprint planning and review meetings.

 Version Control: GitHub will manage code repositories with protected branches and mandatory
pull request reviews to maintain quality.
 Documentation: Shared documentation via Google Docs or Confluence ensures all team
members have access to updated plans, designs, and feedback.

Use of Social Media:


Social media platforms such as private Facebook groups or WhatsApp chats will be used informally to
enhance team bonding and boost morale. However, they will not replace official communication channels
or task management tools.

Challenges and Mitigation Strategies:


 Time Zone Differences: Daily updates will be posted asynchronously. Meetings will be rotated
to accommodate varying time zones.

 Language Barriers: We’ll use simple, direct language in written communication and rely on
visual aids (mockups, charts) where possible.

 Cultural Differences: Creating an inclusive environment by encouraging transparency, mutual


respect, and cultural sensitivity will be prioritized through clear team guidelines.

The team will operate under a shared calendar, and project timelines will be managed using Agile sprint
boards with deliverables and deadlines visible to everyone.

4. Ease of Use and Accessibility


Usability and accessibility are vital components of FitBuddy’s success. As the app caters to a broad user
base, it is essential that it be both user-friendly and inclusive.

Usability Strategies:
 Intuitive Interface: The UI will feature a minimalist design with recognizable icons, consistent
colors, and familiar navigation flows.

 Onboarding Wizard: New users will be guided through the app setup using short prompts and
tutorials.

 Feedback Loops: In-app surveys and feedback prompts will inform future design updates.

Accessibility Measures:
 Voice Control and Screen Readers: The app will be compatible with iOS VoiceOver and
Android TalkBack.

 High-Contrast & Dark Mode: Available for users with visual sensitivity or color blindness.

 Text Scaling: Font sizes can be adjusted throughout the app.

 Alt Text for Media: Images and videos will include descriptive alt text.
 Touch Target Optimization: Larger buttons and sufficient spacing will aid those with motor
impairments.

 Captioning & Transcripts: All video and audio guides will include closed captions and
transcript access.

Following the WCAG 2.1 Level AA guidelines, accessibility testing will be integrated into the QA
process. Diverse user testers, including those with disabilities, will be recruited to provide feedback on
usability barriers.

5. Use of Design Patterns


Design patterns are essential in organizing code architecture, promoting reuse, and simplifying debugging
and maintenance. For FitBuddy, design patterns will help in creating a scalable, maintainable, and testable
application.

Advantages of Using Design Patterns:


 Improved Readability: Common architectural conventions make code easier to understand.

 Faster Development: Leveraging proven patterns reduces design time.

 Team Collaboration: Standardized code structures help onboard new developers faster.

 Maintainability: Isolated modules and services improve long-term maintenance.

Disadvantages:
 Overengineering Risk: Overuse may introduce unnecessary layers and complexity.

 Learning Curve: Developers must be trained to use patterns effectively.

Design Patterns Chosen:


1. Model-View-Controller (MVC): Separates data (Model), UI (View), and business logic
(Controller). This is key for maintaining clean code across screens like progress tracker,
workouts, and user profiles.

2. Singleton Pattern: Used for maintaining a consistent global state, such as user preferences or
authentication tokens.

3. Observer Pattern: Useful for real-time updates – e.g., when a user finishes a workout, the
dashboard updates automatically.

4. Factory Pattern: For generating customized workout objects or nutrition plans based on user
inputs.

These patterns provide the groundwork for building a robust, flexible system while preventing duplicated
logic and unnecessary complexity.
Planning and Conceptualizing a Software Project – Part 2

1. Software Description
(Refer to Part 1 – FitBuddy’s full description as written above.)

2. Ensuring Software Quality


Ensuring the quality of FitBuddy involves a structured quality assurance (QA) strategy that includes both
manual and automated testing approaches, integrated into the development cycle through Agile practices.

Verification and Validation Techniques:


 Unit Testing: Each module (e.g., workout planner, health tracker) will be tested in isolation using
frameworks like JUnit or XCTest.

 Integration Testing: Tests ensure that modules work together properly (e.g., progress tracker
integrating with the notification engine).

 System Testing: End-to-end scenarios will be validated to ensure the app functions as a whole
across devices.

 User Acceptance Testing (UAT): Selected end users will test new features to validate against
real-world expectations.

Test Automation:
 Automated testing using Appium, Espresso (Android), and XCUITest (iOS) will be employed
for repetitive UI and regression tests.

 These tests will be integrated into CI/CD pipelines to catch bugs early.

Code Reviews and Static Analysis:


 Developers will conduct regular peer reviews.

 Tools like SonarQube will detect code smells, duplication, and vulnerabilities.

 Test coverage metrics will ensure critical features are thoroughly tested.

Performance Testing:
 Tools like Firebase Performance Monitoring will be used to test the app under load and ensure
responsiveness on various devices.

By embedding QA into every stage of development, we can ensure the software meets functional,
performance, and usability standards.
3. Security Issues and Mitigation
Security is especially critical in FitBuddy because the app handles personal and health-related
information.

Key Security Measures:


 Authentication: Users will log in with multi-factor authentication, including optional biometric
login.

 Data Encryption: All personal data will be encrypted using TLS for data in transit and AES-256
for data at rest.

 Token-Based APIs: API access will require OAuth 2.0 tokens to prevent unauthorized access.

Threat Modeling:
We will apply STRIDE analysis to identify threats such as spoofing, tampering, and information
disclosure.

Penetration Testing:
Periodic security testing will be conducted to discover exploitable vulnerabilities and patch them quickly.

Input Validation & Error Handling:


Strict input validation on all forms will protect against SQL injection, XSS, and other attacks. Error
messages will be generalized to avoid exposing system internals.

Security Best Practices:


 Regular security training for developers.

 Routine patching of third-party libraries.

 Secure data storage policies, especially for health data and user credentials.

4. Software Configuration Management


Software Configuration Management (SCM) will ensure version control, documentation tracking, and
streamlined collaboration.

SCM Repository Contents:


 Source Code: Separated by main, develop, and feature branches.

 Assets: UI images, video tutorials, and audio guides.

 Configuration Files: Environment settings for different platforms.

 Documentation: Project plans, architecture diagrams, API documentation.


 Test Scripts: Both unit and automation scripts.

Change Management Process:


 All changes will be managed via Git and reviewed through pull requests.

 Jira tickets will be assigned to track bugs, new features, and configuration changes.

 A changelog will be maintained to record every build and release version (e.g., v1.1.0 – Added
water tracking).

This approach ensures code stability and traceability of all changes.

5. Software Metrics
Software metrics will help monitor the quality, performance, and progress of FitBuddy throughout the
project lifecycle.

Metrics Categories and


 Code Metrics:

o Lines of Code (LOC): Track codebase size and growth.

o Cyclomatic Complexity: Measure logic complexity and testability.

 Quality Metrics:

o Defect Density: Number of bugs per 1000 LOC.

o Test Coverage: Percentage of code tested.

 Process Metrics:

o Sprint Velocity: Story points completed per sprint.

o Burndown Chart: Visual representation of progress.

 Usability Metrics:

o Task Completion Rate: How often users complete tasks.

o Error Rate: Number of user errors per session.

o User Satisfaction: Survey-based ratings (CSAT/NPS).

 Security Metrics:

o Number of Vulnerabilities Identified and Resolved.

o Time to Patch Security Issues.

You might also like