16 August 2002 · Source: PT Embedded Systems · Download PDF

Roadmap geeft overzicht van ontwikkelingen

[publication:499]

© 2002 PT Embedded Systems
 
ITEA is de naam van het grootste R&D-project in de Europese software-industrie, dat zich concentreert op embedded en gedistribueerde software en software-engineering-technologie. ITEA wil onder andere de samenwerking op het gebied van R&D toepassingen tussen industrie en overheden in Europa stimuleren en de leiding nemen met betrekking tot de ontwikkeling van software-intensieve systemen.

 

GER VAN DEN BROEK, Philips Research

 

ITEA, voluit Information Technology for European Advancement, is een door de industrie opgezet strategisch programma. Het vormt een bijdrage aan de samenwerking tussen industrie, onderzoeksinstituten en universiteiten. Nationale overheden ondersteunen ITEA binnen het Eureka-raamwerk (zie website Eureka). ITEA beschrijft de toekomst van software-intensieve systemen in Europa in de Technology Roadmap on Software Intensive Systems. Doel van dit rapport is te komen tot een gezamenlijke referentie als uitgangspunt voor verdere ontwikkeling van software-intensieve systemen.

  

'Bij mobiele telefoons is de hoeveelheid software gestegen van ongeveer 4 megabit voor een GSM-telefoon tot 64 megabit voor een UMTS-telefoon'

  

Belang van software

 

Software vormt een nog steeds groeiend onderdeel van een grote verscheidenheid aan producten. Het kan daarbij zowel functioneren als een onderdeel van individuele apparaten als deel uitmaken van de infrastructuur om apparaten, bijvoorbeeld mobiele telefoons, met elkaar te laten samenwerken. Software neemt een steeds belangrijkere positie in. Bij mobiele telefoons, bijvoorbeeld, is de hoeveelheid software gestegen van ongeveer 4 megabit voor een GSM-telefoon tot 64 megabit voor een UMTS-telefoon. In een moderne auto zitten meer dan 80 ingebouwde besturingeenheden, die gezamenlijk 600 signalen moeten controleren. Hiervoor zijn meer dan 600.000 regels code nodig, terwijl digitale televisie een miljoen regels code of 10 megabit ROM gebruikt.

 

Software is niet alleen in technisch opzicht van belang. Ook in economisch en in strategisch opzicht speelt het een belangrijke rol. Het belang van informatietechnologie zal in de toekomst alleen maar toenemen, wanneer allerlei apparaten met elkaar kunnen communiceren en allerlei diensten de gebruiker via een netwerk zullen bereiken. Er zal behoefte ontstaan aan een software-infrastructuur die dynamisch configureerbare applicaties mogelijk maakt. Trefwoorden hierbij zijn: communicerend, autonoom, configureerbaar, mobiel, dynamisch, veilig en privacy. Apparaten zoals de telefoon, settop-box, PC, PDA en het web-plankje zullen samenwerken via een grote verscheidenheid aan communicatienetwerken. Deze netwerken bevinden zich overal, bijvoorbeeld thuis, op kantoor of in winkelcentra. Verschillende organisaties en bedrijven zullen dergelijke applicaties beheren, maar moeten toch met elkaar kunnen samenwerken.

 

De gebruiker zal kunnen kiezen uit een veelheid aan informatiemogelijkheden, die overal toegankelijk moeten zijn. Dit alles zal leiden tot nieuwe toepassingen van informatietechnologie in intelligente communicerende systemen. Dit veroorzaakt vervolgens een nieuwe, explosieve groei in software. Deze groei van software in systemen en infrastructuur zal in combinatie met de specifieke behoeften van gebruikers een aanzienlijke invloed hebben op de processen voor het ontwikkelen van systemen.

 

Systeemengineering

 

Onder Complex system engineering verstaan we de methoden, technieken en gereedschappen die de ontwikkeling en het beheer van complexe systemen gedurende hun hele bestaanscyclus ondersteunen.

 

De tekortkomingen van de huidige ontwerpmethoden vinden hun weerslag in de beschikbare gereedschappen. Vooruitgang op dit terrein is alleen te boeken als er ook ontwikkelingen plaatsvinden op het gebied van methoden. Het is daarbij noodzakelijk om de ontwikkel- en implementatiekosten te beheersen en tijdig op de markt te komen met de juiste producten, infrastructuur en diensten. Het is dan ook gewenst om de ontwikkeling van efficiënte, betrouwbare en veilige systemen op een productieve en efficiënte wijze mogelijk te maken. De toenemende omvang en complexiteit van software en ontwikkelprocessen maakt de ontwikkeling van de totale systemen steeds complexer. Dit slaat vooral op systemen die de hele keten van creatie, distributie, transport en verwerking omvatten. Hierbij moet rekening worden gehouden met de verschillende - soms conflicterende - behoeften van de diverse belanghebbenden. In deze context is het aan de systeemarchitect om een goede balans te vinden tussen de verschillende afwegingen. Beslissingen om bepaalde functies in hardware of software uit te voeren, zijn vaak moeilijk te nemen. Er is dan ook behoefte aan systeemsimulatie. Zowel technische als zakelijke motieven beïnvloeden de keuze voor de plaats waar bepaalde functies zullen worden uitgevoerd. Ze hebben een grote invloed op de eigenschappen van het totale systeem.

  

'Er is behoefte aan methoden en gereedschappen om systemen samen te stellen uit componenten die zijn te selecteren op basis van syntactische, semantische en kwaliteitseigenschappen'

 

 Speciale aandacht vragen de niet-functionele eigenschappen, zoals bruikbaarheid, betrouwbaarheid, veiligheid, schaalbaarheid, flexibiliteit, kwaliteit en uitbreidings- en onderhoudsmogelijkheden. Om met deze niet-functionele systeemeigenschappen om te kunnen gaan, is er behoefte aan nieuwe benaderingen voor de ontwikkeling van dit soort systemen. Hierbij zijn de kennis en ervaring vanuit een brede reeks van disciplines onontbeerlijk. Het is van essentieel belang om gereedschappen en methoden voor de validatie en verificatie van deze systeemeigenschappen te integreren in het totale ontwerp- en implementatieproces,

 

Het hergebruiken van delen van systemen, het parallel ontwikkelen of het in een laat stadium integreren van een subsysteem vraagt om nieuwe methoden en technieken voor zowel de ontwikkeling alsook de constructie van systemen. Neem bijvoorbeeld de levensduur van een auto. Deze overtreft de levensduur van verscheidene subsystemen, bijvoorbeeld telefoon, mediaspelers en informatiediensten. Naar verwachting zullen nieuwe architecturen zich baseren op productlijnen en families, plug & play en verificatie- en validatietechnieken. Ook zal er op diverse terreinen behoefte zijn aan zowel industriële als formele standaarden.

 

Software-engineering

 

De voornaamste uitdagingen op het vlak van software-engineering liggen in het verhogen van de productiviteit en de kwaliteit. Hierbij valt te denken aan bijvoorbeeld het benutten van de eigenschappen van het applicatiedomein, het verbeteren van architecturen, het verhogen van hergebruik, het samenstellen van systemen bestaande uit componenten en het dynamisch vervangen van software.

 

Om dit alles mogelijk te maken, is het nodig om die componenten te combineren - zowel tijdens de ontwikkeling als dynamisch in een werkend systeem - waarvan het gedrag duidelijk is. Doel hiervan is om de eigenschappen in te schatten van systemen die uit dergelijke componenten zijn samengesteld. Verder is het noodzakelijk om softwarediensten te ontwikkelen die speciale aandacht schenken aan de niet-functionele eigenschappen van deze diensten, voortgekomen uit de samenwerking van verschenen componenten. Software-engineers moeten in staat zijn systemen te bouwen die beter bestand zijn tegen of zich kunnen aanpassen aan veranderingen, en die bovendien zichzelf veranderende systemen kunnen beschrijven en beredeneren. In deze context passen ook nieuwe architecturen voor systemen die bestaan uit een wijzigende samenstelling van softwarecomponenten. Er is behoefte aan nieuwe technieken om dergelijke heterogene componenten met elkaar te laten samenwerken en de eigenschappen van deze samenstellingen te certificeren. Tot slot moeten bestaande software-engineeringmethoden en -technieken kunnen worden ingepast in nieuwe vormen van softwareontwikkeling (evolutionair, extreem of agile).

 

Het ontwerp van dergelijke complexe software-intensieve systemen is vanuit twee standpunten te bekijken. Vanuit het standpunt van specificatie is de complexiteit alleen te beheersen door verbeterde abstractie en modulariteit. Vanuit een andere hoek, beter bekend als implementatie, moet het ontwerp flexibel, geschikt voor hergebruik en herconfigureerbaar zijn.

 

Wat de specificatie en het ontwerp van complexe systemen betreft, stellen abstractie en modulariteit de ontwerper in staat zich te concentreren op een beperkt deel van het systeem. Hij hoeft dus niet de volledige complexiteit in één keer te overzien. Zowel objectgeoriënteerde als componentgebaseerde technieken ondersteunen dit. Het is echter duidelijk dat de mogelijkheden nog niet volledig benut zijn. Modulariteit en configuratiebeheer spelen ook een grote rol bij hergebruik.

 

De behoefte om software-systemen op een diversiteit van hardware en besturingssystemen (OS) te kunnen draaien, blijft toenemen. Vanwege deze verscheidenheid wordt het belang van dynamisch configuratiemanagement steeds groter. Gedistribueerde en mobiele applicaties hebben de behoefte om zich te kunnen herconfigureren, afhankelijk van dynamische wisselende eigenschappen van de infrastructuur (bijvoorbeeld de netwerkverbindingen). Agenttechnologie kan bepaalde zelforganiserende eigenschappen introduceren in software.

 

Uit de hierboven beschreven trend ten aanzien van de ontwikkeling van informatietechnologie en de impact op systemen en producten blijkt dat het dynamische karakter groter wordt. Dit zal ook een grote invloed hebben op het platform en de middleware.

 

De huidige benadering van componentgebaseerd ontwerpen beperkt zich tot een syntactische beschrijving van de interface. Het is echter noodzakelijk om tot een verbreding te komen, waarbij rekening is gehouden met zowel een semantische beschrijving alsmede synchronisatie en kwaliteit. Een pragmatische aanpak met betrekking tot verbeteringen kan liggen in het gebruik van OO-technieken. Hierbij gaat het om het modelleren van het probleem in plaats van de oplossing. Dit stelt de ontwikkelaar in staat flexibel specificaties te creëren, waaruit verscheidene applicaties af te leiden zijn. In een ideale situatie zal een systeemontwikkelaar in staat moeten zijn zich te concentreren op de systeemspecificatie en de hulpmiddelen ter beschikking hebben om een optimale implementatie af te leiden.

 

Als conclusie komt uit de bus dat ontwikkelaars behoefte hebben aan methoden en gereedschappen die hen in staat stellen systemen samen te stellen uit componenten die te zoeken en selecteren zijn op basis van syntactische, semantische en kwaliteitseigenschappen. De gereedschappen moeten de integriteit van het systeem kunnen controleren, gebaseerd op een mix van verificatie tijdens compileer- en uitvoeringstijd. Systeemvarianten geoptimaliseerd voor verschillende platforms moeten gespecificeerd zijn met dezelfde elementen als de systeemspecificatie zelf. Gereedschappen moeten een specifiek systeem kunnen genereren, waarbij optimalisatie van componentgrenzen mogelijk is. Technieken voor formele verificatie vragen om opschaling, zodat systemen van een miljoen regels code te verwerken zijn.

 

Ontwikkelproces

 

Zoals besproken worden de systemen steeds complexer en omvangrijker. Dit heeft ook invloed op het ontwikkelproces. De hoeveelheid data, het aantal ontwerpstappen, de relatie tussen de data uit de verschillende ontwerpstappen, de omvang van de ontwikkelteams en het multidisciplinaire karakter van de teams (elk met hun eigen gereedschappen) verhogen de complexiteit van het proces en maken het beheer van de betrokken data steeds moeilijker. Aangezien teams ook geografisch verspreid zijn, is adequate ondersteuning noodzakelijk voor een goede uitvoering van het proces, met consistente data. Hierbij moet het hele proces, vanaf het verzamelen van eisen tot en met de validatie en verificatie na installatie, worden ondersteund. Indien onderhoud of evolutie van het systeem een rol spelen, is het gewenst zelfs meerdere cycli en hun samenhang te ondersteunen.

 

Uitgangspunt

 

De digitale wereld lijkt een land van beloften. Om deze waar te maken, blijkt uit de roadmap dat er nog veel moet worden gerealiseerd. Het landschap voor software-intensieve systemen verandert snel, afhankelijk van zowel technologische als maatschappelijke ontwikkelingen. De roadmap is dan ook geen definitief rapport. Het is te beschouwen als een uitgangspunt voor de verdere ontwikkeling van software-intensieve systemen. ITEA heeft activiteiten gestart om het rapport aan te passen aan de ontwikkelingen en verder uit te breiden.

  

Roadmap schetst toekomst


De Technology Roadmap on Software Intensive Systems schetst een toekomstbeeld van embedded software en de daarbij betrokken technologieën. Het document schenkt aandacht aan toepassingen op diverse terreinen, zoals huizen, bedrijven, mobiele applicaties, diensten, infrastructuur en systeemontwikkeling.

 

Voor deze applicatieterreinen zijn scenario's voor toekomstige ontwikkelingen gebruikt als basis bij het inventariseren van technologieën. Deze technologieën zijn in het rapport onderverdeeld in elf categorieën. Een hoofdstuk met een aantal waarnemingen en conclusies completeert het geheel. In de appendices staat het gevolgde proces beschreven. Een eerste versie van het rapport is gepubliceerd in 2001 en is in elektronische vorm beschikbaar op de ITEA-website.

 

De roadmap vormt het uitgangspunt voor de Embedded Systems Roadmap 2002, die deze zomer wordt gepubliceerd als onderdeel van het Progress-programma van de technologiestichting STW.

 

 Meer informatie: