Midterm Material - Software Process and Process Models Flashcards

1
Q

What is a software process?

A

A structured set of activities required to develop a software system.

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

What do all software processes involve?

A

Specification - Defining what the system should do
Design and implementation - defining the organization of the system and implementing the system
Validation - Checking that the system does what the customer wants
Evolution - Changing the system in response to customer needs

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

What is a process model?

A

An abstract representation of a process.

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

What is the difference between a process and a process model?

A

A layer of abstraction similar to the difference between an abstract data type (ADT) and the implemented data type. For example, waterfall is an abstract model that a company can implement as a process to suit their needs.

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

What is a software process description?

A

Talking about the activities to be performed within the process and the ordering of the activities. They may also include products, the outcomes of a process activity, and roles, which reflect the responsibilities of the people involved with the process.

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

What is the difference between plan-driven and agile processes?

A

In plan driven, all process activities are planned in advance and progress is then measured against it. In agile, planning is incremental. It is easier to change the process to reflect different customer requirements.

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

What is the advantage of the incremental planning of agile models?

A

Makes it easier to make changes based on client feedback without needing to redo a lot of the work.

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

What is the waterfall model?

A

It is a plan-driven process model with separate and distinct phases of specification and development.

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

What are the stages of the waterfall model?

A

Requirements definition, system and software design, implementation and unit testing, integration and system testing, operation and maintenance.

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

What is the main problem with the waterfall model?

A

It is difficult to change anything once the process has begun. In waterfall, a phase must be complete before you can move on so if you’ve made a mistake it’s hard to go back.

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

When should a waterfall model be used?

A

When requirements are well understood and changes will be limited during the design process. Also for large systems engineering project where a system is developed at several sites.

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

What are some other problems with the waterfall model?

A

The client only sees a working product once the entire thing has been coded. This can be a problem because they may have not described what they really want.

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

What is an incremental development model?

A

A model where specification, development, and validation are happening concurrently. Could be plan-driven or agile.

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

What are the stages and products of an incremental development model?

A

Specification, development, and validation are the stages that happen concurrently. The products produced are the initial version, intermediation versions, and the final version of the product. The initial and intermediate versions provide feedback to improve the product.

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

What are the benefits of an incremental development model?

A

It doesn’t cost as much to accommodate changes as the amount of analysis and documentation that would have to be redone is reduced.

Makes it easier to get customer feedback. Because of the production of prototypes customers can comment on demonstrations of the software.

More rapid delivery and deployment of useful software is possible.

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

What are the drawbacks of an incremental development model?

A

The process is not as visible to managers since not as much documentation is produced. This makes it more difficult to track progress.

System structure degrades as new increments are added. This happens because the additional build has to be incorporated without destroying what is already there.

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

What is a reuse-oriented model?

A

A process where the system is put together from existing components. The components can be configured to make them fit the particular user requirements

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

What are some examples of reusable software?

A

Stand alone applications configured for use in a particular environment. Ex: different versions of WindowsOS for enterprise or home use.

Collections of objects developed as a package to be integrated with a component framework.

Web services developed according to service standards available for remote invocation. Ex: REST APIs.

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

What are the stages of a reuse oriented process?

A

Requirements specification, software discovery and evaluation where old software is found that meets the criteria for the current application. Requirements refinement where the requirements are adjusted if necessary. If the application system is available it can be directly integrated but if only the components are available, the components will need to be adapted, new components will need to be added, and then the system can be integrated.

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

What are the advantages of reuse-oriented models?

A

Reduced costs as not as much software is being built from scratch.

Faster delivery and deployment of the system.

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

What are the drawback of reuse-oriented models?

A

Requirements compromises need to be made to make existing components fit so the system may not meet the needs of users.

You lose control of the evolution of the reused elements.

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

What are the 4 basic process activities?

A

Specification, development, validation, and evolution

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

What is requirements engineering?

A

Establishing what services are required and the constraints on the system’s operation and development

24
Q

What is software design and implementation?

A

Design is coming up with a structure that realizes the specification. Implementation is taking the design and translating it into an executable program. Together, they convert system specifications into executable systems.

25
Q

What are the inputs, activities, and outputs of the design process?

A

Inputs: Platform information, requirements specification, data description

Activities: architectural design, interface design, component design, database design

Outputs: System architecture, database specification, interface specification, component specification

26
Q

What is architectural design?

A

Identifying overall structure of the system, principal components, how they are related, and how they are distributed

27
Q

What is database design?

A

You design the system data structures and how they are represented in a database

28
Q

What is interface design?

A

Defining the interfaces between the components

29
Q

What is component design

A

Designing the individual components of the system.

30
Q

How is a system implemented?

A

By developing a program or by configuring an application system. However, there is no standard process to programming.

31
Q

What is the goal of verification and validation?

A

To show that a system conforms to specification and meets the requirements of the customer.

32
Q

What is the most common verification and validation activity?

A

Testing

33
Q

What are the stages of testing?

A

Component testing, system testing, acceptance testing

34
Q

What is component testing?

A

Testing individual components independently. Components can be defined as functions, objects, or groupings of them.

35
Q

What is system testing?

A

Testing the whole system, all components together

36
Q

What is acceptance testing?

A

Testing the system with customer data to ensure the system meets customer needs.

37
Q

What is the purpose of software evolution?

A

As business requirements change, the software that supports the business must change as well. Fewer and fewer systems are completely new so evolving it to meet changing needs is important.

38
Q

What are the inputs, activities, and outputs of software evolution?

A

Inputs: existing systems
Activities: defining system requirements, assessing existing systems, proposing system changes, modifying the system
Outputs: New system

39
Q

What is change anticipation?

A

Having the software process include activities that predict changes before rework is required. An example of this would be producing a prototype to show key features so if the changes can be provoked early on.

40
Q

What is change tolerance?

A

When the software process is designed so changes can be made at a low cost. This usually involves a form of incremental development since you won’t have to go back and change documentation every time something changes.

41
Q

What is a prototype?

A

An initial version of a system to demonstrate concepts and try out design options.

42
Q

What are the benefits of prototyping?

A

Improved system usability, closer matching real users needs, improved design quality, improved maintainability, reduced development effort.

43
Q

What are the activities and products of prototype development?

A

Activities: establish prototype objectives, define prototype functionality, develop prototype, evaluate prototype.

Products: prototyping plan, outline definition, executable prototype, evaluation report

44
Q

What info should a prototype include?

A

Only the areas of the product that are not well understood since we are prototyping to resolve details. Error checking and recovery may or may not be included. Focusing on functional requirements rather than non-functional

45
Q

Should a prototype be used as a base for the rest of the software? Why or why not?

A

No, a prototype should be discarded after it is finished and new software built in its place. This is because the prototype structure is typically heavily degraded, it won’t meet organizational quality standards, and it might not be feasible to modify the system to meet the non-functional requirements since we weren’t focusing on them.

46
Q

What are the steps in the process improvement cycle?

A

Measurement, analysis, change

47
Q

What is process measurement?

A

Measure an attribute of the software process to form a baseline to see if process improvements are effective

48
Q

What is process analysis?

A

Assessing the current process to find process weaknesses and bottlenecks

49
Q

What is process change?

A

Proposing changes to address the weaknesses found in analysis

50
Q

What type of data should be collected on processes?

A

Quantitative data. Time taken for process activities, resources required, number of defects, etc.

51
Q

What are the 5 stages of the SEI Capability Maturity Model and what do they mean?

A
  1. Initial - the process is unpredictable, poorly controlled, and reactive
  2. Repeatable - Processes are made for specific projects but there is no organization wide process and so the organization is often reactive as a whole.
  3. Define - You have defined a process at the organization level but the projects may change the process to meet specifics
  4. Managed - You are measuring the process and analysing the data
  5. Optimizing - Using the collected data to make changes to the processes
52
Q

What is the rational unified process?

A

A generic process for object-oriented models. It is designed and documented using Unified Modelling Language. it is iterative and incremental.

53
Q

What are the phases of the rational unified process?

A

Inception - establish the business case for the system
Elaboration - develop understanding of the problem domain and system architecture
Construction - system design, programming, and testing
Transition - Deploy the system in its operating environment

54
Q

What are the five core workflows of the Unified Process?

A

Requirements, analysis, design, implementation, and test. Each phase has all of the workflows in different amounts

55
Q

What are the six Unified Process best practices?

A
  1. Develop software iteratively - plan increments based on customer priorities with high priority items coming first.
  2. Manage requirements - explicitly document customer requirements and keep track of changes
  3. Use component-based architecture - organize the system out of reusable components
  4. Visually model software - use UML models to present static and dynamic views of the software
  5. Continuously verify quality - performing testing throughout the project
  6. Control changes - manage changes using a change management system and configuration management tools.