The basic idea behind software reuse is that software developers use reusable components found in software repositories to reduce the amount of code that has to be written and so increase productivity. A problem arises, however, if the repository is too big - it becomes difficult to find relevant components. What is needed is an effective means to query repositories. Most approaches to developing such means involves creating a good index to which the queries can be applied. Developing a good index requires identifying the relevant information on which to base the index. In this paper, we present the results of a project that used source code as the basis for the index.
{"title":"Indexing the Java API Using Source Code","authors":"Homan Ma, R. Amor, E. Tempero","doi":"10.1109/ASWEC.2008.33","DOIUrl":"https://doi.org/10.1109/ASWEC.2008.33","url":null,"abstract":"The basic idea behind software reuse is that software developers use reusable components found in software repositories to reduce the amount of code that has to be written and so increase productivity. A problem arises, however, if the repository is too big - it becomes difficult to find relevant components. What is needed is an effective means to query repositories. Most approaches to developing such means involves creating a good index to which the queries can be applied. Developing a good index requires identifying the relevant information on which to base the index. In this paper, we present the results of a project that used source code as the basis for the index.","PeriodicalId":231903,"journal":{"name":"19th Australian Conference on Software Engineering (aswec 2008)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114091018","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Understanding software requirements and customer needs is vital for all SW companies around the world. Lately clearly more attention has been focused also on the costs, cost-effectiveness, productivity and value of software development and products. This study outlines concepts, principles and process of implementing a value assessment for SW requirements. The main purpose of this study is to collect experiences whether the value assessment for product requirements is useful for companies, works in practice, and what are the strengths and weaknesses of using it. This is done by implementing value assessment in a case company step by step to see which phases possibly work and which phases possibly do not work. The practical industrial case shows that proposed value assessment for product requirements is useful and supports companies trying to find value in their products.
{"title":"Assessing Value of SW Requirements","authors":"P. Ojala","doi":"10.1109/ASWEC.2008.18","DOIUrl":"https://doi.org/10.1109/ASWEC.2008.18","url":null,"abstract":"Understanding software requirements and customer needs is vital for all SW companies around the world. Lately clearly more attention has been focused also on the costs, cost-effectiveness, productivity and value of software development and products. This study outlines concepts, principles and process of implementing a value assessment for SW requirements. The main purpose of this study is to collect experiences whether the value assessment for product requirements is useful for companies, works in practice, and what are the strengths and weaknesses of using it. This is done by implementing value assessment in a case company step by step to see which phases possibly work and which phases possibly do not work. The practical industrial case shows that proposed value assessment for product requirements is useful and supports companies trying to find value in their products.","PeriodicalId":231903,"journal":{"name":"19th Australian Conference on Software Engineering (aswec 2008)","volume":"68 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127872112","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Requirements elicitation and analysis is the most crucial process in requirements engineering since it moulds the shape of the desired end product. In dealing with a system's stakeholders in a process to elicit the requirements, conflicts are inevitable. In the initial state, usually, all the stakeholders have a common goal; to build a system. However as an individual, they do have their own perspectives and perceptions. In addition, the stakeholders, either as a representative of end users, a decision maker or a developer, have different concerns, priorities and responsibilities. This paper considers introducing negotiation spiral model with supporting elements in the requirements elicitation and analysis process. Many researches show that negotiation is necessary to handle conflicts in order to gain better requirements. It is believed that the quality of intermediate deliverables like the requirements document is correlated with the quality of the final product. The advantages of implementing negotiation process are well aligned requirements by all the stakeholders, improved system quality, a sound basis for resource estimation and less resource wastage.
{"title":"Negotiation in the Requirements Elicitation and Analysis Process","authors":"Sabrina Ahmad","doi":"10.1109/ASWEC.2008.66","DOIUrl":"https://doi.org/10.1109/ASWEC.2008.66","url":null,"abstract":"Requirements elicitation and analysis is the most crucial process in requirements engineering since it moulds the shape of the desired end product. In dealing with a system's stakeholders in a process to elicit the requirements, conflicts are inevitable. In the initial state, usually, all the stakeholders have a common goal; to build a system. However as an individual, they do have their own perspectives and perceptions. In addition, the stakeholders, either as a representative of end users, a decision maker or a developer, have different concerns, priorities and responsibilities. This paper considers introducing negotiation spiral model with supporting elements in the requirements elicitation and analysis process. Many researches show that negotiation is necessary to handle conflicts in order to gain better requirements. It is believed that the quality of intermediate deliverables like the requirements document is correlated with the quality of the final product. The advantages of implementing negotiation process are well aligned requirements by all the stakeholders, improved system quality, a sound basis for resource estimation and less resource wastage.","PeriodicalId":231903,"journal":{"name":"19th Australian Conference on Software Engineering (aswec 2008)","volume":"8 1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130146604","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
P. Hayati, N. Jafari, S. Rezaei, Saeed Sarencheh, V. Potdar
Security is an integral part of most software systems but it is not considered as an explicit part in the development process yet. Input validation is the most critical part of software security that is not covered in the design phase of software development life-cycle resulting in many security vulnerabilities. Our objective is to extend UML to new integrated framework for model driven security engineering leading to ideal way to design more secure software. Input validation in UML has not been addressed previously, hence we incorporate input validation into UML diagrams such as use case, class, sequence and activity. This approach has some advantages such as preventing from common input tampering attacks, having both security and convenience in software at high level of abstraction and ability of solving the problem of weak security background for developers.
{"title":"Modeling Input Validation in UML","authors":"P. Hayati, N. Jafari, S. Rezaei, Saeed Sarencheh, V. Potdar","doi":"10.1109/ASWEC.2008.30","DOIUrl":"https://doi.org/10.1109/ASWEC.2008.30","url":null,"abstract":"Security is an integral part of most software systems but it is not considered as an explicit part in the development process yet. Input validation is the most critical part of software security that is not covered in the design phase of software development life-cycle resulting in many security vulnerabilities. Our objective is to extend UML to new integrated framework for model driven security engineering leading to ideal way to design more secure software. Input validation in UML has not been addressed previously, hence we incorporate input validation into UML diagrams such as use case, class, sequence and activity. This approach has some advantages such as preventing from common input tampering attacks, having both security and convenience in software at high level of abstraction and ability of solving the problem of weak security background for developers.","PeriodicalId":231903,"journal":{"name":"19th Australian Conference on Software Engineering (aswec 2008)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122561309","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The purpose of this work is to define a strategy for the generation of platform independent model (PIM) for the Brazilian satellite launcher (BSL) software, based on the model driven architecture (MDA) approach. To accomplish that, a generic software model is created, using design patterns, to represent a family of satellite launcher vehicles whose characteristics are similar. From this generic model, PIMs are generated for variations of launcher vehicles, based on MDA approach. This strategy can contribute to the development of the software for same-family satellite launcher vehicles, as it defines a systematic for activities related to software modeling, and also allows the increase of BSL software models reuse.
{"title":"A Software Model Reuse Strategy for Brazilian Satellite Launcher","authors":"L. Burgareli, S. Melnikoff, M. Ferreira","doi":"10.1109/ASWEC.2008.27","DOIUrl":"https://doi.org/10.1109/ASWEC.2008.27","url":null,"abstract":"The purpose of this work is to define a strategy for the generation of platform independent model (PIM) for the Brazilian satellite launcher (BSL) software, based on the model driven architecture (MDA) approach. To accomplish that, a generic software model is created, using design patterns, to represent a family of satellite launcher vehicles whose characteristics are similar. From this generic model, PIMs are generated for variations of launcher vehicles, based on MDA approach. This strategy can contribute to the development of the software for same-family satellite launcher vehicles, as it defines a systematic for activities related to software modeling, and also allows the increase of BSL software models reuse.","PeriodicalId":231903,"journal":{"name":"19th Australian Conference on Software Engineering (aswec 2008)","volume":"97 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122890863","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A range of technologies and teaching strategies may be used to improve the quality of teaching object- oriented (OO) concepts where there is a close relationship between OO analysis and design (OOAD) combined with OO programming (OOP). This study investigates the application of a number of these technologies and teaching strategies across university courses in OOAD and OOP, using an empirical approach based upon attitudinal and student performance data. The systems used include: development environments that provide two-way linkage between UML diagrams and OO program code; interactive whiteboards to allow educational demonstrations that more closely represent actual practice; and an online delivery tool for course content, messages and discussions. Close integration between the processes of OOAD and OOP courses is also investigated. The approaches significantly improved student grades, perceived levels of understanding and productivity. The integration of course concepts and assignments, and the electronic discussion boards, are key benefit drivers.
{"title":"Technologies and Strategies for Integrating Object-Oriented Analysis and Design Education with Programming","authors":"J. Debuse, Tony Stiller","doi":"10.1109/ASWEC.2008.6","DOIUrl":"https://doi.org/10.1109/ASWEC.2008.6","url":null,"abstract":"A range of technologies and teaching strategies may be used to improve the quality of teaching object- oriented (OO) concepts where there is a close relationship between OO analysis and design (OOAD) combined with OO programming (OOP). This study investigates the application of a number of these technologies and teaching strategies across university courses in OOAD and OOP, using an empirical approach based upon attitudinal and student performance data. The systems used include: development environments that provide two-way linkage between UML diagrams and OO program code; interactive whiteboards to allow educational demonstrations that more closely represent actual practice; and an online delivery tool for course content, messages and discussions. Close integration between the processes of OOAD and OOP courses is also investigated. The approaches significantly improved student grades, perceived levels of understanding and productivity. The integration of course concepts and assignments, and the electronic discussion boards, are key benefit drivers.","PeriodicalId":231903,"journal":{"name":"19th Australian Conference on Software Engineering (aswec 2008)","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127235663","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
There are many methods available for prioritising software requirements. Choosing the most suitable one can often be quite difficult. A number of factors need to be considered such as the project development methodology being used, the amount of time available, the amount of information known about requirements, the stage of the project and the degree of information about priority required. This paper examines the type of information available at different stages in a project and matches it to the properties of prioritisation methods. It then recommends the usage of specific prioritisation methods at certain stages of a project.
{"title":"Choosing the Right Prioritisation Method","authors":"S. Hatton","doi":"10.1109/ASWEC.2008.22","DOIUrl":"https://doi.org/10.1109/ASWEC.2008.22","url":null,"abstract":"There are many methods available for prioritising software requirements. Choosing the most suitable one can often be quite difficult. A number of factors need to be considered such as the project development methodology being used, the amount of time available, the amount of information known about requirements, the stage of the project and the degree of information about priority required. This paper examines the type of information available at different stages in a project and matches it to the properties of prioritisation methods. It then recommends the usage of specific prioritisation methods at certain stages of a project.","PeriodicalId":231903,"journal":{"name":"19th Australian Conference on Software Engineering (aswec 2008)","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127181060","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Richard Gil, A. Borges, L. Ramos, Leonardo Contreras
Knowledge representation for specific dominions through ontologies has received great interest, although it is no yet evident an appropriate integration of sub-dominions that contemplate complementary spaces of interpretation. From ontology of dominion of university institutions developed by the authors, it is tried to improve that supported on integration strategic tools. A methodological variant suggested by APFEL is tested, under the context of FOAM incorporated in protege-PROMPT. This proposal considers the systemic quality cube as a reference framework to determine the proportions to the quality of the process and product of incremental integration when "adding and/or adapting" significant semantic and logics, "from the excellent knowledge" from the experts. They were taken from other two public ontologies about the similar domains developed by other ones. A partial evaluation of the resulting ontology was made combining technical of validation complemented with the visual interaction experts through a process based on the support-cognitive paradigm.
{"title":"Ontologies Integration for University Institutions: Approach to an Alignment Evaluation","authors":"Richard Gil, A. Borges, L. Ramos, Leonardo Contreras","doi":"10.1109/ASWEC.2008.45","DOIUrl":"https://doi.org/10.1109/ASWEC.2008.45","url":null,"abstract":"Knowledge representation for specific dominions through ontologies has received great interest, although it is no yet evident an appropriate integration of sub-dominions that contemplate complementary spaces of interpretation. From ontology of dominion of university institutions developed by the authors, it is tried to improve that supported on integration strategic tools. A methodological variant suggested by APFEL is tested, under the context of FOAM incorporated in protege-PROMPT. This proposal considers the systemic quality cube as a reference framework to determine the proportions to the quality of the process and product of incremental integration when \"adding and/or adapting\" significant semantic and logics, \"from the excellent knowledge\" from the experts. They were taken from other two public ontologies about the similar domains developed by other ones. A partial evaluation of the resulting ontology was made combining technical of validation complemented with the visual interaction experts through a process based on the support-cognitive paradigm.","PeriodicalId":231903,"journal":{"name":"19th Australian Conference on Software Engineering (aswec 2008)","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130480024","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Previous studies of Object-Oriented (OO) software have reported avoidance of the inheritance mechanism and cast doubt on the wisdom of 'deep' inheritance levels. From an evolutionary perspective, the picture is unclear - we still know relatively little about how, over time, changes tend to be applied by developers. Our conjecture is that an inheritance hierarchy will tend to grow 'breadth-wise' rather than 'depth-wise'. This claim is made on the basis that developers will avoid extending depth in favour of breadth because of the inherent complexity of having to understand the functionality of superclasses. Thus the goal of our study is to investigate this empirically. We conduct an empirical study of seven Java Open-Source Systems (OSSs) over a series of releases to observe the nature and location of changes within the inheritance hierarchies. Results showed a strong tendency for classes to be added at levels one and two of the hierarchy (rather than anywhere else). Over 96% of classes added over the course of the versions of all systems were at level 1 or level 2. The results suggest that changes cluster in the shallow levels of a hierarchy; this is relevant for developers since it indicates where remedial activities such as refactoring should be focused.
{"title":"An Empirical Study of Evolution of Inheritance in Java OSS","authors":"E. Nasseri, S. Counsell, M. Shepperd","doi":"10.1109/ASWEC.2008.78","DOIUrl":"https://doi.org/10.1109/ASWEC.2008.78","url":null,"abstract":"Previous studies of Object-Oriented (OO) software have reported avoidance of the inheritance mechanism and cast doubt on the wisdom of 'deep' inheritance levels. From an evolutionary perspective, the picture is unclear - we still know relatively little about how, over time, changes tend to be applied by developers. Our conjecture is that an inheritance hierarchy will tend to grow 'breadth-wise' rather than 'depth-wise'. This claim is made on the basis that developers will avoid extending depth in favour of breadth because of the inherent complexity of having to understand the functionality of superclasses. Thus the goal of our study is to investigate this empirically. We conduct an empirical study of seven Java Open-Source Systems (OSSs) over a series of releases to observe the nature and location of changes within the inheritance hierarchies. Results showed a strong tendency for classes to be added at levels one and two of the hierarchy (rather than anywhere else). Over 96% of classes added over the course of the versions of all systems were at level 1 or level 2. The results suggest that changes cluster in the shallow levels of a hierarchy; this is relevant for developers since it indicates where remedial activities such as refactoring should be focused.","PeriodicalId":231903,"journal":{"name":"19th Australian Conference on Software Engineering (aswec 2008)","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130509586","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
F. Gonçalves, C. Bezerra, A. D. Belchior, Ciro Carneiro Coelho, Carlo Giovano S. Pires
Handling problems and defects in software development projects is still a difficult matter in many organizations. The problems' analyses, when performed, usually do not focus on the problems sources and root causes. As a result, bad decisions are taken and the problem is not solved or can even be aggravated by rework, dissatisfaction and increases cost due to lack of quality. These difficulties make it hard for organizations that adopt the CMMI model to implement the Causal Analysis and Resolution (CAR) process area in software projects, as projects usually have to deal with very limited resources. In this context, this work proposes an approach, called MiniDMAIC, for analyzing and resolving defect and problem causes in software development projects. The MiniDMAIC approach is based on Six Sigma's DMAIC methodology and the Causal Analysis and Resolution process area from CMMI Level 5.
{"title":"Implementing Causal Analysis and Resolution in Software Development Projects: The MiniDMAIC Approach","authors":"F. Gonçalves, C. Bezerra, A. D. Belchior, Ciro Carneiro Coelho, Carlo Giovano S. Pires","doi":"10.1109/ASWEC.2008.59","DOIUrl":"https://doi.org/10.1109/ASWEC.2008.59","url":null,"abstract":"Handling problems and defects in software development projects is still a difficult matter in many organizations. The problems' analyses, when performed, usually do not focus on the problems sources and root causes. As a result, bad decisions are taken and the problem is not solved or can even be aggravated by rework, dissatisfaction and increases cost due to lack of quality. These difficulties make it hard for organizations that adopt the CMMI model to implement the Causal Analysis and Resolution (CAR) process area in software projects, as projects usually have to deal with very limited resources. In this context, this work proposes an approach, called MiniDMAIC, for analyzing and resolving defect and problem causes in software development projects. The MiniDMAIC approach is based on Six Sigma's DMAIC methodology and the Causal Analysis and Resolution process area from CMMI Level 5.","PeriodicalId":231903,"journal":{"name":"19th Australian Conference on Software Engineering (aswec 2008)","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2008-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131112157","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}