The Design Space of Software Development Methodologies

Similar documents
SOFTWARE LIFE-CYCLE MODELS 2.1

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Agile Development

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Lecture 7: Software Processes. Refresher: Software Always Evolves

Incremental development A.Y. 2018/2019

System Development Life Cycle Methods/Approaches/Models

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Software Process. Software Process

Strategies for Rapid Development in Internet Time. William A. Cunningham December 5, 2000 NYOUG New York, NY

Introduction To Software Development CSC Spring 2019 Howard Rosenthal

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects

Dilbert Scott Adams. CSc 233 Spring 2012

Level: M.Ed. Credit Hour: 3 (2+1) Semester: Second Teaching Hour: 80(32+48)

Objectives. Connecting with Computer Science 2

Introduction to Software Engineering

White Paper. Incorporating Usability Experts with Your Software Development Lifecycle: Benefits and ROI Situated Research All Rights Reserved

Software Development Chapter 1

Managing Change and Complexity

Systems Analysis and Design in a Changing World, Fourth Edition

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process

Creating an Intranet using Lotus Web Content Management. Part 2 Project Planning

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process

Gradational conception in Cleanroom Software Development

Generic and Domain Specific Ontology Collaboration Analysis

Test Driven Development

CSC Advanced Object Oriented Programming, Spring Overview

defined. defined. defined. defined. defined. defined. defined. defined. defined.

Unit Notes. ICAWEB501A Build a dynamic website Topic 4 Test web application

CHAPTER VII INDEXED K TWIN NEIGHBOUR CLUSTERING ALGORITHM 7.1 INTRODUCTION

VO Software Engineering

Introduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz

3.4 Data-Centric workflow

RUP for Systems Z and other Legacy Systems

OO Project Management

Requirements and Design Overview

A Proposal to Develop a Testing Framework for Agile Software Process

CSC 330 Object Oriented Software Design. Software Analysis Phase

1.264 Midterm Exam Solutions Fall, Name:

CSC 330 Object Oriented Software Design Software Analysis Phase Object-Oriented Paradigm Object-Oriented Analysis cont d

Student Usability Project Recommendations Define Information Architecture for Library Technology

CS487 Midterm Exam Summer 2005

Implementation Techniques

User Centered Design Interactive Software Lifecycle

Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence

Chapter 5. The Database Life Cycle. Class 04: Topic 3.1: The Database Life Cycle

Cognitive Walkthrough Evaluation

COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan

Seminar report Software reuse

USER-CENTERED DESIGN KRANACK / DESIGN 4

Iteration vs Recursion in Introduction to Programming Classes: An Empirical Study

PROCESS DEVELOPMENT METHODOLOGY The development process of an API fits the most fundamental iterative code development

UNCLASSIFIED. R-1 Program Element (Number/Name) PE D8Z / Software Engineering Institute (SEI) Applied Research. Prior Years FY 2013 FY 2014

ISSN: [Kaur* et al., 6(10): October, 2017] Impact Factor: 4.116

*ANSWERS * **********************************

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

Test Driven Development TDD

Introduction to Software Engineering (ESE : Einführung in SE)

COMPUTER SCIENCE INTERNET SCIENCE AND TECHOLOGY HUMAN MEDIA INTERACTION BUSINESS INFORMATION TECHNOLOGY

Introduction to Software Engineering

5 Phases of Software Life Cycle

Architectural Styles. Reid Holmes

Study Of Feature Driven Development Using The Concepts Of Object Oriented Programming System

Change Management Process on Database Level within RUP Framework

COMP6471 WINTER User-Centered Design

B Nagaraju

Software Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1

Chapter 12 INTERACTION DESIGN IN PRACTICE

Certified Tester Foundation Level(CTFL)

UNIT-I Introduction of Object Oriented Modeling

Empirical Study on Impact of Developer Collaboration on Source Code

Mensch-Maschine-Interaktion 1

SM 3511 Interface Design. Institutionalizing interface design

Human Error Taxonomy

UX Research in the Product Lifecycle

A Library of Examples for CVXPY

Agile vs Fragile. Susmit Bhattacharya, Solution Architect, Asia Pacific. - The need for Automation in Agile Tricentis GmbH. All Rights Reserved.

User-Centered Development

SOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming

Version Control on Database Schema and Test Cases from Functional Requirements Input Changes

Software Design and Implementation. Example Architecture KIWC

THE BENEFITS OF MODEL-BASED ENGINEERING IN PRODUCT DEVELOPMENT FROM PCB TO SYSTEMS MENTOR GRAPHICS

The requirements engineering process

Efficient Signal Processing Algorithms for Optical Doppler Tomography Literature Survey

Coral: A Metamodel Kernel for Transformation Engines

This course includes 14 lessons and 5 Course Activities. Each lesson contains one or more Lesson Activities. The lessons cover the following topics:

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process?

Process of Interaction Design and Design Languages

Software Development Process Models

SE310 Analysis and Design of Software Systems

Introduction to Software Architecture. The top level... (and design revisited)

Ready for Scrum? Steve Hutchison DISA T&E

System Integration and Build Management

DESIGN. (Chapter 04)

18-642: Software Development Processes

Topics. Software Process. Agile. Requirements. Basic Design. Modular Design. Design Patterns. Testing. Quality. Refactoring.

Collaborative Programming: Pair Programming and Reviews CSE 403

QueryLines: Approximate Query for Visual Browsing

Transcription:

The Design Space of Software Development Methodologies Kadie Clancy, CS2310 Term Project I. INTRODUCTION The success of a software development project depends on the underlying framework used to plan and structure the process of development tasks. Presently, there are a multitude of software development methodologies in which to choose. The selection of an appropriate methodology for a specific project may not always be a straightforward process and, further, the methodology that provides the most benefit to the project may be overlooked. In an effort to organize the multitude of software development methodologies in a coherent and visual manner, I created the design space of software development methodologies in which I seek to comprehend different methodologies plotted as points. Constructing such a design space allows for a fair comparison of the various methodologies based on the underlying features and characteristics, rather than lists of advantages and disadvantages for each method, which depend more on the application to a specific project. II. RELATED WORK Most engineering disciplines organize designs or concepts as some sort of abstraction, like taxonomies or (less popularly) design spaces. Previous work has been done to apply the principles of design space analysis to a variety of projects, demonstrating the usefulness of this type of abstraction. A design space for bug fixes and how developers navigate it was constructed in [1] and [4]. The authors of [2] generated a morphological design space of computer input devices. Zwicky [3] used a similar method to generate the design space of jet engines. The design spaces introduced in these works resulted in properties of the design space as well as insight into spaces where novel designs could be produced. III. DESCRIPTION OF THE DESIGN SPACE I employed a generate-and-test paradigm to decide upon the dimensions of the design space. These dimensions correspond to features or characteristics that the methodologies share and may be differentiated based upon. To decided upon these dimensions, I conduced a Fig. 1. Characterizing the design space of software development methodologies review of popularly used development methodologies. The design space is illustrated in Figure 1. Each of these dimensions can take on certain values in either a continuous or binary manner. The possible values of each dimension are elaborated on below and a summary of possible dimension values is illustrated in Figure 2. A. Feature Adaptation This binary dimension describes if the methodology allows for new feature integration at intermediary stages of development. For example, the waterfall methodology is not flexible to the addition of new features after the initial requirements phase. As this process is sequential, developers cannot return to a previous phase without scratching the entire project and starting from the beginning. Conversely, the incremental methodology would be plotted on the opposite end of the dimension as this process allows developers to iteratively introduce features to the system based on customer feedback. B. Early Functionality Early Functionality is also a binary dimension in which a methodology can either produce a usable

Fig. 2. Possible dimension values; C represents a continuously valued dimension and D represents a discretely valued dimension system early in the development process or produce only a final functioning system at the completion of the project. C. User Involvement This dimension describes the degree to which client feedback is required. The values composing this dimension are continuous in nature. At one end of the dimension, client involvement is limited to producing the initial list of requirements. At the other end of the dimension, the client provides feedback at each step during the development process. At the middle point of this dimension, the client occasionally produces more requirements to be added to the overall system functionality. D. Documentation Efficiency This binary dimension describes if the methodology produces efficient documentation or not. For example, the Agile approach does not produce efficient business documentation. Rational Unified Process (RUP) methodology, however, places emphasis on precise documentation. E. Designed to Address Risk Some development methodologies were specifically designed to address and mitigate risks to the project. One end of this binary dimension expresses that risks are addressed in some way by the methodology, the other side of the dimension expresses that risks are not addressed. F. Team Experience Team Experience is a binary dimension in which a methodology can either require some form of specialized team member experience, or may be suitable for novice teams. Type of experience may be diverse. For example, the risk analysis component of the Spiral methodology requires highly specific expertise. Scrum requires a different type of experience in the form of an experienced designated Scrum master. G. Model Type The values of this dimension consist of discrete values of linear or incremental and iterative. For example, the waterfall methodology is a linear process in which each phase follows linearly from the previous and the revisiting of past phases is not permitted. On the other hand, Feature Driven Development methodology follows an iterative approach because it is based on separate development of features. H. Planning and Scheduling This binary dimension describes whether the planning and scheduling of development tasks and phases is done once at the beginning of the project, or if these

tasks are completed sporadically throughout the entire process. I. Project Size This continuous dimension describes the ability of a methodology to scale to larger project sizes. For example, the V-Model works best for small-to-medium sized projects, but doesn t scale well to larger projects. J. Prototypes Used Prototypes Used is another a binary dimension in which a methodology can either produce prototypes in the design and development of systems or does not explicitly make use of prototyping. For example, the Spiral methodology makes use of prototypes after the risk analysis phase of each iteration. IV. POINTS IN THE DESIGN SPACE Using the dimensions I selected to characterize the design space, I plotted a number of different methodologies to test the descriptiveness of the space. This served as a singular visualization of the array of methodologies and also as a test to make sure that different methodologies can be well distinguished from one another. In other words, this serves as a check to ensure that the constructed space is mutually exclusive. This visualization is included on page 3. A. Explanation of Waterfall I will use the waterfall model as an example to explain the plotting of a methodology in the design space. The waterfall model is considered the classic style of software development. This model proceeds in a linear sequential flow, meaning that any phase in the development process begins only after the earlier phase is completed. Therefore, this methodology has a value of linear in the model type dimension. This development approach does not define the process to go back to the previous phase to handle changes in requirements. Therefore, the method has a value of impossible on the feature adaptation dimension. The waterfall method places emphasis on documentation efficiency and is plotted as such in that dimension. The Waterfall model is simple and easy to understand and is beneficial for the beginner or novice developer and is such plotted as not needed in the experienced team dimension. There is no possibility to produce any working software until it reaches the last stage of the cycle, and therefore has a value of only final product produced on the early functionality dimension. This model is good for a small project but not ideally suitable for long and ongoing projects, and is plotted as such in the project size dimension. V. APPLICATION TO PATTERNS To put this project in the context of patterns as discussed in class, I defined the selection of a software methodology for a specific problem in terms of a problem, a context and a solution. The problem is the problem the software is being designed to address, i.e. the purpose of creating a new system. The context is external factors like budget, client, project type, deadlines, team, etc. The solution is the methodology chosen to be most appropriate out of all others plotted in the space. The most appropriate method is decided upon based on how the components of the context constrain certain dimensions of the design space. For example, if client time is limited (something that will be defined by the context), the method chosen must be restrained to only initial reqs on the user involvement dimension. Further restraints may be defined by other facets of the context, leading to the most suitable methodology. VI. CONCLUSIONS In this paper, I have created a new design space to organize and visualize software development methodologies. I then plotted methodologies as points on this space to test that it is mutually exclusive, even when plotting similar methodologies. This space, while not meant to be completely exhaustive, can act as a starting point to effectively distinguish between the vast number of available methodologies. It can also be used to visualize similar groups, and to note areas for the creation of new methodologies. A visualization of this type has a number of possible applications. Notably, project managers may use a space of this type as a tool in the selection of an appropriate methodology for specific projects as all methods may be visualized in one place. REFERENCES [1] E. Murphy-Hill, T. Zimmermann, C. Bird, and N. Nagappan, The design of bug fixes, in Proc. Int. Conf. Softw. Eng., 2013, pp. 332341. [2] S. Card, J. MacKinlay, and G. Robertson. A morphological analysis of the design space of input devices. ACM Transactions on Information Systems, 9:99122, 1991. [3] Zwicky, F. The morphological approach to discovery, invention, research, and construction. In New Methods of Thought and Procedure, F. Zwicky and A. G. Wilson, Eds. Springer- Verlag, New York, 1967, 273-297.

[4] Murphy-Hill, E., Zimmermann, T., Bird, C., and Nagappan, N., 2015. The Design Space of Bug Fixes and How Developers Navigate It. IEEE Transactions on Software Engineering 41, 1, 65-81. [5] J. Wang, Fundamentals of erbium-doped fiber amplifiers arrays (Periodical style Submitted for publication), IEEE J. Quantum Electron., submitted for publication.