Onderzoek in software engineering

Examenroosters, algemene discussies, ...

Moderator: Praesidium

Glenn
Posts: 280

Onderzoek in software engineering

Post#1 » Sat Dec 10, 2011 9:45 pm

Als ik onderzoek in software engineering bekijk, ben ik altijd verbaasd over de plaats waar de focus gelegd wordt. Het lijkt precies alleen maar te gaan om het ontwikkelen van betere tools, modeleertalen in elkaar omzetten en patronen te zoeken die het ontwikkelen van software vergemakkelijken.

Oke allemaal goed en wel. Maar software engineering gaat wél over software ontwikkelen. Zouden we ons in plaats van ons op tools te focussen (oplossing), misschien niet beter op de kern van de zaak (het probleem) focussen. Sofware engineering draait om goed, betrouwbaar en efficient software ontwikkelen. Dat is wat we willen bereiken.

Om goed te begrijpen waar de noden zich bevinden, hebben we een goed theoretisch kader nodig. We moeten het fenomeen "software ontwikkelen", gaan bestuderen en beschrijven. Hoe wordt software nu ontwikkeld? Welke methoden worden de dag van vandaag gebruikt? Kunnen we deze methoden opdelen in groepen? Kunnen we aan deze methoden of deelaspecten van methoden een naam geven?

Er zijn nu al opdelingen als "Agile", "Waterfall", "Scrum", ... maar deze zijn veel te vaag en heel high level. Je kan er zodanig veel onder verstaan, dat ik niet zou weten hoe ik die in een wetenschappelijke context zou kunnen gebruiken.

Wat we zouden moeten weten is:
- Hoeveel tijd spenderen bedrijven aan de analyse van het probleem?
- Hoe wordt het probleem ge-analyseerd?
- Kunnen we de manieren waarop de problemen ge-analyseerd worden opdelen in groepen?
- Bestaat er een correlatie tussen de hoeveelheid tijd dat aan de analyse van het probleem werd gespendeerd en kwaliteit van de software?
- Wat is de optimale hoeveelheid tijd die best aan de analyse van het probleem wordt gestoken, onder de voorwaarde dat techniek X wordt gebruikt bij het analyseren van het probleem?

Deze zaken dienen uiteraard statistisch onderzocht te worden in een bedrijfscontext.

Na het theoretisch kader gevestigd te hebben, kan er dan echt doorgezocht worden naar hoe het proces kan geoptimaliseerd worden. Wat als we bepaalde zaken gaan veranderen? Je kan dan vanuit het theoretisch kader een aantal parameters vast nemen, en 1 of enkele parameters variabel. Je kan die dan gaan observeren en zien wat daar van het effect is.

Dus wat ik persoonlijk zou doen is eerst goed observeren hoe het ontwikkelingsproces in zijn werk gaat de dag van vandaag. Daar kunnen we al veel uit leren. Het ge-observeerde gedrag willen we daarna plaatsen in een kader. We willen zien welke stappen typisch na welke stappen komen, en ook hoe elke stap er concreet kan uitzien (dus meer ingezoomd). Welke technieken worden bij die stap gebruikt? Hoeveel tijd wordt er aan alles in die stap gespendeerd? Dan kunnen we bepaalde observaties gaan classificeren. Op basis van die classificaties kunnen we dan in een bepaalde context methode A vergelijken met een methode B. Doormiddel van statistische tests kunnen we dan trachten te bewijzen dat in een gegeven context, de methode A effectiever is dan methode B voor het ontwikkelen van een betrouwbaar systeem bijvoorbeeld.

Ik mis wel wat dat theoretisch kader. Want nu kan je wel tools en methoden maken, maar hoe ga je bewijzen dat ze goed zijn? Je kan heel high level gewoon jou tool in het publiek gooien en vergelijken met een reeds bestaande programmeertaal. Maar waarom zouden we niet eerst die black-box onthullen. Die echte black-box waarin de software gemaakt wordt. Eerst goed observeren en een theoretisch kader vormen lijken mij zeer nuttig en essentieel. Software engineering is meer dan het maken van coole tools en programmeertalen, het gaat om een heel complex ontwikkelingsproces waarbij veel mensen betrokken zijn. De manier waarop die software tot stand komt moet ook bestudeerd worden. Eens we dat complex ontwikkelingsproces hebben kunnen kaderen, kunnen we het proces gaan aanpassen, en bepaalde componenten in het proces gaan vervangen. Maar eerst moet het proces zoals het de dag van vandaag gebeurd grondig in kaart gebracht worden, classificaties moeten worden gemaakt. En dat kunnen we nemen als startkader om verbeteringen door te voeren.

Graag jullie reactie!

User avatar
Joachimvdh
Prosenior
Posts: 1092

Re: Onderzoek in software engineering

Post#2 » Sun Dec 11, 2011 2:27 am

Het waren software engineers die ooit besloten hebben om te stoppen in assembler te programmeren en het concept compiler te introduceren zodat we met high level talen zijn gaan werken. Dat lijkt me sterk te hebben bijgedragen tot betere ontwikkeling van software en ik betwijfel of er daarvoor een grondig statistisch onderzoek is aan voorafgegaan. Daarnaast zijn we ook niet ineens van assembler naar C++ gegaan, daartussen zit nog een gigantische wildgroei aan talen en paradigmas. Zo is het ook met MDE, misschien krijgen we binnen 20 jaar Z++ en of andere zotte modelleertaal die breed aanvaard wordt en alles overneemt.

Deel van het concept onderzoek is juist dat je eerst vanalles probeert en dan kijkt of het op iets trekt. Zo kan het dus zijn dat het voor jou op dit moment lijkt alsof er maar wat op los gemodelleert wordt zonder doel maar dat zijn allemaal puzzelstukjes die ooit in elkaar zouden moeten schuiven. Het feit dat het niet 2 mensen zijn die met MDE bezig zijn maar zowat alle onderzoekers software engineering toont ook aan dat een meerderheid van de software engineers gelooft dat MDE the way to go is, in plaats van te gaan proberen nog jaren proberen te knoeien aan de ontwikkelmethoden, daar is zo onderhand volgens mij de grens wel wat bereikt (zie ook cursus SE, het artikel "no silver bullet").

User avatar
Fristi
WOZ
Posts: 4565

Re: Onderzoek in software engineering

Post#3 » Sun Dec 11, 2011 1:27 pm

Glenn wrote:
Oke allemaal goed en wel. Maar software engineering gaat wél over software ontwikkelen. Zouden we ons in plaats van ons op tools te focussen (oplossing), misschien niet beter op de kern van de zaak (het probleem) focussen. Sofware engineering draait om goed, betrouwbaar en efficient software ontwikkelen. Dat is wat we willen bereiken.
Nog voor ik de rest heb gelezen: Modellen doen net dit, ze zorgen ervoor dat men goed (door modellen gaan bepaalde zaken veel makkelijker), betrouwbaar (coverability graphs bij petrinets, testsimulaties bij statecharts, ..), efficient (hangt af van de definitie van efficient, moet je programma echt alles uit de kan halen, ja, schrijf het dan in c, als efficientie wil zeggen gebruiksgemak en productiviteit, dan is een model makkelijker en sneller dan programmeren). Dus eigenlijk is er al geen probleem om mee te beginnen.

Niet al het onderzoek in software engineering gaat in die richting, maar toevallig hier nu wel. MSDL is volledig daarop gericht. FOTS is daar ook mee bezig maar in mindere mate.

LORE is daar dan weer veel minder mee bezig, die zijn helemaal into reengineering.
Fristi Ad Infinitum

WINAK WOZ 2013 - ...
WINAK Magister Fristi 2012-2013
WINAK Feest 2011-2012
WINAK Schachtentemmer 2010-2011
WINAK Scriptor 2008-2009 | 2009-2010

User avatar
Fristi
WOZ
Posts: 4565

Re: Onderzoek in software engineering

Post#4 » Sun Dec 11, 2011 1:29 pm

Glenn wrote: Om goed te begrijpen waar de noden zich bevinden, hebben we een goed theoretisch kader nodig. We moeten het fenomeen "software ontwikkelen", gaan bestuderen en beschrijven. Hoe wordt software nu ontwikkeld? Welke methoden worden de dag van vandaag gebruikt? Kunnen we deze methoden opdelen in groepen? Kunnen we aan deze methoden of deelaspecten van methoden een naam geven?

Er zijn nu al opdelingen als "Agile", "Waterfall", "Scrum", ... maar deze zijn veel te vaag en heel high level. Je kan er zodanig veel onder verstaan, dat ik niet zou weten hoe ik die in een wetenschappelijke context zou kunnen gebruiken.

Wat we zouden moeten weten is:
- Hoeveel tijd spenderen bedrijven aan de analyse van het probleem?
- Hoe wordt het probleem ge-analyseerd?
- Kunnen we de manieren waarop de problemen ge-analyseerd worden opdelen in groepen?
- Bestaat er een correlatie tussen de hoeveelheid tijd dat aan de analyse van het probleem werd gespendeerd en kwaliteit van de software?
- Wat is de optimale hoeveelheid tijd die best aan de analyse van het probleem wordt gestoken, onder de voorwaarde dat techniek X wordt gebruikt bij het analyseren van het probleem?

Deze zaken dienen uiteraard statistisch onderzocht te worden in een bedrijfscontext.
Dit wordt al gedaan, is al lang onderzocht en zijn al meerdere technieken voor.

edit:
Dit is trouwens zo voor alles wat hierop volgt. Er zijn al technieken om die productiviteit te meten (zie ook cursus Software Engineering) en terug te koppelen naar je ontwikkelingsproces. Het is zoals Joachim zegt, daar zitten we zo stilaan wel tegen onze grens. Het is net dat waar ze de afgelopen 30 a 40 jaar volop mee zijn bezig geweest. Dat theoretisch kader is er al.

Voor bijvoorbeeld modelleren (ik weet nu niet exact de naam meer, ik zal het nog opzoeken). Er is een bepaalde techniek in modelleren, de oorspronkelijke paper was puur theoretisch, zeer wiskundig, daar kwam geen letter implementatie aan te pas. Daarna pas is er een tool gemaakt die dit implementeerde. Dat theoretisch kader zijn ze dus nu volop aan het ontwikkelen.
Fristi Ad Infinitum

WINAK WOZ 2013 - ...
WINAK Magister Fristi 2012-2013
WINAK Feest 2011-2012
WINAK Schachtentemmer 2010-2011
WINAK Scriptor 2008-2009 | 2009-2010

Pieter Belmans
Posts: 593
Contact:

Re: Onderzoek in software engineering

Post#5 » Sun Dec 11, 2011 1:34 pm

Het probleem met het soort onderzoek dat je voorstelt is dat het lastig uit te voeren is. De data acquisition is moeilijk, de normalisatie is moeilijk (tot onmogelijk, hoe ga je in godsnaam alle bedrijfscontexten met elkaar vergelijken, dat tesamen met hun implementatie van de gebruikte technieken etc.), de analyse is moeilijk (informatici en statistiek, jeweetwel). En vanuit mijn wiskundestandpunt gesproken: het is ook weinig uitdagend of bevredigend onderzoek. Je doet aan beschrijvend onderzoek en daar is minder voldoening of minder "prestige" uit te krijgen.

Glenn
Posts: 280

Re: Onderzoek in software engineering

Post#6 » Mon Dec 12, 2011 10:27 pm

Joachimvdh wrote:Het waren software engineers die ooit besloten hebben om te stoppen in assembler te programmeren en het concept compiler te introduceren zodat we met high level talen zijn gaan werken. Dat lijkt me sterk te hebben bijgedragen tot betere ontwikkeling van software en ik betwijfel of er daarvoor een grondig statistisch onderzoek is aan voorafgegaan.
Ja dat denk ik ook niet. Maar ik vind het super interessant om te weten hoe mensen exact met elkaar samenwerken. Volgens mij kan er echt nog wel veel uit geleerd worden, en kan er ook nog veel winst uitgehaald worden. We moeten bepaalde onderdelen zoals communicatie, management, enzovoort ook kunnen koppelen aan het ontwikkelingsproces. Zo kunnen we ervoor zorgen dat onze software on time en within budget geleverd wordt.

Glenn
Posts: 280

Re: Onderzoek in software engineering

Post#7 » Mon Dec 12, 2011 10:27 pm

Fristi wrote: Dit wordt al gedaan, is al lang onderzocht en zijn al meerdere technieken voor.

edit:
Dit is trouwens zo voor alles wat hierop volgt. Er zijn al technieken om die productiviteit te meten (zie ook cursus Software Engineering) en terug te koppelen naar je ontwikkelingsproces. Het is zoals Joachim zegt, daar zitten we zo stilaan wel tegen onze grens. Het is net dat waar ze de afgelopen 30 a 40 jaar volop mee zijn bezig geweest. Dat theoretisch kader is er al.
Waar ik eigenlijk naar op zoek ben is eigenlijk een model dat het ontwikkelingsproces beschrijft. Een model dat meer ingezoomd is als het "Waterfall"-model, "Scrum" enzovoort. Ik zou graag willen weten hoe de analyse-fase echt in zijn werk gaat. Hoeveel tijd steken mensen daar exact in. Met wie praat men? Wanneer praat men met wie? Hoe verloopt die communicatie met de stakeholders? Onder welke vormen wordt er gecommuniceerd? ...

Oke, dit zijn echt wel heel veel dingen, maar ik zou het stapje voor stapje willen doen. Ik zou graag een model opstellen dat het software proces beschrijft. Dat uit een aantal high-level componenten bestaat, en die high level componenten daar kan je dan op inzoomen. En dan bestaan er in die ingezoomde component nog verschillende manieren van werken. Ik wil bepaalde categorieën van werken opstellen die nog niet in de huidige modellen zitten. Er is nauwelijks oog voor communicatie in het huidig theoretisch kader. Ik zou software-engineering graag willen koppelen met management, communicatie enzomeer.

Glenn
Posts: 280

Re: Onderzoek in software engineering

Post#8 » Mon Dec 12, 2011 10:27 pm

Pieter Belmans wrote:Het probleem met het soort onderzoek dat je voorstelt is dat het lastig uit te voeren is. De data acquisition is moeilijk, de normalisatie is moeilijk (tot onmogelijk, hoe ga je in godsnaam alle bedrijfscontexten met elkaar vergelijken, dat tesamen met hun implementatie van de gebruikte technieken etc.), de analyse is moeilijk (informatici en statistiek, jeweetwel). En vanuit mijn wiskundestandpunt gesproken: het is ook weinig uitdagend of bevredigend onderzoek. Je doet aan beschrijvend onderzoek en daar is minder voldoening of minder "prestige" uit te krijgen.
Uhu, het is sowieso heel moeilijk. Mij persoonlijk zou dit soort onderzoek heel veel voldoening geven. Dit vind ik echt zeer interessante materie. Ik wil graag weten en onderzoeken hoe software exact ontwikkeld wordt. Hoe werken mensen exact samen met elkaar om die software te ontwikkelen?

@iedereen: kunt ge hieromtrent eigenlijk een onderzoeksstage doen? Oke ja, wat we nu aan het beschrijven zijn, zijn natuurlijk thema's. Maar als ge nu een concrete onderzoeksvraag opstelt (over een heel specifiek deelprobleem)? Dat is net wat mij het meeste interesseert aan software ontwikkeling, de manier waarop mensen met elkaar samenwerken om tot het product te komen. Hier is bij mijn weten nog maar weinig onderzoek naar gedaan. Maar ik wil het gewoon weten, ik vind het super interessant!

User avatar
Fristi
WOZ
Posts: 4565

Re: Onderzoek in software engineering

Post#9 » Tue Dec 13, 2011 12:16 pm

Glenn wrote:
Pieter Belmans wrote:Het probleem met het soort onderzoek dat je voorstelt is dat het lastig uit te voeren is. De data acquisition is moeilijk, de normalisatie is moeilijk (tot onmogelijk, hoe ga je in godsnaam alle bedrijfscontexten met elkaar vergelijken, dat tesamen met hun implementatie van de gebruikte technieken etc.), de analyse is moeilijk (informatici en statistiek, jeweetwel). En vanuit mijn wiskundestandpunt gesproken: het is ook weinig uitdagend of bevredigend onderzoek. Je doet aan beschrijvend onderzoek en daar is minder voldoening of minder "prestige" uit te krijgen.
Uhu, het is sowieso heel moeilijk. Mij persoonlijk zou dit soort onderzoek heel veel voldoening geven. Dit vind ik echt zeer interessante materie. Ik wil graag weten en onderzoeken hoe software exact ontwikkeld wordt. Hoe werken mensen exact samen met elkaar om die software te ontwikkelen?

@iedereen: kunt ge hieromtrent eigenlijk een onderzoeksstage doen? Oke ja, wat we nu aan het beschrijven zijn, zijn natuurlijk thema's. Maar als ge nu een concrete onderzoeksvraag opstelt (over een heel specifiek deelprobleem)? Dat is net wat mij het meeste interesseert aan software ontwikkeling, de manier waarop mensen met elkaar samenwerken om tot het product te komen. Hier is bij mijn weten nog maar weinig onderzoek naar gedaan. Maar ik wil het gewoon weten, ik vind het super interessant!
Dat moet ge is aan den Demeyer gaan vragen, wandel er eens binnen eh.

Mensen dat dat doen zijn trouwens Quality Assurance Engineers. Ja, er bestaat een titel voor. Er zijn mensen die van dit specifiek ding hun job maken.
Fristi Ad Infinitum

WINAK WOZ 2013 - ...
WINAK Magister Fristi 2012-2013
WINAK Feest 2011-2012
WINAK Schachtentemmer 2010-2011
WINAK Scriptor 2008-2009 | 2009-2010

User avatar
slimmy
Prosenior
Posts: 3130
Contact:

Re: Onderzoek in software engineering

Post#10 » Wed Dec 21, 2011 9:38 am

Fristi wrote:Mensen dat dat doen zijn trouwens Quality Assurance Engineers. Ja, er bestaat een titel voor. Er zijn mensen die van dit specifiek ding hun job maken.
Da's een heel divisie in technicolor! ;)

Return to “Algemeen”

Who is online

Users browsing this forum: No registered users and 9 guests

cron