In this chapter, we have looked at the fundamental steps of the software development process. You have also learned about some of the advantages of object-oriented programming, about the design goals of C# and .NET, and have been presented with the basic mechanics for creating a C# program.
The following are the essential points we have covered in this chapter:
The software development process described in this chapter only contains a core subset of the many different approaches used in today's software development processes. The core steps are software specification, software design, writing the software, and validating and debugging the software.
An algorithm precisely specifies a series of actions performed in a sequential manner by the computer to solve a computational problem. Algorithms are often expressed using pseudocode, which is a mixture of human language and a high level programming language. Designing an algorithm is usually significantly harder than implementing an existing algorithm in C#.
When you write, compile, and run C# programs, you will bump into three types of errors syntax errors, logic errors, and runtime errors.
Whereas the earlier process-oriented programs consisted of large monolithic source code mammoths, object-oriented programs consists of smaller, self-contained modules (objects) that communicate and collaborate with each other to provide the functionality of a program.
An object consists of data (represented by instance variables that represents the state of an object) and methods (representing the object's behavior) acting on those data.
The class acts as a template for its objects.
Software reuse is a valuable and important part of software construction today. A piece of software constructed for reuse is called a software component. C# provides powerful support for component-oriented programming. The basic unit of reuse in C# is the assembly.
Many class libraries exist and are packed with classes with the sole purpose of being reused in other programs. The .NET Framework class library contains many hundreds of classes at your disposal, ready to be reused.
C# and .NET constitute an evolutionary step forward by building on problems and solutions experienced by previous programmers and their languages.
C# and .NET provide powerful support for the development of many different types of programs. These include Web services, browser-based applications, Windows-based programs, and simple console-based applications, along with a host of other types of programs.
To begin writing C# applications, you need a text editor, such as Notepad, and the .NET Software Development Kit (SDK) installed on your computer.