Languages and Methodologies
Blueberry is convinced that Microsoft's new .NET platform is the future for both PC application development and Web development. .NET provides a host of new features to make development easier - such as providing a solid solution to DLL hell. And Blueberry is particularly well placed to make use of .NET, because the system has inherited a lot of features from Borland's development tools which Blueberry has specialised in. Blueberry has already started work on an application development project for a client based completely on .NET and C#, and the company is also planning its first web based product using the system. If you'd like more information on .NET, Blueberry's MD Martin Green can provide independent executive presentations on this new technology.
Python is a relatively new, cross-platform, object oriented scripting language that has significant advantages over Perl (and, inevitably, over VBScript). In particular, Python combines a very rich data model with a clean syntax. Python is Blueberry's preferred scripting language.
Web-based systems must usually be written in a programming language that is cross-platform, so that browsers can be run on PCs, Macs, etc. Java is cross-platform and also very powerful, so it has very quickly become popular for developing the sort of sophisticated web-based systems that Blueberry is interested in. Blueberry has some experienced developers of both applets (client-side code) and servlets (server-side code).
Almost all of Blueberry's programs are written in C++. It is one of our main areas of expertise because it is still a pre-requisite for any serious Windows developer. Unfortunately C++ is very easy to misuse and misunderstand—Blueberry recommends studying some of the very few advanced books on the language, such as those of Meyers, and Cargill. All of our developers have between 2 and 10 years’ experience of using C++ commercially.
Object Oriented Design comprises System Design followed by Object Design. All of Blueberry's developers are experienced C++ programmers, so they already have a good understanding of Object Design; and System Design in OOD is exactly the same as System Design in a traditional, non-OO design methodology, with which all well-trained developers are familiar. So why would Blueberry go to the trouble of training its developers in OOD? The advantage of using an OOD methodology only becomes obvious when it is used with the “matching” OOA methodology (see below). When programmers and application designers can use the same terminology and notation to communicate their ideas, the processes of analysis, design and implementation can blend together seamlessly.
The Object Oriented Analysis methodologies originally proposed by Rumbaugh, Booch, and Coad and Yourdon were all very similar. Blueberry tends to prefer the former, but any OOA methodology gives the same principal advantage over traditional, non-OO analysis: an analysis that is more stable with respect to any changes in the original problem statement. When a business’s problems change, a solution that was engineered using OOA is easier to adapt.
Blueberry believes that both OO and non-OO design methodologies are rarely successful at producing usable and intuitive Graphical User Interfaces. The best methodology for GUI design is actually the least formal: prototyping. We usually use Borland C++ Builder (see below) to put together quickly a prototype interface, which is then “alpha tested” by our testing team. The final design is done much more carefully, but is largely shaped by the testers’ feedback and that of the client. Blueberry's application designers are all experienced in data modelling and relational database design. The methodologies for data modelling (Entity-Relationship Analysis) and relational database design (progressive normalisation of database tables) are equally appropriate as part of OO or non-OO Analysis and Design. |
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||