How is Software Created?

From CompSciWiki
Jump to: navigation, search

COMP1260 > Application Software



Introduction

Whether we like it or not, computer software plays a major role in our world. From running the traffic lights, to managing our money, software offers great support for a growing society. Since computer software is very important to us, it is even more important to know what software is and how it is created.

 

...by students

I am a Computer Science student, so I have personal experience in creating software. If you were considering choosing a path in Computer Science you would create many different kinds of software. In Comp 3020, we had to make a Movie Organizing program, going through requirements gathering, design and implementation phases. In Comp 2150, we had to make a program that performed like eBay. In addition, there is a course in Software Engineering, which teaches how to engineer software.

What Is Software

To understand how software is created, we need to know what software is. Software is a collection of programs and procedures that are designed to perform a task on a computer. The programs in the software are a series of instructions that the computer can read, analyze and do tasks on. The programs in software could each do a different thing. One program could calculate 2+2, while a different program could display the answer on the screen. People who design software can combine many programs together to perform a desired task.

How is Software Created

Now that we know what software is, we can focus on how software is created. We learned that software is a series of programs that perform a task, and that each program is a series of instructions that perform another task. From this we can see that software is created by combining and creating programs that achieve different tasks, which combine to achieve the overall task. So to know how software is created, we need to know how these programs are created.

Writing and Compiling Programs

Programs are written (created, coded, programmed) in a programming language. A programming language is a language that expresses the computations done by a machine into a format similar to our spoken languages. When the programmer is done writing the program, the program must then be compiled into machine code. Compiling is a process done by other programs to translate the code into instructions that the computer can understand. Once the code is compiled, the programming can then execute the program.

Graphic.jpg

Development Models

Software development is a little more in depth than just writing code. Software engineers have to create software carefully and efficiently, to reduce cost of development and make a stable and effective product. Developers follow a development model that governs how they create software. A development model is a structure of software creation that software developers follow. Modern software development is usually completed by several programmers instead of just one. This fact makes the importance of following a development model more important. Several different development models exist, that help structure the creation of software, such as: agile, cleanroom, DSDM, iterative, RAD, RUP, spiral, waterfall, XP, scrum, asnd V-model. We will look at a common model in order to get an idea of what is currently done to create software.

Waterfall Model

The waterfall model[1] is a series of steps programmers employ to create software. The steps are as follows

  1. Requirements Gathering
    • Finding requirements for software
  2. Software Design
    • Designing the structure of the software
  3. Implementation of Design
    • Actual programming of programs in software
  4. Integration of Software
    • Combining all the separate programs together, and checking if it meets requirements
  5. Testing and Debugging
    • Testing the program and fixing anything that is wrong
  6. Installation
    • Installing and integrating software into its proper environment
  7. Maintenance
    • Updating software and correcting more errors

After each step is finished, the process continues to the next step. This process is kind of like building a house, once you build the foundation, you can’t really rebuild it again. This doesn’t mean that the development won’t have error correcting. Good design of software makes it more flexible to incorporate new features.

Summary

Let’s take a look back and see what we've learned

What is Software? - A collection of programs that complete a task on a computer
How is Software Created? - created by programming instructions the computer can understand
What is Programming? - writing instructions, compiling them into something the computer can understand
Developing Software - Waterfall model and its steps

For information on this topic, please follow the links in further readings. The next topic in this chapter will be on Software Suites.

Further Readings

Software Development Process[1]
Computer Software [2]
Extreme Programming[3]

References

  1. Adrian Als & Charles Greenidge, Waterfall Model. September 29, 2005. Accessed on November 30,2008. http://scitec.uwichill.edu.bb/cmp/online/cs22l/waterfall_model.htm

Previous Page: Freeware and Shareware

Next Page: Software Suites