Skip to main content

2017 | Buch

Software Project Management for Distributed Computing

Life-Cycle Methods for Developing Scalable and Reliable Tools

insite
SUCHEN

Über dieses Buch

This unique volume explores cutting-edge management approaches to developing complex software that is efficient, scalable, sustainable, and suitable for distributed environments. Practical insights are offered by an international selection of pre-eminent authorities, including case studies, best practices, and balanced corporate analyses. Emphasis is placed on the use of the latest software technologies and frameworks for life-cycle methods, including the design, implementation and testing stages of software development.

Topics and features:

· Reviews approaches for reusability, cost and time estimation, and for functional size measurement of distributed software applications

· Discusses the core characteristics of a large-scale defense system, and the design of software project management (SPM) as a service

· Introduces the 3PR framework, research on crowdsourcing software development, and an innovative approach to modeling large-scale multi-agent software systems

· Examines a system architecture for ambient assisted living, and an approach to cloud migration and management assessment

· Describes a software error proneness mechanism, a novel Scrum process for use in the defense domain, and an ontology annotation for SPM in distributed environments

· Investigates the benefits of agile project management for higher education institutions, and SPM that combines software and data engineering

This important text/reference is essential reading for project managers and software engineers involved in developing software for distributed computing environments. Students and researchers interested in SPM technologies and frameworks will also find the work to be an invaluable resource.

Prof. Zaigham Mahmood is a Senior Technology Consultant at Debesis Education UK and an Associate Lecturer (Research) at the University of Derby, UK. He also holds positions as Foreign Professor at NUST and IIU in Islamabad, Pakistan, and Professor Extraordinaire at the North West University Potchefstroom, South Africa.

Inhaltsverzeichnis

Frontmatter

Characteristics and Estimation of Software Projects for Distributed Computing

Frontmatter
Chapter 1. Modeling of Reusability Estimation in Software Design with External Constraints
Abstract
The objective of the proposed chapter is to illustrate model-based estimation of reusability aspect for object-oriented software development method, to ensure consistency in quality and cost-effectiveness. Object-oriented analysis and design are popular concepts in today’s software development environment. The discussion of the model includes multiple metrics to assess the strength of a software project. The critical facts such as work schedule, cost, and effort which are core parameters need to be balanced in order to optimize management of a software development life cycle. To ensure overall quality, a single metric does not suffice; multiple metrics are recommended to assess the strength of a software project. It is justified that any project is critically dependent on three fundamental facts, viz., work schedule, cost, and effort. The study also highlights the benchmarked outcomes to prove that proposed modeling offers better platform for ensuring software design quality.
R. Selvarani, P. Mangayarkarasi
Chapter 2. Estimation of Costs and Time for the Development of Distributed Software
Abstract
Distributed software development promises many benefits to software project management, such as reduction in cost and time. The development of distributed software is often large scale; it tends to be complex and have an increased risk of failure. An understanding of common distributed software project risks and their impact on cost and time estimation can help project managers control the risks and thus increase the likelihood of project success. Therefore, accurate effort estimation is crucial to software development projects’ success, especially in globally distributed projects. In this context, it is worthwhile to identify and investigate the effort estimation methods. In this chapter, we aim to discuss software cost and time estimation in globally distributed environment. We also discuss the cost and time drivers of distributed development and examine the significance of each of these drivers as a contributor to the overall effort of a software development project. Moreover, we suggest ways where effort estimation methods take into account global software development . Finally, we aim to present risk items and their impacts on the development cost and project time.
Manal El Bajta, Ali Idri, Joaquín Nicolas Ros, José Luis Fernandez-Aleman, Ambrosio Toval
Chapter 3. Using COSMIC for the Functional Size Measurement of Distributed Applications in Cloud Environments
Abstract
The competitiveness of software companies greatly depends on the ability of their project managers to carry out a reliable and accurate software size estimation. Among the approaches for software sizing, functional size measurement (FSM) methods are widely used in the industry since they can be applied early, based on the user functional requirements. COSMIC represents a second-generation FSM method, and its adoption is rapidly growing in the software industry. The idea underlying the COSMIC method is that, for many types of software, most of the development efforts is devoted to handling data movements. In this chapter, we analyse various aspects of the use of COSMIC to measure distributed applications in cloud environments. We take into account three distinct provision models of the cloud computing stack, namely, the Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS), in which the cloud vendors, customers, and the applications themselves play a different role and have different responsibilities. Moreover, we consider some aspects being formally classified as non-functional requirements (e.g. scalability, reliability), but particularly critical in the field of cloud computing.
Filomena Ferrucci, Carmine Gravino, Pasquale Salza
Chapter 4. Characteristics of Large-Scale Defense Projects and the Dominance of Software and Software Project Management
Abstract
Countries spend billions of dollars and use a significant amount of resources on large-scale defense system projects. Many reports indicate that large-scale defense systems are among the most challenging and risky projects. One reason can be attributed to the increasing use of software in defense systems. Today, large-scale defense systems are mainly composed of software. For example, 90% of the functions in an F-35 fighter aircraft are achieved via software. Software development is inherently challenging even without the defense context. Investigating solutions to these challenges should first start with identification of characteristics of large-scale defense system projects. In addition, as the use of software increases in defense systems, defense project management is actually becoming software project management. Consequently, defense project managers should know about software project management as well to be successful in their projects. In this chapter, we first identify the characteristics of large-scale defense systems. Then, we list the characteristics of large-scale defense projects. We also emphasize and discuss the influence of software in defense projects and how defense project management is, in fact, becoming software project management.
Kadir Alpaslan Demir
Chapter 5. Software Project Management as a Service (SPMaaS): Perspectives and Benefits
Abstract
Software project management (SPM) is one of the key activities in the success of a software product. One of the classical definitions of a management is the one that suggests to cover both science and the art, so is the software project management. The careful process of bringing together economics, software technology, and human relations for a software project is not a simple task, as a software project is an extremely people-intensive exertion that traverses an exceptionally long period of time, with crucial ramifications on the work and execution of a wide range of classes of individuals. Traditionally, SPM provides software planning, cost estimation, human resource management, and delivery. With the emergence of cloud computing services, there needs to be multitude of features offering and managing virtual development teams and services. Therefore, we have proposed a key set of SPM activities offered as a cloud service: software project management as a service (SPMaaS). This chapter provides insight into SPMaaS as a cloud service featuring our approach to managing distributed teams and automated cost estimation for software metrics. The design of SPMaaS has been innovative with the use of the newly emerged modelling technique known as SoaML (UML modelling for SOA) which is one of the key contributions to this research. This study discovered an overall 70% improvement of the cloud-based services by designing with SoaML by counting number of service components during the design phase of this research.
Muthu Ramachandran, Vikrant Chaugule

Approaches and Frameworks for Software Development and Software Project Management

Frontmatter
Chapter 6. Component-Based Hybrid Reference Architecture for Managing Adaptable Embedded Software Development
Abstract
The main objective of Ambient Assisted Living (AAL) is to offer high performance and easier ways of personalized services, such as health monitoring, mobility training devices, and socially assistive technologies (ATs). Nowadays, the ageing population, the high costs for the individual treatment in nursing homes, and the importance that the individuals increasingly necessary to be self-supporting all motivate development of intelligent hardware (i.e. ATs) for safe and independent living. However, AAL related to ambient intelligence (AmI), together with the wide spectrum of ATs, is too heterogeneous and hence difficult to handle. In this context, managing the adaptable embedded software development has become more important, which provides guidance for the organization of a software system including the set of significant decisions, the selection of the structural elements, their relationships to each other, and composition of these elements into progressively larger subsystems, etc. In this chapter, we centre our attention from the perspective of computer science, particularly, we focus on the proposal of software reference architecture (SRA) for the development, standardization, and evolution of system architectures of AAL. The main aim of this work tends to justify that how embedded software development can be better managed via the proposed approach. The ultimate goal would be trans-domain applicability of the adaptable embedded software system.
Bo Xing
Chapter 7. 3PR Framework for Software Project Management: People, Process, Product, and Risk
Abstract
Software projects are among the most risky projects. Compared to projects in other industries, the success rates in software projects are low. One of the main reasons for low performance is attributed to ineffective project management. Even though there is an established body of knowledge in project management, the current performance in software projects calls for more research on software project management. We need new theories, models, and frameworks to establish foundations for further research. In this research, we developed a framework for software project management. The framework includes people, process, product, and risk management. It is named as 3PR framework. People management area includes communication, teamwork, leadership, organizational commitment, project manager, stakeholder involvement, and staffing and hiring. Process management area consists of requirements management, project monitoring and control, project planning and estimation, and scope management. Product management area contains configuration management and quality engineering. Risk management area includes risk assessment and risk control. Our framework recognizes the importance of people management in software development. Furthermore, process, product, and risk management are essential parts of the framework. The framework is developed based on an extensive review of literature and many industry standards. It is validated by a survey of software development and management practitioners. 3PR framework provided guidance for the development of a software project management effectiveness metric. It may also be used as a basis for development of effective software project management processes, for development of new project management metrics, for teaching software project management, and for curriculum development. In short, 3PR framework provides a foundation for further research in software project management.
Kadir Alpaslan Demir
Chapter 8. CrowdSWD: A Novel Framework for Crowdsourcing Software Development Inspired by the Concept of Biological Metaphor
Abstract
Crowdsourcing software development is a broad term that describes large-scale distributed systems that comprise many computing elements, each of which may have their own individual characteristics, objectives, and actions. Our society increasingly depends on such systems, in which collections of heterogeneous computing elements are tightly entangled with human and social structures to plan collective intelligence. The premise of this research is that existing frameworks for crowdsourcing software development are not powerful enough to cover large classes of aspects-relevant problems. To address this, we explored one instance of system development life cycle, which can be used to solve those problems. The outputs were in the form of (1) mechanisms for modeling the crowdsourcing software that empowers a crowd socially to solve complex problems that require effective management among participants with relevant abilities and limitations, (2) modeling supportive environments for crowdsourcing software, (3) modeling an adaptive engine that learns relevant characteristics of participants based on observations of their behavior and learned models, and (4) designing 34 heterogeneous computing elements that can be used in crowdsourcing software. A single experimental study, presented in this chapter, provides a richness of data and can lead to a deep understanding of a phenomenon in a single context.
Tarek A. Ali, Eman S. Nasr, Mervat H. Gheith
Chapter 9. An Approach to Migrate and Manage Software: Cloud-Based Requirements Management
Abstract
Many enterprises are using cloud paradigm to migrate and manage their applications over the Internet. However, there are several challenges that should be considered to achieve the optimal usage of cloud features. This chapter explores the challenges and research questions in cloud migration and management era. In addition, it proposes an approach that customizes the Capability Maturity Model Integration-Level 2 to include the requirements, goals, and practices of cloud-application migration and management. The aim of this chapter is to provide guidelines that aid business communities in migrating and managing applications seamlessly with less costs and high-quality process.
Areeg Samir
Chapter 10. A Novel Approach to Modelling Distributed Systems: Using Large-Scale Multi-agent Systems
Abstract
Large-scale multi-agent systems (LSMAS), a rather novel concept in the domain of multi-agent systems (MAS), are reaching for soaring heights in the wake of the Internet of Everything era. Interacting pieces of software on interconnected machines, enabled by rapid development of the Internet and connected devices, are creating systems comprising tens of thousands, even millions, of agents. Each agent is thus situated in an environment with numerous other elements, and interaction is inevitable. Such a situation benefits from organisational modelling of the system. Using an organisational metamodel, which provides concepts for definitions of several organisational models, introduces upgraded time and effort efficiency into LSMAS organisational modelling, thus aiding in cost and time efficiency of design and development of distributed software. This chapter introduces a novel method of LSMAS organisational modelling using an organisational metamodel which makes it easier to model an LSMAS at various levels of abstraction. The presented metamodel is a work-in-progress description based on an ontology being developed that comprises LSMAS organisational concepts. Some features of the metamodel are presented, in this chapter, using two distinct examples of LSMAS application domains. Main features differentiating the proposed metamodel from the existent LSMAS organisational models also include concepts for modelling interorganisational dynamics.
Bogdan Okreša Ðurić

Advances in Software Project Management and Distributed Software Development

Frontmatter
Chapter 11. Optimizing Software Error Proneness Prediction Using Bird Mating Algorithm
Abstract
Designing, developing, and maintaining are the key phases of a software life cycle, and the most essential property of a software product is quality. The quality of a software product is dependent on various factors, e.g., reliability, security, and efficiency. But the most important aspect of a software quality is its proper function as described by functional requirements of the software. Errors often occur that are the mistakes which hamper the correct functionality of the software. Thus, to deliver high-quality software, errors must not occur, and if they do then these must be removed. In this chapter, we suggest that the process of identifying and removing errors can be optimized if prior information about the module’s possible errors is known. Error proneness prediction can be modeled using classification and prediction techniques. In this context, artificial neural network is a classification model which can be used to predict error proneness. However, the neural network with gradient descent algorithm, e.g., backpropagation algorithm, has the inherent issue of getting stuck into local minima while training. To solve this issue, evolutionary algorithms such as genetic algorithm and bird mating algorithm focus on training of artificial neural. When the prediction model is formalized, receiver operating characteristic curve and accuracy curve are used to analyze the performance of the model. In this chapter, we present an error proneness approach using bird mating algorithm.
Amrit Pal, Harsh Jain, Manish Kumar
Chapter 12. Improved Agile: A Customized Scrum Process for Project Management in Defense and Security
Abstract
This chapter describes our experience of adopting agile project management in a software development project in the defense context. Adopting an agile approach for both software development and the management of the consequent project is becoming increasingly more relevant in many domains, and the defense domain is no exception. However, this relevance does not by itself facilitate adoption as the defense environment is sometimes characterized as an unyielding culture where change is very difficult to effect. We addressed this characterization by obtaining strong unequivocal support from the top leadership, extending the standard scrum roles to fit within a hierarchical organization, and creating mixed teams of civilian consultants and military officers. This strategy was further supported by dedicated infrastructure consisting of specialized training, a suite of computer-aided software engineering tools, a structured governance community, and a custom agile doctrine. As a result of the introduction of our method, we obtained a marked improvement in development costs and project scope with a consequent sharp increase of customer satisfaction. The product has already been tested in an inter-force simulation with excellent results, which further confirms the feasibility of our method for mission-critical software systems for the Italian Armed Forces.
Luigi Benedicenti, Paolo Ciancarini, Franco Cotugno, Angelo Messina, Alberto Sillitti, Giancarlo Succi
Chapter 13. Ontology Annotation for Software Engineering Project Management in Multisite Distributed Software Development Environments
Abstract
There are chronic issues in multisite distributed software development which need to be addressed in order to take advantages of the resource pools and around-the-clock work with the time zone differences. One of the most daunting challenges is to address the issues relating to communication and coordination and the unnecessary project delays often caused by miscommunication and improper coordination. There are many more issues in multisite software development, and no single project can address them all, nor should it try to; otherwise the work will be shallow. The objective of this research is to facilitate the software development activities focusing on communication and coordination in multisite distributed software development environments. In this chapter, we present software engineering ontology annotation (SEOAnno), the automated process of assigning software engineering domain concepts to the development process of software products. The SEOAnno aims to clarify any ambiguity in remote communication. We deploy software engineering ontology (SE ontology) which can provide domain knowledge through an annotation process. For a proof-of-concept development, Java source code annotation is chosen because it is a common language and coding is centrally located and critical in multisite software development. The use of the SE ontology-based approach is illustrated and evaluated through a case study for software maintenance and evolution in multisite software development environment. The most complex though common activities in multisite software development environments require an awareness of highly diverse kinds of software artefacts and stakeholders distributed in different sites for the same project. Bug resolution is common yet a complex process for multisite software development. It involves the process of identifying, understanding, fixing a bug, and taking additional steps in order to avoid the recurrence of similar bugs in the future.
Pornpit Wongthongtham, Udsanee Pakdeetrakulwong, Syed Hassan Marzooq
Chapter 14. Investigating the Scope for Agile Project Management to Be Adopted by Higher Education Institutions
Abstract
The agile project management approach offers many potential benefits in terms of alignment with business needs, flexibility and adaptability as well as a strong focus on the people dimension of projects. Agile has been applied in many industrial and government organisations, but how can it be adopted by higher education institutions? This chapter provides an initial answer to this question through exploring how agile techniques can be applied to improve the performance at universities in regard to research, education and knowledge-exchange operations. This is supported by a review of agile project management, including the main features and guiding principles as well as evaluation of the scope for agile to make a positive impact on performance at universities. The chapter also includes description of three illustrative case study investigations that identify there are significant opportunities for agile management to be applied to various types of projects at higher education institutions. The cases include identification of the initial system requirements to support implementation of the relevant agile technique on appropriate infrastructure. The cases reveal that adoption of agile management would support more open forms of communication leading to improved knowledge sharing and trust-based working at universities.
Simon P Philbin
Chapter 15. Software Project Management for Combined Software and Data Engineering
Abstract
This chapter presents a methodology for combining software and data engineering life cycles in large software projects. Software and data engineering use multiple stages to form a life cycle for the creation of a system. Large projects often have elements of both software and data engineering. These are usually kept independent from each other as the development approaches are quite divergent; software engineering tends to be top-down, prescriptive and rigid, while data engineering tends to be bottom-up, descriptive and fluid. The methodology presented in this chapter defines a system for sharing and reuse of artefacts between software and data engineering development processes, in spite of the differences in development philosophies. The methodology helps to identify dependencies to support project planning, reduces effort by reuse and collaboration and increases quality by application of best practices. The central aspect of the methodology is a table which is used to define the synchronisation points between the two development domains, where collaboration between the separate life cycles can occur. Developers engaged in either life cycle can use a synchronisation table created for the project to send and receive shared artefacts between life cycles. This work is informed by the development and management of the ALIGNED project, a large, multi-partner, interdisciplinary project that involves both software and data engineering.
Seyyed M. Shah, James Welch, Jim Davies, Jeremy Gibbons
Backmatter
Metadaten
Titel
Software Project Management for Distributed Computing
herausgegeben von
Zaigham Mahmood
Copyright-Jahr
2017
Electronic ISBN
978-3-319-54325-3
Print ISBN
978-3-319-54324-6
DOI
https://doi.org/10.1007/978-3-319-54325-3