DEV Community

Cover image for Design, Coding, Testing and Maintenance.
YusufAdel
YusufAdel

Posted on • Updated on

Design, Coding, Testing and Maintenance.

Never code until the specifications are precise and complete.

I'm going to survey a great deal of ground, but mainly from a bird’s-eye view, going to expand some of the principles in software engineering

what is software engineering?

It is the study and practice of methods helpful for the construction and maintenance of large software systems. Although small by realistic standards, we are going to illustrate necessary aspects of software engineering.

phases of life cycle

  1. Analyze the problem precisely and completely. Be sure to specify all necessary user interface with care.

  2. Build a prototype and experiment with it until all specifications can be finalized.

  3. Design the algorithm, using the tools of data structures and of other algorithms whose function is already known.

  4. Verify that the algorithm is correct, or make it so simple that its correctness is self-evident.

  5. Analyze the algorithm to determine its requirements and make sure that it meets the specifications.

  6. Code the algorithm into the appropriate programming language.

  7. Test and evaluate the program on carefully chosen test data.

  8. Refine and repeat the foregoing steps as needed for additional classes and functions until the software is complete and fully functional.

  9. Optimize the code to improve performance, but only if necessary.

  10. Maintain the program so that it will meet the changing needs of its users.

we will handle the primary way in which the user and the software engineer attempt to understand each other and establishes the standard by which the final project will be judged. Among the contents of this specification will be the following:

  1. Functional requirements for the system: what it will do and what commands will be available to the user.

  2. Assumptions and limitations on the system: what hardware will be used for the system, what form must the input take, what is the maximum size of input,what is the largest number of users, and so on.

  3. Maintenance requirements : anticipated extensions of the system, changes in hardware, changes in user interface.

  4. Documentation requirements : what kind of explanatory material is required for what kinds of users.

The requirements specifications state what the software will do, not how it will be done. These specifications should be understandable both to the user and to the programmer. If carefully prepared, they will form the basis for the subsequent phases of design, coding, testing, and maintenance.

conclusion
I want to give a small advice Be sure you understand your problem before you decide how to solve it.
and we will be continuing what we have start with forming the basis of software life cycle and go throw SDLC Models & Methodologies.

Discussion (0)