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.
Often the first step in attempting to design a new piece of software, whether it be an addition to an existing software, a new application, a new subsystem or a whole new system, is, what is generally referred to as "Domain Analysis".
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
Specification is the task of precisely describing the software to be written, possibly in a rigorous way.
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 (or 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 of parts of software, especially where code by two different engineers must work together, falls to the software engineer.
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.
Software Training and Support
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.
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.
The testing life cycle can be broadly classified into three different life cycle models depending upon the type of application and the test strategy used such as:
* Application Testing Life Cycle
* Automation Testing Life Cycle
* Package Testing Life Cycle
Microsoft Visual SourceSafe (VSS) is a source control software package oriented towards smaller software development projects.
Visual SourceSafe's advantages are relative ease of use and some degree of integration with other Microsoft development solutions. For small or medium scale development, where multiple versions are not simultaneously supported, its limitations do not cause major problems. Further strong points include its excellent integration with Microsoft Visual Studio, its easy-to-use interface, and the fact that it is included as part of certain MSDN Subscriptions
TestDirector is Mercury Interactive’s software test management tool. It helps quality assurance personnel plan and organize the testing process. With TestDirector you can create a database of manual and automated tests, build test cycles, run tests, and report and track defects. You can also create reports and graphs to help review the progress of planning tests, running tests, and tracking defects before a software release.
Using TestDirector, we can define application requirements and testing objectives, design test plans and develop test cases, create automated scripts and store them in the repository, run manual and automated tests, report execution results, enter defects, review and fix defects by logging into the database. Using application status reports we can decide whether an application is ready to be released. Test Director is a test management tool with which we can manage our entire testing process. It is a central repository where we can store our requirements, test plans, test cases and tests scripts and execute the test cases and test scripts. We can share the work with other QA testers using Test Director since it is a web based test management tool.
Mercury LoadRunner® prevents costly performance problems in production by detecting bottlenecks before a new system or upgrade is deployed. You can verify that new or upgraded applications will deliver intended business outcomes before go-live, preventing over-spending on hardware and infrastructure. It is the industry-standard load testing solution for predicting system behavior and performance validation, and the only integrated load testing, tuning, and diagnostics solution in the market today. With LoadRunner you can measure end-to-end performance, diagnose application and system bottlenecks, and load test applications that run in the context of remote desktop protocol (RDP) – all from a single point of control. It supports a wide range of enterprise environments, including Web Services, Ajax, J2EE, and .NET.
With LoadRunner, you can:
* Obtain an accurate picture of end-to-end system performance.
* Verify that new or upgraded applications meet specified performance requirements.
* Identify and eliminate performance bottlenecks during the development lifecycle.
Reduce Scripting Time by 80 Percent
LoadRunner now includes game-changing technology that reduces the script creation process down to a few simple mouse clicks.
Hope this helps
Answered By: Neeraj Yadav♥ - 8/7/2007