In: Computer Science
Describe how component-based development is used during the requirements gathering and definition within the Agile process (software engineering).
Software components cannot be defined on the basis of aparticular programming language or technology. It is im-portant in which manner the component will be used. Also,essential is the context and the composition without anyadaptions. The component model describes how compo-nents interact and how they can be composed.
Agile methods are more suitable forsmall and changing projects. On the other hand, biggerprojects often tend to change more. Hence, it makes senseto include a small amount of agility in larger.
Agile software development refers to software development methodologies centered round the idea of iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. The ultimate value in Agile development is that it enables teams to deliver value faster, with greater quality and predictablity, and greater aptitude to respond to change.
Components are atomic units, and building with components allows for their reuse in future development cycles. Since technologies come and go, this is invaluable. If you build your application in a componentized format, you’re able to swap the best components in and out.
Using a component-based UI approach supports iterative, agile development. Components are hosted in a library from which teams can access, integrate and modify them throughout the development process.
The component library can be versioned in the repository, enabling tracking of which applications are on which version of the approved UX. This also will facilitate the governance and update process.
Agile Software Development and Component Based Software Engineering are two fundamentally different methods to serve today's demands of software engineering. By combining the technical and organizational issues, we introduce an approach for a consequent integration to allow agile component development in the small and system engineering in the large, respectively.