You are on page 1of 5

What is programming?

Programming is the process of taking an algorithm and encoding it into a notation, a


programming language, so that it can be executed by a computer. Although many programming
languages and many different types of computers exist, the important first step is the need to
have the solution. Without an algorithm there can be no program.

Computer science is not the study of programming. Programming, however, is an important


part of what a computer scientist does. Programming is often the way that we create a
representation for our solutions. Therefore, this language representation and the process of
creating it becomes a fundamental part of the discipline.

Algorithms describe the solution to a problem in terms of the data needed to represent the
problem instance and the set of steps necessary to produce the intended result. Programming
languages must provide a notational way to represent both the process and the data. To this
end, languages provide control constructs and data types.

Control constructs allow algorithmic steps to be represented in a convenient yet unambiguous


way. At a minimum, algorithms require constructs that perform sequential processing, selection
for decision-making, and iteration for repetitive control. As long as the language provides these
basic statements, it can be used for algorithm representation.

All data items in the computer are represented as strings of binary digits. In order to give these
strings meaning, we need to have data types. Data types provide an interpretation for this
binary data so that we can think about the data in terms that make sense with respect to the
problem being solved. These low-level, built-in data types (sometimes called the primitive data
types) provide the building blocks for algorithm development.

For example, most programming languages provide a data type for integers. Strings of binary
digits in the computer’s memory can be interpreted as integers and given the typical meanings
that we commonly associate with integers (e.g. 23, 654, and -19). In addition, a data type also
provides a description of the operations that the data items can participate in. With integers,
operations such as addition, subtraction, and multiplication are common. We have come to
expect that numeric types of data can participate in these arithmetic operations.

The difficulty that often arises for us is the fact that problems and their solutions are very
complex. These simple, language-provided constructs and data types, although certainly
sufficient to represent complex solutions, are typically at a disadvantage as we work through
the problem-solving process. We need ways to control this complexity and assist with the
creation of solutions.

C language

The C language was invented at Bell Labs by Dennis Ritchie in 1972 to allow the writing of the
UNIX operating system, then developed by Ken Thompson and Dennis Ritchie.
The UNIX operating system, born in the late 1960s, was written directly in assembly
language for the machines which it was intended. born in the late 1960s - early 1970s, was
written directly in assembly language for the machines which it was intended. If the assembly
language for writing such a system, it was nevertheless not easy to use. Such language is in fact
a particular type of processor, which makes the whole system should be rewritten to make it
work on a new architecture. This is its main creator, Ken Thompson, wanted to use a language
more quickly evolved to rewrite UNIX.
Among the languages available at the time, BCPL (Basic
Combined Programming Language for, which is a simplification of CPL), created by Martin
Richards in 1966, was interesting. Without going into detailed descriptions, BCPL is a simple
language, procedural, and not typed. Its simplicity makes it easy to create BCPL compilers on
machines of the time, when resources were very limited (the first computer used by Keith
Thompson was to launch a Unix PDP-7, which had a memory of 4000 words 18 bits, or less than
9 KB). Ken Thompson has evolved to design the B language, which he implemented the first
UNIX machines. However, some limitations of language B were UNIX could be rewritten in this
language.
From 1971, Dennis Ritchie B did evolve to address these issues. Like the
programmers increment versions of their programs, Ritchie "Nudge" the letter B to call the new
language C. This evolution is "stabilized" to 1973, from which UNIX and UNIX system utilities
have been rewritten successfully in C.
Subsequently in 1978, Brian W. Kernighan documentation very active language,
and finally publish the book with reference Ritchie The C Programming Language. Often called K
& R C language as specified in the first edition of this book.
In the years that followed, the C language was carried on many other machines.
These ports were often made at the beginning, from the pcc compiler Steve Johnson, but then
the original compilers were developed independently. During these years, every C compiler was
written in accordance with the specifications of K & R, but some added extensions, such as data
types or additional features, or different interpretations of certain parts of the book (not
necessarily very precise). Because of this, it was less easy to write C programs that can run
unchanged on many architectures.

What is SDLC?
SDLC is a process followed for a software project, within a software organization. It consists of
a detailed plan describing how to develop, maintain, replace and alter or enhance specific
software. The life cycle defines a methodology for improving the quality of software and the
overall development process.

The following figure is a graphical representation of the various stages of a typical SDLC

A typical Software Development life cycle consists of the following stages:

Stage 1: Planning and Requirement Analysis


Requirement analysis is the most important and fundamental stage in SDLC. It is performed by
the senior members of the team with inputs from the customer, the sales department, market
surveys and domain experts in the industry. This information is then used to plan the basic
project approach and to conduct product feasibility study in the economical, operational, and
technical areas.

Planning for the quality assurance requirements and identification of the risks associated with
the project is also done in the planning stage. The outcome of the technical feasibility study is
to define the various technical approaches that can be followed to implement the project
successfully with minimum risks.

Stage 2: Defining Requirements


Once the requirement analysis is done the next step is to clearly define and document the
product requirements and get them approved from the customer or the market analysts. This
is done through .SRS. . Software Requirement Specification document which consists of all the
product requirements to be designed and developed during the project life cycle.

Stage 3: Designing the product architecture


SRS is the reference for product architects to come out with the best architecture for the
product to be developed. Based on the requirements specified in SRS, usually more than one
design approach for the product architecture is proposed and documented in a DDS - Design
Document Specification.

This DDS is reviewed by all the important stakeholders and based on various parameters as
risk assessment, product robustness, design modularity , budget and time constraints , the
best design approach is selected for the product.

A design approach clearly defines all the architectural modules of the product along with its
communication and data flow representation with the external and third party modules (if
any). The internal design of all the modules of the proposed architecture should be clearly
defined with the minutest of the details in DDS.

Stage 4: Building or Developing the Product


In this stage of SDLC the actual development starts and the product is built. The programming
code is generated as per DDS during this stage. If the design is performed in a detailed and
organized manner, code generation can be accomplished without much hassle.

Developers have to follow the coding guidelines defined by their organization and
programming tools like compilers, interpreters, debuggers etc are used to generate the code.
Different high level programming languages such as C, C++, Pascal, Java, and PHP are used for
coding. The programming language is chosen with respect to the type of software being
developed.
Stage 5: Testing the Product
This stage is usually a subset of all the stages as in the modern SDLC models, the testing
activities are mostly involved in all the stages of SDLC. However this stage refers to the testing
only stage of the product where products defects are reported, tracked, fixed and retested,
until the product reaches the quality standards defined in the SRS.

Stage 6: Deployment in the Market and Maintenance


Once the product is tested and ready to be deployed it is released formally in the appropriate
market. Sometime product deployment happens in stages as per the organizations. business
strategy. The product may first be released in a limited segment and tested in the real business
environment (UAT- User acceptance testing).

Then based on the feedback, the product may be released as it is or with suggested
enhancements in the targeting market segment. After the product is released in the market,
its maintenance is done for the existing customer base.

You might also like