Methodologies: Outlining the Process Framework

Methodologies: Outlining the Process Framework

DOI: 10.4018/978-1-5225-5589-6.ch002


In this chapter, the authors discuss software development methodologies. These are adaptive process frameworks adjustable to software product size and scope. They usually include a set of methods, principles, techniques, and software development tools. Every methodology can implement any of the lifecycle models. The authors discuss the difference between formal and agile methodologies. The formal methodologies include more artifacts. For each activity, every role assigned to it produces a deliverable. Agile methodologies are applicable in uncertain conditions. These agile methodologies rely on self-disciplined and self-manageable teams. They are more constrained by human-related factors. As in lifecycle models, there is no “silver bullet” in software development methodologies. Due to rigorous processes and more artifacts, formal methodologies are suitable for large-scale product development. Agile methodologies require special techniques and a high level of discipline. Otherwise, they likely result in a low-quality software.
Chapter Preview

What Is A Methodology

The previous chapter described the lifecycle models of software systems and the main stages of their development. It started with a conceptual idea and went through requirements, specification, design, implementation, and maintenance/support to retirement. The authors discussed how these steps are performed in certain lifecycle models. Some of the models, such as object-oriented, include all of the lifecycle steps. The others, such as build-and fix, do not. There are certain models with linear sequence of phases, such as waterfall. The others, such as object-oriented or spiral, support cyclic or iterative lifecycles. Some models, such as object-oriented, allow parallel or concurrent execution of some lifecycle stages, e.g. analysis and design. There are dependent lifecycle models such as rapid prototyping. It is often reasonable to combine rapid prototyping with other lifecycle models, such as spiral or waterfall. Such combinations save implementation time and costs. They also help to avoid severe design errors. They facilitate functionality demonstration of the product in its early stages: analysis, preliminary design and requirements specification. Moreover, rapid prototyping helps to establish and maintain better interaction with the customer. It makes it easier to determine the optimal direction of product development and to verify that both sides understand the product features similarly. For the above reasons, rapid prototyping is especially valuable as an agile solution for software development (Robertson, 2013).

Let us consider methodologies. They make a parallel dimension to the lifecycle models. These methodologies assist in software product development of mission-critical systems (Booch, Maksimchuk, Engel, Young, Conallen & Houston, 2007; Lipaev, 2006; Pressman & Maxim, 2015; Sommerville, 2011; Tanenbaum & Steen, 2007). Usually, a methodology means a set of techniques, models, methods and tools. Here, it will also include a set of best practices for software development. Within a software development methodology, one can seldom find rigorous mathematical models other than those used for economic evaluation and feasibility study of the project. A number of approaches, especially in cases of agile methodologies, e.g. Scrum or Agile, suggests a flexible set of customizable best practices, i.e. practical methods for software systems development. Therefore, it is often meaningless to consider a methodology as a theoretical research subject. In this respect, many of the authors’ findings on the lifecycle models also apply to the methodologies. This is why best practices and certain classes of development tools are included into the discussion (Layton & Ostermiller, 2017).

Complete Chapter List

Search this Book: