Podcast
Podcast
Podcast
Something went wrong
Questions and Answers
Questions and Answers
Which of the following best describes the primary goal of software maintenance?
Which of the following best describes the primary goal of software maintenance?
- To design the initial architecture of the software.
- To rewrite the entire software from scratch.
- To introduce new features to the software.
- To fix bugs and improve the software's performance after delivery. (correct)
UI and UX design are the same thing.
UI and UX design are the same thing.
False (B)
What is a 'persona' in software design, and how is it typically used?
What is a 'persona' in software design, and how is it typically used?
A persona is a fictional representation of an ideal user, based on research and data. It is used to guide design decisions by providing a clear picture of the target audience's needs, goals, and behaviors.
A well-crafted user requirement should be ______, testable, and unambiguous.
A well-crafted user requirement should be ______, testable, and unambiguous.
Match the Agile Manifesto principle with its description.
Match the Agile Manifesto principle with its description.
In Agile methodology, what is the purpose of a burndown chart?
In Agile methodology, what is the purpose of a burndown chart?
In Scrum, the Product Owner is responsible for removing impediments that prevent the team from reaching its sprint goals.
In Scrum, the Product Owner is responsible for removing impediments that prevent the team from reaching its sprint goals.
Describe the purpose of a daily scrum (or stand-up) meeting.
Describe the purpose of a daily scrum (or stand-up) meeting.
In Scrum, the three artifacts are the product backlog, the sprint backlog, and the ______.
In Scrum, the three artifacts are the product backlog, the sprint backlog, and the ______.
Which of the following is a primary goal of CI/CD?
Which of the following is a primary goal of CI/CD?
In Git, the commit
command saves changes to the remote repository.
In Git, the commit
command saves changes to the remote repository.
What is a merge conflict in Git, and what typically causes it?
What is a merge conflict in Git, and what typically causes it?
A ______ rule in Git is used to protect branches by preventing direct commits and requiring changes to be made through pull requests.
A ______ rule in Git is used to protect branches by preventing direct commits and requiring changes to be made through pull requests.
What is the primary purpose of unit testing?
What is the primary purpose of unit testing?
Code coverage is a measure of how much of the project's requirements are covered by the written code.
Code coverage is a measure of how much of the project's requirements are covered by the written code.
Explain the concept of "code smells" in the context of refactoring.
Explain the concept of "code smells" in the context of refactoring.
In RESTful APIs, the HTTP method ______ is typically used to update an existing resource.
In RESTful APIs, the HTTP method ______ is typically used to update an existing resource.
Which of the following is a characteristic of a RESTful API?
Which of the following is a characteristic of a RESTful API?
A rolling release is a software release strategy where updates are deployed to a small subset of users or servers before being rolled out to the entire infrastructure.
A rolling release is a software release strategy where updates are deployed to a small subset of users or servers before being rolled out to the entire infrastructure.
What is flag-guarding (also known as feature toggles or feature flags), and what is its purpose?
What is flag-guarding (also known as feature toggles or feature flags), and what is its purpose?
Questions and Answers
Something went wrong
Flashcards
Flashcards
Software Engineering
Software Engineering
A systematic approach to the development, operation, maintenance, and retirement of software.
Software Maintenance
Software Maintenance
Modifying software after delivery to correct faults, improve performance, or adapt to a changed environment.
Persona (in UX)
Persona (in UX)
A visual representation of a user, including their goals, behaviors, and motivations.
User Journey
User Journey
Signup and view all the flashcards
Agile
Agile
Signup and view all the flashcards
Jira
Jira
Signup and view all the flashcards
Burndown Chart
Burndown Chart
Signup and view all the flashcards
Backlog
Backlog
Signup and view all the flashcards
Sprint
Sprint
Signup and view all the flashcards
Sprint Backlog
Sprint Backlog
Signup and view all the flashcards
Sprint Retrospective
Sprint Retrospective
Signup and view all the flashcards
Wireframe
Wireframe
Signup and view all the flashcards
Gradle
Gradle
Signup and view all the flashcards
CI/CD
CI/CD
Signup and view all the flashcards
Unit Testing
Unit Testing
Signup and view all the flashcards
Refactoring
Refactoring
Signup and view all the flashcards
REST
REST
Signup and view all the flashcards
Release Cycle
Release Cycle
Signup and view all the flashcards
Flag-guarding
Flag-guarding
Signup and view all the flashcards
Cloud Computing
Cloud Computing
Signup and view all the flashcards
Flashcards
Something went wrong
Study Notes
Study Notes
Software Engineering and Maintenance
- Software engineering needs defining and its breadth must be understood
- Software maintenance also needs defining
UI, UX, and User Journeys
- UI (User Interface) and UX (User Experience) needs defining, and their differences need to be clear
- A persona in software design needs to be understood, including its usage
- Being able to craft a user journey and knowing what information to include needs to be clear
User Requirements
- User requirements should be defined
- Well-crafted and poorly-crafted requirements must be identified
- How requirements are used in software development should be understood
- Understanding how to gather requirements is needed
Waterfall vs Agile
- Define Waterfall and understand its limitations
- Agile and Waterfall need to be compared to each other
- Agile must be defined, along with the 8 items in Agile Manifesto
- Be able to identify Agile practices and things that violate Agile Principles
APM vs DevOps with Jira
- How Jira is used for Application Performance Management (APM) should be clear
- This includes adding to a backlog, sprint backlog, creating a sprint
- This extends to moving items on a storyboard to "in progress" and "done"
- Viewing a burndown chart for a project
Backlogs and Sprint Backlogs
- The purpose of a backlog needs to be understood
- The difference between a sprint backlog and a backlog must be explained
Scrum
- Understanding on how Scrum follows Agile principles is needed
- A product backlog needs defining, including its contents and its use in Scrum
- Two team roles need to be understood, product owner and scrum master, including what responsibilities they have
- Estimating costs for tasks should be possible
- A sprint should be defined and its purpose understood
- Burndown charts need defining, and their purpose needs understanding
- The purpose of the stand-up and retrospective needs to be understood
- Know the three questions answered in a scrum meeting
- Know the three ceremonies and three artifacts of scrum
UI and Wireframes
- Good and bad examples of user interfaces need to be identified.
- Some processes a UI engineer uses for good UI, or to identify bad UI aspects need to be understood.
- Wireframes need defining and creating.
Gradle
- Being able to define packagaes, how they are used, and the advantages of using them is needed
- Being able to define Gradle projects and how they are created is needed
- The differences between a Gradle Java project and previous Java projects need defining
- Purposes of the build.gradle file needs understanding, specifically the dependencies block and the jar block
- How JAR files are used needs understanding
- Understanding what CI/CD means is needed
- Why using Gradle is valuable for CI/CD needs to be understood
Domain and Class Diagrams
- The difference between domain & class diagrams should be understood
- Being able to create the two is also needed
- How each diagram is used during software development needs to be understood
Version Control
- Be able to define Version Control
- The difference between Git and GitHub needs to be understood
- How your local repository differs from your remote repository, and how they are similar
- Understanding the use of git commands status, commit, push, clone, add, pull is needed
- Merge conflicts need to be understood, and how to resolve one
- Best practices should be followed when using version control
- How to create a branch protection rule should be understood
- Understand the benefit and effects of not allowing changes to be made to the master branch without a pull request
- How a branch is created should be understood
- How to make and approve a pull request should be understood
- Knowing how to merge the remote master branch into your branch, and why that might be helpful/valuable is needed
- The term 'feature branch' should be understood and why that is helpful.
Testing and Logging
- Knowing the difference between unit, integration, and end-to-end testing is needed
- Commonly understand the job duties of a SWE Test Engineer
- Understanding the qualities of good/complete unit tests should be understood.
- Bad practices that make code harder to test need to be identified
- Know a few additional testing types used in SE
- Know what code coverage and mocking is
- How logging is helpful in testing and debugging prod services needs understanding
- Know what PII means
- Flaky tests need understanding, and be able to state what causes them
- Being able to define Test Driven Development, and it's benefits is needed
- Understand the qualities of a test plan, its purpose, and be able to write a test that has the required information needed for a testing plan.
Refactoring
- Understand the principles and benefits of refactoring
- Experience with coding tools that make refactoring easier is needed
- "Code smells" should be understood, and common code smells identified
- Know how to refactor to fix issues
REST APIs
- Distinguish between front-end and back-end development
- Characteristics of a REST API need understanding
- Knowing how the front end and back end communicate
- How to set up routes/endpoints need understanding, with front end and back end
- Understanding GET, POST, PUT, DELETE, and how you put/get information from front end to back end and vice versa
Release Cycle
- Be able to explain the software release cycle and provide a possible workflow for accomplishing it
- Know the purpose and practice of flag-guarding, and implement it
- Vocabulary in the context of software releases should be understood
Soft Skills
- Identify soft skills that are important for Software Engineers and knowing how to communicate their benefits is needed
Caching
- Properties and purpose of private/local caches need to be understood
- Eviction policies should be understood, and when each can be used
Cloud Computing
- Cloud computing must be defined and the expected deliverables of a cloud provider fully understood
- Understanding On-Demand Service, Broad Network Access, Resource Pooling, Rapid Elasticity, Measured Service
- The benefits of cloud computing needs to be understood
- Load balancing and SLAs must be defined
- Virtual machines and Edge Networks must be defined
Docker/Containers
- Containers must be defined completely
- The difference between containers and virtual machines must be understood
- The benefits of using containers must be understood
- The creation of a docker file, building of a docker image, and release of an application in containers must be practiced
- The purpose of docker files and it's basic instructions must be understood
- Given a dockerfile you must be able to explain the purpose of each of the commands
- The ability to create, build, and run containers using a Docker Engine should be followed
- The steps need to run and test a container containing a Javalin server need to be known
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Study Notes
Something went wrong