Applying Software Engineering Design Principles to Agile Architecture

Applying Software Engineering Design Principles to Agile Architecture

Chung-Yeung Pang (Seveco AG, Switzerland)
Copyright: © 2020 |Pages: 27
DOI: 10.4018/978-1-7998-2531-9.ch004


Most enterprise IT systems are very complex with a combination of COBOL and Java programs running on multiple platforms. What is needed is a solid IT architecture that supports the operation and growth of a cross-platform IT system. It must enable the iterative and incremental development of applications that are foreseen in an agile development process. The design concept of such an architecture with its infrastructure and development tool is presented in this chapter. This design concept is based on the design principles and architectural patterns of software engineering. The architecture is a combination of layered, component-based, and service-oriented architectural patterns. The agile development process is based on a model-driven approach. The architecture and development approaches were first introduced in 2004. Since then, many applications have been developed on time and within budget.
Chapter Preview


As background, the following subsections introduce the disciplines of software engineering and the agile development approach.

Key Terms in this Chapter

WSDL: Web Service Description Language, a standard from W3C.

XML (Extensible Markup Language): A markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable.

JSON (JavaScript Object Notation): An open-standard file format that uses human-readable text to transmit data objects consisting of attribute–value pairs and array data type.

Component-Based Architecture: A software architecture that breaks down the application design into reusable functional or logical components that expose well-defined communication interfaces.

Agile Software Architecture: A software architecture that lays out blueprints of the organization and structure of software components as well as well-defined mechanism on how components can be tested and integrated into the system that would sustain the agile approach throughout the software development life cycle.

Model-Driven Approach to Software Development: A model centric rather than a code centric approach to software development with code generated from models.

Solid: An acronym for object-oriented design principles proposed by R. Martin in 2000.

SOAP: Simple Object Access Protocol, a standard from W3C.

Software Crisis: A term used in the early days when software projects were notoriously behind schedule and over budget and maintenance costs were exploding.

Mainframe: Mainframe computer systems like IBM z/OS.

Spring Framework: An application framework and inversion of control container for the Java platform.

COBOL: The programming language designed for commercial business data processing used for applications that often form the backbone of the IT structure in many corporations since 1960.

Enterprise Service Bus (ESB): A software architecture model used for designing and implementing the interaction and communication between mutually interacting software applications in service-oriented architecture (SOA).

Software Engineering: The application of engineering to the development of software in a systematic method.

Agile Software Development Process: An evolutionary and iterative approach to software development with focuses on adaptation to changes.

Layered Architecture: A software architecture from which the concerns of the application are divided into stacked groups (layers). Each level would interact only with the levels above and below.

Service-Oriented Architecture (SOA): A technical software architecture that allows client applications to request services from service provider type applications in a host system.

Software component: A software unit of functionality that manages a single abstraction.

Complete Chapter List

Search this Book: