-
Rapid Application Development (RAD): a software development process that allows usable systems to be built
in as little as 60-90 days, often with some compromises. In certain situations, the acceptability of a system can be
assessed against the agreed minimum useful set of requirements rather than all requirements.
PROBLEMS ADDRESSED BY RAD:
-
With conventional methods, there is a long delay before the
customer gets to see any results.
-
With conventional methods, development can take so long that the
customer’s business has primarily changed by the time the
system is ready for use.
-
With conventional methods, there is nothing until 100% of the
process is finished, then 100% of the software is delivered.
GOOD REASONS FOR USING (RAD):
- to converge early toward a design acceptable to the customer
- to limit a project’s exposure to the forces of change
-
to save development time, possibly at the expense of economy or
product quality
-
Open source: Open source software development is the process by which ` software is developed. These are software products available with its source code and under an to study, change, and improve its design. Examples of popular Open source software product are and the . The Open source software development method is much unstructured, because no clear development tools, phases, etc. have been defined like with development methods such as . Instead, every project has its own phases. There are, however, generalities between Open source development projects. In this entry these generalities will be described.
Tools used for open source development:
-
Communication channels: Developers and users of an open source project are not all necessarily working on the project in proximity. They require some electronic means of communications. is one of the most common forms of communication among open source developers and users.
-
Version control systems: Many open source projects are now using , which scale better than centralized repositories such as SVN and CVS. The most famous is , used by the linux kernel.
-
Bug trackers and task lists: Most large-scale projects require a bug tracker to keep track of the status of various issues in the development of the project.
-
Testing tools: Since (OSS) projects undergo frequent integration, tools that help automate testing during system integration are used. An example of such tool is . Tinderbox enables participants in an (OSS) project to detect errors during system integration.
In software development, a small coding error can result in a critical vulnerability that ends up compromising the security of an entire system or network. Many times, security vulnerability is not caused by a single error, however, but rather by errors that occur during the course of the development cycle. A coding error is introduced, it goes undetected during the testing phases, and available defence mechanisms do not stop a successful attack.
Choice of language:
Effective usage of a general purpose modelling language in software engineering poses a need for language customization- adjustment of the language for a specific purpose. The following points are some examples of a choice of language:
Visual Basic (VB):
Visual Basic was derived from BASIC and enables the rapid application development (RAD) of graphical user interface (GUI) applications, access to databases using DAO, RDO, or ADO, and creation of ActiveX controls and objects. Another advantage is that A programmer can put together an application using the provided with Visual Basic itself.
Java:
Java is a programming language originally developed by Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. Java applications are typically to that can run on any (JVM) regardless of .
C++:
This is a general-purpose programming language. C++ is regarded as a middle-level language, as it comprises a combination of both high-level and low-level language features. C++ enjoys wide use in the software industry. Some of its application domains include systems software, device drivers, embedded software, high-performance server and client applications, and entertainment software such as video games.
Testing:
Black Box Testing is not a type of testing; it instead is a testing strategy, which does not need any knowledge of internal design or code etc. As the name "black box" suggests, no knowledge of internal logic or code structure is required. The types of testing under this strategy are totally based/focused on the testing for requirements and functionality of the work product/software application.
Advantages and disadvantages:
The black box tester has no "bonds" with the code, and a tester's perception is very simple: a code MUST have bugs. Using the principles, black box testers find bugs where programmers don't. BUT, on the other hand, black box testing is like a walk in a dark place without a flashlight, because the tester doesn't know how the back end was actually constructed. That's why there are situations when 1. A black box tester writes many test cases to check something that can be tested by only one test case and/or 2. Some parts of the back end are not tested at all.
Therefore, black box testing has the advantage of an unaffiliated opinion on the one hand and the disadvantage of blind exploring on the other.
White box testing uses an internal perspective of the system to design test cases based on internal structure. It requires programming skills to identify all paths through the software. The tester chooses test case inputs to exercise paths through the code and determines the appropriate outputs.
Types of white box testing:
The following types of white box testing exist:
-
- creating tests to satisfy some criteria of code coverage. For example, the test designer can create tests to cause all statements in the program to be executed at least once.
-
methods.
-
methods.
-
- White box testing includes all static testing.
Off-the Shelf Verses Bespoke:
Growing companies are investing an increasing amount in IT systems to automate and simplify business processes. As companies look to automate different business functions the question of bespoke or off-the-shelf is usually raised sooner rather than later.
The beauty of bespoke systems is that they are tailored to the exact requirements of the company allowing the software to fully integrate. The cost of bespoke software can be much higher than off-the-shelf solutions. Individually software often needs teams comprising of dozens of people each bringing particular skills such as analysts, programmers, hardware and software specialists and technical writers.
The process of software and systems development is a difficult one involving highly skilled people and consuming a great deal of time and resources. However, off-the-shelf systems can be limited in terms of performance, and businesses often find themselves working around the software instead of the software working round them.
The real challenge that lies ahead is how to combine the two to take the advantage of the strengths of each whilst eliminating the weaknesses. Customers are increasingly demanding 'smart' solutions, and more companies need to respond by offering them.
Conclusion:
Celebration Car Hire is considering having some software developed specifically for the company and therefore I have produced a simple guide to explain the basic concepts of software development. I have done a report on the methods for the software development which will guide and explain the basic concept. I tried to make it as simple as possible in terms they will understand.