Lesson 2 Summary
- The software development life cycle (SDLC) includes requirement analysis, planning and design, implementation, testing, deployment, and maintenance.
- Agile is a common team-based approach for design iterations when implementing the SDLC.
- The software requirements specification (SRS) is an important document that contains all the information relevant to the software product under development.
- Functional requirements in the SRS document explain the services the software provides, while the nonfunctional requirements include properties such as security, speed, memory requirements, and ease of use.
- Common software application types include a web application, desktop application, and mobile application.
- Data structures store data in a way to make the data useful and accessible.
- An array is an object that is a collection of items that are accessed with an index number.
- A stack stores elements with a LIFO approach.
- A queue stores elements with a FIFO approach.
- A linked list is a chain of nodes, where each node contains data and points to the next node in the chain.
- A dictionary is a data structure that uses key-value pairs to store information.
- A binary search repeatedly splits a sorted data structure in half until it finds what it is looking for. This is more efficient than linear search, which iterates through each element until it finds what it is looking for.
- Selection, bubble, merge, and quick sort are algorithms that approach sorting a data structure differently. They each have different complexities for speed, memory, and implementation that make them better suited for different applications.
- Big O notation is commonly used to define the complexity of an algorithm or methods of a data structure.
- Version control systems, like GitHub, are helpful for tracking changes in the software as it gets written and updated.
- Encryption is an important consideration when designing software.
- SSL should always be used for web applications, to encrypt communications between the browser and server.
- Passwords should be encrypted with a hash function and salt to protect against theft.
- Cross-site scripting (XSS), cross-site request forgery (XSRF), and SQL injection are security risks that must be addressed in a web application.