Next generation applications and services have to be user- centric, and therefore must satisfy us... more Next generation applications and services have to be user- centric, and therefore must satisfy users’ needs and improve users’ lives. These systems also have to be able to adapt to different contexts, foresee users’ intentions, provide recommendations accordingly and protect users’ privacy at the same time. In this paper we present our research on context-awareness applications, context-recognition techniques and privacy and trust. To demonstrate the feasibility and the progress in this area, we have developed a set of representative applications, two of which are presented in this paper. This perspective is the first glimpse of the forthcoming applications and services in the mobile domain. In the discussion, we summarize the many possibilities and describe the challenges for the research brought in by these new topics.
The evolution of product family typically oscillates between growing and consolidating phases. Th... more The evolution of product family typically oscillates between growing and consolidating phases. The migration path starts from a copy/paste approach that offers the fastest time-to-market and then moves towards a mature software platform that offers a higher throughput of products. We have identified several issues that harm the evolution of the family: new requirements that can break the architectural integrity of the family, increasing level of bureaucracy in the organization and a slower process of change. In this article we present two approaches for coping with the family evolution: architecture assessment and architecture reconstruction. We also present Nokia case studies where the methods have been successfully applied.
A dynamic memory management system has to take care of the allocation and deallocation of memory ... more A dynamic memory management system has to take care of the allocation and deallocation of memory blocks in a software system. Real-time embedded systems add some more constraints to the design and the implementation of dynamic memory management systems if compared with the PC world. An increasing number of features are added to embedded mobile devices, however, resources like dynamic memory are limited. In addition, in real-time systems, real-time deadlines must be respected and allocations and deallocations must be done in due time. In this paper we present a case study on evaluating dynamic memory management in embedded real-time systems. We have used a scenario-based approach and used a simulation environment to evaluate the performance of different dynamic memory management systems. Our contribution is to present a practical approach, the tools and the rationales to evaluate dynamic memory management in embedded real-time systems.
Performance is an important non-functional quality at- tribute of a software system but not alway... more Performance is an important non-functional quality at- tribute of a software system but not always is considered when a software is designed. Furthermore, software evolves and changes can negatively affect the performance. New requirements could introduce performance problems and the need for a different architecture design. Even if the architecture has been designed to be easy to extend and flexible enough to be modified to perform its function, a software component designed to be too general and flexible can slower the execution of the application. Performance tuning is a way to assess the characteristics of an existing software and highlight design flaws or inefficiencies. Periodical performance tuning inspections and architecture assessments can help to discover potential bottlenecks before it is too late especially when changes and requirements are added to the architecture design. In this paper a performance tuning experience of one Nokia product family architecture will be described. Assessing a product family architecture means also taking into account the performance of the entire line of products and optimizations must include or at least not penalize its members.
When a set of people are connected by a set of meaningful social relationships we talk of a socia... more When a set of people are connected by a set of meaningful social relationships we talk of a social network. A social network represents a social structure and the underlying structural patterns can be used to analyze and comprehend how people relate to each other and their emergent behavior as a group. Developing software is fundamentally a human activity. Developers cooperate and exchange knowledge and information, creating in fact, a particular type of social network that we call knowledge network. In this paper we investigate knowledge networks in software development teams by applying social network analysis and we use the Apache web server as a case study. By analyzing the structural communication and coordination patterns in Apache we have been able to identify the Apache knowledge network, highlight potential communication bottlenecks, and find brokers and important coordination points in the software development team. Furthermore, our work enables a software architect to analyze and maintain the organization and the software architecture aligned during software evolution. An important lesson that we have is that the analysis of knowledge networks constitutes an additional tool to be added to the traditional software architecture assessment methods
Software performance is an important non-functional quality attribute and software performance ev... more Software performance is an important non-functional quality attribute and software performance evaluation is an essential activity in the software development process. Especially in embedded real-time systems, software design and evaluation are driven by the needs to optimize the limited resources, to respect time deadlines and, at the same time, to produce the best experience for end-users. Software product family architectures add additional requirements to the evaluation process. In this case, the evaluation includes the analysis of the optimizations and tradeoffs for the whole products in the family. Performance evaluation of software product family architectures requires knowledge and a clear understanding of different domains: software architecture assessments, software performance and software product family architecture. We have used a scenario-driven approach to evaluate performance and dynamic memory management efficiency in one Nokia software product family architecture. In this paper we present two case studies. Furthermore, we discuss the implications and tradeoffs of software performance against evolvability and maintenability in software product family architectures.
The need for software architecture evaluation is based on the realization that software developme... more The need for software architecture evaluation is based on the realization that software development, like all engineering disciplines, is a process of continuous modeling and refinement. Detecting architectural problems before the bulk of development work is done allows re-architecting activities to take place in due time, without having to rework what has already been done. At the same time, tuning activities allow software performance to be enhanced and maintained during the software lifetime. When dealing with product families, architectural evaluations have an even more crucial role: the evaluations are targeted to a set of common products. We have tried different approaches to software assessments with our mobile phone software, an embedded real-time software platform, which must support an increasingly large number of different product variants. In this paper, we present a case study and discuss the experiences gained with three different assessment techniques that we have worked on during the past five years. The assessment techniques presented include scenario-based software architecture assessment, software performance assessment and experience-based assessment. The various evaluation techniques are complementary and, when used together, constitute a tool which a software architect must be aware of in order to maintain and evolve a large software intensive system.
2007 IEEE 18th International Symposium on Personal, Indoor and Mobile Radio Communications, 2007
Next generation applications and services have to be usercentric, and therefore must satisfy user... more Next generation applications and services have to be usercentric, and therefore must satisfy users' needs and improve users' lives. These systems also have to be able to adapt to different contexts, foresee users' intentions, provide recommendations accordingly and protect users' privacy at the same time.
Message from the Chairs………………………………………………………………………………… ……………………………..ix Organizers and Committees…... more Message from the Chairs………………………………………………………………………………… ……………………………..ix Organizers and Committees…………………………………………… ……………………………………………………………………..x ... Risk Themes Discovered Through Architecture Evaluations………………………………………………………….1 L. Bass, R. Nord, W. Wood and D. Zubrow ... Assessing the Architectonics of Large, Software-Intensive Systems Using a Knowledge- Based Approach…………………………………………………………… ...
Next generation applications and services have to be user- centric, and therefore must satisfy us... more Next generation applications and services have to be user- centric, and therefore must satisfy users’ needs and improve users’ lives. These systems also have to be able to adapt to different contexts, foresee users’ intentions, provide recommendations accordingly and protect users’ privacy at the same time. In this paper we present our research on context-awareness applications, context-recognition techniques and privacy and trust. To demonstrate the feasibility and the progress in this area, we have developed a set of representative applications, two of which are presented in this paper. This perspective is the first glimpse of the forthcoming applications and services in the mobile domain. In the discussion, we summarize the many possibilities and describe the challenges for the research brought in by these new topics.
The evolution of product family typically oscillates between growing and consolidating phases. Th... more The evolution of product family typically oscillates between growing and consolidating phases. The migration path starts from a copy/paste approach that offers the fastest time-to-market and then moves towards a mature software platform that offers a higher throughput of products. We have identified several issues that harm the evolution of the family: new requirements that can break the architectural integrity of the family, increasing level of bureaucracy in the organization and a slower process of change. In this article we present two approaches for coping with the family evolution: architecture assessment and architecture reconstruction. We also present Nokia case studies where the methods have been successfully applied.
A dynamic memory management system has to take care of the allocation and deallocation of memory ... more A dynamic memory management system has to take care of the allocation and deallocation of memory blocks in a software system. Real-time embedded systems add some more constraints to the design and the implementation of dynamic memory management systems if compared with the PC world. An increasing number of features are added to embedded mobile devices, however, resources like dynamic memory are limited. In addition, in real-time systems, real-time deadlines must be respected and allocations and deallocations must be done in due time. In this paper we present a case study on evaluating dynamic memory management in embedded real-time systems. We have used a scenario-based approach and used a simulation environment to evaluate the performance of different dynamic memory management systems. Our contribution is to present a practical approach, the tools and the rationales to evaluate dynamic memory management in embedded real-time systems.
Performance is an important non-functional quality at- tribute of a software system but not alway... more Performance is an important non-functional quality at- tribute of a software system but not always is considered when a software is designed. Furthermore, software evolves and changes can negatively affect the performance. New requirements could introduce performance problems and the need for a different architecture design. Even if the architecture has been designed to be easy to extend and flexible enough to be modified to perform its function, a software component designed to be too general and flexible can slower the execution of the application. Performance tuning is a way to assess the characteristics of an existing software and highlight design flaws or inefficiencies. Periodical performance tuning inspections and architecture assessments can help to discover potential bottlenecks before it is too late especially when changes and requirements are added to the architecture design. In this paper a performance tuning experience of one Nokia product family architecture will be described. Assessing a product family architecture means also taking into account the performance of the entire line of products and optimizations must include or at least not penalize its members.
When a set of people are connected by a set of meaningful social relationships we talk of a socia... more When a set of people are connected by a set of meaningful social relationships we talk of a social network. A social network represents a social structure and the underlying structural patterns can be used to analyze and comprehend how people relate to each other and their emergent behavior as a group. Developing software is fundamentally a human activity. Developers cooperate and exchange knowledge and information, creating in fact, a particular type of social network that we call knowledge network. In this paper we investigate knowledge networks in software development teams by applying social network analysis and we use the Apache web server as a case study. By analyzing the structural communication and coordination patterns in Apache we have been able to identify the Apache knowledge network, highlight potential communication bottlenecks, and find brokers and important coordination points in the software development team. Furthermore, our work enables a software architect to analyze and maintain the organization and the software architecture aligned during software evolution. An important lesson that we have is that the analysis of knowledge networks constitutes an additional tool to be added to the traditional software architecture assessment methods
Software performance is an important non-functional quality attribute and software performance ev... more Software performance is an important non-functional quality attribute and software performance evaluation is an essential activity in the software development process. Especially in embedded real-time systems, software design and evaluation are driven by the needs to optimize the limited resources, to respect time deadlines and, at the same time, to produce the best experience for end-users. Software product family architectures add additional requirements to the evaluation process. In this case, the evaluation includes the analysis of the optimizations and tradeoffs for the whole products in the family. Performance evaluation of software product family architectures requires knowledge and a clear understanding of different domains: software architecture assessments, software performance and software product family architecture. We have used a scenario-driven approach to evaluate performance and dynamic memory management efficiency in one Nokia software product family architecture. In this paper we present two case studies. Furthermore, we discuss the implications and tradeoffs of software performance against evolvability and maintenability in software product family architectures.
The need for software architecture evaluation is based on the realization that software developme... more The need for software architecture evaluation is based on the realization that software development, like all engineering disciplines, is a process of continuous modeling and refinement. Detecting architectural problems before the bulk of development work is done allows re-architecting activities to take place in due time, without having to rework what has already been done. At the same time, tuning activities allow software performance to be enhanced and maintained during the software lifetime. When dealing with product families, architectural evaluations have an even more crucial role: the evaluations are targeted to a set of common products. We have tried different approaches to software assessments with our mobile phone software, an embedded real-time software platform, which must support an increasingly large number of different product variants. In this paper, we present a case study and discuss the experiences gained with three different assessment techniques that we have worked on during the past five years. The assessment techniques presented include scenario-based software architecture assessment, software performance assessment and experience-based assessment. The various evaluation techniques are complementary and, when used together, constitute a tool which a software architect must be aware of in order to maintain and evolve a large software intensive system.
2007 IEEE 18th International Symposium on Personal, Indoor and Mobile Radio Communications, 2007
Next generation applications and services have to be usercentric, and therefore must satisfy user... more Next generation applications and services have to be usercentric, and therefore must satisfy users' needs and improve users' lives. These systems also have to be able to adapt to different contexts, foresee users' intentions, provide recommendations accordingly and protect users' privacy at the same time.
Message from the Chairs………………………………………………………………………………… ……………………………..ix Organizers and Committees…... more Message from the Chairs………………………………………………………………………………… ……………………………..ix Organizers and Committees…………………………………………… ……………………………………………………………………..x ... Risk Themes Discovered Through Architecture Evaluations………………………………………………………….1 L. Bass, R. Nord, W. Wood and D. Zubrow ... Assessing the Architectonics of Large, Software-Intensive Systems Using a Knowledge- Based Approach…………………………………………………………… ...
Uploads
Papers by C. Del Rosso