You are on page 1of 3

P2: SOFTWARE DEVELOPMENT FOR ENVIRONMENTAL AWARENESS.

Importance of Software Development

Software is fundamental to advances in environmental awareness. Software is used throughout the


scientific lifecycle, form initial data acquisition in sensor systems, to data management, quality assurance,
data integration, analysis and synthetic modeling. Software touches everything in environment, and yet, it
is largely invisible and unmanaged. In twenty-first century, everything quickly changes in our
surroundings. Usually we take note that now train ticketing, bus ticketing, car parking, post office,
banking and attendance system are all computerized. Normally all customers trust on the automated
system because this effort is according to predefined functions and provide result which are accurate, the
systems never drained and more reliable. The spirit of any automated system is the software. The custom
software development is not an easy work. When we look at any automated system the effort of building
is quite agile and easily but behind this a big mind works which is developed by a software team. The
Software development is extended process and this is being developed gradually and process is depicted
as:

Notable Processes involved are:-

Requirements Analysis
o Extracting the requirements of a desired software product is the first task in creating it. While customers
probably believe they know what the software is to do, it may require skill and experience in software
engineering to recognize incomplete, ambiguous or contradictory requirements. Requirements analysis
involves frequent communication with system users to determine specific feature expectations, resolution
of conflict or ambiguity in requirements as demanded by the various users or groups of users, avoidance
of feature creep and documentation of all aspects of the project development process from start to finish.
Energy should be directed towards ensuring that the final system or product conforms to client needs
rather than attempting to mold user expectations to fit the requirements.

Specification
o Specification is the task of precisely describing the software to be written, in a mathematically 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.

Software architecture
o 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.

Implementation
o Reducing a design to code may be the most obvious part of the software engineering job, but it is not
necessarily the largest portion. Programming interfaces of present-day languages are very sophisticated
and are equipped huge library functions. Still, to bring the cost down of end product, the organization
management prefers to re-use the code, which was created earlier for some other software. There are huge
issues faced by programmers for compatibility checks and deciding how much code to re-use.

Testing
o Testing of parts of software, especially where code by two different engineers must work together, falls to
the software engineer. When testing is introduced in the early stage, the cost of fixing the bug can be
reduced. Cost of fixing the bug becomes larger when a bug is not found at the right time. Testing will be
necessary for making the software defect free. Defects can be identified and rectified. Automated testing
offers a great help to create defect free software A good and effective software testing helps to improve
security. Authentication and validation are the main aim of software testing services. Basically, a software
testing helps not only to discover defects in software, but also its configuration. Through testing,
developers are able to determine the reliability of the software.

Documentation
o An important task is documenting the internal design of software for the purpose of future maintenance
and enhancement. The presence of documentation helps keep track of all aspects of an application and
it improves on the quality of a software product. Its main focuses are development, maintenance and
knowledge transfer to other developers. Detailed documentation about an application and its
environments is always a must in all cases.
Training and Support
o A large percentage of software projects fail because the developers fail to realize that it doesn't matter
how much time and planning a development team puts into creating software if nobody in an organization
ends up using it. People are occasionally resistant to change and avoid venturing into an unfamiliar area,
so as a part of the deployment phase, its very important to have training classes for the most enthusiastic
software users (build excitement and confidence), shifting the training towards the neutral users
intermixed with the avid supporters, and finally incorporate the rest of the organization into adopting the
new software. Users will have lots of questions and software problems which lead to the next phase of
software.

Maintenance
o Maintaining and enhancing software to cope with newly discovered problems or new requirements can
take far more time than the initial development of the software. Not only may it be necessary to add code
that does not fit the original design but just determining how software works at some point after it is
completed may require significant effort by a software engineer. About 60% of all software engineering
work is maintenance, but this statistic can be misleading. A small part of that is fixing bugs. Most
maintenance is extending systems to do new things, which in many ways can be considered new work.

You might also like