Chapter 6 Flashcards
(38 cards)
SDLC (Software Development Life Cycle)
The steps in a model for software development throughout its life.
Feasibility Phase
Initial investigations into whether the effort should occur are conducted.
Analysis/Requirements Phase
Customer input is sought to determine what the desired functionality is.
Design Phase
Design for functionality, architecture, integration, and any other elements that require design consideration.
Development Phase
Coding the of the application.
UAT (User Acceptance Testing)
Testing that ensures that the users of the software are satisfied.
Testing/Integration Phase
Formal testing with customers or others outside the development team.
Maintenance Phase
Patching, updating, minor modifications, and other work that goes into daily support.
Disposition Phase
The end of a products life, is sometimes shutdown.
Waterfall Model
A sequential development model in which each phase is followed by the next.
Spiral Model
A development model that uses linear concepts from the Waterfall model and adds an iterative process that revisits phases multiple times throughout the development cycle.
Agile Model
A development model that is iterative and incremental rather than linear.
Continuous Integration
A development practice that checks code into a shared repository on a consistent basis.
OWASP
Define Security Requirements
Leverage Security Frameworks
Secure Database Access
Encode and Escape Data
Validate All Inputs
Implement Digital Identity
Enforce Access Controls
Protect Data Everywhere
Implement Logging and Monitoring
Handle all Errors and Exceptions
API (Application Programming Interface)
Interfaces between clients and servers or applications and operating systems that define how the client should ask for information from the server and how the server will respond.
Pair Programming
An Agile software development technique that places two developers at one workstation.
Over-the-Shoulder
Relies on a pair of developers and requires one developer to explain the code to the other.
Pass-around Code Review
A form of manual peer review done by sending completed code to reviewers who check the code for issues.
Tool-assisted
Relies on software based tools to conduct code reviews.
Fagan Inspection
A structured formal code review intended to find a variety of problems during the development process.
Static Code Analysis
Reviewing the source code for an application.
Dynamic Code Analysis
Executing the code and using inputs to test the software.
Fuzz Testing
Sending invalid or random data to an application to test its ability to handle unexpected data.
Injection Vulnerabilities
An attacker supplies some type of code to a web application as input to trick the web server into executing the code or supplying it to another server to execute.