Software development process

A software development process is a structure imposed on the development of a software product. Synonyms include software life cycle and software process. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process.

All methods undertake the seven steps listed to different degrees:

Domain Analysis
Often the first step in attempting to design a new piece of software, whether it is an addition to existing software, a new application, a new subsystem or a whole new system, is what is generally referred to as “Domain Analysis”. Assuming that the developers (including the analysts) are not sufficiently knowledgeable in the subject area of the new software, the first task is to investigate the so-called “domain” of the software. The more knowledgeable they are about the domain already, the less the work required. Another objective of this work is to make the analysts who will later try to elicit and gather the requirements from the area experts or professionals, speak with them in the domain’s own terminology and to better understand what is being said by these people. Otherwise they will not be taken seriously. So, this phase is an important prelude to extracting and gathering the requirements. The following quote captures the kind of situation an analyst who hasn’t done his homework well may face in speaking with a professional from the domain: “I know you believe you understood what you think I said, but I am not sure you realize what you heard is not what I meant.

Software Elements Analysis
The most important task in creating a software product is extracting the requirements. Customers typically know what they want, but not what software should do, while incomplete, ambiguous or contradictory requirements are recognized by skilled and experienced software engineers. Frequently demonstrating live code may help reduce the risk that the requirements are incorrect.

Scope Analysis
Once the general requirements are gleaned from the client, an analysis of the scope of the development should be determined and clearly stated. This is often called a scope document. Certain functionality may be out of scope of the development project as function of cost, others as a result of unclear requirements at the time the development has begun. If the development is done externally, this document can be considered a legal document so that if ever there are disputes, any ambiguity of what was promised to the client can be clarified.

Specification
Specification is the task of precisely describing the software to be written, possibly in a rigorous way. In practice, most successful specifications are written to understand and fine-tune applications that were already well-developed, although safety-critical software systems are often carefully specified prior to application development. Specifications are most important for external interfaces that must remain stable. A good way to determine whether the specifications are sufficiently precise is to have a third party review the documents making sure that the requirements are logically sound.

Software architecture
The architecture of a software system refers to an abstract representation of that system. Architecture is concerned with making sure the software system will meet the requirements of the product, as well as ensuring that future requirements can be addressed. The architecture step also addresses interfaces between the software system and other software products, as well as the underlying hardware or the host operating system.

Coding
Reducing a design to code may be the most obvious part of the software engineering job, but it is not necessarily the largest portion.

Testing
Testing of parts of software, especially where code by two different engineers must work together, falls to the software engineer.

Implementation
After the code is appropriately tested and approved, it is moved into production environment i.e. is made available for business use.

Documentation
An important (and often overlooked) task is documenting the internal design of software for the purpose of future maintenance and enhancement. Documentation is most important for external interfaces.

References:

Computer World, 2002, Retrieved on June 22, 2006 from the World Wide Web: http://www.computerworld.com/developmenttopics/development/story/0,10801,71151,00.html

Software Development Process Advice and Strategies

Software development life cycle (SDLC) [visual image], software development life cycle

Advertisements

Japanese Invisible Technology – Optical Camouflage

They are the ultimate form of camouflage. Put one on, and you disappear from view. One saved Harry Potter from many tight scrapes, and in the film Die Another Day the technology provided James Bond with the ultimate escape vehicle, an invisible car.
But now Japanese scientists have turned fantasy into reality by creating an invisibility cloak that makes it possible to see straight through its wearer. He, or she, simply vanishes from view. The garment is the work of Japanese inventor Susumu Tachi, a professor of computer science and physics at the University of Tokyo. ‘It’s a kind of augmented reality,’ he said of his device.
In reality, the ‘optical camouflage‘ cloak is anything but invisible. It is made up of ‘retro-reflective material’ coated with tiny light-reflective beads that cover its entire length. The cloak is also fitted with cameras that project what is at the back of the wearer on to the front, and vice versa. The effect is to make the wearer blend with his background.

cloth2.jpg cloth.jpg

The device is attracting serious attention from military experts keen to exploit a technology that could help troops move into action without being spotted.Nor does the potential end there, says Tachi’s colleague, Naoki Kawakami. ‘It could be used to help pilots see through the floor of the cockpit at a runway below, or for drivers trying to see through a fender to park a car.’

 

‘World’s smallest radio’ as big as a grain unveiled

American researchers have made transistor radios which are smaller than a grain of sand but can outperform regular radios. Scientists from the University of Illinois used tiny strands of carbon atoms, known as carbon nanotubes, to make the radio.

They circumvented technical problems by using quartz wafers to manufacture the device. On being tested, the nano radio easily picked up signals from a nearby station. The reception was far better than silicon-based radios.The strands used in the radio are hundreds of thousand times smaller than the human hair.

Prof John Rogers, who headed the team, said that the ultimate aim of the research was to develop high-performance semiconductors from the nanotubes.

Source BBC AsianAge

Life on Mars – Real or Illusion?

Life on Mars? Well, bizarre images have emerged showing a mystery female figure walking down a hill on the arid planet.

The photo of what looks like a naked woman with her arm outstretched was among several taken on the red planet and sent back to Earth by NASA’s Mars explorer Spirit, the Daily Mail reported on Wednesday, citing an unnamed website.

Man seen on Mars

Though no official confirmation has come from NASA whether the figure is an alien or an optical illusion caused by a landscape on Mars, it has set the Internet abuzz that there really is life on Mars.

These kinds of speculations are not new. Earlier also they have popped up just to find out later that they were wrong or perhaps too early to comment, as you can find in the article Unmasking the “Face on Mars” in NASA’s site.

New high-resolution images and 3D altimetry from NASA’s Mars Global Surveyor spacecraft reveal the Face on Mars for what it really is: a mesa.  Twenty five years ago something funny happened around Mars. NASA’s Viking 1 spacecraft was circling the planet, snapping photos of possible landing sites for its sister ship Viking 2, when it spotted the shadowy likeness of a human face. An enormous head nearly two miles from end to end seemed to be staring back at the cameras from a region of the Red Planet called Cydonia.

Mars 25 yrs ago

Google Chart API + some JavaScript = Beautiful Charts

The Google Chart API lets you dynamically generate charts. To see the Chart API in action, open up a browser window and copy the following URL into it:

http://chart.apis.google.com/chart?cht=p3&chd=s:hW&chs=250x100&chl=Hello|World

Press the Enter or Return key and – presto! – you should see the following image:

Yello Line Chart

 

I just happened to notice last week that Google released a nifty Chart API for public use. The Google Chart API returns a PNG-format image in response to a URL. Several types of image can be generated: line, bar, and pie charts for example. For each image type you can specify attributes such as size, colors, and labels.

You can include a Chart API image in a webpage by embedding a URL within an <img> tag. When the webpage is displayed in a browser the Chart API renders the image within the page. (more…)