software 2

Ace your homework & exams now with Quizwiz!

software testing reduce ?

Software testing reduces the total cost of ownership for end users.

Performance metrics: such as the _____ it takes to complete a process or the amount of ____ required by the application

time, space

What is the purpose of testing during the software development process?

to identify and report out bugs- perhaps quality of feature or solution

Software that behaves as expected requires less ____ and user ____.

training, support

3 software process models

waterfall (plan driven) incremental (specification, dev, and validation interleaved, plan or agile) integration and configuration (system assembled from existing configurable components, plan or agile)

Dependability

"Fitness for intended use"; not a precisely defined term; unlike correctness, it is achievable; less mathematical and more qualitative than reliability; includes aspects of correctness, reliability, and robustness

what is the software development life cycle (SDLC)

A model that describes the life of the application, including all stages involved in developing, testing, installing, and maintaining a program

Development or component testing

- Individual components are tested independently; - Components may be functions or objects or coherent groupings of these entities.

What are the 4 activities of the spiral model?

- Objective setting - Risk assessment and reduction - Development and validation - Planning The objective setting phase sets specific objectives for that phase. Constraints are identified, strategies are planned The risk assessment and reduction phase goes through all project risks for that phase. Analysis is carried out/risk to produce steps to reduce risk. E.g. if requirements don't match, a prototype may be made. Development and validation phase is the phase where a development model for a system is chosen. E.g. throw-away prototyping may be the best if UI risks are dominant. Planning is the activity where the project is reviewed and a decision is made whether or not to carry on. If so, plans for the next phase are drawn up.

System testing

- Testing of the system as a whole. Testing of emergent properties is particularly important.

Acceptance testing

- Testing with customer data to check that the system meets the customer's needs.

What are the benefits of Incremental delivery?

1. Customer value can be delivered with each increment so system functionality is available earlier. 2. Early increments act as a prototype to help elicit requirements for later increments. 3. Lower risk of overall project failure. 4. The highest priority system services tend to receive the most testing.

What are the core principals of Agile Development?

1. "Fits just right" process 2. Continuous testing and validation 3. Consistent team collaboration 4. Rapid response to change 5. Ongoing customer involvement 6. Frequent delivery of working software

What are the problems of Incremental delivery?

1. As requirements are not defined in detail until an increment is to be implemented, it can be hard to identify common facilities that are needed by all increments. 2. However, this conflicts with the procurement model of many organizations, where the complete system specification is part of the system development contract.

Bugs caught during testing do not require users to spend ____ _______ bugs.

time identifying

What are the sectors of Boehm's spiral model?

1. Objective setting Specific objectives for the phase are identified. 2. Risk assessment and reduction Risks are assessed and activities put in place to reduce the key risks. 3. Development and validation A development model for the system is chosen which can be any of the generic models. 4. Planning The project is reviewed and the next phase of the spiral is planned.

What is the Boehm's spiral model?

1. Process is represented as a spiral rather than as a sequence of activities with backtracking. 2. Each loop in the spiral represents a phase in the process. 3. No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required. 4. Risks are explicitly assessed and resolved throughout the process.

Within Prototype Development, what may we leave out?

1. Prototype should focus on areas of the product that are not well-understood. 2. Error checking and recovery may not be included in the prototype. 3. Focus on function rather than non-function requirements such as reliability and security.

What does the software process involve?

1. Specification - defining what the system should do; 2. Design and implementation - defining the organization of the system and implementing the system; 3. Validation - checking that it does what the customer wants; 4. Evolution - changing the system in response to changing customer needs.

What are the benefits of Incremental development?

1. The cost of accommodating changing customer requirements is reduced. 2. It is easier to get customer feedback on the development work that has been done. 3. More rapid delivery and deployment of useful software to the customer is possible.

What are the main problems with the Waterfall model?

1. The main drawback of the waterfall model is the difficulty of accommodating change after the process is underway. In principle, a phase has to be complete before moving onto the next phase 2. The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites. In those circumstances, the plan-driven nature of the waterfall model helps coordinate the work.

What are the problems of Incremental development?

1. The process is not visible. 2. System structure tends to degrade as new increments are added.

4 Importance of Software Testing

1.REDUCES cost of developing, 2.ENSURES behavior of application is as intended, 3.REDUCES total cost of ownership for end user, 4.DEVELOPS customer loyalty

What is the Waterfall Model?

1.Requirements must be specified first. 2. Main tasks completed in sequence: requirements, design, code and test, followed by packaging. 3.Output of one stage feeds into the next: easily tracked ("controlled") by management

What is a bug gives ?

A bug gives the end user a result that is unexpected or undesirable.

What is a bug ?

A bug is an error in coding or logic that causes a program to malfunction or to produce incorrect results.

what is a flowchart

A combination of symbols and text that provides a visual description of a process

what is unified modeling language (UML)

A software modeling process for creating a blueprint that shows the progams overall functionality and provides a way for the client and developer to communicate

What is a software process model?

A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.

what is a prototype

A standard or typical example that gives end users a good idea of what they will see when their application is completed

What is the software process?

A structured set of activities required to develop a software system

What is the Software Process?

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

Drawbacks/Problems with the waterfall model?

Accomadating change is difficult, once a process is complete, you can't go back to that phase Not agile, can't keep up with changing business requirements

what is the waterfall model

An SDLC approach involving sequential application development with processes organized into phases

4 design activities

Architectural design (overall system structure) database design (design data structures and how they are rep'd in db) interface design (define interfaces between components) component selection and design (search for reusable components)

Reuse-Oriented Development Model

Based on systematic reuse where systems are integrated from existing components Process stages: Component analysis Requirements modification System design with reuse Development and integration

Benefits of the Incremental development model?

Cost of changing customer requirements is reduced. The amount of analysis and documentation that has to be redone is much less than is required with the waterfall model. Customer feedback, beta versions ready.

Incremental Development Model Advantages

Customer value is delivered with each increment so system functionality is available earlier Early increments act as prototypes to help elicit requirements for later increments Lower risk of overall project failure The highest priority system services tend to receive the most testing (not necessarily a bad thing for non-critical systems) Main difference with "Evolutionary Model" involves more careful initial thought about what increments to apply

What does developers do?

Developers should take the view that your project DOES have bugs or defects that have not yet been discovered

Incremental Development Model

Development/delivery broken down into increments, each increment delivers part of the functionality, identifying self-contained functional units that may be delivered to customers is crucial User requirements are prioritized, highest priority requirements are included in early increments. Once development of an increment is started, the requirements are frozen, but requirements for later increments can still evolve. Stages: Define outline requirements Assign requirements to increments Design system architecture Develop system increment Validate increment Integrate increment Validate system

Modularity

Divide complex systems into modules; develop modules independently; assemble them to solve the problem; an instance of separation of concerns; supports understandability & maintainability

What are the drawbacks of the waterfall model?

Each phase must be complete before the next can be begun The model is only appropriate when the requirements are well-understood Difficult to accommodate change after the process is underway Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements

Maintainability

Ease of maintenance; changes after release; costs have been observed to exceed 60% of total cost of software; can be decomposed into repairability and evolvability

Understandability

Ease of understanding software; primarily an internal quality (exception: when the product is a set of class libraries); program modification requires program understanding; thus understandability impacts maintainability

Performance

Efficient use of resources (memory, processing time, communication); can be verified (complexity analysis, performance evaluation); performance can affect usability (reduce productivity); performance can affect scalability (a solution that works on a small local network ay not work on a large intranet)

Usability

Expected users find the system easy to use; "user-friendliness"; rather subjective, difficult to evaluate; affected mostly by user interface; interacts with many other qualities, e.g. correctness and performance

Portability

How easy it is to run software on different hardware platforms or software environment; Does software remain relevant as new platforms and environments are introduced?; Particularly relevant when installing software in a heterogeneous network environment

Re-usability

How well can we use existing products or components (perhaps with minor modifications) to build another product; reuse of standard parts is a measure of maturity of a field; applies to process

Abstraction

Ignore details; separate "what" from "how"; need a specification - description of what a component should do; Components can be built based on what they should do, not how they should do it

Integration and System Testing

Integration testing tests modules as they are put together, using stubs and drivers System testing tests the entire system, including hardware and software (perhaps with simulators) These phases may conducted by developers and/or dedicated test engineers

What is a Process Model ?

It is a description of i) what tasks need to be performed in ii) what sequence under iii) what conditions by iv) whom to achieve the "desired results."

What is a software process?

Many different software processes but all involve: Specification - defining what the system should do; Design and implementation - defining the organization of the system and implementing the system; Validation - checking that it does what the customer wants; Evolution - changing the system in response to changing customer needs.

what is the spiral model of the SDLC

Model starts with an initial pass, using the waterfall method. After an evaluation period, the cycle starts again, adding new functionality until the next prototype is released.

Cohesion and Coupling

Modules should be HIGHLY COHESIVE: module understandable as a meaningful unit; components of a module are closely related to one another Modules should exhibit LOW COUPLING: modules have limited interactions with others; understandable separately

Incremental Development Model Disadvantages

Needs good planning and design Needs a clear and complete definition of the whole system before it can be broken down and built incrementally Total cost is higher than waterfall

Requirements Analysis and Specifications

Often preceded by a feasibility study Identify "what" must be built, including functionality and constraints Document requirements in user terms and in terms appropriate for designers/developers Requires interaction with customers, and domain knowledge Various models for expressing requirements are available

What is the waterfall process model?

Plan-driven model. Separate and distinct phases of specification and development. The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites.

What reasons would we have to, Throw-away prototypes?

Prototypes should be discarded after development as they are not a good basis for a production system: 1. It may be impossible to tune the system to meet non-functional requirements; 2. Prototypes are normally undocumented; 3. The prototype structure is usually degraded through rapid change;

Why Have A Process Model?

Provide "guidance" for a systematic coordination and controlling of a) the tasks and of b) the personnel who perform the tasks

defect density

Reliability metrics: such as the total number of bugs or "____ _____," which is the number bugs divided by the number of code.

What are the stages of the waterfall model?

Requirements Analysis and Specifications Design and Specification Coding and Unit Testing Integration and System Testing Delivery and Maintenance

Robustness

Software behaves "reasonably" even in unforeseen circumstances (e.g. incorrect input, hardware failure); related to correctness: if a behavior is unforeseen it is a robustness issue, if a behavior is foreseen and specified, it becomes a correctness issue

4 things all software processes involve

Specification design/implementation validation evolution

What is the Incremental development model?

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

Design and Specification

Specifies the "how", not the "what" Often split in architectural and detailed design Architectural design expresses overall system organization, decomposes system into modules Detailed design provides further details Considers reuse Various models for expressing designs are available

Coding and Unit Testing

System is coded to meet design specification Unit testing is testing applied to individual modules, usually by developers

Delivery and Maintenance

System is packaged for delivery; this includes all code, documentation, and other deliverables System goes into "maintenance", where it continues to be perfected, adapted, and corrected

5 waterfall method phases

requirements analysis and design system/software design implementation and unit testing integration and system testing operation and maintenance

Why testing?

Testing helps find and correct defects

What is testing?

Testing is the process of examining an application to ensure it fulfills the requirements for which it was designed and meets quality expectations.

What is testing measure ?

Testing measures the quality of an application or project

what is the incremental model of the SDLC

The application is developed and released in a series of software releases.

what is the role of a software developer (programmer)

responsible for writing source code to meet the end user's functional requirements

Drawbacks/Problems with the Incremental development model?

The process is not visible. -Managers need regular deliverables to measure progress System structure tends to degrade as new increments are added. -Unless time and money is spent on refactoring to improve the software, regular change tends to corrupt its structure.

What activities happen in design and implementation?

The process of converting the system specification into an executable system. Software design - Design a software structure that realises the specification; Implementation - Translate this structure into an executable program; The activities of design and implementation are closely related and may be inter-leaved.

what is software engineering

The process of producing software applications, involving not just the pro-gram's source code but also associated documentation, including UML diagrams, screen prototypes, reports, software requirements, future development issues, and data needed to make programs operate correctly

_____ is the data and instructions that operate on a computer

software

What is the Reuse-oriented software engineering model?

The system is assembled from existing components. May be plan-driven or agile Based on systematic reuse where systems are integrated from existing components or COTS Reuse is now the standard approach for building many types of business system

what is the agile model of the SDLC

This method is used for time-critical applications. It's less formal, has a reduced scope, and encourages frequent inspection and adaptation.

3 types of reusable software

stand-alone application systems collection of objects developed as a package (.NET) web services developed according to service standards

2 ways of coping with change

system prototyping (quick development mock-up to test requirements) incremental delivery (system increments delivered to customer for approval/comments)

An operating system controls the ____ and _____ of hardware resources

allocation, usage

3 testing stages

component testing (individual system parts) system testing (whole system) customer testing (test with customer data)

Bugs caught before a project is delivered do not cost the user any _____ while fixes are created and ______ are installed.

downtime, updates

A problem found in an operation can be 40-100 times more _______ to resolve after it is in operation than early in development.

expensive

_____ refers to all of the physical elements of a computer system.

hardware

Software that is well-tested results in _____ user _______.

increased, satisfaction

Software testing ensures that your application behaves exactly as ____.

intended

Verification and validation

is intended to show that a system conforms to its specification and meets the requirements of the system customer. Involves checking and review processes and system testing. System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system. Testing is the most commonly used V & V activity.

There are many different types of _____, standards of measurement for software quality.

metrics

_______ ______ is the software that controls the allocation and usage of hardware resources and is the foundation software on which applications depend

operating system

2 software process types

plan-driven ( all activities planned in advance and progress is measured against this plan) agile (incremental planning, easier process changes to reflect changing customer requirements)

Agile processes

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

3 process improvement activities

process measurement process analysis process change

Plan-driven processes

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

Key process stages of reuse-oriented software engineering

reqs specification software discovery and eval reqs refinement app system config component adaptation and integration

Interface design

where you define the interfaces between system components.

Architectural design

where you identify the overall structure of the system, the principal components (sometimes called sub-systems or modules), their relationships and how they are distributed

Component design

where you take each system component and design how it will operate.

How can software quality be measured?

with designed and developed metrics that the team creates


Related study sets

CPR/First Aid - Chapter 17 Question Study Guide

View Set

3130 first 3 quizzes- study set for 1st test

View Set

CompTIA A+ Certification Practice Test 19 (Exam 220-902)

View Set

Unit 8.2 Exempted Securities Under The Securities Act of 1933 (Series 65)

View Set

Chapter 11 (command-line Troubleshooting tools)

View Set

64 C'est pas sorcier -chien aveugle

View Set

12 Quick Check - What is Logistics?

View Set

Saunders NCLEX-PN: Fundamentals - Culture and Health Promotion Practice Questions

View Set