Software engineering consists of several phases for the development of the software, phases that can be combined into development paradigms.
Software engineering means using a specific method to create a program. The method includes five main tasks: specification, design, implementation, testing, and maintenance.
The first step in any software development project is specification, which determines exactly what abilities the finished software will have. In this phase, one asks the question, "What will the program do?"
This step is accomplished in different ways, depending on the destination of the software. Some software is created for use by a particular company or client. For example, a bank might have its own programmers develop new software for calculating mortgage amortization tables. In this case, the programming team can talk directly with the users to see what their needs and desires are.
Other software is called "shrink-wrapped," which literally means it's wrapped in plastic that shrinks to the size of the box, and in general means it's sold commercially. Here, the programming team can't simply ask the users what they need, because they won't know for sure who the users are until the software is available on the market.
Instead they have to rely on market research and focus groups to see the program from the user's point of view. Software specifications detail not only what features the program will have, but also what the program's interface might look like.
In the specification phase, one asks, "What will the program do?" In the next phase, design, one asks, "How will the program do it?" The design phase creates the blueprint for the software's creation.
In the design phase, the programmers choose a programming language to work in, choose algorithms for different functions of the program, decide which members of the team will do what, make charts describing how the parts of the program will fit together, and so on.
In the implementation phase, the program is actually written. The phase is so-named because the programmers are implementing the design that was made in the previous step. Most people - beginning programmers included - assume that the majority of software development is in implementation, but it's actually just a fraction.
In the testing phase, the programming team determines if the software meets the specifications and the design. In fact, these are two different concerns. One concern is that the program works without error. The programmers do not want the program to halt prematurely (known as a crash) or to display erroneous results. Another concern is that the program is what the users want. A program could never crash and always produce correct output, but if it is missing a key feature, it's not a finished program. Programmers talk of alpha testing and beta testing. Alpha testing is done by the members of the programming team. Beta testing is done by users or potential users.
Many different methods are available for alpha testing. It's not as simple as just running the program and seeing how it works. Consider a program that computes mortgage loan amortization tables. The inputs to this program are the type of interest accrued, the interest rate, the date the loan starts, and so on. With many different permutations of inputs, it would be impossible to test them all. Because most programs have more possible inputs than can ever be tested, systematic approaches to testing must be followed.
Two main categories of testing are white box and black box testing. With white box testing, the programmer uses his or her knowledge of the program to pinpoint locations of possible failure. For example, suppose the programmer knows that one of two large blocks of the program will be executed based on some condition. In this case, the programmer contrives different sets of test inputs to force execution into both paths.
With black box testing, the testers do not have any knowledge of the inner workings of the program. This kind of testing relies purely on the specifications of the program. If the program's specification says it should do X when given Y, give it X and make sure it returns Y.
At first it might seem that white box testing is automatically better than black box testing, but this is not always the case. While having knowledge of the program's inner workings is useful, it can lead to unwise assumptions. The part of the program that originally appeared "easiest" might have been written less carefully, and, if it is tested less carefully as well, a problem could easily slip through.
Most programs need support and additional development after they have been released, which is known as the maintenance phase. Support can include training clients on the software, installing the software on a client's computers, or developing additional product documentation.
Additional development is needed when errors are encountered. If an error is extensive, an entirely new version may need to be installed. Small errors can be fixed with a patch, which is a part of code that replaces a part of an already installed program and is usually downloaded from the software developer's Web site.
Even when no errors arise, the software may still need additional development. If a client purchases new computers with a new operating system, for example, the software developers may need to make modifications to the software. Or the business needs may change, meaning the original specifications are no longer exactly what the client needs. In some cases, changes are so extensive that development must start again back in the specification phase.
Our website is not responsible for the information contained by this article. Articleinput.com is a free articles resource thus practically any visitor can submit an article. However if you notice any copyrighted material, please contact us and we will remove the article(s) in discussion right away.
Note: This article was sent to us by: Ryan Welsh at 02122011
1. Editing methods in computer graphics
All articles are property of their respective authors. Please read our Privacy Policy!
© 2009 ArticleInput.com.
Partners: Damenmode