We define software architecture as “the set of significant decisions about the high level structure and the behaviour of a system” [22], where ‘significant’ is measured by the cost of change [2]. In other words, architecture comprises the planning and design decisions that are made up-front because they are difficult to change once development has started. Architecting is the process of making architectural decisions [23], and may include research, analysis, modelling, verification and the creation of architectural artefacts. Architects make the architectural decisions; in agile software development, this is often the whole team through collaboration.
We define agility from a conceptual perspective, based on an abridged version of Conboy’s definition [24]: “[Agility is] a software development team’s ability to create change, respond to change and learn from change so that it can better deliver value.” Adolph used a similar definition [25]. This definition avoids specifying particular methodologies and practices, and refers simply to the team’s ability to deliver value more quickly by responding to change and by improving its processes.
We define an agile architecture as an architecture that satisfies the definition of agility by being able to be easily modified in response to changing requirements, is tolerant of change, and is incrementally and iteratively designed – the product of an agile development process.
We define software architecture as “the set of significant decisions about the high level structure and the behaviour of a system” [22], where ‘significant’ is measured by the cost of change [2]. In other words, architecture comprises the planning and design decisions that are made up-front because they are difficult to change once development has started. Architecting is the process of making architectural decisions [23], and may include research, analysis, modelling, verification and the creation of architectural artefacts. Architects make the architectural decisions; in agile software development, this is often the whole team through collaboration.We define agility from a conceptual perspective, based on an abridged version of Conboy’s definition [24]: “[Agility is] a software development team’s ability to create change, respond to change and learn from change so that it can better deliver value.” Adolph used a similar definition [25]. This definition avoids specifying particular methodologies and practices, and refers simply to the team’s ability to deliver value more quickly by responding to change and by improving its processes.We define an agile architecture as an architecture that satisfies the definition of agility by being able to be easily modified in response to changing requirements, is tolerant of change, and is incrementally and iteratively designed – the product of an agile development process.
การแปล กรุณารอสักครู่..
