Software Engineering

Ace your homework & exams now with Quizwiz!

Extreme Programming

A very influential agile method, developed in the late 1990s, that introduced a range of agile development techniques.

Problem with Agile for Long-LifeTime Systems?

Agile development relies on the development team knowing and understanding what has to be done, this is a real problem as the original developers will not always work on the system

Practical Problem 3 with Scaling Agile Development

Agile methods are designed for small co-located teams yet much software development now involves worldwide distributed teams

Practical Problem 2 with scaling Agile Development

Agile methods are most appropriate for new software development rather than software maintenance. Yet the majority of software costs in large companies come from maintaining their existing software systems

Extreme Programming: Refactoring

All developers are expected to refactor the code continuously as soon as possible code improvements are found. This keeps the code simple and maintainable.

3 Types of User Testing

Alpha, Beta, Acceptance

1 Problem with Test-first development

Programmers prefer programming to testing and sometimes they take short cuts when writing tests.

What is release testing?

Release testing is the process of testing a particular release of a system that is intended for use outside of the development team.

5 steps of Waterfall software process

Requirements definition, System and software design, Implementation and unit testing, Integration and system testing, Operation and maintenance.

What is Scenario Testing?

Scenario Testing involves inventing a typical usage scenario and using this to derive test cases.

What is Scrum

Scrum is an agile method that focuses on managing iterative development rather than specific agile practices

What are the fundamental Software Engineering activities?

Software specification, Software development, Software validation, and Software evolution

4 Main aspects of a software process?

Specification, Design and Implementation, Validation, and Evolution

Incremental software process

Specification, development and validation are interleaved. Can be plan-driven or agile

2 Ways of coping with requirements changin

System prototyping, and Incremental delivery

T/F Development Testing is the responsibility of the software development team.

T

T/F In Test-Driven Development tests are written before code

T

3 Extreme Programming Testing Features

Test-first development, Incremental test development, User involvement in test development and validation

Complete test coverage of a class using Object Class Testing is

Testing all operations associated with the object, Setting and interrogating all object attributes, Exercising the object in all possible states.

3 Stages of Development Testing

Unit testing, Component testing, System Testing

4 Key Influential Practices of Extreme Programming

User stories for specification, Refactoring, Test-first development,

Requirements elicitation and analysis

What do the system stakeholders require or expect from the system

Benefit of Test Automation

Whenever any functionality is added to the system, the tests can be run and problems that the new code has introduced can be caught immediately

Test-driven development important note 1

Writing tests before code clarfies the requirements to be implemented.

The principle approaches to software improvement are...

agile approaches, geared to reducing process overheads, and maturity-based approaches based on better process management and the use of good software engineering practice

What is Test-Driven Development?

an approach to program development in which you inter-leave testing and code development

Software inspections are concerned with..

analysis of the static system representation to discover problems.

Refactoring is better than trying to anticipate changes because

changes cannot be reliably anticipated

Scaling Out is concerned with...

how agile methods can be introduced across a large organization with many years of software development experience.

What does a successful defect test do?

makes the system perform incorrectly and exposes a defect in the system.

What is an agile software process?

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

Agile development methods emerged in the 1990s looking to...

radically reduce the delivery time for working software systems.

Example of refactoring

reorganization of a class hierarchy to remove duplicate code

What does a successful validation test do?

shows that the system operates as intended

Extreme programming has a ___ ___ and is not easy to integrate with management practice in most organizations.

technical focus

What is regression testing?

testing the system to check that changes have not broken previously working code

What is a software process?

the activities involved in producing a software system

What is software validation?

the process of checking that the system conforms to its specification and that it meets the real needs of the users of the system

What is requirements engineering?

the process of developing a software specification

Testing is central to Extreme programming and has developed an approach where

the program is tested after every change

What is beta testing?

the software is made available to users to allow them to experiment and to raise problems that they discover with the system developers.

What is the primary purpose of Release testing?

to convince the supplier of the system that it is good enough for use

What are design and implementation concerned with?

transforming a requirements specification into an executable software system

What is alpha testing?

users of the software work with the development team to test the software at the developers site.

Scaling Up is concerned with...

using agile methods for developing large software systems that cannot be developed by a small team

What is software evolution?

when you change existing software systems to meet new requirements. The software must evolve to remain useful

Release Testing is

where a separate team test a complete version of the system before it is released to users.

System prototyping

where a version of the system or part of the system is developed quickly to check the customers requirements and the feasibility of design decisions

What is a plan-driven software process?

where all process activities are planned in advance and progress is measured against this plan

Incremental delivery

where system increments are delivered to the customer for comment and experimentation

Development Testing is

where the system is tested during development to discover bugs and defects

User Testing is

where users or potential users of a system test the system in their own environment

Interface Design

where you define the interfaces between system components

Database Design

where you design the system data structures and how these are to represented in a database.

Architectural Design

where you identify the overall structure of the system , the principal components , their relationships and how they are distributed.

Component selection and Design

where you search for reusable components. If unavailable, you design how it will operate.

Interface misunderstanding

A calling component embeds assumptions about the behavior of the called component which are incorrect.

Interface misuse

A calling component calls another component and makes an error in its use of its interface.

4 Main Design Activities in Software Design and Implementation?

Architectural Design, Database Design, Interface Design, Component selection and Design

Requirements validation

Checking the validity of the requirements

3 Stages of Testing

Component testing, System testing, Customer testing

Agile: Customer Involvement

Customers should be closely involved throughout the development process. Their role is to provide and prioritize new system requirements.

What is Acceptance testing?

Customers test a system to decide whether or not it is ready to be accepted from the system developers and deployed.

Requirements specification

Defining the requirements in detail

3 Stages of testing

Development Testing, Release Testing, User Testing

Process change

Process changes are proposed to address some of the identified process weaknesses. These are introduced and the cycle resumes to collect data about the effectiveness of the changes

3 steps of requirement engineering process?

Elicitation/Analysis, specification, validation

Agile: embrace change

Expect the system requirements to change and so design to accommodate these changes

XP short for

Extreme Programming

T/F Inheritance makes it less difficult to design object class tests

F

Agile: maintain simplicity

Focus on simplicity in both the software being developed and in the development process. Wherever possible, work to eliminate complexity from the system.

3 main agile methods

Focus on the code rather than the design, iterative approach to software development, deliver working software quickly and evolve quickly to changing requirements

Marketing Environment

Getting a product to market early might be more important than finding defects.

3 Benefits of prototyping

Improved System usability, design quality, maintainability

Main drawback of waterfall process?

Inability to change once process is underway.

Problem with Test-sets in test-first development

It is difficult to judge the completeness of a set of tests, may not provide full coverage of cases

3 Key problems with agile maintenance

Lack of product documentation, Keeping customers involved in the development process, Maintaining the continuity of the development team

Scrum Sprint Length

Length is fixed, usually 2-4 weeks

4 attributes of good software?

Maintainability, Dependability/Security, Efficiency, Acceptability

3 main steps of process improvement process?

Measure, Analyze, Change

3 Characteristics of Extreme Programming

New versions may be built several times a day, Increments are delivered to the customer every 2 weeks, All tests must be run for every successful build and only the successful ones are kept.

3 Phases of Scrum

Outline planning, series of sprint cycles, project closure

4 Types of Interfaces in Interface Testing

Parameter Interfaces, Shared memory interfaces, Procedural Interfaces, Message passing interfaces

Waterfall software process

Plan-driven process model with separate and distinct phases of specification and development

XP Test-driven development important note 2

Tests are written as programs rather than data so that they can be executed automatically. The test includes a check that it has executed correctly.

Timing errors : Interface errors

The called and the calling component operate at different speeds and out-of-date information is accessed

Process Analyzation

The current process is assessed, and process weaknesses and bottlenecks are identified

Practical Problem 1 with scaling Agile Development

The informality of agile development is incompatible with the legal approach to contract definition that is commonly used in large companies

Agile: people not process

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.

Agile: Incremental delivery

The software is developed in increments with the customer specifying the requirements to be included in each increment.

Process Measurement

These measurements form a baseline that helps you decide if process improvements have been effective

What are the 2 main goals of Program Testing?

To demonstrate to the developer and the customer that the software meets its requirements, and To discover situations in which the behavior of the software is incorrect.

What is Validation Testing for?

To demonstrate to the developer and the customer that the software meets its requirements.

What is Defect Testing for?

To discover faults or defects in the software where its behavior is incorrect.


Related study sets

2.2: continuous random variables and probability distributions

View Set

Unit 11: Chapters 65, 66, 67, 68

View Set

Історія Психології

View Set

Exam #3: Fundamentals, Health Assessment, & Concepts Questions

View Set

Unit 3 Connective tissue assignment

View Set

Manual therapy & theraputic exercise for the lower quarter: clinical decision making

View Set

Digestive Enzymes & Cell Types ...& random enzymes because why not, it's not like you're gonna pass this, B [Bio MCAT Prep]

View Set