Software construction takes into account the implementation phase and the integration phase of software development. The implementation phase creates a software product from the design documentation and models. This phase assumes that different development (programming) languages (e.g., OOP, AOP, and DSLs) are used to encode specific designs. Since the implementation phase assumes executable entities will be produced, it is much more focused on computation-specific details (e.g., software and hardware platform), and less on the abstract details, typical of the design phase. Recent research explores different ways to directly transform software models into executable software entities on different platforms, thus linking software implementation and software design. The software engineering community emphasizes model-driven engineering (MDE) to enable the model-driven development (MDD) of software products. In addition to models, model transformations (e.g., model-to-model, model-to-text, and text-to-model) are key concepts of MDD, as they allow for round-trip engineering (i.e., forward engineering and reverse engineering) of software, thus increasing the level of knowledge encoded in software systems.
The integration phase combines software components (e.g., web services), hardware components, or both into an overall system. This phase is usually carried out in parallel with the implementation phase. In this unit, we will explore the basic principles of component-based software development (CBSD). Although software product line engineering (SPLE) involves more than just software integration, it is discussed here because the entire process is strongly related to CBSD.
AU offers two graduate courses that discuss important aspects of software integration. Therefore, the topics covered in those courses are not covered in COMP 610. COMP 638: Enterprise Modelling covers Service-Oriented Architecture (SOA). COMP 688: Software Testing and Quality Assurance covers software debugging through testing to eliminate potential bugs (e.g., unit and integration tests).
When you complete this unit, you will be able to
Updated September 29 2016 by FST Course Production Staff