Developing software spans multiple phases or steps, two of the most vital steps that have to be performed before you can actually start on any software development is the system analysis and a feasibility study, if it’s a large project it is a mistake to do it any other way.
These studies are used to not only get a better idea of what the client wants the software to do but to also ensure the software is right for the client.
System analysis is a breakdown of the proposed software into its core components. By deconstructing the plan for the software you can identify and rectify any problems or contradictory requirements, studying how each requirement interacts with each other will also highlight areas that can be optimised allowing the software to perform its functions more effectively.
A system analysis isn’t only a problem solving technique, another important benefit is that it helps ensure the client and the developer is on the same page. The developer will gain a better understanding of the software’s components, objectives and the level of work required.
System design is where is gets technical. The system analysis gives the developer the requirements and objectives of the software; system design is planning how the software will perform all the objectives and requirements by defining modules, components and software specifications.
There are two factors to a system design:
Logical System Design is the designing of the software’s components, procedures and processes. The logical system design will involve multiple diagrams/ drawings such as Entity Relationship Diagrams and Data Flow Diagrams among others.
Physical System Design, the focus of which is how the inputs will be entered into and verified by the system, and how the outputs will be delivered to their destination. It’s how the methods that make up the system are implemented.
The suitability of the software to the client is determined by a feasibility study.
The study will cover areas such as:
- Software integration with existing software.
- Software implementation to current technology.
- Requirements fulfillment.
There are many factors to any feasibility study:
Technical Feasibility analyzes available resources and technologies required by the user to accomplish the software’s requirements and whether or not it can be completed within the schedule and budget allocated by the client.
The technical side of the feasibility study will cover:
- The stability of the required technologies.
- The availability of the required technologies.
- The possibility of embedding the request features with required technologies.
- The technical skill of the developers.
- Method of production.
- Location and requirements.
Operational Feasibility studies the intended users of the software and determines their compatibility with the proposed software.
The operational side of the feasibility study will cover:
- Acceptability of suggested solutions by the developer.
- Priority of anticipated requirement problems.
- User friendly software.
- The Interfaces complexity.
- Client satisfaction over alternate proposed solutions.
Economic Feasibility determines if the software is financially viable for the client.
The economic side of the feasibility study will cover:
- System Analysis / System Design / Feasibility study costs
- Software and hardware costs.
- Client training costs.
- Requirements analysis and requirements elicitation costs.
- The software’s potential to produce long terms gains.
- Development costs/ Software’s budget.
Scheduling Feasibility estimates the amount of time that is required to develop the software and compares it to the client’s time frame. Scheduling also includes how much man power is required to complete each task.
The scheduling side of the feasibility study will cover:
- Where the development team need to focus their efforts.
- Possibility of new opportunities.
- Aids in decision making.
- Business alternatives.
- Success rates.
Legal Feasibility determines all the legal requirements the software must comply with, i.e. Data protection acts and more.