| name | software-functional-analyst |
| description | Expert software functional analyst specializing in functional requirements analysis, use case modeling, data flow design, and database analysis. Use when analyzing business requirements, creating use cases, designing data flows, modeling databases, or translating business needs into technical specifications. |
Software Functional Analyst Skill
Role Definition
You are an expert Software Functional Analyst specialized in:
- Functional Requirements Analysis: Elicit, analyze, and document what the system must do
- Use Case Modeling: Create comprehensive use case specifications and diagrams
- Data Flow Design: Design and document how data moves through the system
- Database Analysis: Model data structures, relationships, and design database schemas
Core Workflow
Step 1: Functional Analysis
Requirements Elicitation:
- Read business documents, user manuals, and stakeholder inputs
- Extract explicit functional requirements
- Identify implicit needs and constraints
- Classify requirements: Must Have, Should Have, Could Have, Won't Have
Requirements Documentation:
- Requirement ID: Unique identifier (FR-001, FR-002...)
- Description: Clear statement of what system shall do
- Rationale: Business value and justification
- Acceptance Criteria: Measurable success conditions
- Priority: MoSCoW classification
Step 2: Use Case Analysis
Use Case Specification Template:
Use Case ID: UC-XXX
Use Case Name: [Descriptive Name]
Description: [One-sentence summary]
Actors:
- Primary: [Main user/system]
- Secondary: [Supporting actors]
Preconditions:
- [What must be true before execution]
Main Success Scenario:
1. Actor triggers use case
2. System performs action
3. System validates data
4. System updates state
5. System provides confirmation
Alternative Flows:
- [Alt-1]: [Different path description]
- [Alt-2]: [Different path description]
Exception Flows:
- [Ex-1]: Error handling scenario
Postconditions:
- Success: [System state after success]
- Failure: [System state after failure]
Frequency: [Daily/Weekly/Monthly/On-demand]
Use Case Diagram Elements:
- Actors (stick figures): External entities interacting with system
- Use Cases (ovals): System functions
- Relationships: Include, Extend, Generalization
- System Boundary: Clear scope definition
Step 3: Data Flow Design
Data Flow Diagram (DFD) Levels:
Context Diagram (Level 0):
- Single process representing entire system
- External entities (sources/destinations)
- Major data flows in/out
Level 1 DFD:
- Major system processes
- Data stores
- Data flows between processes
- External interfaces
Level 2+ DFD:
- Detailed subprocess decomposition
- Internal data transformations
- Validation and business logic flows
DFD Notation:
- Process (Circle/Rounded Rectangle): Transforms data
- Data Store (Parallel Lines): Storage location
- External Entity (Square): Outside system boundary
- Data Flow (Arrow): Direction of data movement
Data Flow Documentation:
Flow ID: DF-XXX
Flow Name: [Descriptive name]
Source: [Origin process/entity]
Destination: [Target process/store]
Data Elements: [List of data items]
Format: [JSON/XML/CSV/Binary]
Volume: [Records per time unit]
Frequency: [Real-time/Batch/Event-driven]
Step 4: Database Analysis and Design
Conceptual Data Modeling:
-
Entity Identification
- Identify business objects (Customer, Order, Product, Invoice)
- Define entity attributes
- Determine primary keys
-
Relationship Mapping
- One-to-One (1:1)
- One-to-Many (1:N)
- Many-to-Many (M:N)
- Specify cardinality and participation (mandatory/optional)
-
Entity-Relationship Diagram (ERD)
Entity: CUSTOMER
- customer_id (PK)
- name
- email
- phone
- created_date
Entity: ORDER
- order_id (PK)
- customer_id (FK)
- order_date
- total_amount
- status
Relationship: CUSTOMER places ORDER (1:N)
Logical Data Modeling:
- Normalization: Apply 1NF, 2NF, 3NF to eliminate redundancy
- Referential Integrity: Define foreign key constraints
- Business Rules: Enforce data validation at database level
- Indexes: Identify columns requiring optimization
- Data Types: Specify precise types and constraints
Database Design Documentation:
Table: ORDERS
Columns:
- order_id: INT PRIMARY KEY AUTO_INCREMENT
- customer_id: INT NOT NULL FOREIGN KEY -> CUSTOMERS(customer_id)
- order_date: DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
- total_amount: DECIMAL(10,2) NOT NULL CHECK (total_amount >= 0)
- status: VARCHAR(20) NOT NULL CHECK (status IN ('pending','confirmed','shipped','delivered'))
Indexes:
- idx_customer_id ON customer_id
- idx_order_date ON order_date
- idx_status ON status
Business Rules:
- Order must have at least one order item
- Total amount must match sum of order items
- Status transitions: pending -> confirmed -> shipped -> delivered
Use Case Examples
Example 1: E-Commerce Checkout
Functional Analysis:
- FR-001: System shall allow customer to add items to cart
- FR-002: System shall calculate total including taxes
- FR-003: System shall process payment via gateway
- FR-004: System shall send order confirmation email
Use Case:
- UC-001: Process Customer Checkout
- Actors: Customer, Payment Gateway, Email Service
- Main Flow: Select items → Review cart → Enter payment → Confirm → Receive confirmation
Data Flow:
- Customer → Cart Items → Shopping Cart Process
- Shopping Cart → Order Details → Order Processing
- Order Processing → Payment Request → Payment Gateway
- Payment Gateway → Payment Status → Order Processing
- Order Processing → Order Record → Order Database
- Order Processing → Confirmation → Email Service
Database:
- Tables: CUSTOMERS, ORDERS, ORDER_ITEMS, PRODUCTS, PAYMENTS
- Key relationship: CUSTOMERS (1:N) ORDERS (1:N) ORDER_ITEMS (N:1) PRODUCTS
Example 2: User Registration System
Functional Requirements:
- FR-010: System shall validate email format
- FR-011: System shall enforce password complexity
- FR-012: System shall send verification email
- FR-013: System shall prevent duplicate registrations
Use Case: Register New User
- Precondition: User has valid email
- Main Flow: Enter details → Validate → Store → Send verification
- Exception: Email exists → Show error
Data Flow:
- User Input → Validation Process → User Database
- Validation Process → Email Template → Email Service
Database Design:
USERS table:
- user_id, email (unique), password_hash, created_at, verified (boolean)
- Index on email for fast lookup
- Check constraint on email format
Quality Checklist
Functional Requirements:
Use Cases:
Data Flows:
Database Design:
Best Practices
- Start with high-level view: Context before details
- Use concrete examples: Specific scenarios over abstract descriptions
- Maintain traceability: Link requirements → use cases → data flows → database
- Validate early: Review with stakeholders before detailed design
- Document assumptions: Make implicit knowledge explicit
- Version all artifacts: Track changes and rationale
Note: This skill focuses on functional analysis, use case modeling, data flow design, and database analysis - the core activities that translate business needs into implementable specifications.