MODELS OF SOFTWARE DEVELOPMENT PROCESSES Flashcards
Characterize the software development process.
It’s different from organization to organization and from project to project differing:
- the number of stages;
- the execution order of the phases (in parallel, iteractive, in a loop, linearly, etc…);
- the used tools and methods;
- in controls and products that need to be delivered;
- etc…
What are the top models of software development processes?
- Waterfall Model (Cascade or Linear Sequential Model)
- RAD Model
- Prototyping Models
- Evolutionary Models
- Component-Based Model
- Model Based on Formal Methods
- 4GT
- Agile Models
Characterize the models of the software development process.
The models are adaptable depending on the process’ tasks and the model type to use depends on the type of problem to solve.
What are the characteristics of the Linear Sequential Model or Cascade Model or Classical Model?
- Oldest and most used model;
- There are 5 phases of development (developer should complete each phase before moving to the next one);
- The steps always follow in this order and do not overlap;
- Diagrammatic representation resembles a cascade of waterfalls.
What are the five phases of the Cascade Model?
- Requirements analysis and specification phase;
- Design phase;
- Implementation and unit testing;
- Integration and System Testing;
- Operation and maintenance phase.
What are the advantages of the Cascade Model?
- Simple to implement;
- Minimal resources needed;
- Requirements are simple, excplicit and don’t change throughout the project;
- Easier to cover progress as the start and end points of the project stays the same;
- Everything can be determined before even starting the development process (everything is written down)
- Clarity for the customer as everything is well defined.
What are the disadvantages of the Cascade Model?
- High risk;
- Not flexible nor adaptable to change;
- Hard to overcome issues after the testing phase
When is the Waterfall Model most suitable?
- When the requirements are constant;
- For short projects;
- When the tools needed don’t change;
- When the resources are well prepared.
Characterize the Prototyping Model.
- Before starting the development process of the software, a working prototype of the system is built;
- Prototype is a crude version of the actual thing, but can tell a lot about it;
When is the Prototyping Model the best solution?
When:
1. the customer doesn’t know what they want
2. the analyst don’t know well the problem domain
3. there’s difficulty in communication between the process stakeholders
What can cause the Prototype Building Model to fail?
- Illusions created by the user
- Complex path between the prototype and the final product
- What if the customer prefers the prototype rather than the final product?
- Often we tend to rush the idea and the prototype is already wrong leading to a bad final product
Is it possible to combine the Cascade Model and the Prototyping Model?
Yes, it is possible to combine these two. The key is to strike a balance between the structured nature of the Linear Sequential Model and the adaptability of the Prototyping model based on the specific needs and characteristics of the project.
How does the Rapid Application Development work?
The functional modules are developed in parallel as prototypes and are integrated to make the complete product for a faster product delivery. Since there’s no detailed preplanning changes can be incorporated within the development process. So the process in divided into components that is developed by a single team simultaneously with other components.
When is RAD the best modeling solution?
It’s not limited to only one particular situation but suits better when developing software driven by user interface requirements.
The RAD model distributed the analysis, design, build, and test phases into a series of short and iterative development cycles. Name the five cycles.
- Business modeling: what information flows between that business functions,
- Data modeling: the information flows are refined in a set of data objects,
- Process modelling: how business functions operate on the data object,
- App Gen: reuse components of existing programs or create components that can be reusable (using 4G techniques),
- Testing and turnover: testing of new components and testing and experimenting of interfaces.