5 research outputs found
Software development in the post-PC era : towards software development as a service
PhD ThesisEngineering software systems is a complex task which involves various stakeholders
and requires planning and management to succeed. As the role of software in our daily
life is increasing, the complexity of software systems is increasing. Throughout the
short history of software engineering as a discipline, the development practises and
methods have rapidly evolved to seize opportunities enabled by new technologies
(e.g., the Internet) and to overcome economical challenges (e.g., the need for cheaper
and faster development).
Today, we are witnessing the Post-PC era. An era which is characterised by mobility and
services. An era which removes organisational and geographical boundaries. An era
which changes the functionality of software systems and requires alternative methods
for conceiving them.
In this thesis, we envision to execute software development processes in the cloud.
Software processes have a software production aspect and a management aspect. To
the best of our knowledge, there are no academic nor industrial solutions supporting the
entire software development process life-cycle(from both production and management
aspects and its tool-chain execution in the cloud.
Our vision is to use the cloud economies of scale and leverage Model-Driven Engineering
(MDE) to integrate production and management aspects into the development
process. Since software processes are seen as workflows, we investigate using existing
Workflow Management Systems to execute software processes and we find that these
systems are not suitable. Therefore, we propose a reference architecture for Software
Development as a Service (SDaaS). The SDaaS reference architecture is the first proposal
which fully supports development of complex software systems in the cloud.
In addition to the reference architecture, we investigate three specific related challenges
and propose novel solutions addressing them. These challenges are:
Modelling & enacting cloud-based executable software processes. Executing
software processes in the cloud can bring several benefits to software develop
ment. In this thesis, we discuss the benefits and considerations of cloud-based
software processes and introduce a modelling language for modelling such processes.
We refer to this language as EXE-SPEM. It extends the Software and Systems
Process Engineering (SPEM2.0) OMG standard to support creating cloudbased
executable software process models. Since EXE-SPEM is a visual modelling
language, we introduce an XML notation to represent EXE-SPEM models
in a machine-readable format and provide mapping rules from EXE-SPEM to
this notation. We demonstrate this approach by modelling an example software
process using EXE-SPEM and mapping it to the XML notation. Software process
models expressed in this XML format can then be enacted in the proposed SDaaS
architecture.
Cost-e cient scheduling of software processes execution in the cloud. Software
process models are enacted in the SDaaS architecture as workflows. We
refer to them sometimes as Software Workflows. Once we have executable software
process models, we need to schedule them for execution. In a setting where
multiple software workflows (and their activities) compete for shared computational
resources (workflow engines), scheduling workflow execution becomes
important. Workflow scheduling is an NP-hard problem which refers to the allocation
of su cient resources (human or computational) to workflow activities.
The schedule impacts the workflow makespan (execution time) and cost as well as
the computational resources utilisation. The target of the scheduling is to reduce
the process execution cost in the cloud without significantly a ecting the process
makespan while satisfying the special requirements of each process activity (e.g.,
executing on a private cloud). We adapt three workflow scheduling algorithms
to fit for SDaaS and propose a fourth one; the Proportional Adaptive Task Schedule.
The algorithms are then evaluated through simulation. The simulation results
show that the our proposed algorithm saves between 19.74% and 45.78% of the
execution cost, provides best resource (VM) utilisation and provides the second
best makespan compared to the other presented algorithms.
Evaluating the SDaaS architecture using a case study from the safety-critical
systems domain. To evaluate the proposed SDaaS reference architecture, we
instantiate a proof-of-concept implementation of the architecture. This imple
mentation is then used to enact safety-critical processes as a case study.
Engineering safety-critical systems is a complex task which involves multiple
stakeholders. It requires shared and scalable computation to systematically involve
geographically distributed teams. In this case study, we use EXE-SPEM to
model a portion of a process (namely; the Preliminary System Safety Assessment
- PSSA) adapted from the ARP4761 [2] aerospace standard. Then, we enact this
process model in the proof-of-concept SDaaS implementation.
By using the SDaaS architecture, we demonstrate the feasibility of our approach
and its applicability to di erent domains and to customised processes. We also
demonstrate the capability of EXE-SPEM to model cloud-based executable processes.
Furthermore, we demonstrate the added value of the process models and
the process execution provenance data recorded by the SDaaS architecture. This
data is used to automate the generation of safety cases argument fragments. Thus,
reducing the development cost and time. Finally, the case study shows that we
can integrate some existing tools and create new ones as activities used in process
models.
The proposed SDaaS reference architecture (combined with its modelling, scheduling
and enactment capabilities) brings the benefits of the cloud to software development. It
can potentially save software production cost and provide an accessible platform that
supports collaborating teams (potentially across di erent locations). The executable
process models support unified interpretation and execution of processes across team(s)
members. In addition, the use of models provide managers with global awareness and
can be utilised for quality assurance and process metrics analysis and improvement.
We see the contributions provided in this thesis as a first step towards an alternative
development method that uses the benefits of cloud and Model-Driven Engineering to
overcome existing challenges and open new opportunities. However, there are several
challenges that are outside the scope of this study which need to be addressed to allow
full support of the SDaaS vision (e.g., supporting interactive workflows). The solutions
provided in this thesis address only part of a bigger vision. There is also a need for
empirical and usability studies to study the impact of the SDaaS architecture on both
the produced products (in terms of quality, cost, time, etc.) and the participating
stakeholders
Building a Systematic Legacy System Modernization Approach
A systematic legacy system modernizing approach represents a new approach for modernizing legacy systems. Systematic legacy system modernization has software reuse as an integral part of modernization. We have developed a modernization approach which uses software architecture reconstruction to find reusable components within the legacy system. The practice of software development and modernization continues to shift towards the reuse of components from legacy systems to handle the complexities of software development. Modernization of a legacy system requires reuse of software artefacts from legacy system to conserve the business rules and improve the system鈥檚 quality attributes. Software reuse is an integral part of our systematic legacy modernization approach. Software should be considered as an asset and reuse of these assets is essential to increase the return on the development costs.
Software reuse ranges from reuse of ideas to algorithms to any documents that are created during the software development life cycle. Software reuse has many potential benefits which include increased software quality, and decreased software development cost and time. Demands for lower software production and maintenance costs, faster delivery of systems and increased quality can only be met by widespread and systematic software reuse.
In spite of all these benefits software reuse adoption is not widespread in the software development communities. Software reuse cannot possibly become an engineering discipline so long as issues and concerns have not been clearly understood and dealt with. We have conducted two surveys to understand the issues and concerns of software reuse in the Conventional Software Engineering (CSE) Community and the Software Product Line (SPL) Community where reuse is an integral part of the product development. The quantitative and qualitative analysis of our surveys identified the critical factors which affect and inhibit software engineers and developers adopting software reuse.
Software reuse has been talked about in generic terms in software product lines. Though software reuse is a core concept in SPL it has however failed to become a standardized practice. The survey conducted on the SPL Community
investigates how software reuse is adopted in SPL so as to provide the necessary
degree of support for engineering software product line applications and to identify some of the issues and concerns in software reuse. The identified issues and concerns have helped us to understand the difference between software reuse in the CSE and SPL Communities. It has also given us an indication of how both communities can learn good software reuse practices from each other in order to develop a common software reuse process. Based on the outcome of our surveys we have developed a systematic software reuse process, called the Knowledge Based Software Reuse (KBSR) Process, which incorporates a Repository of reusable software assets to build a systematic legacy system modernization approach. Being able to reuse software artefacts, be it software requirement specification, design, or code, would greatly enhance software productivity and reliability. All of these software artefacts can go in the Knowledge Based Software Reuse Repository and be candidates for reuse
Anales del XIII Congreso Argentino de Ciencias de la Computaci贸n (CACIC)
Contenido:
Arquitecturas de computadoras
Sistemas embebidos
Arquitecturas orientadas a servicios (SOA)
Redes de comunicaciones
Redes heterog茅neas
Redes de Avanzada
Redes inal谩mbricas
Redes m贸viles
Redes activas
Administraci贸n y monitoreo de redes y servicios
Calidad de Servicio (QoS, SLAs)
Seguridad inform谩tica y autenticaci贸n, privacidad
Infraestructura para firma digital y certificados digitales
An谩lisis y detecci贸n de vulnerabilidades
Sistemas operativos
Sistemas P2P
Middleware
Infraestructura para grid
Servicios de integraci贸n (Web Services o .Net)Red de Universidades con Carreras en Inform谩tica (RedUNCI
Anales del XIII Congreso Argentino de Ciencias de la Computaci贸n (CACIC)
Contenido:
Arquitecturas de computadoras
Sistemas embebidos
Arquitecturas orientadas a servicios (SOA)
Redes de comunicaciones
Redes heterog茅neas
Redes de Avanzada
Redes inal谩mbricas
Redes m贸viles
Redes activas
Administraci贸n y monitoreo de redes y servicios
Calidad de Servicio (QoS, SLAs)
Seguridad inform谩tica y autenticaci贸n, privacidad
Infraestructura para firma digital y certificados digitales
An谩lisis y detecci贸n de vulnerabilidades
Sistemas operativos
Sistemas P2P
Middleware
Infraestructura para grid
Servicios de integraci贸n (Web Services o .Net)Red de Universidades con Carreras en Inform谩tica (RedUNCI
Combining SOA and BPM Technologies for Cross-System Process Automation
This paper summarizes the results of an industry case study that introduced a cross-system business process automation solution based on a combination of SOA and BPM standard technologies (i.e., BPMN, BPEL, WSDL). Besides discussing major weaknesses of the existing, custom-built, solution and comparing them against experiences with the developed prototype, the paper presents a course of action for transforming the current solution into the proposed solution. This includes a general approach, consisting of four distinct steps, as well as specific action items that are to be performed for every step. The discussion also covers language and tool support and challenges arising from the transformation