Full Transcript

# Software Engineering - Software engineering is the application of scientific principles to the design and creation of software. - Responsibilities of a software engineer include designing, building, and maintaining software systems. - Using the SDLC can improve efficiency and reduce risks by:...

# Software Engineering - Software engineering is the application of scientific principles to the design and creation of software. - Responsibilities of a software engineer include designing, building, and maintaining software systems. - Using the SDLC can improve efficiency and reduce risks by: - letting team members know what they should be working on and when - facilitating communication between the customer, other stakeholders, and the development team - letting stakeholders know where they fit into that process and - letting cross-domain teams know when they have completed their tasks so development can move to the next phase. ## Common Software Engineering Processes - Common software engineering processes are requirements gathering, design, coding, testing, releasing, and documenting. - The requirement gathering process entails identifying stakeholders, establishing goals and objectives, eliciting requirements from the stakeholders, documenting the requirements, analyzing, prioritizing, and confirming the requirements. ### SRS, URS, SysRS - An SRS is a document that captures the functionalities that the software should perform and also establishes benchmarks or service levels for its performance. - A URS is a subset of the SRS that details user specification requirements. - The SysRS contains the same information as an SRS, but can also additionally include system capabilities, interfaces, and user characteristics, policy requirements, regulation requirements, personnel requirements, performance requirements, security requirements, and system acceptance criteria. ## Methodologies for Software Development Life Cycle - Waterfall, V-shape model, and agile are all different methodologies for implementing the software development life cycle. ## Functional & Non-Functional Testing Types - Functional testing is concerned with inputs and corresponding outputs of the system under test, non-functional testing tests for attributes such as performance, security, scalability, and availability. Whereas regression testing confirms that a recent change to the application, such as a bug fix, does not adversely affect already existing functionality. ## Types of Documentation - Types of documentation include requirements, design, technical, quality assurance, and user. ## Software Engineering Roles - There are many different roles involved in a software engineering project. - Some of them include project manager or scrum master, stakeholder, system or software architect, UX designer, software developer, tester or QA engineer, site reliability or Ops engineer, product manager or owner, and technical writer or information developer.

Use Quizgecko on...
Browser
Browser