Skip to content

Software Design Description (SDD)

furkanyamaner edited this page Dec 27, 2024 · 2 revisions

Software Design Description

1. INTRODUCTION

1.1 Purpose

The primary purpose of this Software Design Description (SDD) document is to define and detail the design, structure, and implementation framework of the iProVis: Intelligent Product Vision System. This system is an innovative, artificial intelligence-powered solution developed to assist users in identifying the most cost-effective products and locating their nearest availability, whether through physical retail outlets or online marketplaces. By addressing challenges faced by modern consumers in navigating the complexities of both online and offline shopping, the iProVis system offers a seamless and user-centric approach to optimizing purchasing decisions.

The document serves as a formal and detailed guide for all stakeholders involved in the project, including system architects, developers, quality assurance teams, and end-users. It articulates the objectives and scope of the iProVis system, ensuring alignment with the overall vision of providing a cutting-edge, real-time shopping assistant. Furthermore, it delineates the technical and functional requirements, highlighting the system's capabilities to enhance user convenience and satisfaction through advanced features like real-time price comparison, store location identification, and product availability verification.

The iProVis system aims to address the growing difficulties faced by consumers in the modern retail landscape. While e-commerce has revolutionized the way people shop by providing diverse options and convenience, it has also introduced complexities, such as the inability to directly interact with products and the challenge of comparing multiple sellers offering similar items at slightly varying prices. These difficulties are exacerbated in physical retail settings, where locating the most competitively priced product in nearby stores becomes a time-intensive task. The iProVis system is specifically designed to mitigate these issues by integrating sophisticated artificial intelligence models that analyze and compare data from multiple sources, including physical store inventories and online platforms.

This document offers an extensive and detailed examination of the iProVis system's design, encompassing all essential aspects to provide a comprehensive understanding of its development and implementation. The critical components covered in this document are systematically outlined to ensure clarity and cohesion in presenting the system’s capabilities, architecture, and functionality. These elements are as follows: The User-Centric Features of the iProVis system are meticulously designed to address the needs and expectations of modern consumers. These features include real-time price comparison capabilities, allowing users to instantly identify the most affordable product options across various platforms and locations. The system also incorporates a nearest store locator, which provides users with the exact location of physical retail outlets where desired products are available. Additionally, the platform integrates recommendations for the most suitable online marketplaces in cases where products are unavailable locally. Furthermore, the system leverages camera-based product recognition to enable effortless and intuitive interaction, allowing users to capture product images for instant information retrieval and comparison.

The Technological Framework of the iProVis system is built on advanced and robust methodologies to ensure seamless functionality and superior performance. This framework includes the deployment of state-of-the-art artificial intelligence (AI) models that facilitate accurate predictions and real-time data analysis. The use of application programming interfaces (APIs) ensures effective communication between system components and interoperability with external platforms, enhancing the system's adaptability and efficiency. Additionally, the system relies on well-structured database management to organize and store critical information, including user profiles, comprehensive product catalogs, and transaction histories. These databases are optimized for performance, ensuring rapid and reliable access to the information required for informed decision-making. The Hardware Interfaces of the system are designed to enhance usability and ensure smooth interaction with the physical components. Key elements include smartphone cameras and sensors that allow users to capture high-quality images of products for identification and analysis. These interfaces are seamlessly integrated into the system, ensuring that users can leverage the full potential of the platform without encountering technical complexities. By incorporating these components, the iProVis system guarantees a user-friendly and efficient experience that aligns with the practical needs of its audience.

Finally, the System Constraints and Assumptions are thoroughly analyzed to provide a realistic foundation for the system's design and implementation. This includes identifying limitations such as data availability, hardware dependencies, and potential scalability challenges. Assumptions regarding user behavior, market trends, and technological advancements are carefully considered to guide the design process and ensure that the system remains adaptable and relevant in a dynamic retail environment. By addressing these factors, the iProVis system is poised to deliver optimal performance while maintaining flexibility for future enhancements.

Together, these elements form the cornerstone of the iProVis system, ensuring its capacity to deliver a transformative shopping experience for users while addressing the complexities of modern retail practices. This document aims to provide a clear and detailed blueprint for the system's development and serves as a critical resource for all stakeholders involved in the project.

1.2 Scope

Finally, the System Constraints and Assumptions are thoroughly analyzed to provide a realistic foundation for the system's design and implementation. This includes identifying limitations such as data availability, hardware dependencies, and potential scalability challenges. Assumptions regarding user behavior, market trends, and technological advancements are carefully considered to guide the design process and ensure that the system remains adaptable and relevant in a dynamic retail environment. By addressing these factors, the iProVis system is poised to deliver optimal performance while maintaining flexibility for future enhancements.

Together, these elements form the cornerstone of the iProVis system, ensuring its capacity to deliver a transformative shopping experience for users while addressing the complexities of modern retail practices. This document aims to provide a clear and detailed blueprint for the system's development and serves as a critical resource for all stakeholders involved in the project.

1.3 Glossary

The following glossary provides definitions for key terms used throughout this Software Design Document (SDD), offering clarity on the concepts and components involved in the development and implementation of the Intelligent Product Vision System (iProViS).

Term Definition
End User The person or group who interacts with the system at the final stage, utilizing its functionalities to make purchasing decisions.
E-commerce The buying and selling of products or services over the internet through online platforms and marketplaces.
Physical Stores Brick-and-mortar retail locations where products are sold directly to customers in a face-to-face environment.
Artificial Intelligence (AI) Computer systems and software designed to replicate human cognitive functions such as learning, problem-solving, and decision-making.
AI Model A machine learning algorithm that has been trained to perform specific tasks, such as price prediction, recommendation, or image recognition.
Smartphone A mobile device that combines basic telecommunication functions with advanced features such as internet connectivity, applications, and cameras.
API (Application Programming Interface) A set of protocols and tools that enable communication between different software applications, allowing them to interact and exchange data.
Camera Interface A feature in the system that enables users to capture images of products, which are then analyzed for product recognition and price comparison.
Database A structured system for storing and managing data, including user profiles, product information, and transaction histories, ensuring efficient data retrieval and management.
Hardware Interfaces Physical components such as cameras, sensors, or other devices that allow the system to interact with the real world to gather data and provide functionalities.
Scrum An Agile methodology used for iterative project management, consisting of sprints (short development cycles) to manage tasks and deliver continuous improvements.
Sprint A fixed-duration development cycle in Scrum, typically lasting between 2 to 4 weeks, where a set of tasks or features is developed and delivered as a potentially shippable product increment.

1.4 Overview of Document

This document is structured to provide a comprehensive understanding of the Intelligent Product Vision System (iProVis) project, detailing its design, implementation, and technical framework. The following sections outline the content and objectives of each chapter within this document:

Section2 : ArchitecturalDesign This section focuses on the development phase of the iProVis system. It presents the system’s overall architecture, including a class diagram that illustrates the core components and their relationships. Additionally, the architectural design addresses key elements such as actors, exceptions, basic sequences, priorities, pre-conditions, and post-conditions. An activity diagram of the scenario generator is also included, showing how different scenarios are triggered and managed within the system.

Section3 : UseCaseRealization In this section, we explore the realization of use cases identified in the Software Requirements Specification (SRS) document. A block diagram is provided, which visually represents the system architecture based on these use cases. This diagram helps to clarify how different components of the system interact to fulfill user requirements, showcasing the practical application of each use case in the system’s operation.

Section4 : Environment This section describes the environmental context in which the iProVis system operates. It includes sample frames from the prototype, illustrating the user interface and interactions within the system. Additionally, this section outlines the various scenarios in which the system is used, demonstrating its functionality and responsiveness in different real-world environments. Each section contributes to a detailed and technical understanding of the iProVis system, providing the necessary insights for both development and future enhancements.

1.5 Motivation

We are a group of enthusiastic Computer Engineering students with a strong interest in Artificial Intelligence (AI) and Computer Vision. Throughout our academic journey, we have developed a deep passion for exploring how AI can be leveraged to solve real-world problems, and how computer vision technologies can enhance user experiences and streamline processes. This project, iProVis: Intelligent Product Vision System, represents a perfect opportunity for us to apply our knowledge, skills, and creativity in a practical context.Our motivation for taking on this project stems from our desire to tackle the challenges faced by consumers in the modern shopping landscape. We recognize the growing complexity of online and physical shopping, where customers struggle to identify the best products at the most affordable prices amidst overwhelming choices. The application of AI and computer vision to simplify this process aligns with our interests and provides us with an exciting avenue to delve deeper into these technologies.

2. ARCHITECTURE DESIGN

2.1 Software Design Approach

In this graduation project for which we have applied to Tübitak, everything must be very professional. AGILE was decided on for this, which includes huge companies and firms being able to control the processes they manage for the product they are going to develop when developing any product. So we have divided this long-term process of our project into equal days and weeks. The methodology we used had many features.

Among these features, the first one is the harmony of the creation process of the product within the framework of this method. If it needs further explication, in order to enable satisfaction of customers and competitive advantages, adaptation to the shifting requirements must be ensured by quick and frequent delivery of working software. The principle we implemented in our venture in this section is to continuously upgrade the features of the project to the next level and manage the process accordingly. Collaboration between developers and business people should never be overlooked; motivated teams with confidence have to work in the right environment with the necessary support. We in our project had been committed to this very principle and were in constant collaboration. In the academic environment, outdoors, and in any other social framework, placing our capability of being a team among the main parameters that motivated the process took first place, and most of all, us.

Firstly, we discussed how our development environments were in line with the purpose of our project and how we would adapt to these environments as a team. The most suitable working method for our business was to support our project as a team through remote connection where we can use Agile and Scrum methods. We had meetings 2 days a week, especially with specific sprint durations. These meetings took 2 days a week and at least 30 minutes. We distributed Agile-specific roles to each other as a team and held our meetings accordingly.

Month Sprint Goals and Tasks Deliverables
Month 1 Sprint 1 (2 weeks) Planning and Research: Documents: Requirements, user stories, research report.
- Finalize requirements.
- Write user stories.
- Research Computer Vision libraries (e.g., OpenCV, TensorFlow) and price comparison APIs.
Sprint 2 (2 weeks) Technical Design: Documents: System design, module designs.
- Prepare system architecture and data flow diagrams.
- Design initial structure for Computer Vision module and price comparison API.
Month 2 Sprint 3 (2 weeks) Computer Vision Development Start: Code: Working basic photo recognition model.
- Develop a basic model to recognize product photos.
- Design labeling and classification processes.
Sprint 4 (2 weeks) Price Comparison API: Code: Working price comparison module.
- Integrate price comparison API.
- Develop functionality to retrieve nearby store details using test data.
Month 3 Sprint 5 (2 weeks) Integration and Testing: Code: Integrated version of core modules.
- Integrate the Computer Vision module with the API.
- Test data flow between modules.
Sprint 6 (2 weeks) Start Mobile or Web Application Development: Prototype: Simple user interface.
- Design user interface (UI).
- Choose frontend technologies (e.g., React Native, Flutter).
Month 4 Sprint 7 (2 weeks) Comprehensive Testing and Advanced Features: Code: Optimized Computer Vision model.
- Improve the model with a larger dataset.
- Develop mechanisms to collect real-time feedback from users.
Sprint 8 (2 weeks) Performance Optimization: Code: Performance-optimized system.
- Optimize for faster results.
- Reduce latency in API and backend integration.
Month 5 Sprint 9 (2 weeks) Beta Testing: Beta Deliverables: Beta version and test reports.
- Conduct beta testing with users.
- Gather user feedback.
Sprint 10 (2 weeks) Bug Fixes and UX Improvements: Code: More stable version.
- Fix bugs identified during beta testing.
- Improve UI/UX.
Month 6 Sprint 11 (2 weeks) Final Testing: Test Deliverables: Security and stability reports.
- Conduct application security checks.
- Perform system stability tests.
Sprint 12 (2 weeks) Launch and Promotion: Final Deliverables: Live product and promotional materials.
- Release the app to stores or users.
- Promote on social media and online platforms.

Figure 1 All Sprints of the Project on the Board

Those meetings we held, they meant so much to us. The most important keyword for our project was quality. To make quality software, the process must be effective as well. In this context, we adapted to the whole process according to a visual table and we acted according to this table, and our meetings and work were always in order. (Figure 1)

Developing our software, we considered the charts that we had seen in our previous courses and which all software and sectoral companies use. In this respect, we wanted to follow a hierarchy and flow in the development of our product. We made a Class diagram which shows the technical information of our software, how it is going to be developed, what is going to be used.

2.1.1 Class Diagram

image

Figure 4 Class Diagram of iProViS project

Figure 4 displays information about connections between the systems within the out project.

The iProVis project represents an innovative software system focused on two kinds of users: the End User and the Market Owner. The proposed system, based on the use of computer vision techniques combined with artificial intelligence techniques, allows users to be informed about products, make price comparisons, and investigate the possibility of recycling. The project is built around the following core components and the relationships between them.

The User class is the basic unit in the system, representing all users; it is divided into two subclasses: EndUser and MarketOwner. The methods in the User class let the users log on or log off the system. The EndUser class will enable the individual users to view the product information, price comparison, and recycling eligibility of the products. The MarketOwner class will provide the facility to the market owners to view their respective stock information and compare the stock status of other markets.

Product class maintains all the information of the product. Each product has a unique ID number (productID), name, category, price and recycling eligibility.

This class includes functions like providing the details of the product, price comparison and checking recycling eligibility. The Market class models market information and stock details. Grocery stores are located at a specific location and keep track of the availability of products. The Market class includes methods to provide information about the stock in grocery stores and has an "aggregation" relationship with the Product class.

AIProcessor: This class is used to run the computer vision and AI operations of the system. It recognizes the products in the photos and checks prices and recycling eligibility of each product. This class has a function of using location to find closest grocery stores to the user, it calculates distances in between different grocery stores as well. This class for user experience enhancement is linked to User and Market class.

The DatabaseHandler class, finally, handles all the system's data storage and retrieval operations. This class is representative of the database connection and ensures that data utilized by other components of the system is retained.

2.2 Architecture Design of iProViS

2.2.1 Profile Management

Summary: This module allows the user to access product information by taking a photo of a product. The system provides the price, availability, recyclability and multilingual support options.

Actor: User

Precondition: The user must have run the application and the product must be in the camera's field of view.

Basic Sequence:

  1. The user selects “Capture Image” or “Take Photo” to take a product photo.
  2. he system optimizes the camera for the user to focus on the product.
  3. The user takes a photo of the product.
  4. The system analyzes the captured image and recognizes the product information.
  5. Product information is shown on the screen:
  6. Price information
  7. Stock status
  8. Price comparison options
  9. Recyclability information
  10. Multilingual support
  11. The user can review product information or take another photo for another product

Exception:

  1. If the system fails to recognize the product, the user will be notified and given the option to take another photo or log in manually.
  2. If there is no internet connection, the system uses a limited database in offline mode.

Post Conditions: The user received detailed information about the identified product.

Priority: High

image

2.2.2 Price Comparison Menu

Summary: This module compares the prices of the defined product in different stores and allows the user to find the best price.

Actor: User

Precondition: The product must be identified by the system.

Basic Sequence:

  1. The system pulls the prices of the defined product in different stores from the server.
  2. The prices are displayed to the user in the form of a comparison table.
  3. The user can select a store from the list and get detailed information.
  4. The user is redirected to the website of the selected store or receives the store's location information.

Exception:

  1. If no price information is found, the system suggests alternative products to the user.
  2. If the API connection fails, the user is shown an error message.

Post Conditions: The user accessed price information from different stores and found the most suitable option.

Priority: High

image

Figure 2: Price Comparison Sequence Diagram

2.2.3 User Profile Management

Summary: This module manages user profiles. The user can view and edit account information or set personal preferences.

Actor: User

Precondition: The user must be logged in to the system.

Basic Sequence:

  1. The user selects “Profile” to view their profile.
  2. The system displays the user information on the screen.
  3. The user can edit their information by selecting “Edit”.
  4. The user can change language or notification preferences.
  5. The user can exit the profile by saving the changes.

Exception: If the database connection fails, the user will be shown an error message.

Post Conditions: The user profile has been successfully updated. Priority: Medium

image

Figure 3: User Profile Management Sequence Diagram

2.2.4 Notification System

Summary: This module sends notifications to users about discounts and promotions on defined products.

Actor: User

Precondition: The user must have taken a product photo and the system must have identified the product.

Basic Sequence:

  1. The system checks whether the identified product is on sale.
  2. Notification containing discount or promotion information is sent to the user.
  3. The user can get detailed information by clicking on the notification.
  4. The user is directed to the store to apply the discount.

Exception: If no discount or promotion is found, the user will be notified that no offer is available. Post Conditions: The user received information about discount opportunities for the relevant product.

Priority: Medium

image

Figure 4: Notification System Sequence Diagram

2.3 Activity Diagram

image

Figure 5: Product Recognition Activity Diagram

image

Figure 6: Price Comparison Activity Diagram

image

Figure 7: Profile Management Activity Diagram

image

Figure 7: Profile Management Activity Diagram

3. User Interface Design

3.1 Overview

The user interface (UI) for the iProVis system is designed to be intuitive, user-friendly, and visually appealing, targeting a broad audience with varying levels of technical expertise.

3.2 Key UI Components

Home Screen

App Overview: A brief introduction to the app’s purpose and key features (e.g., “Scan products, compare prices, and find eco-friendly recycling tips with ease!”). Login Button: Directs users to the login or register screen to create or access their account. Start Button: Allows users to proceed directly to the scanning feature without logging in (guest mode). Navigation Menu: A simple menu to explore additional features or app settings.

image image

Camera: Real-time interface for product recognition using the device camera. Features autofocus, flash toggle etc.

**Scan Indicator: ** Visual elements like focus boxes or animation to indicate scanning progress.

Action Buttons:

  • Manual Upload: Opens a gallery for manually product lookup.

  • Capture/Scan Button: Initiates product scanning.

image

Scan Results Screen

Product Information: Displays details such as product name, manufacturer, and associated tags.

Price Comparison: Shows pricing options from multiple vendors with links for purchasing.

Recycling Information: Provides guidance for eco-friendly disposal or recycling of the product.

Action Buttons: Save to Favorites: Logs the scanned product for future reference.

image

Login and Register Screens

Login Screen: Fields for username/email and password, along with a "Forgot Password" option. Option for social login via Google, Facebook or Github.

Register Screen: Includes fields for creating a new account: name, email, password, and password confirmation. Includes terms of service acceptance.

image image

Profile Management: Options to update user details like name, email, and profile picture.

Preferences: Language selection settings.

Favorites Scans: Displays a list of previously scanned products with sorting and search options.

image

3.3 Design Principles

Consistency: Uniform color schemes, typography, and button styles across all screens.

Responsiveness: Adapts seamlessly to various device screen sizes.

Accessibility: Includes features like high contrast, and large fonts for improved usability.

3.4 Additional

1. Architectural Constraints

  • The app will initially be developed for Android devices, with potential expansion to iOS in the future if there’s enough demand and the project performs well.

  • To work smoothly, the app needs a device equipped with a functioning camera, at least 2GB of RAM, and stable internet access.

  • APIs for features like price comparison, translation, and product database access will follow all applicable licensing and usage rules.

2. Security Considerations

  • User data such as login credentials, preferences, and activity history will be encrypted using strong encryption standards (AES-256) to protect sensitive information.

  • All communication between the app and servers will use HTTPS, ensuring that transmitted data stays secure.

  • Any user activity data will be anonymized to comply with privacy regulations.

3. Performance Objectives

  • The app will aim to identify scanned products within 2 seconds to ensure a quick and seamless user experience.

  • It should handle up to 20,000 users at the same time, leveraging load balancing to distribute traffic efficiently.

  • The system’s backend will automatically scale during high-traffic periods to maintain consistent performance without service interruptions.

4. Usability and Accessibility

  • The interface will be simple and intuitive, ensuring users can navigate the app with ease.

  • Accessibility features will include high-contrast themes and larger font sizes to accommodate users with visual impairments.

  • The app will support multiple languages (at least 10 major ones) to make it usable for a diverse audience.

5.Testing and Validation

  • Each part of the app will be tested with automated unit tests to catch bugs early, with a target of at least 90% test coverage.

  • Integration testing will ensure smooth interactions between the app and external systems like APIs for product recognition and price comparison.

  • User testing will involve real users trying the app to confirm its usability and gather feedback.

  • Load testing will simulate heavy usage to confirm that the app remains stable under pressure.

6. Maintenance and Future Enhancements

  • A bug tracking system will be in place to quickly identify and resolve any issues that arise.

  • Regular updates will include new features and improvements based on user feedback.

  • If there’s demand, the app will be expanded to iOS and potentially a web version.

  • Recycling-related features will continue to grow, incorporating more data sources to help users identify recyclable materials.

4. REFERENCES

[1] Li, Q., Peng, X., Cao, L., Du, W., Xing, H., Qiao, Y., & Peng, Q. (2020). Product image recognition with guidance learning and noisy supervision. Computer Vision and Image Understanding, 196, 102963.

[2] Bai, Y., Chen, Y., Yu, W., Wang, L., & Zhang, W. (2020). Products-10k: A large-scale product recognition dataset. arXiv preprint arXiv:2008.10545.

[3] Chen, S., Liu, D., Pu, Y., & Zhong, Y. (2022). Advances in deep learning-based image recognition of product packaging. Image and Vision Computing, 128, 1045

Our Official SDD : SDD.docx