Introduction to Software Engineering
The application of scientific principles to the design and creation of software. The field uses a systematic approach to collect and analyze business requirements in order to design, build, and test software applications to satisfy those business requirements.
SDLC - Software Development Life Cycle
Systematic process to develop high-quality software in a predictable timeframe and budget. The goal of the SDLC is to produce software that meets a client’s business requirements. The SDLC defines phases of the software development process that encompass their own process and deliverables. It is a cycle of planning, design, and development that can be implemented as an iterative approach to software development. Adherence to the SDLC minimizes risks and costs to the development of high-quality, deployable software.
Systematic process for software development
Advantages :- Risk reduction and improved efficiency, Facilitates communication, Team members know their responsibilities, Iteration allows for changing requirements
Phases in the SDLC
Requirement gathering is collecting and documenting the set of requirements that the software needs to adhere to
Designing transforms requirements into a structure that developers can use
Coding for quality entails following a set of coding practices during development
Testing is the process of verifying that the software matches established requirements and is free of bugs
Release types include alpha, beta and general availability
Documenting requires text/video that explains the software to technical and non-technical users
Requirements documentation
Methodologies
Recommended by LinkedIn
Software Version
Version Number -> history of changes, updates and patches to software
Some version number follows the semantic numbering system
eg:- Version 9.1.33.6
Software Testing
Three categories of testing
Unit testing - verifies small , independent chunks of code
Integration testing - looks for errors when two / more chunks of code are combined
System testing - validates the system as a fully completed product
Acceptance testing - verifies implementation of user requirements and business processes
Software Documentation
Product Documentation - Relates to product functionality
Process Documentation - Describes how to complete a task
Types of product documentations
Summary