Introduction to Software Engineering Flashcards
What is software engineering?
The application of scientific principles to the design and creation of software
What are the responsibilities of a software engineer?
- designing, building, and maintaining software systems
- writing and testing code
- consulting with stakeholders, third-party vendors, and other team members
What is the difference between a software engineer and a software developer?
Software engineers build systems while software developers implement specific functionalities
Insider’s opinion:
What is software engineering?
- Using programming languages and engineering principles to build products
- Building and improving software
- A creative process of designing, envisioning, implementing, and then supporting and maintaining software through the full lifecycle
Insider’s opinion:
What is the difference between a software engineer and a software developer?
- Software engineer is a broader term than developer; development is one part of the process whereas engineering involves the full lifecycle
- Software engineers are responsible for system design and architecture wheras software developers are more focused on building code
- Titles can mean different things based on your country or even the company you are working for
What is the software development lifecycle (SDLC)?
Systematic process used to develop high-quality software
What is the goal of SDLC?
To produce software that meets requirements
What does the SDLC consist of?
Defined phases with their own processes and deliverables
When was the SDLC conceived of?
In the mid-1960s
What drove the formulation of the SDLC?
The need for a systematic approach to the development process in order to account for the growing complexity of software
What did the SDLC initially use?
The Waterfall Methodology
What are the advantages of the SDLC?
- It improves efficiency and reduces risks
- Team members know what they should be working on and when
- It facilitates communication among stakeholders
- Team members know when development can move to the next phase
- SDLC allows the team members to adapt to changing requirements
What are the 6 phases of the SDLC?
- Planning
- Design
- Development
- Testing
- Deployment
- Maintenance
Why are the tasks in the SDLC considered discrete?
The tasks in a previous phase do not overlap with tasks in the next phase
What happens in Phase 1 of the SDLC?
Requirements are gathered, analysed, documented, and prioritised
What factors need to be considered when planning a software solution?
- Users of the solution
- The overall purpose of the solution
- Data inputs and outputs
- Legal and regulatory compliance
- Risk identification
- Quality assurance requirements
- Resourcing
- Project scheduling
What does a project team often do when stakeholders are struggling to define requirements?
They produce prototypes during the planning stage
What is a prototype used for?
Testing design ideas
Prototyping only occurs in Phase 1 of the SDLC (True or False)
False, it can occur at various phases of the cycle
What happens after requirements have been gathered?
They are combined into a document called the software requirements specification (or SRS document)
What is used to develop software architecture in the design phase?
The requirements gathered from the SRS
What document is created during the design phase?
The design document
In which phase do developers make use of the design document?
The development phase
What do project planners use a design document for?
They use it to determine and assign coding tasks
What phase comes after the development phase?
The testing phase
What happens during the testing phase?
Code is tested to ensure stability, security, and that it meets requirements from the SRS
What are some common levels of testing?
- Unit testing
- Integration testing
- System testing
- Acceptance testing
What happens after the testing phase?
The deployment phase
What happens during the deployment phase?
The application is released into the production environment and is made available to users
What phase comes after the deployment phase?
The maintenance phase
Why is the maintenance phase necessary?
It helps to identify any other bugs, user interface issues, and any othe requirements that may not have been listed in the SRS document.