Summary form only given. During the object-oriented software development process, a variety of models of the system is built. All these models are not independent, but they are related to each other. Elements in one model have trace dependencies to other models; they are semantically overlapping and together represent the system as a whole. It is necessary to have a precise definition of the syntax and semantics of the different models and their relationships, since the lack of accuracy in their definition can lead to wrong model interpretations and inconsistency between models. The paper considers the notion of formal contract regulating the activities in the software development process. It defines the concept of software process contract (sp-contract).
{"title":"Reasoning about the correctness of software development process","authors":"C. Pons, G. Baum","doi":"10.1145/581457.581459","DOIUrl":"https://doi.org/10.1145/581457.581459","url":null,"abstract":"Summary form only given. During the object-oriented software development process, a variety of models of the system is built. All these models are not independent, but they are related to each other. Elements in one model have trace dependencies to other models; they are semantically overlapping and together represent the system as a whole. It is necessary to have a precise definition of the syntax and semantics of the different models and their relationships, since the lack of accuracy in their definition can lead to wrong model interpretations and inconsistency between models. The paper considers the notion of formal contract regulating the activities in the software development process. It defines the concept of software process contract (sp-contract).","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128041209","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}
Software engineers confront many challenges during software development. One challenge is managing the relationships that exist between software artifacts. We refer to this task as information integration, since establishing a relationship between documents typically implies that an engineer must integrate information from each of the documents to perform a development task. In the past, we have applied open hypermedia techniques and technology to address this challenge. We now extend this work with the development of an information integration environment. We present the design of our environment along with details of its first prototype implementation. Furthermore, we describe our efforts to evaluate the utility of our approach. Our first experiment involves the discovery of keyword relationships between text-based software artifacts. Our second experiment examines the code of an open source project and generates a report on how its module relationships have evolved over time. Finally, our third experiment develops the capability to link code claiming to implement W3C (World Wide Web Consortium) standards with the XHTML (eXtensible HTML) representation of the standards themselves. These experiments combine to demonstrate the promise of our approach. We conclude by asserting that the process of software development can be significantly enhanced if more tools made their relationships available for integration.
{"title":"Towards large-scale information integration","authors":"K. Anderson, S. A. Sherba, W. V. Lepthien","doi":"10.1145/581400.581403","DOIUrl":"https://doi.org/10.1145/581400.581403","url":null,"abstract":"Software engineers confront many challenges during software development. One challenge is managing the relationships that exist between software artifacts. We refer to this task as information integration, since establishing a relationship between documents typically implies that an engineer must integrate information from each of the documents to perform a development task. In the past, we have applied open hypermedia techniques and technology to address this challenge. We now extend this work with the development of an information integration environment. We present the design of our environment along with details of its first prototype implementation. Furthermore, we describe our efforts to evaluate the utility of our approach. Our first experiment involves the discovery of keyword relationships between text-based software artifacts. Our second experiment examines the code of an open source project and generates a report on how its module relationships have evolved over time. Finally, our third experiment develops the capability to link code claiming to implement W3C (World Wide Web Consortium) standards with the XHTML (eXtensible HTML) representation of the standards themselves. These experiments combine to demonstrate the promise of our approach. We conclude by asserting that the process of software development can be significantly enhanced if more tools made their relationships available for integration.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"127 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128680622","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}
Primary objective of this paper is to offer an exclusive view of constructing and deploying enterprise portals by using a component-based development approach. As the dot-com hype dies down, most companies are forced to revisit their enterprisewide Web integration strategies. This paper offers a pragmatic roadmap that these companies may follow in their upcoming enterprise portal deployment initiatives. The academic world plays a significant role in the advances of the portal technology. In this paper, we address the challenges faced in building enterprise portals as a new principle of software engineering. We also explain how the academia will play a significant role in meeting most of these challenges.
{"title":"Building enterprise portals: principles to practice","authors":"T. K. Hazra","doi":"10.1145/581339.581419","DOIUrl":"https://doi.org/10.1145/581339.581419","url":null,"abstract":"Primary objective of this paper is to offer an exclusive view of constructing and deploying enterprise portals by using a component-based development approach. As the dot-com hype dies down, most companies are forced to revisit their enterprisewide Web integration strategies. This paper offers a pragmatic roadmap that these companies may follow in their upcoming enterprise portal deployment initiatives. The academic world plays a significant role in the advances of the portal technology. In this paper, we address the challenges faced in building enterprise portals as a new principle of software engineering. We also explain how the academia will play a significant role in meeting most of these challenges.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"90 8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124534226","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}
Pub Date : 2002-05-19DOI: 10.1109/ICSE.2002.1008050
S. T. Acuña, C.M. Lasserre, V.E. Quincoces
In this paper, an empirical validation of a person-to-role allocation process is presented. In this process, the allocation of people to fulfil roles is made according to the capacities that the people possess and those required by the roles in the software process. A set of experiments are carried out dealing with the development of the initiation, planning and estimation process, domain study process, requirements analysis process and design process of eight projects. It was proved that the estimated time deviation, as well as the errors found in the technical reviews of requirements specification, were less when the people fulfilling the roles of planning engineer, domain analyst, requirements specifier and designer were allocated, according to the proposed process, by considering the set of critical human capacities.
{"title":"Human capacities in the software process: empiric validation","authors":"S. T. Acuña, C.M. Lasserre, V.E. Quincoces","doi":"10.1109/ICSE.2002.1008050","DOIUrl":"https://doi.org/10.1109/ICSE.2002.1008050","url":null,"abstract":"In this paper, an empirical validation of a person-to-role allocation process is presented. In this process, the allocation of people to fulfil roles is made according to the capacities that the people possess and those required by the roles in the software process. A set of experiments are carried out dealing with the development of the initiation, planning and estimation process, domain study process, requirements analysis process and design process of eight projects. It was proved that the estimated time deviation, as well as the errors found in the technical reviews of requirements specification, were less when the people fulfilling the roles of planning engineer, domain analyst, requirements specifier and designer were allocated, according to the proposed process, by considering the set of critical human capacities.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"74 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126275996","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}
Extreme programming is one of the most discussed subjects in the software development community. But what makes XP extreme? And how does it fit into the New World of agile methodologies? This paper establishes the underpinnings of agile methodology and explains why you might want to try one. It shows how XP uses a set of practices to build an effective software development team that produces quality software in a predictable and repeatable manner.
{"title":"Introduction to agile processes and extreme programming","authors":"James Newkirk","doi":"10.1145/581339.581450","DOIUrl":"https://doi.org/10.1145/581339.581450","url":null,"abstract":"Extreme programming is one of the most discussed subjects in the software development community. But what makes XP extreme? And how does it fit into the New World of agile methodologies? This paper establishes the underpinnings of agile methodology and explains why you might want to try one. It shows how XP uses a set of practices to build an effective software development team that produces quality software in a predictable and repeatable manner.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"158 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125502444","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}
Safety-critical systems are those systems whose failure could result in loss of life, significant property damage or damage to the environment. There are many well-known examples in application areas such as medical devices, aircraft flight control, weapons and nuclear systems. Many modern information systems are becoming safety-critical in a general sense because financial loss and even loss of life can result from their failure. Future safety-critical systems will be more common and more powerful. From a software perspective, developing safety-critical systems in the numbers required and with adequate dependability is going to require significant advances in areas such as specification, architecture, verification and the software process. The very visible problems that have arisen in the area of information system security suggests that security is a major challenge too.
{"title":"Safety critical systems: challenges and directions","authors":"J. Knight","doi":"10.1145/581339.581406","DOIUrl":"https://doi.org/10.1145/581339.581406","url":null,"abstract":"Safety-critical systems are those systems whose failure could result in loss of life, significant property damage or damage to the environment. There are many well-known examples in application areas such as medical devices, aircraft flight control, weapons and nuclear systems. Many modern information systems are becoming safety-critical in a general sense because financial loss and even loss of life can result from their failure. Future safety-critical systems will be more common and more powerful. From a software perspective, developing safety-critical systems in the numbers required and with adequate dependability is going to require significant advances in areas such as specification, architecture, verification and the software process. The very visible problems that have arisen in the area of information system security suggests that security is a major challenge too.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"47 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127239355","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}
J. Gouveia, G. Koutsoukos, M. Wermelinger, L. Andrade, J. Fiadeiro
Summary form only given. The authors consider coordination contracts, a modelling primitive based on methodological and mathematical principles, that facilitates the evolution of software systems. Coordination contracts encapsulate the coordination aspects, i.e., the way components interact, and as such may capture the business rules or the protocols that govern interactions within the application and between the application and its environment. For this approach to be usable in real applications, it requires a tool to support system development and evolution using coordination contracts. The Coordination Development Environment (CDE) helps programmers to develop Java applications using coordination contracts.
{"title":"Coordination contracts for Java applications","authors":"J. Gouveia, G. Koutsoukos, M. Wermelinger, L. Andrade, J. Fiadeiro","doi":"10.1145/581339.581465","DOIUrl":"https://doi.org/10.1145/581339.581465","url":null,"abstract":"Summary form only given. The authors consider coordination contracts, a modelling primitive based on methodological and mathematical principles, that facilitates the evolution of software systems. Coordination contracts encapsulate the coordination aspects, i.e., the way components interact, and as such may capture the business rules or the protocols that govern interactions within the application and between the application and its environment. For this approach to be usable in real applications, it requires a tool to support system development and evolution using coordination contracts. The Coordination Development Environment (CDE) helps programmers to develop Java applications using coordination contracts.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"148 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126193591","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}
Many software organizations are in the transition from project-centric to architecture-centric engineering of software. This tutorial addresses this development by providing an overview and in-depth treatment of the issues surrounding the architecture-centric engineering of software. Topics include software architecture design in the presence of existing components and infrastructure (top-down versus bottom-up), architecture evaluation and assessment, software artefact variability management, software product lines and the role of the software architect. These topics are, in addition to the technical perspective, discussed from process and organizational viewpoints. The topics are extensively illustrated by examples and experiences from many industrial cases. The tutorial presents our experiences, reflections and research results concerning architecture-centric software engineering.
{"title":"Architecture-centric software engineering","authors":"J. Bosch","doi":"10.1145/581339.581443","DOIUrl":"https://doi.org/10.1145/581339.581443","url":null,"abstract":"Many software organizations are in the transition from project-centric to architecture-centric engineering of software. This tutorial addresses this development by providing an overview and in-depth treatment of the issues surrounding the architecture-centric engineering of software. Topics include software architecture design in the presence of existing components and infrastructure (top-down versus bottom-up), architecture evaluation and assessment, software artefact variability management, software product lines and the role of the software architect. These topics are, in addition to the technical perspective, discussed from process and organizational viewpoints. The topics are extensively illustrated by examples and experiences from many industrial cases. The tutorial presents our experiences, reflections and research results concerning architecture-centric software engineering.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-04-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116132547","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}
Summary form only given. While historically software validation focused on the functional requirements, recent approaches also encompass the validation of quality requirements; for example, system reliability, performance or usability. Application development for mobile platforms opens an additional area of quality - power consumption. In PDAs or mobile phones, power consumption varies depending on the hardware resources used, making it possible to specify and validate correct or incorrect executions. Tools to find the power inconsistencies and to validate software from the energy point of view are needed. We obtained the power consumption and global event traces of mobile phone applications and matched them against the power consumption model providing the first evidence that software can be validated for the energy consumption.
{"title":"Software validation using power profiles","authors":"Raimondas Lencevicius, Edu Metz, A. Ran","doi":"10.1145/581339.581460","DOIUrl":"https://doi.org/10.1145/581339.581460","url":null,"abstract":"Summary form only given. While historically software validation focused on the functional requirements, recent approaches also encompass the validation of quality requirements; for example, system reliability, performance or usability. Application development for mobile platforms opens an additional area of quality - power consumption. In PDAs or mobile phones, power consumption varies depending on the hardware resources used, making it possible to specify and validate correct or incorrect executions. Tools to find the power inconsistencies and to validate software from the energy point of view are needed. We obtained the power consumption and global event traces of mobile phone applications and matched them against the power consumption model providing the first evidence that software can be validated for the energy consumption.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"46 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-01-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114553441","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}
Pub Date : 1900-01-01DOI: 10.1109/ICSE.2002.1007975
P. Graunke, S. Krishnamurthi
Web and GUI programs represent two extremely common and popular modes of human-computer interaction. Many GUI programs share the Web's notion of browsing through data and decision trees. The paper compares the user's browsing power in the two cases and illustrates that many GUI programs fall short of the Web's power to clone windows and bookmark applications. It identifies a key implementation problem that GUI programs must overcome to provide this power. It then describes a theoretically well-founded programming pattern, which we have automated, that endows GUI programs with these capabilities. The paper provides concrete examples of the transformation in action.
{"title":"Advanced control flows for flexible graphical user interfaces or, growing GUIs on trees or, bookmarking GUIs","authors":"P. Graunke, S. Krishnamurthi","doi":"10.1109/ICSE.2002.1007975","DOIUrl":"https://doi.org/10.1109/ICSE.2002.1007975","url":null,"abstract":"Web and GUI programs represent two extremely common and popular modes of human-computer interaction. Many GUI programs share the Web's notion of browsing through data and decision trees. The paper compares the user's browsing power in the two cases and illustrates that many GUI programs fall short of the Web's power to clone windows and bookmark applications. It identifies a key implementation problem that GUI programs must overcome to provide this power. It then describes a theoretically well-founded programming pattern, which we have automated, that endows GUI programs with these capabilities. The paper provides concrete examples of the transformation in action.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"169 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114834359","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}