rediff ILAND
Welcome Guest, | Create your own iLand| Sign In  | New User? Get Started
BLOGS
iLand
Blogs
Friends/Contributors
Guestbook  
 
Abhishek Goel
Categories
Software
Friends
Poetry
Fantasy
Personal
bikes
Science
MARKETING
What is an RSS feed?
RSS Feed 
abhinfo.rediffiland.com/  
Friday 4 July, 2008
 23:28 | 24/Feb/2007 |  1 Comment(s)
  Add Abhishek Goel as Friend     Write to Abhishek Goel     Forward this link
Modern Progrmming

 Methodologies

The first step in every software development project should be requirements analysis, followed by modeling, implementation, and failure elimination (debugging).

There exist a lot of differing approaches for each of those tasks. One approach popular for requirements analysis is Use Case analysis.

Popular modeling techniques include Object-Oriented Analysis and Design (OOAD) and Model-Driven Architecture (MDA). The Unified Modeling Language (UML) is a notation used for both OOAD and MDA

A similar technique used for database design is Entity-Relationship Modeling (ER Modeling).

Implementation techniques include imperative languages (object-oriented or procedural), functional languages, and logic languages.

Debugging is most often done with IDEs like Visual Studio, and Eclipse. Separate debuggers like gdb are also used.

 Modern Languages

Example of the C languge code
Example of the C languge code

The most popular programming languages in the 21st century are C, C++, ObjectiveC, C#, Cobol, Fortran, Java, PHP and Python. Many languages have evolved from C, such as C++, C#, and Java. Java, C# and Python, are popular because programs written in them are executed in a virtual machine, avoiding many of the problems of lower-level languages such as C, C++ or Assembler, such as buffer overruns and invalid pointers. However, most PC desktop applications such as word processors or image manipulation programs are written in more runtime and memory efficient languages like C, C++, and Delphi. Operating systems are almost exclusively written in low-level programming languages like C, C++, or Assembler, since speed is necessary in components like context switching, process and thread management, and memory management. Scientific applications are often implemented in Fortran because very efficient optimization (using optimizing Compilers) is possible for arithmetic. Cobol is still very strong in the corporate data center, mainly on large Mainframe computers. PHP and Java excel in database-oriented applications which are often delivered over the internet or corporate intranets. Python, while being a general purpose programming language, is mostly used in system administration and web programming.

Debugging

Debugging is a very important task for every programmer, because an erroneous program is often useless. Languages like C++ and Assembler are very challenging even to expert programmers because of failure modes like Buffer overruns, bad pointers or uninitialized memory. A buffer overrun can damage adjacent memory regions and cause a failure in a totally different program line. Because of those memory issues tools like Valgrind, Purify or Boundschecker are virtually a necessity for modern software development in the C++ language. Languages such as Java, PHP and Python protect the programmer from most of these runtime failure modes, but this comes at the price of a dramatically lower execution speed of the resulting program. This is acceptable for a large class of enterprise applications, which spend most of their execution time on database access.

Category: Software | Permalink