Functional requirements are generally easy to specify, analyse, implement, and verify, compared to quality attributes. There is a well-defined process for taking these requirements through to a finished software product. Quality attributes, however, have been neglected in many standard software engineering processes. This is primarily because they are hard to quantify, hard to keep track of, and tend to refer to the behaviour of the system as a whole rather than individual functionality. Component-based engineering requires a system integrator to choose functionality from a number of available components, and meld them together to produce to a complete system. The integrator cannot know what quality attributes are built into each component unless that information is provided by the component developer. Hence the integrator cannot specify in detail and with confidence the quality attributes required in specific components. By using Behavior Tree(TM) architecture descriptions, a direct translation and integration of functional requirements can be made consistently and completely. The architecture can then be analysed for, and adapted to meet, individual quality requirements. An architecture description, in its XML form, can be provided along with the actual component implementation, allowing a software integrator to determine if a black-box component implements functional and quality requirements.
View the full dissertation PDF.
View the seminar presentation PowerPoint for the dissertation.