Increased market pressure is forcing software development firms to improve the productivity of their development teams and the dependability of the software solutions delivered to their customers. The chief means for achieving a positive impact on productivity and dependability is through reuse at the various stages of a software development project. Next in importance is improved communication among stakeholders throughout the project life cycle.
Although advocated by many, well-orchestrated reuse in software development projects is not yet a reality. To enable reuse, several roadblocks must be removed. First, existing software reuse techniques, which are not always well known by software engineers in industry, must be better publicized. Second, the application of reuse techniques, which often requires too much of an initial effort, in re-engineering existing software solutions, for example, must become easier. Third, reuse techniques must be included in the software development process of many organisations, which has not always been the case up to now.
With regard to communication among the stakeholders of a project, the major roadblock is the lack of visibility that each project participant has of the work and needs of others. Although all reference models of software development practices attempt to organize everyone’s work and interactions, practitioners find these models either too high-level, and therefore do not provide enough practical guidance (CMMI, ISO 12207), or too intrusive, in that too many fine-grained tasks are imposed that not everyone in an organisation will be prepared to perform (RUP).
The NAPLES project aims to improve this situation by developing its platform to:
- Facilitate the reuse of material (artefacts) from a large NAPLES knowledge base built from past projects.
- Encourage and ease the production of new reusable material to add to the NAPLES knowledge base.
- Promote workflow-oriented software development; that is, each stakeholder will be able to select and customize the workflows of recognized practices to perform many tasks throughout the software development life cycle. Tedious workflow tasks will be automated, particularly those requiring interaction between software engineering tools and the project’s IT environment.
- Make the production and consumption of reusable artefacts a reality through the streamlining of reuse activities in workflow templates of every discipline of the software development life cycle.
- Provide a portal where the various stakeholders in a software project, including the customer, will obtain an accurate project status at a selected level of detail. The portal will also enable common software engineering operations, such as reporting bugs, without interacting directly with software engineering tools.
The NAPLES project has enabled CETIC to achieve the following:
- Development of an audit questionnaire to capture the reuse practices already in place in an organisation, and the reuse practices that an organisation wishes to promote.
- Development of a selection method for identifying software engineering tools to include in the NAPLES platform, and application of the selection methods for building three different NAPLES platform instances, one each for SIS, OSL and CETIC (the later being exclusively Open Source)
- Implementation of initial workflow templates for requirements management in the Bonita workflow solution, and automated interactions between workflow tasks and requirements engineering tools via the protocol defined by the Open Services for Lifecycle Collaboration (OSLC).
To guarantee industrial applicability of the NAPLES platform, its main requirements are developed by the two industrial partners. Then, all the partners are involved in designing the architecture of the NAPLES platform and take part in its development. This development is carried out based on an AGILE methodology. The final result will be validated through several industrial case studies, starting with the industrial partners and CETIC.