A process for consolidating and reusing design knowledge Chat with horney chicks
Using experience gained in the development of large-scale applications in an industrial environment, and experimenting with prototype software design decision management systems, we introduce PROFILE, a conceptual logic-based meta-model that integrates software evolution process modelling with deliberation representation and decision factors.PROFILE enhances existing models by providing support throughout the whole software evolution, by capturing assumptions as real-world reasoning elements, and by maintaining a Knowledge Base of decision-making factors.Practice has shown that everything changes in the time allocated to a software development effort: requirements are never the same as they were when the development begun, assumptions and constraints change, too.It is the real world that changes, which has an effect in software and these changes must be reflected in software documentation.Software development has been acknowledged as a complicated problem-solving activity done in a complex, multi-dimensional space.People actively involved in software development need support in understanding and documenting not only the description of the software developed, but also the problem domain and the reasons behind decisions taken during evolution.Documentation is the only means stakeholders have for understanding a software system.
For the past 30 years there has been an intensive effort to improve the software development process by resolving what has been called software crisis.
Software development methods have been introduced to help produce "good" software, focusing on how this should be done.
As they where introduced, new development methods appeared to be very promising, but soon enthusiasm was replaced by realism, and yet today, there is no doubt that the crisis is still here.
We can consider documentation as the result of a problem-solving activity defined by a software development method.
Development methods do not provide such support, and researchers begin to explore the recording of reasoning in specific phases of software evolution.
Several data models have been presented, aiming to support developers by maintaining a repository of deliberation elements of decisions taken during development; these models are usually supported by a special CASE tool that can be classified as a Software decision management system.