Midterm Exam
General Information
- the exam time is limited to 50 minutes (plus DSO accomodations if applicable)
- the types of questions will include but not limited to multiple choice, short answer, and problem-solving questions that may require you to diagram using proper UML
- the exam is closed-book, but you are allowed to bring one 8.5" x 11" sheet of paper (both sides) with handwritten notes. You must write your name on it to be allowed to use it
Topics
The listed topics is an example of what might be covered on the exam, but the actual exam can include questions on anything that was covered in the course by that time (including all lectures, assignments, quizzes, the project, additional materials, and any other material covered in the course).
Design
- Domain analysis: its purpose, notations and guidelines for models, and creating one from a system description
- Object-oriented concepts: describing, relating to code, and fixing violations
- Object-oriented design: describing, identifying when the principles are not followed and suggesting improvements
- Software architecture: why is it important, what does it provide for you, tiers and layers, basics of REST and HTTP
- Unit Testing: concepts and characteristics, its relation to other types of testing, CuT and Seam
- Execution flow: designing and describing an execution flow of a request through all system layers - from UI components to a data storage and back
Process
- Software process: why is it important, what does it provide for you, OpenUP process methodology and the focus for each phase
- Requirements: gathering requirements and technology exploration through features, epics, and user and spike stories, format for stories
- Sprint planning: workflow and mechanics for sprint planning, backlog refinement and estimation
- Version control concepts
- Acceptance testing: purpose, format for acceptance criteria, acceptance test plan
- CI/CD and code coverage
Teamwork and Communications
- Team formation: stages of team development, characteristics of highly effective teams, common strategies for resolving conflicts within a team
- User stories as a communications technique between Product owner and development team
- Design and code communication concepts
- Code reviews concepts