Ch. 8: Organization of Software Projects Flashcards
How do process paradigms differ from software process models?
Process paradigms are very general process models. They provide the rough structure of software processes, but without going into details.
In order to take into account the organization-specific features in software development, individual software process models are developed. Using this detailed individual process model, it is transparently described for all those involved in an organization how a development process should run, i.e., which activities are carried out by which roles and which results are generated.
What is a software process model framework?
This is a comprehensive and detailed set of general roles, activities, and responsibilities that can be tailored to the specific needs of IT organizations. It was created as a basis for the design of organization-specific software processes.
Please give two examples of software process model frameworks.
V-Modell XT, Rational Unified Process (RUP), Scrum.
How are the software process model and software process related?
To take into account the organization-specific features in software development, specific software process models are developed based on the specifications of the software process model frameworks. On the basis of this individual process model, the way a development process should run is described.
A single software process, i.e., a very specific software project, is an expression of the individual software process model. For a software process model, there are a number of software processes that are executed according to the specifications and framework conditions of the process model.
Explain the basic idea behind the waterfall model.
The basic idea behind the waterfall model is the step-by-step processing of the individual phases of requirements, analysis, design, implementation, testing, and operation in a defined sequence. Like a waterfall, a software project “falls” one after the other from “top to bottom”. Every single phase is fully completed, only then does it move on to the next phase.
In Royce´s waterfall model, analysis is followed by …
… program design.
Explain the Boehm’s V-Model process paradigm.
The basic idea of the V-model, as shown in the figure below, is the 1:1 assignment of construction phases (the left half of the V) and phases to be tested (the right half of the V). Starting with the technical requirements analysis, as in the waterfall model, all of the core software engineering activities are carried out. The software project then moves through various test levels up to the acceptance of the system. Each phase of the construction is assigned a specific test level, which is on the same level of detail as the construction phase. Before the integration tests can begin, all unit tests must be completed.
In Boehm´s V-model, the system design is verified by …
… system integration tests.
Please explain the basic idea of evolutionary or Agile development and name the individual phases.
The process paradigm “evolutionary development” describes a general process model, the basic idea of which is the Agile creation of the software system in several repetitive cycles or sprints. The functional scope of the software system to be created grows with each version. Findings that are gained during the implementation and evaluation of the current version can be taken into account in the following system versions. A cycle runs as follows:
1. Determine which functions are to be implemented in this cycle
2. Implementation of the functions
3. Integration of the new functions into the existing system
4. Testing and evaluating the current software version
What is the difference between the waterfall model and the evolutionary development?
A fundamental difference between the two approaches is the basis on which important decisions are made in the project. Agile software development is geared towards ensuring that all important decisions are made based on knowledge gained during the project. So, this approach is “knowledge driven.” Classic software development, on the other hand, is more oriented towards plans that were created in the run-up to the project or in the early project phases. Based on previous experience and the current level of knowledge of the people involved, assumptions about the course and results of the project are made and documented in the form of plans and specifications. Thus, these projects are “assumption-driven” because they were created based on assumptions about the future.
An evolution cycle integration of the new functions into the existing system is typically followed by …
… testing and evaluating the current software version.
What is referred as “agility” in Agile/Evolutionary development?
It means a thought scheme or a design principle for software development activities. There is no uniform definition for this. Often, “agility” is also seen as a value or attitude, according to which one designs daily project work.