THE IMPACT OF ARCHITECTURAL DESIGN ON SOFTWARE DEVELOPMENT
| Data(s) |
23/01/2008
23/01/2008
2000
|
|---|---|
| Resumo |
Tässä työssä tutkitaan ohjelmistoarkkitehtuurisuunnitteluominaisuuksien vaikutusta erään client-server –arkkitehtuuriin perustuvan mobiilipalvelusovelluksen suunnittelu- ja toteutusaikaan. Kyseinen tutkimus perustuu reaalielämän projektiin, jonka kvalitatiivinen analyysi paljasti arkkitehtuurikompponenttien välisten kytkentöjen merkittävästi vaikuttavan projektin työmäärään. Työn päätavoite oli kvantitatiivisesti tutkia yllä mainitun havainnon oikeellisuus. Tavoitteen saavuttamiseksi suunniteltiin ohjelmistoarkkitehtuurisuunnittelun mittaristo kuvaamaan kyseisen järjestelmän alijärjestelmien arkkitehtuuria ja luotiin kaksi suunniteltua mittaristoa käyttävää, työmäärää (komponentin suunnittelu-, toteutus- ja testausaikojen summa) arvioivaa mallia, joista toinen on lineaarinen ja toinen epälineaarinen. Näiden mallien kertoimet sovitettiin optimoimalla niiden arvot epälineaarista gloobaalioptimointimenetelmää, differentiaalievoluutioalgoritmia, käyttäen, niin että mallien antamat arvot vastasivat parhaiten mitattua työmäärää sekä kaikilla ominaisuuksilla eli attribuuteilla että vain osalla niistä (yksi jätettiin vuorotellen pois). Kun arkkitehtuurikompenttien väliset kytkennät jätettiin malleista pois, mitattujen ja arvoitujen työmäärien välinen ero (ilmaistuna virheenä) kasvoi eräässä tapauksessa 367 % entisestä tarkoittaen sitä, että näin muodostettu malli vastasi toteutusaikoja huonosti annetulla ainestolla. Tämä oli suurin havaitu virhe kaikkien poisjätettyjen ominaisuuksien kesken. Saadun tuloksen perusteella päätettiin, että kyseisen järjestelmän toteutusajat ovat vahvasti riippuvaisia kytkentöjen määrästä, ja näin ollen kytkentöjen määrä oli mitä todennäköisemmin kaikista tärkein työmäärään vaikuttava tekijä tutkitun järjestelmän arkkitehtuurisuunnittelussa. This thesis studies the impact of software architectural design properties on the development effort of a mobile service application that has a client-server architecture. The data applied is based on a real-life software project in which, during the qualitative analysis, it was observed that the coupling between the architectural components had a strong influence on the development effort. The main objective of this research was to quantitatively investigate the correctness of the above observation. To accomplish this task, an architectural design metrics suite was created to describe the subsystems, a client and a server, of the system studied, and two models that use the suite, a linear and non-linear model, were selected to estimate the development effort (the sum of the design, implementation and testing times of a component). Using a non-linear global optimisation method, a differential evolution algorithm, the free parameters of the models were defined, or optimized, using first all the architectural design properties, also known as attributes, and then leaving them out one by one in such a way that the models corresponded as accurately as possible with the measured development effort. When leaving out coupling, which is defined as the number of components to which a component being studied refers, the error between the measured and estimated development effort increased in some cases by 367 %, meaning that the model did not fit the data well without coupling. This was the highest increase in the error for all the attributes excluded. Based on these results, it was concluded that the development effort of the system under study was clearly dependent on coupling and that coupling was probably the most important architectural design property with respect to the development effort of the system. |
| Identificador |
nbnfi-fe20021541.pdf http://www.doria.fi/handle/10024/34525 URN:NBN:fi-fe20021541 |
| Idioma(s) |
en |
| Palavras-Chave | #architectural metric #coupling #differential evolution #evolutionary algorithm #soft computing #software architecture #software component #architectural metric #coupling #differential evolution #evolutionary algorithm #soft computing #software architecture #software component |
| Tipo |
Diplomityö Diplomityö |