Taking the drudgery out of software development

Nov 24, 2009
Taking the drudgery out of software development

(PhysOrg.com) -- Software developers will no longer have to reinvent the wheel when writing new programs and applications thanks to a clever new set of tools and a central repository of 'building blocks'.

Traditionally, developers have had to write software programs from scratch, whether or not something similar has been done in the past for a different application or circumstance.

This has meant skilled people spending a lot of time doing repetitive, boring work before being able to turn out new software for a specific requirement.

But a much more efficient way of doing things has been demonstrated by European researchers who have developed an automated way of searching a central software repository to extract software ‘artefacts’ from existing systems for use in new systems.

The EU-funded ReDSeeDS project was established with the aim of initially researching the requirements for the components of an automated searchable repository, and then producing a software toolkit to cope with the requirements.

The researchers had to come up with a requirement specification language, which allows developers to use a single user interface to frame their queries; query technologies which automate the query process once the requirements have been entered; and a repository technology which searches the repository and provides answers to queries.

Automation is the key

According to project coordinator Michal Smialek there have been attempts made in the past to build standards for the type of software repository envisaged and then developed by the project. But the problem was they were not automated and so a lot of work was still involved.

“The big difference with our platform is that it allows you to simply sketch out the requirements of your proposed new system and then these are automatically compared with the requirements and capabilities of existing systems. The results are displayed to you with the differences and similarities between the old and new systems highlighted,” he says.

This allows a developer to pick and choose what artefacts he can take from existing systems and slot them into the new system.

Of blueprints and codes

“In this context, by artefact we mean a software artefact which has been constructed on a computer by a software developer,” Smialek notes. "This can be any kind of model or document or program which is the result of a software project,“ he says.

“In a project, you may produce several artefacts which are design blueprints and then an artefact which is the code that tells the system how to work. The final program is also an artefact which is served by the other artefacts - that is the design and the code.“

So when it comes to matching up the requirements of a new system with what has been done in previous systems, it is a question of automatically matching up the design blueprints and then seeing which bits of code can be re-used.

Smialek points out it may not be as simple as stripping out the relevant points of functionality from one system and pasting them straight into the new system - some adaption work might need to be done. Even so, it is still a great deal quicker and more efficient than starting from scratch.

“When you have a similar problem to that solved previously you put in the design and the code, and of course you might have to adapt it slightly to your new problem, but the majority of work was already done on the previous project,” he says.

Any size of repository

He gives as an example different types of registration. “Somebody logging onto a website might have to press a button which causes a form to pop up which must be filled in. You press enter and the system checks the validity of the data and registers it in the memory.

“This type of functionality can be used between different types of program domains so doing something as different as registering a computer in a warehouse could have the same logic as registering a user in an online system - so much of the same system design and code could be copied,” he says.

In practical terms, a repository might just be in one company, or widely shared. The project has set up an online open-source repository with its own server, and project members from seven different countries have contributed software and trialled the system.

Once fully validated, the next step is to try to commercialise it. A software tools company, which was not part of the project, has expressed interest in incorporating the system into its product suite, reveals Smialek.

“What it will do as a commercial product is to reduce considerably the amount of work required to develop a new application, and that means the ability to develop more and larger systems using the same human resources, which is bound to have a wide appeal,” he concludes.

More information: ReDSeeDS project

Provided by ICT Results

Explore further: People stick with favorites in sea of mobile apps

add to favorites email to friend print save as pdf

Related Stories

Taking the hard work out of software

Jul 28, 2009

Developing software is a complicated and laborious process. A new European platform automates much of the tricky building and testing phases of programming.

Embedded systems -- the whole picture

Oct 28, 2009

(PhysOrg.com) -- Embedded computer systems must be fast and efficient. A European consortium has created a new modelling framework that lets designers strike the best balance between static, reconfigurable ...

Software development: speeding from sketchpad to smooth code

Jul 30, 2009

(PhysOrg.com) -- Creating error-free software remains time consuming and labour intensive. A major European research effort has developed a system that speeds software development from the drawing board to high-quality, platform-independent ...

Software that gets reduced, reused, recycled

Sep 28, 2009

(PhysOrg.com) -- Service-centric software engineering is the latest paradigm in computing, and European researchers have developed a platform they believe will launch the concept into the business world.

Keeping computing compatible

Sep 25, 2008

(PhysOrg.com) -- As distributed computing becomes universal, the programs that make devices work really have to work together. European researchers have gone back to basics to create a development toolkit that guarantees ...

Recommended for you

Does your computer know how you're feeling?

Aug 22, 2014

Researchers in Bangladesh have designed a computer program that can accurately recognize users' emotional states as much as 87% of the time, depending on the emotion.

Microsoft to unveil new Windows software

Aug 21, 2014

A news report out Thursday indicated that Microsoft is poised to give the world a glimpse at a new-generation computer operating system that will succeed Windows 8.

Unlocking the potential of simulation software

Aug 21, 2014

With a method known as finite element analysis (FEA), engineers can generate 3-D digital models of large structures to simulate how they'll fare under stress, vibrations, heat, and other real-world conditions.

User comments : 18

Adjust slider to filter visible comments by rank

Display comments: newest first

Fakeer
3 / 5 (1) Nov 24, 2009
After being in the software engineering for over a decade this 'reuse driven programming' to prevent repetition of code doesn't seem at all new in it's approach. In fact it seems to be based on such naive ideas around the problem of re-usability in the industry, that it borders on being silly. But academic models are always good to have.
donjoe0
Nov 25, 2009
This comment has been removed by a moderator.
plasticpower
5 / 5 (1) Nov 25, 2009
Of all the software projects I have done lately, at least 25% of the source code consisted of bits and pieces of code from my older projects adapted to work with the new project. So this whole idea might not be new, but they have managed to make code concepts searchable. It is always nice to have access to source code that might give you ideas about a particular problem that you have not personally solved before.
frajo
3 / 5 (3) Nov 25, 2009
Let's call this idea "the open source model".
googleplex
4 / 5 (1) Nov 25, 2009
Whatever they are proposing will need to be better than the tools already available e.g. google.
There is a clear trend toward cloud computing. So we will continue to see more software provided by a central provider on the internet. This will reduce the amount of replicated code as programming becomes more globalized.
Bob_B
4 / 5 (2) Nov 25, 2009
Not even one mention of testing, so here goes. Software testing is not a trivial thing. Kludging multiple code sources together via automation will be a bonanza for software qa folks. Opps, actually a bonanza for those QA engineers not in the USA, outsourced jobs to off-shore untrained QA folks.

It has been noticeably obvious that software bugs are are the increase. The cloud will rescue us, is the new mantra. Probably even less QA in the Cloud.
rincewind
3 / 5 (1) Nov 25, 2009
googleplex - cloud computing is indeed the future (and past) of computers. However, distributed programming architectures will not be going away either. One trend that is unavoidable is decentralization, whether this is in terms of energy, information tech or political power. This decentralization is powered by better accessibility of information (e.g. code.google.com) & increased sharing at higher levels (forums, discussions). I think the authors are just underscoring the benefits to be gained on the software dev side.
RayCherry
4.5 / 5 (2) Nov 25, 2009
Congratulations to the RedSeeDS team. Simple idea, extending an old model, (anyone else remember Rational?), with and automated sourcecode catalogue which has search facilities based on quality metadata.

Not an amazing development - but an amazing amount of work that nobody has done before, and for that I hope the team continues to get sponsorship and the opportunity to evolve into a global staple of future programmers IDE's.

Perhaps RedSeeDS could also guarantee the components supplied as "Internet Ready" - as in virus proof! We have extremely secure kernels, now we need the same quality in the components used to build on top of them.

That would be something extraordinary, and extremely valuable.
gwrede
3.8 / 5 (5) Nov 25, 2009
Seems these academics haven't had a real job in programming.

And the real drudgery, for a programmer, would be to formulate the search query so precisely that you get relevant answers. And that's only the start. Then you have to wade through docs, specs, and source code to see whether it actually suits your needs. Which means you have to get "into" and understand another person's source code, logic, idiosyncracies and bugs, and ultimately tweak it to your own needs. (And then the Library guy gives you hell for not properly documenting the precise difference to your final version.)

Any sane programmer would rather save time and nerves by just writing the thing, instead of all that drudgery!

All we'd really need is a C++ replacement, that comes with a comprehensive, well organised and orthogonal library, where each routine is properly documented (including examples), and that has a way to search quickly and *easily* for what you need.

But that's not sexy and can't get big funding.

rincewind
3 / 5 (2) Nov 25, 2009
All we'd really need is a C++ replacement, that comes with a comprehensive, well organised and orthogonal library, where each routine is properly documented (including examples), and that has a way to search quickly and *easily* for what you need.


Best solution I've seen to this issue has been provided by Microsoft: C# + .NET + MSDN. There are other such frameworks too, not just specific to Microsoft. But it's a sincere attempt that has worked well.
El_Nose
4 / 5 (1) Nov 25, 2009
I did not read the early post I can only imagine they might be similiar ---

NO one codes anything from scratch unless its a new company or they just got out of school... and building dependencies on a code base tends to make weak programmer's weaker. If there is an issue with the solution it becomes harded to find because there was no hands on/in most of the routine funtcions.

Personally we have seen what this does to solutions -- because of the fact we know we are writing code that will be reused and needs to be fault tolerant and output good error information we tend to write in a style similiar to java and lets face it java is slow because its programming with training wheels.
bfast
4 / 5 (1) Nov 25, 2009
Oooh, bust a gut laughing!

NO one codes anything from scratch, period. (Well, that might be a bit of an exaggeration, a few hacks might click out small control programs for embedded chips from scratch, but that's about it.) Just set up a modern compiler and you get gazillions of tools. Look on sites like www.planetsourcecode.com to get all manner of example and snippet code for free, or look in the programming mags or use a web search to purchase all manner of drop-in tools. Then, of course, there is your own library, and the library of the company you work at.

There's no story here folks, move along.

(I'm a 7 times patented software developer with 30 years experience.)
rincewind
4.7 / 5 (3) Nov 25, 2009
I'm a 7 times patented software developer with 30 years experience.


Nothing to be proud of! When it comes to software, that's called being a "patent troll", because it's a flawed system based on archaic concepts of mechanistic inventions.
antialias_physorg
4.5 / 5 (2) Nov 28, 2009
Being a programmer myself I'd say: this dosn't work for any type of programming where inventiveness/creativity is an issue.
You ALWAYS need to refine and adapt algorithms and datastructures as soon as you do something even marginally new.
For the simple tasks we have program libraries, but it's almost never 'plug and play'.

Especially in research it's most often better to write the code yourself from scratch - not because you'll do it better than the 'standard implementation' out there, but because having written it yourself you have full control over the architecture and interfaces. Whenever you tweak it you will be in control.

If you tweak 'standard packages' or 'foreign code' where you have never looked under the hood you will be in a world of hurt in no time once you start to do non-standard stuff.
fossilator
Nov 28, 2009
This comment has been removed by a moderator.
OZGuy
2 / 5 (2) Nov 28, 2009
"The project has set up an online open-source repository with its own server, and project members from seven different countries have contributed software and trialled the system.

Once fully validated, the next step is to try to commercialise it."

So am I reading this right? It's being developed using open-source principles but as soon as it's any good it's going to be proprietary software?
Ensa
not rated yet Nov 29, 2009
All we'd really need is a C++ replacement, that comes with a comprehensive, well organised and orthogonal library, where each routine is properly documented (including examples), and that has a way to search quickly and *easily* for what you need.


Best solution I've seen to this issue has been provided by Microsoft: C# + .NET + MSDN. There are other such frameworks too, not just specific to Microsoft. But it's a sincere attempt that has worked well.

HAHAHAHAHAHAAaaaaaaaaaa! :)
That had me laughing. Made my day!
patnclaire
1 / 5 (1) Nov 29, 2009
Ah! Microsoft and MSDN. That might be a good choice except that they charge money for it. Those of us who cannot afford their price must look elsewhere. What a shame. Sun gives away its developer network. Microsoft could, also. Gordon Gecko is alive and well at Microsoft. Bill, how about some sanity and less philanthropy?
rincewind
not rated yet Nov 29, 2009
The goals of this project are no less evil that of Micro$oft: commercialization of the software toolkit.
SteveMerrick
not rated yet Nov 30, 2009
Reuse is new? Funny, that. IO seem to have been doing it for quite some time now...