Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Refactoring Guidelines for a UML-RT based Software System.
KTH, School of Computer Science and Communication (CSC).
2011 (English)Independent thesis Advanced level (professional degree), 20 credits / 30 HE creditsStudent thesis
Abstract [en]

A large software system is not a static product that can be planned, implemented and then forgotten when finished. Software systems are rather evolving entities that need continuous maintenance and refactoring to improve their structure. This is a large and common problem in the software industry, as products age they accumulate more features and large amounts of code that the initial architecture were not designed for. This leads to a fragmented code base and a slower development process.

Overcoming software complexity can not be directly solved by a single solution. As the problem itself is not caused by a single issue or property, it rather consists of multiple issues that in combination cause the larger problem. This thesis goes through some of the problems that where found in a large software system at Ericsson and different types of solutions that might improve the overall structure and development efficiency of the system.

The direction of this thesis has been to introduce development guidelines into the development of the system at Ericsson. The main goal of these guidelines is to decrease the need to do large refactorings and instead focus on more frequent and smaller refactorings. The guidelines touch on different areas of the development to improve the structure and the development efficiency of the system. The areas that are mainly focused on are the architecture, the visual UML diagrams and the source code. The main recommendations that have been concluded are the importance of using modern and iterative development processes that include refactoring as an integral part of its phases and to use a more extensible architecture for the system itself. As these recommendations are part of a long term solution they are complemented by guidelines for the more daily development to improve the current source code from getting fragmented.

Abstract [sv]

Dagens mjukvarusystem är inte objekt som endast kan planeras, implementeras och sedan läggas upp på hyllan. De är snarare system som kontinuerligt behöver refaktoreras och underhållas för att förbättra dess struktur. Detta är ett stort och ett vanligt problem inom mjukvaruindustrin. När mjukvarusystem blir äldre så samlar de på sig nya funktioner och stora mängder ny kod som den ursprungliga arkitekturen inte var avsedda för. Detta leder till att kodbaserna blir stora och ohanterliga som då även ger långsammare utvecklingsprocesser.

Det går inte att övervinna komplexiteten i mjukvarusystem genom en simpel lösning, då själva problemet inte orsakas av ett ända problem eller egendom utan det är snarare så att det är många mindre problem från olika områden som i kombination leder till det stora problemet. Detta examensarbete går igenom några av de problemen som har upptäckts i ett stort mjukvarusystem som utvecklas av Ericsson, det ges också ett par lösningar till dessa problem. Denna rapporten kommer även gå igenom förslag som kan förbättra den övergripande strukturen av systemet för att då effektivisera och förenkla utvecklingen.

Målet för detta examensarbete har varit att införa riktlinjer för utvecklingen av Ericssons mjukvarusystem. Huvudsyftet med dessa riktlinjer är att minska behovet av stora omstruktureringar men istället fokusera på mindre och mer frekventa refaktoreringar. De föreslagna riktlinjerna berör olika delar av utvecklingen av systemet men främst inom arkitekturen, visuella UML diagrammen och själva källkoden. Några av de större slutsatserna som har konstaterats i examensarbetet är vikten av att använda moderna och iterativa utvecklingsprocesser som inkluderar någon typ av refaktorering i sina iterationer, men även betydelsen av att använda en arkitektur som är flexibel och utbyggbar på ett bra sätt. Eftersom dessa rekommendationer är mer långsiktiga lösningar har de kompletterats med riktlinjer för den dagliga utvecklingen, dessa har införts för att förbättra den nuvarande källkoden på kort sikt men även förhindra utökad fragmenteringen.

Place, publisher, year, edition, pages
2011.
Series
Trita-CSC-E, ISSN 1653-5715 ; 2011:131
National Category
Computer Science
Identifiers
URN: urn:nbn:se:kth:diva-130722OAI: oai:DiVA.org:kth-130722DiVA: diva2:654169
Educational program
Master of Science in Engineering - Computer Science and Technology
Uppsok
Technology
Supervisors
Examiners
Available from: 2013-10-07 Created: 2013-10-07

Open Access in DiVA

No full text

Other links

http://www.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2011/rapporter11/koc_ziver_11131.pdf
By organisation
School of Computer Science and Communication (CSC)
Computer Science

Search outside of DiVA

GoogleGoogle Scholar

urn-nbn

Altmetric score

urn-nbn
Total: 18 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf