Advanced methodologies for managing complex software and web projects.
1. Analysis & Feasibility
Project Analysis
A clear, concise statement explaining why the software is being developed and what problem it aims to solve.
Detailed list of inputs, processes, and outputs. Must be measurable to allow for testing later.
- Search for items in the database.
- Calculate total cost including VAT.
- Generate monthly sales report.
Feasibility Studies
Cost-benefit analysis. Does the projected profit or saving justify the development costs?
Can the project be completed by the required deadline with the available staff?
Compliance with laws (GDPR, Copyright, Computer Misuse Act). Intellectual property rights.
Do we have the hardware, software, and expertise required to build this?
Gathering data from potential users to ensure the product meets a real need and will be adopted.
2. Planning & Specification
Project Planning
- Scheduling: Ordering tasks to minimize downtime and meet deadlines.
- Resource Allocation: Assigning specific people, hardware, and budgets to tasks.
A visual timeline showing:
- Task durations and dependencies.
- Concurrent (parallel) tasks.
- Critical milestones and deadlines.
Requirement Spec
Statements from the user's perspective (User Stories). "As a user, I want to..."
- Scope: What is included in the project.
- Boundaries: What is specifically excluded (limits).
- Constraints: Hardware limits, budget, or software languages.
3. Modeling & Testing
UML Use Case Diagrams
- Actor: External entity interacting with the system (Stick figure).
- Use Case: A function/action within the system (Oval).
- System Boundary: Box containing all use cases.
- Association: Solid line connecting Actor to Use Case.
- <<include>>: Dashed arrow. Action B must happen for Action A (e.g., Login before Checkout).
- <<extend>>: Dashed arrow. Action B is optional for Action A (e.g., Add Gift Wrap).
Project Testing
Testing must be systematic and documented in a Test Plan.
- Test ID & Description
- Test Data (Normal, Extreme, Exceptional)
- Expected Result
- Actual Result & Pass/Fail
Integrated testing ensures modules work together after being individually tested (Unit testing).