Lecture Notes 3 Flashcards

1
Q

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

A

software process

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

an abstract representation of a process. It
presents a description of a process from some particular perspective.

A

software process model

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

different software processes

A

Specification
Design and Implementation
Validation
Evolution

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

defining what the system should do.

A

Specification

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

defining the organization of the system and
implementing the system.

A

Design and Implementation

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

checking that it does what the customer wants.

A

Validation

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

which reflect the responsibilities of the people involved in
the process;

A

Roles,

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

changing the system in response to changing customer needs.

A

Evolution

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

which are the outcomes of a process activity;

A

Products,

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

which are statements that are true before
after a process activity has been enacted or a product produced.

A

Pre- and post-conditions,

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

are processes where all of the process
activities are planned in advance and progress is measured against
this plan.

A

❑Plan-driven processes

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

most practical processes include elements of both plan-
driven and agile approaches.

A

❑In practice,

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

planning is incremental and it is easier to change
the process to reflect changing customer requirements.

A

❑In agile processes,

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

❑There are no right or wrong software processes.

A

true

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

is a sequential design used in software
development process, in which progress is seen as flowing
steadily downwards.

A

Waterfall model

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

Separate and distinct phases of
specification and development.

A

❑Plan-driven model.

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

Why waterfall?

A

Because of the way if falls down

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

Sequential phases of Waterfall model

A

❑Requirement Gathering and analysis:
❑System Design:
❑Implementation:
❑Integration and Testing:
❑Deployment of system:
❑Maintenance:

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

All possible requirements of
the system to be developed are captured in this phase and
documented in a requirement specification doc.

A

❑Requirement Gathering and analysis:

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

The requirement specifications from first phase are
studied in this phase and system design is prepared. System Design
helps in specifying hardware and system requirements and also helps
in defining overall system architecture.

A

❑System Design:

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

With inputs from system design, the system is first
developed in small programs called units, which are integrated in the
next phase. Each unit is developed and tested for its functionality
which is referred to as Unit Testing.

A

❑Implementation:

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

All the units developed in the
implementation phase are integrated into a system after testing of
each unit. Post integration the entire system is tested for any faults and
failures.

A

❑Integration and Testing:

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

Once the functional and non functional
testing is done, the product is deployed in the customer environment
or released into the market.

A

❑Deployment of system:

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

There are some issues which come up in the client
environment. To fix those issues patches are released. Also to enhance
the product some better versions are released. Maintenance is done to
deliver these changes in the customer environment.

A

❑Maintenance:

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
* The next phase is started only after the defined set of goals are achieved for the previous phase and it is signed off. * In this model phases do not overlap. * Phases are processed and completed one at a time. * Works well for smaller projects where requirements are very well understood.
waterfall model
16
16
Water sluice separates the important aspects from the less important and concentrate on solving them first.
true
17
combines the structure of the waterfall methodology and the flexibility of the spiral methodology by enforcing the prioritization of activities.
Water sluice model
17
Dr. Ron Burback
Water sluice model
18
Phases of water sluice model
❑Analysis Phase: ❑Design Phase: ❑Implementation Phase: ❑Testing Phase:
19
This phase is to know what the user wants; it understands the user’s needs and defines the requirement of the user. Therefore, this phase defines the goals of the project undertaken.
❑Analysis Phase:
19
Design phase accepts the data from the analysis phase and converts it into an architecture, which defines the components and its behavior. This phase establishes the plans of the project.
❑Design Phase:
19
In this phase, the data from the analysis phase and the architecture from the design phase are taken. In this phase, the components are built. This phase does the coding work.
❑Implementation Phase:
19
The testing is done after the completion of the implementation phase. This phase improves the quality of the product. In this phase, a completed working condition product is set under testing. Before giving to the end user, the product is kept under different types of physical and logical testing.
❑Testing Phase:
20
in water sluice model, priorities are evaluated and those activities that are considered most valuable are completed first
true
21
unifies a software team by providing a common view of the development process and a shared vision of a common goal.
Rational unified model
21
Phases Rational unified model
❑Inception Phase ❑Elaboration Phase ❑Construction Phase ❑Transition Phase
21
define the scope of project
❑Inception Phase
22
specify requirements in greater detail and define the architecture for the system.
❑Elaboration Phase
22
develop the application to the point where it is ready for deployment.
❑Construction Phase
22
deliver the system into production
❑Transition Phase
22
Rational unified model Less time is required for integration as the process of integration goes on throughout the software development life cycle.
true
23
way to manage a project by breaking it up into several phases.
Agile methodology
23
▪ Group of software development methodologies based on iterative development.
Agile methodology
23
▪ This means that everyone on the team knows what is going on and, if problems arise, can re-plan short-term work to cope with them.
Agile methodology
23
Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods.
true
23
▪ Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods. These methods:
o Focus on the code rather than the design o Are based on an iterative approach to software development o Are intended to deliver working software quickly and evolve this quickly to meet changing requirements.
23
▪ The aim of agile methods is to ______ ________in the software process (e.g. by limiting documentation) and to be able to respond quickly to changing requirements without excessive rework.
reduce overheads
24
Customers should be closely involved throughout the development process. Their role is provide and prioritize new system requirements and to evaluate the iterations of the system.
Customer involvement
24
The software is developed in increments with the customer specifying the requirements to be included in each increment.
Incremental delivery
24
The skills of the development team should be recognized and exploited. Team members should be left to develop their own ways of working without prescriptive processes.
People not process
24
Expect the system requirements to change and so design the system to accommodate these changes.
Embrace change
24
Focus on simplicity in both the software being developed and in the development process. Wherever possible, actively work to eliminate complexity from the system.
Maintain simplicity
24
▪Product development where a software company is developing a small or medium-sized product for sale.
Agile methodology applicability
24
clear commitment from the customer to become involved in the development process and where there are not a lot of external rules and regulations that affect the software.
Agile methodology applicability
25
▪ Because of their focus on small, tightly-integrated teams, there are problems in scaling agile methods to large systems.
Agile methodology applicability
26
▪ It can be difficult to keep the interest of customers who are involved in the process.
Problems with Agile methodology
27
▪ Team members may be unsuited to the intense involvement that characterizes agile methods.
Problems with Agile methodology
28
▪ Prioritizing changes can be difficult where there are multiple stakeholders.
Problems with Agile methodology
28
▪ Maintaining simplicity requires extra work.
Problems with Agile methodology
29
▪ Contracts may be a problem as with other approaches to iterative development.
Problems with Agile methodology
29
▪ Problems may arise if original development team cannot be maintained. in agile method
true
29
if agile methods are to be successful, they have to support maintenance as well as original development.
true
29
is based around separate development stages with the outputs to be produced at each of these stages planned in advance.
Plan-driven development
30
▪ Are systems that are developed using an agile approach maintainable, given the emphasis in the development process of minimizing formal documentation? ▪ Can agile methods be used effectively for evolving a system in response to customer change requests?
2 key issues of agile method
30
Most organizations spend more on maintaining existing software than they do on new software development.
true
31
Iteration occurs within activities.
Plan-driven development
31
Not necessarily waterfall model – plan-driven, incremental development is possible
Plan-driven development
32
Specification, design, implementation and testing are inter-leaved and the outputs from the development process are decided through a process of negotiation during the software development process.
▪ Agile development
32
an iterative and incremental agile software development methodology for managing product development.
SCRUM MODEL
33
SCRUM MODEL PROCESS
❑ Sprint Planning ❑ Daily Scrum ❑ Sprint Review ❑ Implement ❑ Review and Retrospect ❑Release
34
team presents what is accomplished during the sprint
❑ Sprint Review
34
determine the Sprint Goal
❑ Sprint Planning
34
a short (15 minutes long) meeting, which is held every day before the Team starts working
Daily Scrum
35
execution of the tasks and activities to create a project's product
❑ Implement
35
concerned with reviewing the deliverables and the work that has been done
❑ Review and Retrospect
35
is a facilitator who arranges daily meetings, tracks the backlog of work to be done, records decisions, measures progress against the backlog and communicates with customers and management outside of the team.
‘Scrum master’
35
delivering the Accepted Deliverables to the customer
❑Release
35
- program and application development
❑Construction
35
in scrum model, ❑The whole team attends short daily meetings where all team members share information, describe their progress since the last meeting, problems that have arisen and what is planned for the following day.
true
35
in scrum model, Requirements are captured as items in a list of product backlogs.
true
36
* incremental software development process model that allows usable systems to be built in as little as 60-90 days.
Rapid application development model
36
* James Martin (1980’s)
Rapid application development model
36
in scrum model, Scrum projects make progress in a series of sprints.
true
36
Phases of rad
❑Requirements Planning ❑User Design ❑Construction ❑Cutover
36
* Also referred to as RAD
Rapid application development model
36
- develop models and prototypes that represent all system processes, inputs, and outputs.
❑User Design
36
- Users, managers, and IT staff members discuss and agree on business needs, project scope, constraints, and system requirements
❑Requirements Planning
37
a methodology that combines the features of the prototyping model and the waterfall model.
spiral model
37
resembles the final tasks in the SDLC implementation phase, including data conversion, testing, changeover to the new system, and user training
❑Cutover
37
in rad,put less emphasis on planning and more emphasis on process.
true
37
in rad,Requires highly skilled developers/designers.
true
37
in spiral model, favored for large, expensive, and complicated models.
true
38
in rad,products can be developed faster.
true
38
Barry Boehm
spiral model
38
Extreme programming practices
❑ The Planning Game ❑ Customer Test ❑Small Releases ❑Simple Design Metaphor ❑ Continues Testing ❑Refactoring ❑Pair Programming ❑Listening ❑ Designing ❑Coding ❑Testing
38
Six(6) regions of spiral model
❑ Customer Communication ❑ Planning ❑Risk Analysis ❑ Engineering ❑Construction and Release ❑Customer Evaluation
38
in spiral model, High amount of risk analysis
true
38
- build one or more representations of the application.
❑ Engineering
39
- obtain customer feedback based on evaluation of the software representations.
❑Customer Evaluation
39
- assess both technical and management risks.
❑Risk Analysis
39
- tasks required to establish effective communication between developer and customer.
❑ Customer Communication
39
- construct, test, install, and provide user support.
❑Construction and Release
39
a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements.
Extreme programming methodology
39
- define resources, timelines, and other project related information.
❑ Planning
39
- XP programmers start to generate codes at the very beginning.
coding
39
Kent Beck
Extreme programming methodology
39
- always check if a function works.
testing
39
- XP developers ability and expertise in technical aspects should be accompanied by their ability to be a good listeners.
❑Listening
39
- XP team create a design structure that organizes the logic in the system.
❑ Designing
40
- all production code is written by two programmers sitting at one machine.
❑Pair Programming
41
- XP team refactor out any duplicate code generated in a coding session.
❑Refactoring
42
- XP team focus on validation of the software at all times.
❑ Continues Testing
43
- XP teams develop a common vision of how the program works
❑ Metaphor
44
- XP uses the simplest possible design that gets the job done
❑Simple Design
44
- team releases running system , deliver business value chosen by the customer.
❑Small Releases
44
- customer defines one or more automated acceptance test to show that the feature is working.
❑ Customer Test
45
- system is evaluated and tested in Prototyping model phases
❑Customer Test Drive Prototype
45
in Extreme programming, code centric rather than design centric development
true
46
- business and developer cooperate to produce the maximum business value as rapidly as possible.
❑ The Planning Game
47
Prototyping model phases
❑ Listen to Customer ❑ Build/Revise Prototype ❑Customer Test Drive Prototype
48
in Extreme programming, extreme programmers work together in pairs and as a group with a simple design and obsessively tested code.
true
49
process of quickly putting together a working model (a prototype) in order to test various aspects of a design, illustrate ideas or features and gather early user feedback.
Prototyping model
49
A type of development in which emphasis is placed on developing prototypes early in the development process to permit early feedback and analysis in support of the development process.
Prototyping model
50
in Prototyping model, it brings the user to get involved in the system design. Missing functionality can be identified easily.
true
50
- user is interviewed in order to know the requirements of the system. - create a preliminary design or quick design for the system
❑ Listen to Customer
51
▪ Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems.
Reuse oriented software engineering
51
▪ Reuse is now the standard approach for building many types of business system
true
51
Incremental development/ model benefits ▪ The cost of accommodating changing customer requirements is reduced. o The amount of analysis and documentation that has to be redone is much less than is required with the waterfall model. ▪ It is easier to get customer feedback on the development work that has been done. o Customers can comment on demonstrations of the software and see how much has been implemented. ▪ More rapid delivery and deployment of useful software to the customer is possible. o Customers are able to use and gain value from the software earlier than is possible with a waterfall process.
true
51
software development where the product is designed, implemented and tested incrementally (a little more is added each time) until the product is finished.
Incremental development/ model
51
Incremental development/ model problems ▪The process is not visible. o Managers need regular deliverables to measure progress. If systems are developed quickly, it is not cost-effective to produce documents that reflect every version of the system. ▪ System structure tends to degrade as new increments are added. o Unless time and money is spent on refactoring to improve the software, regular change tends to corrupt its structure. Incorporating further software changes becomes increasingly difficult and costly.
true
51
COTS
(Commercial-off-the-shelf)
52
▪The process is repeated until the entire product development is completed. The repetitions of these processes are called iterations. At the end of every iteration, a product increment is delivered.
iterative model
52
▪is a model that is an incremental model that is developed in multiple cycles of iterations. Project is started with a comparatively small task or component and increments are made in each cycle of the iterations until desired product is reached.
incremental model
52
in incremental model development, Easier to test and debug during a smaller iteration. used when the requirements of the complete system are clearly defined and understood.
true
52
▪ Process stages of Reuse oriented software engineering
o Component analysis; o Requirements modification; o System design with reuse; o Development and integration.
52
Real software processes are inter-leaved sequences of technical, collaborative and managerial activities with the overall goal of specifying, designing, implementing and testing a software system.
true
52
The four basic process activities of specification, development, validation and evolution are organized differently in different development processes. In the waterfall model, they are organized in sequence, whereas in incremental development they are inter-leaved.
true