This article covers system analysis and design from the PHP developer’s perspective. Not only should programmers be aware of system analysis and design, site owners should be aware of this as well. If a developer fails to perform an adequate system analysis and design they are setting themselves up for working harder and longer than they should have. The other part is this phase will produce a written outline of the project that can be used to communicate with the customer. The customer needs to be aware of this phase as well. I cannot state strongly enough how important this phase is.
Introduction to System Analysis and Design
System analysis and design is taught at most junior colleges and universities as part of their programming or computer science curriculum. But what is system analysis and design? In a nutshell is is formalizing the project. Taking what a customer has told the programming staff about what they want. When complete it is a road map to the finished computer application. In this article we will look at this from the perspective of the PHP programmer.
The System Analysis and Design
When it comes to the garden variety (small) PHP programming project there does not seem to be a lot of time to allot to the system analysis and design phase of the project. Usually the system analysis and design occurs in the programmer’s head. I understand this approach because there is usually limited resources when it comes to PHP freelance programming projects. In reality the PHP programmer should take some amount of time for a formal analysis and design.
For a small project the analysis and design phase will take an hour or less to compete. For larger projects this phase my take longer.
Doing a formal analysis and deign can save the developer time and energy. And it will allow the programmer to get early feedback to ensure that project is what they customer envisioned. In school they teach this phase will save the developer a lot of time and energy. From my experience this is true. I’ve hastily began projects believing I had it all figured out and took little time analyzing the project or formalizing it. Those times I skipped the analysis and design caused me to work harder and longer. It is very important to do a formal analysis and design before starting to program.
What Does a Finished Analysis and Design look like?
Each project will vary. Some will be maintenance or bug fixes that require thinking about the issue, doing some research and coming up with a course of action. Other projects, manly those where a project is built from scratch will require the following:
- Project Statement – The reason for the project, the goals for the project, the why, and the delivery date.
Site Hierarchy – Outline the menus, pages, and forms.
- Form Templates – Making form templates and having them reviewed before stating to code will save time and effort and may flesh out potential misunderstandings.
- Hosting Requirements – May need to be documented as well depending on the resources that may be need to be provided for the final web application.
- Database Normalization – This is a big one. Database normalization is a skill all PHP developers should posses. The database is at the heart of the project. If done correctly it will make the project easier and will make future changes easier. And will reduce the amount of rework.
- Reports – Outlining which reports are needed and what each report will require will help in understanding the project. Defining the reports that are needed will also help with understanding what data needs to be stored and in what format.
- Security Issues and Concerns – The Internet has become a war zone. On a regular basis we hear or worse yet are invovled in a data breach. I do not think there is anyone in America that has not been effected. They say an ounce of prevention is worth a pound of cure. Be security conscious.
As you can see the system analysis and design is an invaluable tool to formalize the project so the programmer can verify with the customer that he or she is on the right track. This phase can also reduce the amount of time and effort that goes into a project. This is a mandatory part of all projects. The customer should request a system analysis and design occur and every programmer should do this automatically. Neglecting to do a formal system analysis and design could cause a project to go off the rails creating a failure. Performing this task will lead to better, easier, and more successful projects.