MODELS OF SOFTWARE DEVELOPMENT PROCESSES Flashcards

1
Q

Characterize the software development process.

A

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…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the top models of software development processes?

A
  1. Waterfall Model (Cascade or Linear Sequential Model)
  2. RAD Model
  3. Prototyping Models
  4. Evolutionary Models
  5. Component-Based Model
  6. Model Based on Formal Methods
  7. 4GT
  8. Agile Models
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Characterize the models of the software development process.

A

The models are adaptable depending on the process’ tasks and the model type to use depends on the type of problem to solve.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the characteristics of the Linear Sequential Model or Cascade Model or Classical Model?

A
  1. Oldest and most used model;
  2. There are 5 phases of development (developer should complete each phase before moving to the next one);
  3. The steps always follow in this order and do not overlap;
  4. Diagrammatic representation resembles a cascade of waterfalls.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the five phases of the Cascade Model?

A
  1. Requirements analysis and specification phase;
  2. Design phase;
  3. Implementation and unit testing;
  4. Integration and System Testing;
  5. Operation and maintenance phase.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the advantages of the Cascade Model?

A
  1. Simple to implement;
  2. Minimal resources needed;
  3. Requirements are simple, excplicit and don’t change throughout the project;
  4. Easier to cover progress as the start and end points of the project stays the same;
  5. Everything can be determined before even starting the development process (everything is written down)
  6. Clarity for the customer as everything is well defined.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the disadvantages of the Cascade Model?

A
  1. High risk;
  2. Not flexible nor adaptable to change;
  3. Hard to overcome issues after the testing phase
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

When is the Waterfall Model most suitable?

A
  1. When the requirements are constant;
  2. For short projects;
  3. When the tools needed don’t change;
  4. When the resources are well prepared.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Characterize the Prototyping Model.

A
  1. Before starting the development process of the software, a working prototype of the system is built;
  2. Prototype is a crude version of the actual thing, but can tell a lot about it;
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

When is the Prototyping Model the best solution?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What can cause the Prototype Building Model to fail?

A
  1. Illusions created by the user
  2. Complex path between the prototype and the final product
  3. What if the customer prefers the prototype rather than the final product?
  4. Often we tend to rush the idea and the prototype is already wrong leading to a bad final product
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Is it possible to combine the Cascade Model and the Prototyping Model?

A

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 well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

How does the Rapid Application Development work?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

When is RAD the best modeling solution?

A

It’s not limited to only one particular situation but suits better when developing software driven by user interface requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

The RAD model distributed the analysis, design, build, and test phases into a series of short and iterative development cycles. Name the five cycles.

A
  1. Business modeling: what information flows between that business functions,
  2. Data modeling: the information flows are refined in a set of data objects,
  3. Process modelling: how business functions operate on the data object,
  4. App Gen: reuse components of existing programs or create components that can be reusable (using 4G techniques),
  5. Testing and turnover: testing of new components and testing and experimenting of interfaces.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the main problems of RAD?

A
  1. When used in large projects the human effort is high, which demands more people and leads to spending more money,
  2. The customer and the developers must be fully engaged in completting the project,
  3. Cannot be applied if the system isn’t adequately modular.
17
Q

What are the most important Evolutionary Models?

A
  1. Incremental model
  2. Spiral model
  3. Concurrent development model
18
Q

How does the Incremental Model work?

A

The incremental model applies the waterfall model incrementally and combines the iteration of the prototyping model with the efficiency of the linear sequential model. The initial product delivery is faster and costs less.

19
Q

When is an Incremental Model most suitable?

A

When the project has a lengthy development schedule, when the software team is not experienced and when the requirements are superior.

20
Q

What is the main disadvantage in using the Incremental Model?

A

Is that it is necessary to be smart about the various setps of planning functionalities.

21
Q

How does the Spiral Model work?

A

It combines the iteration of the prototyping model with the efficiency of the linear sequential model. It maintains a systematic approach but inserted in iterative envionment. Its risk level is high and prototypes are used as a risk reduction mechanism. This model is mainly used in medium/large projects.

22
Q

What are the main features of the Spiral Model?

A
  1. Maintains a systematic approach but it’s inserted in an iteractive environment,
  2. Requires a risk management at all levels, preventing risks before even appearing,
  3. Prototypes are used at any stage as a risk reduction mechanism,
  4. Used in medium/large projects,
  5. One of the most realistic approaches to large-scale SW development.
23
Q

What are the advantages of using the Spiral Model?

A
  1. Costs and schedules are adapted to the customer’s response to each delivery
  2. The model can be applied until the end of the software life
  3. Enables rapid determination and reaction to risks in each stage.
24
Q

Characterize the Concurrent Development Model.

A

This model implements the various stages in parallel with sync points, is represented as a set of technical activities, tasks and their status and all the activities are concurrent but in different states. It gives a clear picture of the current state of a project, regardless of te software type.

25
Q

Characterize the Component-Based Model.

A

Incorporates the Spiral Model’s main features, uses the object-oriented paradigm and the object, if well implemented, can be reused in different applications and system architectures. As the final result is not only the application but also the added components in the components library, allowing the reduction of the development process duration and cost and increasing the productivity.

26
Q

What are the main features of the Component-Based Model?

A
  1. Emphasis on formal specification with mathematical basis,
  2. Rigorous and demonstrable notation,
  3. Facilitates the detection and correction of problems related with ambiguities, inconsistencies and incomplete solutions,
  4. Allows the production of defeat-free software.
27
Q

What are the main problems of the Component-Bases Model

A
  1. High cost and time-consuming,
  2. Lack of human resources with proper training,
  3. Slow learning cycle needed for proper training,
  4. The models don’t provide the right conditions for the communication with the customers.
28
Q

What do the 4GT software tools include?

A
  1. Allow the software specification to be at a high level of abstraction,
  2. The used notation is typically based on screens, this notation facilitates communication with the customer,
  3. Allow the automatic generation of code based on a previous specification.
29
Q

What are the phases of the 4th Generation Techniques?

A
  1. Obtaining Requirements
  2. Project Strategy
  3. 4GL Implementation
  4. Tests
30
Q

What are the advantages of the 4GT?

A
  1. Reduces the analysis and design of small/medium software products,
  2. Dramatic reduction in software development time, leading to an increase in productivity.
31
Q

What are the main problems when using 4GT?

A
  1. Learning difficulties
  2. Code inefficiency
  3. Maintenence of large systems is still problematic even when using 4GT
32
Q

What are the pinciples of the Agile Processes?

A
  1. Individuals and interactions (not processes and tools),
  2. Software running (not comprehensive documentation),
  3. Customer collaboration (not contract negotiation),
  4. Responsible to changes (not following a detailed plan),
  5. Keep It Simple
  6. Focus on customer satisfaction and incremental delivery of software,
  7. Small project teams with high motivation,
  8. Informal methods,
  9. Minimum software and simplicity of development.
33
Q

What is the Rational Unified Process (RUP)?

A

It’s a proprietary software engineering process. This model uses the object-oriented approach and is designed and documented using the UML notation. To increase productivity, it points a set of techniques to be followed by the team members. Mainly used for large teams and projects but is widely customizable according to the project.

34
Q

What are the six engineering disciplines of Software Development? (Static Components)

A
  1. Business Modelling,
  2. Requirements,
  3. Analysis and Desgin,
  4. Implementation,
  5. Testing,
  6. Installation.
35
Q

What are the three support disciplines of Software Development? (Static Components)

A
  1. Environment,
  2. Configuration and Change Management,
  3. Project Management.
36
Q

What are the four phases of Software Development? (Dynamic Components)

A
  1. Inception,
  2. Elaboration,
  3. Construction,
  4. Transition.
37
Q

What are the ICONIX steps?

A
  1. Requirements review (use cases + domain model);
  2. Preliminary design review (robustness diagram);
  3. Detailed design review (class diagram + sequence diagram);
  4. Deployment (unit tests + code).