0% found this document useful (0 votes)
3 views

Project Analysis

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Project Analysis

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Software Development Process

1. Business Analysis 🡺 Roles, Scopes, Requirements


2. Database Design
a. Conceptual Design 🡺 ERD, EERD
b. Logical Design 🡺 Data Model
i. SQL
ii. NoSQL
1. Key-Value based
2. Column Oriented
3. Document Oriented
4. Graph-based
c. Physical Design
3. High Level Design / Software Architecture 🡺 Component
Diagram, Activity Diagram, Sequence Diagram
4. Low Level Design
a. UX,UI Design 🡺 Pages & Layouts
b. Software Design 🡺 Class Diagram, Sequence
Diagram, State Diagram
5. Implementation
6. Testing
7. Deployment
Business Analysis

1. Business Roles
● Anonymous users can show products
● Products can be filtered by category
● Only Registered users can add products to cart
● User can view and modify his cart
● Only Registered users can make orders
● Registered users can see their orders and track their status
● Admins can add products
● Admin can update/delete products he added
● Admins can view and manage all users' orders

2. Business Scopes
● Admin
o Add product
o Modify/delete products he add
o Manage users orders
● Registered Users
o View & filter products
o Add products to cart
o Manage cart
o Make orders
o Track orders
● Anonymous Users
o View & filter products

3. Functional Requirements
ID Requirement Description Priority
FR001 Registration Users can register MUST
to the system
FR002 View & Filter Registered and MUST
Products Anonymous users
can view products
FR003 Cart Registered user can MUST
add products to
cart and manage his
cart
FR004 Order Registered user can MUST
make order and
track its status
FR005 Manage Admins can add MUST
Products and manage
products
FR006 Manage Orders Admins can view MUST
and manage users
orders
Database Design

4. Database Design
High Level Design

5. Component Diagram
6. Activity Diagrams
7. Sequence Diagrams
Low Level Design

8. UX & UI Designs
9. Sequence Diagrams

10. State Diagrams


Implementation

● Database
decide from ERD which database to use
if you have a lot of many-to-many relationships and need to make
complex joins, you should consider relational databases (sql database)
(like MySQL, PostgreSQL, SQL Server, Oracle)
if you need dynamic schemas (no specific attributes), you should
consider nosql databases
if you need simple and fast database (cache for example), consider
key-value based databases (like Redis)
if you need to make analysis on specific attributes, consider
column-oriented databases (like Cassandra)
if you have simple relations (one-to-one, one-to-many), consider
document-oriented databases (like MongoDB, CouchDB)
if you have big data and complex relations, consider graph-based
databases (Neo4J)

● Backend (Web)
if you want real-time communications, consider NodeJS
if your application is CPU intensive (make complex operations and
calculations), consider multithreaded languages (like Java, C#, PHP)
if your project needs AI tasks, consider Python
for small and some medium projects, any language and framework will
be OK
● Frontend (Web)
using frameworks (Angular, React, Vue) may be overkill and adding extra
complexity to the project (ex: API)
React is suitable for small to medium applications. it has fewer built-in
features (making components) and needs additional libraries. it does not
have a specific folder structure.
Angular is suitable for large applications. it has almost all the features
you need (components, routing, http, forms, animations, …...). it has a
specific folder structure
Vue is something between React and Angular.
Testing

● Unit testing
Test every function and only one function

● Integrated Testing
Test a set of functions together

● End-to-End (e2e) Testing


Test the entire application from the start to end
Deployment

Making executable file or Deploy web app to host


API

a software used by another software

● Web API

Endpoint = HTTP method + route


GET /home
POST /cart
PUT /cart
DELETE /cart

● REST API
REpresentational State Transfer
Softwares

https://draw.io/
https://drawsql.app/
MySQL Workbench
Pencil https://pencil.evolus.vn/
AdobeXD
Figma https://www.figma.com/

You might also like