7 Aralık 2009 Pazartesi

Process/Project RAD - RAD - Rapid Application Development Process

Description

Method in the Madness

Some consider it noble to have a method; others consider it noble
not to have a method. Not to have a method is bad; to stop entirely
at method is still worse. One should at first observe rules severely,
then change them in an intelligent way. The aim of possessing
method is to seem finally as if one had no method.
The Mustard Seed Garden Manual of Painting


To RAD or not to RAD

The Rapid Application Development methodology was developed to respond to the need to deliver systems very fast. The RAD approach is not appropriate to all projects - an air traffic control system based on RAD would not instill much confidence. Project scope, size and circumstances all determine the success of a RAD approach. The following categorize indicates suitability for a RAD approach:

PROJECT SCOPE
Suitable for RAD - Focused scope where the business objectives are well defined and narrow.
Unsuitable for RAD - Broad scope where the business objectives are obscure or broad.

PROJECT DATA
Suitable for RAD - Data for the project already exists (completely or in part). The project largely comprises analysis or reporting of the data.
Unsuitable for RAD - Complex and voluminous data must be analyzed, designed and created within the scope of the project.

PROJECT DECISIONS
Suitable for RAD - Decisions can be made by a small number of people who are available and preferably co-located.
Unsuitable for RAD - Many people must be involved in the decisions on the project, the decision makers are not available on a timely basis or they are geographically dispersed.

PROJECT TEAM
Suitable for RAD - The project team is small (preferably six people or less).
Unsuitable for RAD - The project team is large or there are multiple teams whose work needs to be coordinated.

PROJECT TECHNICAL ARCHITECTURE
Suitable for RAD - The technical architecture is defined and clear and the key technology components are in place and tested.
Unsuitable for RAD - The technical architecture is unclear and much of the technology will be used for the first time within the project.

PROJECT TECHNICAL REQUIREMENTS
Suitable for RAD - Technical requirements (response times, throughput, database sizes, etc.) are reasonable and well within the capabilities of the technology being used. In fact targeted performance should be less than 70% of the published limits of the technologies.
Unsuitable for RAD - Technical requirements are tight for the equipment to be used.


Rapid means Fast

The RAD method has a task list and a work breakdown structure that is designed for speed. However the major difference in RAD is a set of management techniques that are optimized for speed. Among the most important are:

- Prototyping - an approach based on creating a demonstrable result as early as possible and refining that result. The refinement is based on feedback from the business, the eventual users of the system. Prototyping requires an open approach to development, it also requires an emphasis on relationship management and change management. There are dangers involved in starting prototype development too early and in starting it too late.

- Iteration - is a commitment to incremental development based on refinement. Prototyping and iteration go hand in hand.

- Timeboxing - is a management technique that focuses attention on delivery above all else. Under a timebox scope can change but delivery cannot.

12 Ekim 2009 Pazartesi

Script Nedir?

Script'in ne olduğunu ve sizin neden bunu yazabiliyor olmanız gerektiğini anlatabilmek için isterseniz script'in önce sözlük anlamından konuşarak başlayalım. Script'in Türkçe karşılığı olarak bilişim sözlüklerinde 1) Yazılı yönerge,
2) Adım izlencesi ve Betik gibi iki açıklama uygun görülmüş. "To script" ingilizcede senaryo yazmak anlamına gelir. Bir tiyatro oyununa ait senaryo, yani script, aslinda bir plan, oyunu sergilemek için oluşturulmuş bir talimatlar serisidir. Tüm gerekli kelimeleri, oyuncuların oyun boyunca ne yapacakları ve nerede duracaklarını içerir. Scipt planı sunar ancak yetenekli oyuncularin işi yapabilmesine dayanır.
Yazılım dünyasında script benzer bir anlam taşır.

Tahmin edebileceğiniz üzere script'ler bilgisayar programı olarak adlandırılabilirdi ancak script kelimesi daha önce bahsettiğimiz noktaları vurgular:

• Düz İngilizce olarak yazılmışlardır.
• Oldukça "yüksek seviye" olarak yazılmışlardır.
• Onlar zor işleri yapabilmek için yetenekli aktörlerden yararlanırlar. Script'ler sadece bu oyunculara ne yapmaları gerektiğini söyler.
• İşinizi yapmanız için size güçlü araçlara erişim sağlarlar.

AutoCAD'den z/OS'a kadar çok değişik programlar ve iştetim sistemleri script özellğini eklemişlerdir. Windows dünyasında ise Windows 95 Service Release 2 sürümünden itibaren Windows Script Host (WSH) Windows kullanıcılarına sağlanmıştır.

Script'ler basit bir metin düzenleyecisiyle-mesela Notepad- düzenleyebileceğiniz metin dosyalarıdır. Bu metin dosyalarında belli bir scripting dilinde yazılmış talimatlar bulunur. Seçiminize bağlı olarak kullanmak isteyebileceğiniz çok sayıda script dili mevcuttur. Seçeneklere burada değineceğim ama öncelikle şu soruyu bir soralım:

C++ gibi standard bir derlenmiş programlama dili ile script ile yapacağınız bir işi yapabilirsiniz. Yorumlanır bir dil-JavaScript gibi- ile derlenir bir dil-C++ gibi- arasındaki fark nedir?

Yorumlanır diller bilgisayarda düz yazı olarak saklanır ve her koşturmada bilgisayar tarafından ne yapması gerektiğini anlamak için satır satır incelenir.

Derlenmiş programlar ise bir kere analiz edilir ve işlemcinin hemen anlayabileceği donanım seviyesinde "makine komutları"na dönüştürüldüklerinden çok daha hızlı çalışırlar.

Fakat, yorumlanır diller dönüştürme adımına ihtiyaç duymazlar ve bu size kod yazarken vakit kazandırır. Ayrıca, yorumlanır diller öğrenilmesi ve kullanılması daha kolay dillerdir ve ihtiyacınıza göre değiştirilebilirler.

Limitations of Scripting
While high level languages contain an extensive library or set of functions, scripting languages only contain subsets of their counterparts or comparables. Scripting languages do not usually supply graphical interface elements, such as forms, dropdown lists, checkboxes, and so on. Finally, scripting languages do not typically provide advanced programming features such as object orientation, early binding, and threading.

When to Use Scripts
Scripting languages are designed to be lightweight and easier to work with than their compiled counterparts. In some cases, scripts can even perform tasks more quickly than can be performed with compiled programs simply because scripts do not contain a lot of extra baggage. Scripting is best used when you need quick solutions without a full blown interface or intensive processing. If you find a script is using a lot of system resources, taking a long time to complete, or is simply unmanageable due to its size or complexity, you should consider using a compiled program.

VBScript
The "VB" in VBScript stands for Visual Basic, a programming language that has evolved far from its origins at Dartmouth University in 1964. Nearly 40 years later, Basic is still a good "beginners" programming language. VBScript is probably the easiest scripting language to learn, and it's probably the best first language to learn if you use Microsoft desktop products. Any experience you may have writing either macros or scripts will translate easily to the other.

JScript
JScript is a programming language modeled after Netscape's JavaScript language. (Microsoft made its own variant to match its archrival's capabilities but made it slightly different, just to keep things interesting and incompatible.) The language was designed as a way of building programming capabilities into Web pages. Have you ever seen Web pages whose menus or pictures change when you move your mouse around? That's most likely done through the use of JScript or JavaScript, because it's the scripting language that most Web browsers support.
Note:
JavaScript and JScript are not Java. JavaScript is a completely separate language that bears some superficial similarities to Java, but it's not the whole proverbial ball of wax. As mentioned, JScript is a variety of JavaScript, so it's not Java either.

Perl
Perl was developed in 1987 by developers in the Unix community. From the very start, Perl was an "open" language—its writing, debugging, and subsequent development were carried out by the public, for free. It's a wildly popular, very powerful language that's especially well suited for manipulating text. It has extensive string- handling and pattern-matching capabilities as well as all the other features of a major programming language. The Linux community has embraced and advanced Perl, and huge repositories of free Perl scripts are available on the Internet. Chances are, whatever you want to do, there's a Perl script already out there
that will do it.

Python
Python is a very popular scripting/programming language that originated at the National Research Institute for Mathematics and Computer Science (CWI) in Amsterdam. It's a portable object-oriented language, much less cryptic than Perl, and has made big inroads in the Linux community.

Ruby
Ruby is a fairly new language that originated in Japan. It's currently more popular in Europe and Japan than in the U.S., but it's picking up steam.

RAD Nedir?

RAD Rapid Application Development