Exam Flashcards
Explain the term DevOps.
Set of software development practices that combine software development and IT operations to shorten systems-development life cycle. It is intended to reduce time between committing change and change being placed into normal production, while ensuring high quality. Especially important with growing Cloud popularity.
List the names of commonly used phases in the software development process in the right order.
- Feasibility study and planning
- Requirements
- Implementation
- Testing
- Deployment, operation, maintenance
What are the main questions treated in a feasibility study?
- Scope of planned project
- Technical possibility
- Benefits
- Expected costs
- Resources available
- Risks
What is a Mockup? What alternatives to it exist?
- Mockup: way of designing user interfaces on paper or virtually, which provide visual details (colour, topography). Software mockup will therefore look like the real thing, but does not work beyond what the user sees.
- Wireframe: visual guide representation that represents the skeletal framework of a website. It is low-fidelity, is a ’bare-bones’ blueprint, that is usually presented with placeholders for the final content. They are created for the purpose of arranging elements to best accomplish particular purposes.
Describe the Waterfall model. What is the core difference between the waterfall model and the modified waterfall model?
- Waterfall model: sequential development process that flows like a waterfall through all phases of a project. Each phase must be fully completed to start the following one.
- Modified Waterfall model: Waterfall model + feedback (only in one direction). Allows to go back at any step, to overcome problems of the Waterfall model. Best suited for situations where requirements are well understood and no unclarity exists.
What is the core idea of “iterative development”?
It is a cyclic process of prototyping, testing, analysing and refining products/processes:
- Story of software
- Use cases and interactions system-user
- Central use case implementation
- Deploy and observe
- Go back to step 1/2 check whether it affects the story, find next use case to expand
What is the core idea of “Agile Development”?
Requirements/solutions evolve through collaborative effort of self-organising and cross-functional teams and customers. It advocates for adaptive planning, evolutionary development, early delivery, and continual improvement. It also encourages rapid and flexible response to change.
Explain the term “Continuous integration”, what core factors/techniques are important to realise CI in practice?
Practice of merging all developer working copies to shared mainline several times a day. Every code change should be a separate commit, and should automatically trigger code compilation and all running tests. Only commits without errors are allowed in main branch.
Explain the tool “Docker” and its importance in software engineering.
Docker is a platform designed to help developers to build, share, and run container applications. It lets you quickly deploy and scale applications into any environment and know your code will run.
What are branches in Git and how are they typically used?
A branch is a pointer to a snapshot of your changes. To implement a new feature or fix, a new branch is spawned to encapsulate the changes. This makes it harder for stable code to get merged in the main code base.
SonarQube is a tool that helps guarantee code quality and security.
True
Gerrit is an automatic debugging software.
False
Maven is a modern replacement for Git.
False
Maven and Gradle have similar functionality.
True
Mockito does not realise mockups.
True