2.1 Definition of Rapid Development

advertisement
Paper Individual
Topik-Topik Lanjutan Sistem Informasi
“Rapid Application Development”
By:
Ivan Jonathan
1501183075
06 PLM
Abstract
The purpose of writing this paper is to show us about detailed informations regarding
Rapid Application Development (RAD). In this paper, I will give complete explanation about the
definition of Rapid Development, the RAD tools, the advantages it has, the disadvantages it has,
each steps in rapid development, the differences between Rapid Development and Agile
Development, also with the real life implementation of Rapid Development.
The analysis methodology that I used in the writing of this paper consists of Literature
Study. In this method, data and information collection is done by searching informations on the
internet and also by studying books and journals related to System Development Life Cycle
(SDLC) and Rapid Application Development (RAD) written by Steve McConnell.
The result achieved is a paper containing all complete informations about Rapid
Development also with the real life example of Rapid Development implementation. Conclusion
from this paper is to know what are advantages and disadvantages that Rapid Development has.
Also with a suggestion about what things the company must focus on and also to reduce and
cover Rapid Development’s disadvantages.
Keywords:
Rapid Application Development (RAD), System Development Life Cycle (SDLC), Information
System, RAD Tools, Application, RAD phase, System, Users.
Chapter 1
INTRODUCTION
1.1 Background
As the world grows every day, the demand of more sophisticated Information
Technology (IT) also increases. We cannot deny that in modern days like nowadays, people
grow more addicted to technology, they want anything in their life assisted by technology. Of
course, there will be benefits and weaknesses from technology used by people. But I will not talk
about it in this paper. What I will discuss in this paper is one of the benefits of the technology
used by people in the scope of business world.
The business world nowadays is at its highest level of competitiveness. Customer
demand has skyrocketed over the past few years. These current circumstances have created the
need for companies to plan for better management in all aspects involved in them. Having a
structured, integrated, fast, reliable system will provide a great flow of information needed
throughout the company and enable them to be more effective and efficient in solving daily
business practices and problems. Companies need a system build for their own unique needs
which will lead them demanding for custom system on a certain level.
System development life cycle is one of the common information systems in today’s
business industries. System development life cycle is a structured step-by step approach for
developing information systems. The activity of SDLC is to determine the budget, gather
business requirements, designing models, and writing detailed user documentation.
Here the Software developers take places and fulfill companies Information System
needs. Software developers make technological advances, create new tools, followed a process
improvement plan, utilized benchmarking, etc. Then several problems caught in minds. One of
their core problems is they need it fast. Software developers need to pick up their paces in order
to fulfilling their customer demands or else they’ll lose customer trust and they’ll not survive the
global rivalries. While we’re having problem on how to produce fast enough, we also need to
aware and manage our resources. Resources availabity and quality will also determine the scope
of the project, what kind of output they’ll get, including the essence of completion.
However, SDLC have many different versions of information systems, follow-up with
different steps as well. One of the way to produce is to implement a certain type of speedy
software development such as waterfall development, agile development, rapid development, etc.
When company demand a product, they need it fast, accurate, and effective. So while we need it
fast we need it to be not just accurate but also effective.
Rapid application development (RAD) is a software development methodology that uses
minimal planning in favor of rapid prototyping. The "planning" of software developed using
RAD is interleaved with writing the software itself. Rapid Development or Rapid Application
Development (RAD) enable the system development advanced faster. Software developers often
having hard times on learning effectives practices, while at the same time the practices they
choosed to learn probably not the most spot on effective. This paper will lead readers to
understand more on
1.2 Scope
The scope of this article is :
-
The explanation of Rapid Development
The Rapid Application Development Tools
The advantages of using Rapid Development
The disadvantages of using Rapid Development
The steps of process in Rapid Development
Differences between Rapid and Agile Development
Example of Rapid Development implementation
1.3 Purpose and Benefit
The purpose of this paper:

Provide detailed informations on all about Rapid Development. Rapid
Development itself holds some unknown or vague value or vibe regarding it’s on
how to...., which is best way to..., how can... etc. This paper provide sufficient
and deeper knowledge and more understandable explanations on all about Rapid
development and also reduce the gray value inside of it.
The benefit of this paper:

Start new ways of thinking about Rapid Application Development topic. Many
false perpectives, wrong informations, and (as stated before) vague values around
this topic. After gaining more knowledge regarding Rapid Development, readers
could prepare more and create their own silver bullet to their development needs
in form of new method on using Rapid Development, how to pick up the pace by
using Rapid Development even more, etc
1.4 Methodology
The Methodology that is used in the making of this paper:
Data Collection Method: In the process of analyzing the Rapid Application
Development (RAD), the method that I used is the Data Collection Method. The
types of Data Collection Method that is being used:
o
Literature Study: In this method, data and information collection are done by
studying books and journals related to System Development Life Cycle and
Rapid Application Development. Books that I used is written by Steve
McConnell and journals that were used was found on reliable source on the
internet. I learn and understand the existing system making Lifecycle and how
Rapid development method works on managing the System Software making
lifecycle.
1.5 Writing Systematic
The writing systematic within this report consists of 5 chapters, which are:
CHAPTER 1 : INTRODUCTION
This chapter provides brief explanation regarding the whole content of this paper. It
contains 5 sub-chapters:
Background: Background defines the problem of why the Rapid Application
Development is important.
Scope: Explain the scope of topic that will be discussed in this paper
Purpose and Benefit: Explain about the purpose and benefits of the creation of
this paper.
Methodology: The methodology used to analyze the Rapid Application
Development also with system that is currently used.
Writing Systematic: Explain how the paper is written in brief details
CHAPTER 2 : LITERATURE REVIEW
This chapter explains the theories that are related to Rapid Application Development
collected from many sources. Various associated sources will also be explained. The
theories included are: Rapid Development and its approaches, Application, Information,
System, Information System, and System Development Life Cycle. The theories are
explained in a brief manner, so the reader has the idea what they are.
CHAPTER 3 : DISCUSSION
This chapter discussed information about
1. The explanation of Rapid Development
2. The Rapid Application Development Tools
3. The advantages of using Rapid Development
4. The disadvantages of using Rapid Development
5. The steps of process in Rapid Development
6. Differences between Rapid & Agile Development
7. Example of Rapid Development Implementation
CHAPTER 4 : CONCLUSION & SUGGESTIONS
This chapter provides explanations about the conclusion of all discussions from
Chapter 3. Also with the suggestions to reduce and cover up weaknesses in Rapid
Application Development
Chapter 2
LITERATURE REVIEW
2.1 Definition of Rapid Development
There are many definition of Rapid Development from several sources, but I will sum up
some that provides the best answer. Based from the book written by Satzinger, Jackson, and
Burd, 2002, Rapid Development or Rapid Application Development (RAD) is a collection of
development approaches, techniques, tools, and technologies, each of which has been proven to
shorten development schedules under some conditions.
Based on wikipedia, Rapid application development (RAD) is a software development
methodology that uses minimal planning in favor of rapid prototyping. The "planning" of
software developed using RAD is interleaved with writing the software itself. The lack of
extensive pre-planning generally allows software to be written much faster, and makes it easier
to change requirements.
This means different kind of development approaches, tools, techniques, and anything
else can be mixed and matched depending on the project.
In most cases RAD often uses one of the following approaches:
-
Prototyping: Prototyping is an approach for developing a system where developers and
user work together in order to develop a system which partially or fully functional, and
most likely the system developed within days or weeks. The prototype application will
undergo a number of tests as the requirements of the system are changed. Prototyping
approach is the most useful when the developers working with a new technology where
the capability of the technology are unknown or not fully understood. The prototype can
be a throwaway system or fully usable system. A throwaway system can be used to
develop the real system by salvaging which part of the function of the throwaway system
that meets the requirement. And for the prototype to be a fully usable system, the
prototype itself will be gone through number of revision and debugging.
-
Spiral Development: Another way to quicken the system development. The spiral model
is using a risky approach where a software projects is divided into smaller projects where
each projects handles one or more major risk until every major risk are being handled..
By risk it defined as a not fully understood requirement or architecture or as a potential
problem with the technology or performance of the system. The idea of this approach is
to begin the development of the system on a small case where the risks can be identified,
developed, and verified before planning and committing to the next iteration. After that,
completing each of the iteration brings the projects closer to a fully functional system.
Checking after each of the iteration providing a means of controlling the overall risk of
the project. Major problems or challenges will most likely surface early in the project and
so to provide the potential to reduce the total cost of the project. The disadvantages of the
spiral development approach are on its complexity. These types of projects are more
complex to manage because many people may be working on a number of different
parallel activities.
-
Extreme Programming (XP): Under Extreme Programming, the system is given to the
users in a series of versions called releases. A release maybe developed using several
iterations and should be developed and tested within a few weeks or months. Each release
is a working system that only includes one or a few functions that is just a part of the
whole system. XP includes a number of activities where the user feedback are
documented using an object oriented model called the class diagram, and the release is
developed over the course of several iterations. A set of acceptance tests for each user
story is then developed. Releases that pass the acceptance tests are considered complete.
XP provides the continuous testing and integration of different software modules and
components while supporting active user involvement. In addition, XP often using team
programming where two programmers work on the same workstation. Small team of
developers often work in a common room where workstations are positioned in the
middle and workspace for each team member is provided around the perimeter.
Developers are usually prohibited from working too much or more than 40 hours in a
week in order to avoid exhaustions and mistakes that often occurred because of fatigue.
2.2 Definition of Application
Based on wikipedia, Application software is all the computer software that causes a
computer to perform useful tasks beyond the running of the computer itself. In other words,
Application is a software that runs on electronic devices, consisting of a series of procedures and
operations to produce a desired output.
2.3 Definition of Information
Information refers to an organized set of data that is meaningful or useful to some or
specific receiver. (Rainer & Cegielski, 2011).
Information is data that have been perfected and organized through processing for intelligence
purposes (Whitten, Bentley, & Dittman, 2004).
Information has to possess several characteristics:
1.
Relevance: the information should be related to the decision to be taken in order to achieve
the set goals.
2.
Accurate: information should be reliable.
3.
4.
Punctual: the information must be received in a timely manner. If the information is not
received on time, then that information has less or no meaning at all.
Completeness: information should be able to provide a complete picture of an issue or to
provide closure.
2.4 Definition of System
A system is defined as a collection of interrelated components that function together to
achieve an outcome (Satzinger, Jackson, & Burd, 2010).
System is a set of components, which implement the requirements for modeling, functions, and
interfaces (Mathiassen, Munk-Madsen, Nielsen, & Stage, 2000).
The system has three main components, so that the system can function or interact properly:
1. Input: involves the capture and assembly of the various elements that enter the system to
be processed.
2. Process: involves processing or transformation that turns inputs into outputs.
3. Output: involves the process of transferring the elements that have been processed
through the stages of transformation, resulting in a desired result.
2.5 Definition of Information System
Information system is defined as collections of interrelated components that collect,
process, store, and provide as output the information needed to complete business tasks
(Satzinger, Jackson, & Burd, 2010).
Information system is an arrangement of people, data, processes, information presentation, and
information technology that interact to collect, process, store, and provide the information output
needed to support an organization (Whitten, Bentley, & Dittman, 2004).
There are many types of Information Systems:
1. Customer Relationship Management (CRM) System: A system that supports marketing,
sales, and service operations.
2. Supply Chain Management (SCM) System: a system that integrates products, product
development, acquisition, manufacturing, and management of inventory.
3. Accounting and Financial Management (AFM) System: a system that records accounting
information to produce financial statements and other reports used by investors and
creditors.
4. Human Resource Management (HRM) System: a system that supports tasks associated
with employee work, study, allowances, recruitment and training
5. Manufacturing Management System (MMS): a system that controls internal production
processes, which transform raw materials into goods.
6. Knowledge Management System (KMS): a system that supports storage and access to
documents from every part of the organization or company.
7. Collaboration Support Systems (CSS): a system that allows the distribution of tasks to
individuals and groups geographically.
8. Business Intelligence System (BI): a system that supports strategic planning and
executive decision-making.
2.6 Definition of System Development Life Cycle
The System Development Life Cycle (SDLC) is a way to plan and implement an
information system in an organization. The SDLC has four major phases within this cycle, which
are planning and analysis, design, implementation, and maintenance. The four phases identify the
scope of the new system. The phases help understand and documents the business needs and
processing requirement of the new system (Satzinger, Jackson, and Burd, 2009).
The phases also design the solution system in regard to the requirements defined and
decisions made during analysis (Satzinger, Jackson, and Burd, 2009). The phases build, test, and
install the reliability of the system, and it keeps the system running productively (Satzinger,
Jackson, and Burd, 2002).
-
-
-
These are the four phases of the SDLC:
Planning and Analysis: conducting analysis, proposes alternatives solutions, describe
costs and benefits and submit a preliminary plan with recommendations. Defines project
goals into defined functions and operation of the intended application. Analyzes end-user
information needs.
Design: Describes desired features and operations in detail, including screen layouts,
business rules, process diagrams, pseudocode and other documentation and coding.
Implementation: Brings all the pieces together into a special testing environment, then
checks for errors, bugs and interoperability. And the final stage of initial development,
where the software is put into production and runs actual business.
Maintenance: During the maintenance stage of the SDLC, the system is assessed to
ensure it does not become obsolete. This is also where changes are made to initial
software. It involves continuous evaluation of the system in terms of its performance.
Chapter 3
DISCUSSION
3.1 The explanation of Rapid Development
Rapid Development or Rapid Application Development (RAD) is a programming
system that enables programmers to quickly build working programs. In general, RAD systems
provide a number of tools to help build graphical User interfaces that would normally take a
large development effort. Two of the most popular RAD systems for Windows are Visual Basic
and Delphi. Historically, RAD systems have tended to emphasize reducing development time,
sometimes at the expense of generating efficient executable code. Nowadays, though, many
RAD systems produce extremely fast code. Conversely, many traditional programming
environments now come with a number of visual tools to aid development. Therefore, the line
between RAD systems and other development environments has become blurred.
Each one of these tools and methods is fine as far it goes, and each can cotribute to
increased development speed. But to provide full benefit, each must be orchestrated as part of a
full-fledged strategy. No one of them applies to all cases. And no one of them can measure up to
certain other practices that are not commonly thought of as rapid-development practices but that
nonetheless have profound development-speed implications. Rapid development is a generic
term that means the same thing as “speedy development” or “shorter schedules.” It means
developing software faster than do you do now.
3.2 Rapid Application Development Tools
There are many types of tools that are used to fully get the benefits of Rapid Application
Development, such as:
a. Cross-Platform RAD Tools:
 Accelerator Development Solutions provides end-to-end RAD generation and
other productivity frameworks for C# and for cross platform support C.
 Alpha Five: A rapid development tool for building database driven web and
mobile tools based on HTML5.
 AppFlower: A RAD platform allowing to build Business Applications working on
every devices.
 Code Blocks is a cross-platform C/C++ RAD IDE using wxWidgets; the latest
developmental builds have a built-in form designer wxSmith, so it's similar to
Embarcadero C++ Builder and Microsoft Visual C++/MFC now.
 DaDaBIK is a software written in PHP aimed at quickly creating a CRUD (create,
read, update, delete) database front-end or a simple database-driven application
without coding. The DBMSs currently supported are: MySQL, PostgreSQL and
SQLite.
b. Cloud-Based RAD Tools:
 AppFlower is a cloud based platform to develop Business Applications without
hand coding.
 Coghead (is out of business as of 2009)
 Intalio|Create is a rapid application development platform for enterprise class web
and mobile apps.
 Mendix is an enterprise application platform that facilitates the building,
deployment and integration of web and mobile applications.
 nuBuilder is an open source, browser based database development tool which
stores all forms, reports, data and any custom code in MySQL and displays the content
dynamically. With a tool available for converting from data, forms and reports from
MS Access.
c. Desktop RAD Tools:
 Accelerator for .NET provides end-to-end RAD generation and other productivity
frameworks for .NET, including support for MVVM, WCF, and WF.
 Qt is a cross-platform application and UI framework. It includes a cross-platform
class library, integrated development tools and a cross-platform IDE.
 C++Builder
 Clarion is a data-centric Advanced Rapid Application Development (ARAD) tool
featuring roundtrip code generation that preserves all of your own hand-written
code while allowing you to re-generate your application as often as needed. It
provides reusable metadata to quickly create "corporate quality" applications to
manage business data
 Code::Blocks
 Delphi
d. Database RAD Tools:
 AppFlower open source application builder using Propel with a visual designer for
Model Add/Edit/View.
 Base One Foundation Component Library (BFC) is a RAD framework for
building .NET applications using SQL Server, Oracle, DB2, Sybase, and MySQL
databases.
 Clarion is a data-centric Advanced Rapid Application Development (ARAD) tool
featuring roundtrip code generation that preserves all of your own hand-written
code while allowing you to re-generate your application as often as needed. It

provides reusable metadata to quickly create "corporate quality" applications to
manage business data
CodeCharge Studio is a visual rapid application development environment for
web-based database driven application development. CodeCharge Studio places
emphasis on code generation technology to provide ASP.NET, PHP, JSP, Servlets,
ColdFusion and Perl language support.
e. Web-Based RAD Tools:
 Active Agenda's code generator is a RAD development framework using XML
specification files and the PHP development language.
 Alpha Five is a commercial RAD development environment for both client and
web-server based database driven applications. This tool is typically classified
with commercial packages such as Microsoft Access and FileMaker. Alpha Five
has, in the last few years, evolved into becoming a real alternative to PHP, Visual
Studio.net and Ruby for building database driven web apps, but in a lot less time
because its RAD component approach.
 AppFlower is a very rapid application development framework for creating
enterprise application without the need of coding. Advanced users can extend
AppFlower applications using PHP, the Symfony framework and ExtJS.
 BFC is a RAD framework for both client and server-side development in
the .NET environment.
 CakePHP is a RAD development framework using the PHP development
language.
 Caspio is a platform-as-a-service framework that uses wizards instead of coding
for RAD.
3.3 The Advantages of Rapid Development
Rapid Development holds many advantages, these are the full explanations:
-
-
Faster Delivery Time: The primary advantage of Rapid Development is a faster
development life cycle, and a better turnaround time of the software product. This is
achieved by rapid prototyping, and by using automated tools like Computer Aided
Software Engineering or CASE tools, that enable the developers to re-use previously
generated codes, thus saving the time needed for manual coding.
Lower Cost due to Reusing Existing Items: Rapid Development involves the use of
existing reusable components, leading to a lower cost of production. Automation results
into a lesser number of resources being required for the development of the software.
-
-
-
-
Lower Maintenance: According to statistics, 65% of the IT budget in a company is
spent on the maintenance of already existing systems. Updating these traditionally
developed software is usually a very tedious and time-consuming process. Rapid
Application allows for software solutions to be built in a way that facilitates better
maintenance and upgrading of applications.
Better Project Management: In Rapid Development, there is active participation of
the management, the development teams, as well as the business owners and end users.
As a result, there is a better collaboration between all stakeholders, and hence, a better
understanding of the client requirements and expectations. Also, the project receives
better visibility and support from the management.
Reduced Risks: Because of the iterative approach and prototyping, testing and
integration of end user feedback happens at each stage of product development. Hence,
the end product has lesser number of changes and defects, thereby minimizing the risks
involved in the project. There is little or no testing effort involved.
Better Quality: Although the Rapid Development process may imply some
compromise in terms of scalability and the range of features in the product, it still leads
to a better overall quality of product being delivered. Rapid Development enhances the
product quality by meeting the requirements of the customers, and by providing a
considerable reduction in the errors due to the use of automation tools and prototyping.
Errors and omissions are detected in the early stages of development, thereby
preventing any extra effort or cost.
3.4. The Disadvantages of Rapid Development






Depends on strong team and individual performances for identifying business
requirements. Business Requirements are essential in rapid development project. It
affects the business cases, and the next steps.
Only system that can be modularized can be built using Rapid Development. So not all
system will be fit to use Rapid Development.
Requires highly skilled developers/designers. To execute all steps in Rapid Development
need developers/designers who have high skill and experience a lot in System
Development Projects.
Too high dependency on modeling skills. Since the modelling skills are very essential,
slight mistake will have great negative effects on the Rapid Development Project
Requires high budget. Because of the cost of modeling and automated code generation is
very high, implementing rapid development needs a lot of money. So, rapid development
cannot be applied to cheaper projects.
Product may lose its competitive edge because of insufficient core functionality of the
rapid development project and that may exhibit poor overall quality.


Programmers of the project are required to work in pairs (which may be difficult for
some developers). There is no up-front “detailed design”, which could result in more
redesign effort in the long run. The business champion attached to the project full time
can potentially become a single point-of-failure for the project and a major source of
stress for the team.
Need the commitment of both customer and developer to complete a project. Otherwise
Rapid Development project will fail
3.5 Steps of Rapid Development
1. Requirements Planning phase – This is the phase where the system requirements are
discussed, determined, and it combines elements of the system planning and systems
analysis phases of the Systems Development Life Cycle (SDLC). Users, managers, and
IT staff members discuss and agree on business needs, project scope, constraints, and
system requirements. It ends when the team agrees on the key issues and obtains
management authorization to continue.
Example: IT departments of company hold a meeting to discuss the company’s new
system requirements. After 3 hours of intense discussion, they agree to make the new
system web-based and using cloud computing.
2. User design phase – during this phase, selected users interact with the systems analysts
in order to develop models and prototypes that represent all system processes, inputs, and
outputs. The Rapid Development groups or subgroups typically use a combination of
Joint Application Development (JAD) techniques and CASE tools to translate user needs
into working models. User Design is a continuous interactive process that allows users to
understand, modify, and eventually approve a working model of the system that meets
their needs.
Example: a group of selected users are invited by the IT department of company to test
the new system, they are ordered to give conclusions and suggestions about the system’s
benefits and weaknesses. Then the results will be used by the system analysts to fix and
improve the system, so that it will give benefits to users.
3. Construction phase – this phase focuses on program and application development task
similar to the System Development Life Cycle (SDLC). In Rapid Development, however,
users continue to participate and can still suggest changes or improvements as actual
screens or reports are developed. Its tasks are programming and application development,
coding, unit-integration and system testing.
Example: using the data from the user design phase, programmers code and construct
the system based on users suggestions, like: the system must have username and
password recovery system, etc.
4. Cutover phase – this final phase resembles the final tasks in the System Development
Life Cycle (SDLC) implementation phase, including data conversion, testing, changeover
to the new system, and user training. Compared with traditional methods, the entire
process is compressed. As a result, the new system is built, delivered, and placed in
operation much sooner.
Example: the old system requires the authorization of all managers in every business
process, based on users suggestions that the old system consumes a lot of time, the
progammer cut the authorization process from the system, while still maintaining the
security of the process by designing the new system to only require authorization from
manager who is responsible of the business process.
3.6. Differences between Rapid and Agile Development
Below are the differences between Rapid Development and Agile Development:



Agile does not allow prototypes – Rapid was based on designing prototypes and then
reengineering them into production quality code (or not as was often the case).
Agile projects logically break down the solution into features – the Rapid approach did
not do this; instead developers would focus on delivering all the features of the
application by first doing it badly and then improving on the code base overtime.
Agile teams are democratic. This means that the whole team has a say in the architecture
of the solution, but the team is still lead by an architect. In contrast, RAD solutions were







3.7
not based around the concept of a common architecture and thus individuals worked in
silos.
Agile embraces the concept of contract first development required for either Object
Orientated or Service Orientated architecture – Rapid did not acknowledge the realities of
designing to interfaces, partially because it preceded the widespread use of these
techniques.
Agile development team members are independent and self managing. In contrast, Rapid
teams are managed by a project manager..
Agile engineering practices (such as test driven development, and continuous integration)
are stringent and thorough, ensuring that problems in the design or the code base are
highlighted and fixed as quickly as possible, and that the team has the confidence to
change the code base without breaking the product. None of these concepts were used in
Rapid projects.
Agile teams are based around disciplined individuals that remain continually focused on
delivering real software. Rapid teams lack discipline, simply because there was no
structure to either the process, architecture or engineering practices
Agile teams focus on team communication and designing as a group. Rapid teams tend to
work as individuals, resulting in unmaintainable and poorly designed code.
Agile teams only demonstrate completed work. Rapid teams tend to demonstrate screen
mockups, or prototypes, which lead the product owner to question why they now need to
wait another six months for the completed product..
Agile teams are inclusive of testers and analysts and user experience specialists. Rapid
teams did not traditionally include non technical team members, they also need testers
(usually users) to test the system and give the feedback.
Example of Rapid Application Development Implementation
3.7.1 Proposed System - VIP Subsystem (Example 1)
3.7.1.1 Overview
The VIP subsystem will be designed to provide personalization functionality of the
JAMES system. Essentially, the VIP system is intended to maintain a record of the user's
personalized preferences and data which may be applied or accessed in any JAMES
enhanced vehicle. The settings that the users can manipulate fit into two categories. First, the
user can adjust settings on physical devices within the car such as seat position, mirror
position, radio channel presets, dashboard light intensity, fuel economy, and climate control.
The second group of settings are those which do not have a real-world component. This
group will include the database portions of the currently implemented phone book, address
book, and related applications as well as extensions to other configurable objects. The VIP
system behavior will be almost entirely automatic, leaving its activity transparent to the user.
This will lend a continuity to the feel of user's driving experience across all JAMES
enhanced vehicles.
3.7.1.2 Functional Requirements
The functional requirements of the VIP Subsystem system are to store and retrieve data in
an efficient, and flexible manner. In order to accomplish this, the VIP system, upon insertion
of the JavaCard, will query the vehicle to get a list of objects installed on the system. Once
this list of objects, everything from radio presets to seat position, is returned, the VIP system
will attempt to find the best match between what settings are currently saved, and what
settings the car requires.
After the user has restored his old settings, and makes any new adjustments, the saving
of settings will be done without any knowledge by the user. If the user wants to manually
save and restore his settings, he will be able.
3.7.2 User Interface and Human Factors - Maintenance Subsystem (Example 2)
This system will be used by two main groups of people: First it can be used by an
authorized representative of the owner of the car which could be the driver, friend of the
driver, fleet manager or someone else. Second, it can be used by the mechanic or some other
representative of the garage, such as a manager.
For simplicity, in the rest of this document driver will refer to the driver or any
authorized representative of the driver, while mechanic will refer to any authorized
representative of the garage.
The central database, as used in this document is physically several databases, including
several legacy servers. These servers will be distributed across separate sites on the
Inter/IntraNet. It will be used for long term storage of the maintenance history and possibly
other information. See the System Design Document for additional information on
databases.
The assistant will exist on several different locations. There will be a home assistant for the
owner to use at home, an assistant on the vehicle for the driver to use, as well as an assistant
in the dealer's garage for him to use. For the owner/driver, the assistant should be simple and
easy-to-learn. This is especially important for the home assistant, as users will have only
occasional interaction with them. The mechanic will have more frequent interaction with the
assistant, so the interface in the dealer garage should enable mechanics to enter transactions
quickly and easily. In both cases, users should be protected from making significant errors,
as these records are maintained for the life of the car.
In terms of hardware, the driver will need a computer and a card reader in his home to
download the maintenance applet and view the maintenance history. Software will be
needed to interface with the card reader. The mechanic will also need a similar computer and
card reader in the garage. In the vehicle, the maintenance system expects access to a touchsensitive screen that can display our assistant and receive input from the driver.
A final design goal for the user interface is to achieve the same elegant simplicity of
interaction for which Mercedes-Benz vehicles are known. The interface should not appear
complicated, nor require extensive explanation.
Chapter 4
CONCLUSION & SUGGESTION
4.1 Conclusion
The conclusion is that rapid development has faster delivery rate because rapid
development allows prototypes which enable the team to discover that there is something
wrong in the system in a rather early stage which reduces cost and and increase efficiency.
Also, reduced risks makes this method more desirable. because it needs highly experienced
programmers to make this method , it has a high budget range.
The “Lower Maintenance” aspect of the method gives it another plus not to mention
the Better Quality of the software is another plus .But overall, this method is cost and time
efficient and has low failure rate since the risks are reduced and ideal for large projects.
4.2 Suggestion
The suggestion for the Rapid Application Development is to reduce the dependence
on strong team and individual performances. Because there are inexperienced programmers
that want to learn and needs guidance about the way how this method works. And I also
suggest the company to train the junior programmers so they can take the place of senior
programmers in time of needed.
The company must also give proper understanding about the importance of the
project to the customers, because the role of customers in testing the system and give both
positive and negative feedback is crucial.
Bibliography
Evans, S. (2006, April 18). Simon Evans' Blog:10 Reasons why Agile is not Rapid Application
Development (RAD). Retrieved 2014, from EMC consulting:
http://consultingblogs.emc.com/simonevans/archive/2006/04/18/10-Reasons-why-Agile-is-notRapid-Application-Development-_2800_RAD_2900_.aspx
Marchewka, J. T. (2002). Information Technology Project Management: Providing Measurable
Organizational Value. Ontario: John Wiley & Sons Canada, Ltd.
McConnell, S. (1996). Rapid Development - Taming Wild Software Schedules. Washington:
Microsoft press.
Satzinger, J. W. (2010). Systems Analysis and Design in a Changing World. Independence:
Course technology.
http://undergraduate.csse.uwa.edu.au/units/CITS3200/project/RAD%20Examples.htm
Satzinger, J. W., Jackson, R. B., & Burd, S. D. (2002). Systems Analysis and Design in a
Changing World. Independence: Course Technology.
Whitten, J. L., Bentley, L. D., & Dittman, K. (2004). Systems Analysis and Design Methods.
McGraw-Hill.
Wikipedia. (2014, February 6). Rapid Application Development. Retrieved 2014, from
Wikipedia: http://en.wikipedia.org/wiki/Rapid_application_development
.
Writer’s Biography
Name
: Ivan Jonathan
Place & Date of Birth : Jakarta, May 25, 1993
Gender
: Male
Address
: Jl.Pejagalan Raya no.65, Jakarta Barat
Telephone Num.
: 083808500778
E-mail
: ivanjonathan93@yahoo.com
Education History & Course
-
1999 -2005
2005-2008
2008-2011
2011-present
: SD Tri Ratna, Jakarta
: SMP Tri Ratna, Jakarta
: SMA Tri Ratna, Jakarta
: Bina Nusantara University, Jakarta
Download