| |
14
Chapter 2. State of the Art of Application Development Processes
however, is the explicit use of prototypes. Prototyping throughout the development
cycle ensures that the final product will completely and accurately fulfill the cus-
tomers requirements. Another benefit is the evolution stage, which allows current
code-bases to be modified and re-adapted to take on greater functionality without
a complete re-design or re-implementation. One main weakness of this process is,
that a project can be drastically delayed as it evolves to become much more than
what it was originally designed for.
Design Patterns systematically name, motivate, and explain a general design that
addresses a recurring design problem in object-oriented systems. A design pattern
[
Gamma et al. 1995
]
describes the problem, the solution, when to apply the solution,
and its consequences. It further gives implementation hints and examples. The
solution is described by a general arrangement of objects and classes that solve
the problem. The solution is customized and implemented to solve the problem
in a particular context. Design patterns do not really represent a development
process but provide a catalog of predefined general solutions. They provide a general
framework of solutions.
Discussion
Software engineering in general aims at solving the users current needs in an e cient
way. Accordingly, there are no methods for the early stage support, i.e. to search
for compelling problems and identifying future user needs. Users are involved in
the development process and represent the main source for revealing functional
requirements of the software being developed. Usually, there will be no features
implemented the user does not demand, since users have the role of customers who
pay for the development. Consequently, radical innovations that go beyond the users
current needs are very unlikely to be developed. Multiple stakeholders are involved
only to a certain extend: Di erent user groups may vary in their level of knowledge
but typically not in their viewpoint. Stimulation of stakeholders is not an issue,
since users articulations about current needs are su cient. Mediation between user
and developer is covered by this methods and is also key to successfully generate
a final product. Software engineering disciplines are usually not of an exploratory
kind since user reviews aim at validating proposed solutions instead of using them
as a starting point for alternative ideas and new concepts. Multiple cycles and rapid
developments have been well established in software-engineering. This is also well
supported by a large number of toolboxes, such as CASE-tools, rapid prototyping
environments, design patterns, re-use by modularization etc.
Intensive tool support is certainly one of the strengths of software-engineering ap-
proaches. However, innovations cannot really be expected since the main focus is on
developing feasible software products that solve requirements posed by the customer
who pays for the realization. Radical developments are not explicitly desired.
|  |
|
| |
|
|