Cloud Computing is a paradigm reaching more and more people and enterprises. When Cloud Computing... more Cloud Computing is a paradigm reaching more and more people and enterprises. When Cloud Computing joins with mobile devices, it becomes ubiquitous and at the same time even more powerful. To unite these two sides, Mobile Computing with Cloud Computing, there are two possible ways and both using services of Cloud Computing: either using Backend as a Service or Platform as a Service. In this paper, we do an overview on Mobile Cloud Computing and its services, benefits and challenges. We also explain in what consists each service and the differences between Backend as a Service and Software as a Service. Since applications require the usage of these two services, we explore the differences between native, web, and hybrid applications and in what situations each type of application should be developed.
In this work it is proposed the design of a system to handle Distributed Energy Resources (DER), ... more In this work it is proposed the design of a system to handle Distributed Energy Resources (DER), which is a new reality due to Electric Vehicles (EVs), Microgeneration (MG) and the open Electrical Markets (EM). This upcoming reality brings the need of the 'old' central energy control to be installed locally. For that we propose a local energy broker, responsible to handle local energy flow and to exchange energy with 'big' market players, and based on a collaborative approach, to promote user's participation to increase systems knowledge. The energy broker uses an Information Communication Technology (ICT) network to establish a collaborative communication between the involved parts.
Content Management Systems (CMS) are usually considered as important software platforms for the c... more Content Management Systems (CMS) are usually considered as important software platforms for the creation and maintenance of organizational web sites and intranets. Nevertheless, a simple CMS alone typically does not provide enough support for an organization's more complex requirements, such as document management and storage. More specifically, such requirements usually present a set of design and implementation issues, which need to be addressed in an extensible manner if the system is to be maintained and evolved over time.
Content Management Systems (CMSs) are critical software platforms for the success of organization... more Content Management Systems (CMSs) are critical software platforms for the success of organizational web sites and intranets. Although most current CMS systems allow their extension through the addition of modules/components, such modules are usually relatively static, allowing only the configuration of certain parameters that constrain some aspects of their presentation. This paper presents the architecture of WebComfort, a dynamic component-based CMS platform which allows users to manage and operate complex web applications in a dynamic and integrated fashion. The major technical details of this system are described in this paper, such as modules, toolkits, the data repository access, and the WebComfort API.
Adopting a pragmatic attitude, regarding to the high rate of unsuccess verified among IT projects... more Adopting a pragmatic attitude, regarding to the high rate of unsuccess verified among IT projects, and also bearing in mind the importance of the software development process's early stages to overcome this problem, we embraced the goal of creating a CASE tool for requirements specification and validation. Our approach is based on a controlled natural language designated as ProjectIT-RSL and seeks to achieve a higher level of rigor and quality of the produced requirements specifications. The supporting tool, the ProjectIT-Studio/Requirements plugin, belongs to a broader workbench called ProjectIT-Studio, whose main goal is to cover the entire software development life-cycle, providing guidance during the process according to software engineering best practices and methods. This paper presents a small but illustrative requirements specification case study, which emphasizes the current tool's support and its inherent usage advantages during the requirements specification process.
Despite the efforts made to overcome the problems associated with the development of information ... more Despite the efforts made to overcome the problems associated with the development of information systems, it is still an immature activity with negative consequences in time, budget and quality. One of the main causes for this situation is the fact that many projects do not follow a structured, standard and systematic approach, like the methodologies and best practices proposed by the Software Engineering community. In this paper, we overview an innovative approach for the development of information systems, called ProjectIT, and how it is supported by an integrated set of tools, called "ProjectIT-Studio". This approach benefits from the ideas of some of the most referred initiatives, such as the Microsoft's Dynamic Systems Initiative (DSI) or OMG's Model Driven Architecture (MDA).
The emerging MDE paradigm requires modeling tools, such as UML-supporting tools. However, many cu... more The emerging MDE paradigm requires modeling tools, such as UML-supporting tools. However, many current UML modeling tools still do not address some issues, such as defining and applying UML profiles, or the integration with requirements specification tools and code-generators. ProjectIT is a collaborative research project which aims to provide a software development workbench, with support for activities such as requirements engineering, analysis, design, and code generation. This is achieved through the implementation of a plugin-based CASE tool, called ProjectIT-Studio. This paper presents ProjectIT-Studio/UMLModeler, a UML 2.0 visual modeling plugin for ProjectIT-Studio with features such as easy profile definition, "model-to-model" transformations, and integration with the requirements specification and source-code generation tools of ProjectIT-Studio.
The ever increasing demand for more complex and larger software systems stresses the importance o... more The ever increasing demand for more complex and larger software systems stresses the importance of having wellengineered requirements. Requirements Engineering (RE) can no longer be an isolated upfront phase: RE is critical to ensure the success and quality of the delivered system. This paper presents a study of approaches, techniques, and languages for specifying system behavior. From this survey we synthesize a greatest common subset of constructs, which can be adapted for extending the current ProjectIT-RSL language. The purpose is to use the specifications written in this controlled natural language to enable automatic consistency checking to increase stakeholders engagement in RE tasks related with verification and validation.
Software Process Improvement (SPI) is one of the main software development challenges. Unfortunat... more Software Process Improvement (SPI) is one of the main software development challenges. Unfortunately, process descriptions generally do not correspond to the processes actually performed during software development projects. They just represent high-level plans and do not contain the information necessary for the concrete software projects. This deficient alignment between the process and project is caused by processes that are unrelated to project activities and failure in detecting project changes to improve the process. Process and project alignment is essential to really find out how process management is important to achieve an organization's strategic objectives. Considering this approach, this paper presents a comparative study of some of the most recognized SPI approaches and a new software process improvement methodology proposed, designed by Process and Project Alignment Methodology (ProPAM). Our intention is to show the problems observed in existing SPI approach and recognize that further research in process and project alignment based on actor oriented approaches is required.
A Content Management System (CMS) is a critical element for the success of organizational web sit... more A Content Management System (CMS) is a critical element for the success of organizational web sites and intranets. This paper focuses mainly on web-oriented CMSs, and demonstrates the effort spent with the objective to produce a web-oriented CMS framework, fully developed with Microsoft technologies, namely ASP.NET 2.0 (C#) and SQL Server 2005. The major technical details of this project are described in this paper, as well as the related and future work.
Process descriptions represent high-level plans and do not contain information necessary for conc... more Process descriptions represent high-level plans and do not contain information necessary for concrete software projects. Misalignments between processes and projects are caused by processes that are unrelated to daily practices or, hardly, mapped to project practices. We argue that software processes should emerge and evolve collaboratively within an organization. In this article we present a process and project authoring tool based on our vision for agile software process improvement.
Requirements Engineering is a system engineering discipline of paramount importance. Its primary ... more Requirements Engineering is a system engineering discipline of paramount importance. Its primary deliverable is the requirements specification, a document that entails the detailed description of business-specific needs to which the target software system must comply to. Despite the advances brought by modeling techniques, the specification of software systems still consists mostly in manually writing down requirements in natural language. Resorting to natural language to convey requirements has some advantages, such as its expressiveness and the stakeholders proficiency at using it for communication purposes, when compared with semi-formal or formal languages. However, ad-hoc natural language has intrinsic characteristics that make it error-prone, some of which may even hinder the effort of complying with good requirement criteria, regardless the usage of an automated requirements tools. To address this problem, within the scope of the ProjectIT initiative, a requirements specification language named Projec-tIT-RSL was developed, based on common linguistic patterns. Despite covering several structural aspects of the software system under specification (e.g., actors, components, entities, properties, and relationships), ProjectIT-RSL still lacks the support for capturing behavioral concerns.
Os sistemas de gestão de conteúdos têm vindo progressivamente a suportar com vantagem a definição... more Os sistemas de gestão de conteúdos têm vindo progressivamente a suportar com vantagem a definição, gestão e operação da generalidade de portais e sítios Web, em particular aqueles mais complexos e ou dinâmicos. No âmbito do projecto WebComfort, e pelo facto de alguns desses sistemas apresentarem requisitos típicos de comércio electrónico, foi concebido e desenvolvido uma biblioteca de comércio electrónico (WebComfort eCommerce Toolkit), que consiste num conjunto integrado de módulos que podem ser aplicados em diferentes domínios e contextos de negócio. Discute-se neste artigo os aspectos gerais desta biblioteca de módulos, tal como as principais funcionalidades suportadas e aspectos em aberto.
Software Process Improvement (SPI) is one of the main software development challenges. Unfortunat... more Software Process Improvement (SPI) is one of the main software development challenges. Unfortunately, process descriptions generally do not correspond to the processes actually performed during software development projects. Process and project alignment is essential to really find out how process improvement is important to achieve an organization's strategic objectives. Considering this approach, this paper presents a new software SPI methodology designated by Process and Project Alignment Methodology (ProPAM). As a complement to be aware about project changes and facilitate the migration to an improved process, we propose a metric called ProPAMet to analyze the alignment between process and projects. To conclude, a case study contributed to validate the effectiveness of ProPAM and ProPAMet.
Software Process Improvement is one of the main software development challenges. Unfortunately, p... more Software Process Improvement is one of the main software development challenges. Unfortunately, process descriptions generally do not correspond to the processes actually performed during software development projects. They just represent high-level plans and do not contain the information necessary in a software project. This lack of alignment between the process and project is caused by processes that are unrelated to project activities and failure in detecting project changes to improve the process. Process and project alignment is essential to really find out how process management is important to achieve an organization's strategic objectives. Considering this alignment, this paper presents a software process improvement methodology designed by Process and Project Alignment Methodology (ProPAM).
Cloud Computing is a paradigm reaching more and more people and enterprises. When Cloud Computing... more Cloud Computing is a paradigm reaching more and more people and enterprises. When Cloud Computing joins with mobile devices, it becomes ubiquitous and at the same time even more powerful. To unite these two sides, Mobile Computing with Cloud Computing, there are two possible ways and both using services of Cloud Computing: either using Backend as a Service or Platform as a Service. In this paper, we do an overview on Mobile Cloud Computing and its services, benefits and challenges. We also explain in what consists each service and the differences between Backend as a Service and Software as a Service. Since applications require the usage of these two services, we explore the differences between native, web, and hybrid applications and in what situations each type of application should be developed.
In this work it is proposed the design of a system to handle Distributed Energy Resources (DER), ... more In this work it is proposed the design of a system to handle Distributed Energy Resources (DER), which is a new reality due to Electric Vehicles (EVs), Microgeneration (MG) and the open Electrical Markets (EM). This upcoming reality brings the need of the 'old' central energy control to be installed locally. For that we propose a local energy broker, responsible to handle local energy flow and to exchange energy with 'big' market players, and based on a collaborative approach, to promote user's participation to increase systems knowledge. The energy broker uses an Information Communication Technology (ICT) network to establish a collaborative communication between the involved parts.
Content Management Systems (CMS) are usually considered as important software platforms for the c... more Content Management Systems (CMS) are usually considered as important software platforms for the creation and maintenance of organizational web sites and intranets. Nevertheless, a simple CMS alone typically does not provide enough support for an organization's more complex requirements, such as document management and storage. More specifically, such requirements usually present a set of design and implementation issues, which need to be addressed in an extensible manner if the system is to be maintained and evolved over time.
Content Management Systems (CMSs) are critical software platforms for the success of organization... more Content Management Systems (CMSs) are critical software platforms for the success of organizational web sites and intranets. Although most current CMS systems allow their extension through the addition of modules/components, such modules are usually relatively static, allowing only the configuration of certain parameters that constrain some aspects of their presentation. This paper presents the architecture of WebComfort, a dynamic component-based CMS platform which allows users to manage and operate complex web applications in a dynamic and integrated fashion. The major technical details of this system are described in this paper, such as modules, toolkits, the data repository access, and the WebComfort API.
Adopting a pragmatic attitude, regarding to the high rate of unsuccess verified among IT projects... more Adopting a pragmatic attitude, regarding to the high rate of unsuccess verified among IT projects, and also bearing in mind the importance of the software development process's early stages to overcome this problem, we embraced the goal of creating a CASE tool for requirements specification and validation. Our approach is based on a controlled natural language designated as ProjectIT-RSL and seeks to achieve a higher level of rigor and quality of the produced requirements specifications. The supporting tool, the ProjectIT-Studio/Requirements plugin, belongs to a broader workbench called ProjectIT-Studio, whose main goal is to cover the entire software development life-cycle, providing guidance during the process according to software engineering best practices and methods. This paper presents a small but illustrative requirements specification case study, which emphasizes the current tool's support and its inherent usage advantages during the requirements specification process.
Despite the efforts made to overcome the problems associated with the development of information ... more Despite the efforts made to overcome the problems associated with the development of information systems, it is still an immature activity with negative consequences in time, budget and quality. One of the main causes for this situation is the fact that many projects do not follow a structured, standard and systematic approach, like the methodologies and best practices proposed by the Software Engineering community. In this paper, we overview an innovative approach for the development of information systems, called ProjectIT, and how it is supported by an integrated set of tools, called "ProjectIT-Studio". This approach benefits from the ideas of some of the most referred initiatives, such as the Microsoft's Dynamic Systems Initiative (DSI) or OMG's Model Driven Architecture (MDA).
The emerging MDE paradigm requires modeling tools, such as UML-supporting tools. However, many cu... more The emerging MDE paradigm requires modeling tools, such as UML-supporting tools. However, many current UML modeling tools still do not address some issues, such as defining and applying UML profiles, or the integration with requirements specification tools and code-generators. ProjectIT is a collaborative research project which aims to provide a software development workbench, with support for activities such as requirements engineering, analysis, design, and code generation. This is achieved through the implementation of a plugin-based CASE tool, called ProjectIT-Studio. This paper presents ProjectIT-Studio/UMLModeler, a UML 2.0 visual modeling plugin for ProjectIT-Studio with features such as easy profile definition, "model-to-model" transformations, and integration with the requirements specification and source-code generation tools of ProjectIT-Studio.
The ever increasing demand for more complex and larger software systems stresses the importance o... more The ever increasing demand for more complex and larger software systems stresses the importance of having wellengineered requirements. Requirements Engineering (RE) can no longer be an isolated upfront phase: RE is critical to ensure the success and quality of the delivered system. This paper presents a study of approaches, techniques, and languages for specifying system behavior. From this survey we synthesize a greatest common subset of constructs, which can be adapted for extending the current ProjectIT-RSL language. The purpose is to use the specifications written in this controlled natural language to enable automatic consistency checking to increase stakeholders engagement in RE tasks related with verification and validation.
Software Process Improvement (SPI) is one of the main software development challenges. Unfortunat... more Software Process Improvement (SPI) is one of the main software development challenges. Unfortunately, process descriptions generally do not correspond to the processes actually performed during software development projects. They just represent high-level plans and do not contain the information necessary for the concrete software projects. This deficient alignment between the process and project is caused by processes that are unrelated to project activities and failure in detecting project changes to improve the process. Process and project alignment is essential to really find out how process management is important to achieve an organization's strategic objectives. Considering this approach, this paper presents a comparative study of some of the most recognized SPI approaches and a new software process improvement methodology proposed, designed by Process and Project Alignment Methodology (ProPAM). Our intention is to show the problems observed in existing SPI approach and recognize that further research in process and project alignment based on actor oriented approaches is required.
A Content Management System (CMS) is a critical element for the success of organizational web sit... more A Content Management System (CMS) is a critical element for the success of organizational web sites and intranets. This paper focuses mainly on web-oriented CMSs, and demonstrates the effort spent with the objective to produce a web-oriented CMS framework, fully developed with Microsoft technologies, namely ASP.NET 2.0 (C#) and SQL Server 2005. The major technical details of this project are described in this paper, as well as the related and future work.
Process descriptions represent high-level plans and do not contain information necessary for conc... more Process descriptions represent high-level plans and do not contain information necessary for concrete software projects. Misalignments between processes and projects are caused by processes that are unrelated to daily practices or, hardly, mapped to project practices. We argue that software processes should emerge and evolve collaboratively within an organization. In this article we present a process and project authoring tool based on our vision for agile software process improvement.
Requirements Engineering is a system engineering discipline of paramount importance. Its primary ... more Requirements Engineering is a system engineering discipline of paramount importance. Its primary deliverable is the requirements specification, a document that entails the detailed description of business-specific needs to which the target software system must comply to. Despite the advances brought by modeling techniques, the specification of software systems still consists mostly in manually writing down requirements in natural language. Resorting to natural language to convey requirements has some advantages, such as its expressiveness and the stakeholders proficiency at using it for communication purposes, when compared with semi-formal or formal languages. However, ad-hoc natural language has intrinsic characteristics that make it error-prone, some of which may even hinder the effort of complying with good requirement criteria, regardless the usage of an automated requirements tools. To address this problem, within the scope of the ProjectIT initiative, a requirements specification language named Projec-tIT-RSL was developed, based on common linguistic patterns. Despite covering several structural aspects of the software system under specification (e.g., actors, components, entities, properties, and relationships), ProjectIT-RSL still lacks the support for capturing behavioral concerns.
Os sistemas de gestão de conteúdos têm vindo progressivamente a suportar com vantagem a definição... more Os sistemas de gestão de conteúdos têm vindo progressivamente a suportar com vantagem a definição, gestão e operação da generalidade de portais e sítios Web, em particular aqueles mais complexos e ou dinâmicos. No âmbito do projecto WebComfort, e pelo facto de alguns desses sistemas apresentarem requisitos típicos de comércio electrónico, foi concebido e desenvolvido uma biblioteca de comércio electrónico (WebComfort eCommerce Toolkit), que consiste num conjunto integrado de módulos que podem ser aplicados em diferentes domínios e contextos de negócio. Discute-se neste artigo os aspectos gerais desta biblioteca de módulos, tal como as principais funcionalidades suportadas e aspectos em aberto.
Software Process Improvement (SPI) is one of the main software development challenges. Unfortunat... more Software Process Improvement (SPI) is one of the main software development challenges. Unfortunately, process descriptions generally do not correspond to the processes actually performed during software development projects. Process and project alignment is essential to really find out how process improvement is important to achieve an organization's strategic objectives. Considering this approach, this paper presents a new software SPI methodology designated by Process and Project Alignment Methodology (ProPAM). As a complement to be aware about project changes and facilitate the migration to an improved process, we propose a metric called ProPAMet to analyze the alignment between process and projects. To conclude, a case study contributed to validate the effectiveness of ProPAM and ProPAMet.
Software Process Improvement is one of the main software development challenges. Unfortunately, p... more Software Process Improvement is one of the main software development challenges. Unfortunately, process descriptions generally do not correspond to the processes actually performed during software development projects. They just represent high-level plans and do not contain the information necessary in a software project. This lack of alignment between the process and project is caused by processes that are unrelated to project activities and failure in detecting project changes to improve the process. Process and project alignment is essential to really find out how process management is important to achieve an organization's strategic objectives. Considering this alignment, this paper presents a software process improvement methodology designed by Process and Project Alignment Methodology (ProPAM).
Uploads
Papers by Alberto Silva