VM Verwaltung & Management , Seite 275 - 279
Developing a framework is not an easy task and can be done on several levels and for a variety of application domains. There are various techniques within the framework community designed to support the process of framework development on an architectural and an organizational level. But how can we combine these techniques to really succeed in professional software development? We have concentrated on building frameworks for largescale software development using the Tools & Materials approach, gaining experience in this area over the past ten years. In this paper, we focus on the Java-based application framework JWAM, which combines research results on framework design with industrial project work. It reifies our experience, knowledge and best practices gleaned over the past ten years. We outline below the architectural and organizational guidelines that have helped us to build a successful application framework for developing commercial software fast and flexibly. Techniques like framework layering and the partitioning of the framework into a kernel and framework components are combined with eXtreme programming, extreme testing and an extremely useful team development environment. 1 BACKGROUND: FROM ACADEMIC PLAYGROUND TO PROFESSIONAL APPLICATION FRAMEWORK
Für die gemeinsame Modellierung und abgestimmte Entwicklung von Geschäftsprozessen und Software benötigen wir Modellund Dokumenttypen, die für Organisatoren, ITFachleute und Prozessbeteiligte aus den Fachabteilungen verständlich und gestaltbar sind, mit einem dazu passenden Vorgehen, das diese drei Gruppen gemeinsam einbezieht. Die heute gängigen Modellierungsmethoden sind hierfür nur bedingt geeignet:
Professional software development implies team work. Therefore working in a team should be an essential part in the software engineering curriculum. We use Extreme Programming (XP) as a high-discipline software development methodology to teach software engineering within a team quite early in the curriculum. This seems not easy at first sight, as XP is aimed mainly at experienced programmers. But XP is highly motivating for students if it can be applied within the framework of a real project. After their first year of programming, students at the University of Hamburg get the chance to take part in a three week project that includes one week of intensive programming. This programming week in the middle is organized following XP principles. In this paper we describe the way we adopt XP for this week, argue about the circumstances for a compact XP-like software engineering week, and reflect on the experience we made.
Using methodological extensions to adapt extreme programming (XP) for major projects offers a high security and reliability without limiting software development's advantages. The authors describe their use of XP extensions that focus on development's planning and controlling aspects, demonstrating that a suitably adapted agile development process is applicable to long-term, large-system projects.
Within Extreme Programming, the initial phase of a project is the exploration phase. This phase should establish a common view of the system to be built and provide the base for what XP calls "productionizing" - the fullfledged XP development iterations. Therefore this phase is of crucial importance to the whole project. While there is a lot of documented experience with the XP process itself, little has been said about the initial phase. This tutorial presents a number of best practices and experiences to structure and master the exploration phase. They will guide the team from the kick-off meeting to the first implementation of the system skeleton. The techniques presented have been adapted to XP from experience gained in twelve years of consulting in professional object-oriented development projects. They have been successfully applied in numerous XP projects, ranging from high-pressure short-term to large-scale long-term, from finance to the health domain, and from greenfield development to legacy system replacement.
XP ist eines der heiß diskutierten Themen der letzten zwei Jahre. Das Tutorial zeigt ausgehend von der Projekterfahrung der Referenten, wie XP erfolgreich eingesetzt werden kann. Dabei wird insbesondere auf sinnvolle Adaptionen für komplexe Projektsituationen eingegangen. Komplexe Projektsituationen treten z.B. dann auf, wenn eine Reihe ganz unterschiedlicher Arbeitsplätze durch das neu entwickelte System unterstützt werden sollen, wenn der Anwendungsbereich selbst komplex ist, wenn der Zeitdruck extrem hoch wird etc. 1 Kurzer Überblick über XP Zu Beginn des Tutorials steht ein kurzer Überblick über eXtreme Programming. Kent Beck stellt in seinem für eXtreme Programming grundlegenden Buch [Be99] seine Ideen für eine leichtgewichtige Art der Softwareentwicklung vor. Statt einem schweren und statischen Methodenapparat sollen Software-Entwicklungsteams ihren Entwicklungsprozess selbst steuern und flexibel anpassen, statt „Big Upfront Design“ empfiehlt Beck: „Do the simplest thing that could possibly work“. Zur Orientierung stellt er vier Werte in den Mittelpunkt und beschreibt ausführlich zwölf Techniken, die eXtreme Programming ausmachen: • Die Werte: Kommunikation, Einfachheit, Feedback und Mut • Die Techniken: Planungsspiel, Short Releases, Metapher, Einfaches Design, Testen, Refactoring, Pair Programming, Collective Ownership, 40-Stunden-Woche, Continuous Integration, On-Site Customer, Coding Standards. In der eXtreme-Programming-Community wird immer wieder der Zusammenhang der genannten Werte und Techniken hervorgehoben, dem Gedanken folgend, dass diese Bausteine als Ganzes viel mehr als die Summe der Teile ergeben. Es wird dabei aber als ausdrücklich sinnvoll angesehen, eXtreme Programming evtl. nur teilweise einzuführen. eXtreme Programming ist demnach flexibel einsetzbar und kann auf spezifische Projekanforderungen hin angepasst werden.
Product metrics allow for an efficient way to get feedback about the quality of an existing software system. Beside the internal validation of metrics, i.e. their examination with respect to measurement theory, the external validation is important to examine the value of results based on metrics analysis. In this paper, a well-defined process to get a metrics-based quality assessment is applied to the Java Framework JWAM. For the external validation its results were analysed by the JWAM development team: Most aspects were valuable to them and the findings were classified as either completely new, confirming rough knowledge, or well known. Additionally, a second process walkthrough for the new JWAM-version showed that many detected quality defects have been removed.
Carola Lilienthal合作论文数Informatics Department of the University of Hamburg2