IU:TestPage
Software Project (Fundamentals to Software Engineering from 2021 check another syllabus)
- Course name: Software Project (Fundamentals to Software Engineering from 2021 check another syllabus)
- Course number: S20-SP
Course Characteristics
Key concepts of the class
What is the purpose of this course?
The main objectives of this course are the following: \begin{itemize} \item To understand agile models of interaction design, development, and project management and put those concepts in practice in real software development. \item To get acquainted with processes, technologies, and activities involved eliciting, analyzing, validating, specifying, and managing functional and non-functional requirements of software systems. \item To manage risks and decisions making based on the risk management \item To be able design software, and to write code that sticks to good practices of cohesion, coupling, modularity, reusing, and encapsulation. \item To get familiar with standard reliability techniques such as validation (testing) and verification. \item To gain practical experience with refactoring techniques to improve the quality of existing code. \end{itemize}
Course objectives based on Bloom’s taxonomy
- What should a student remember at the end of the course?
By the end of the course, the students should be able to
- recall Agile manifesto and principles
- recognize different Agile frameworks
- define core principles and rituals of Scrum framework
- list different types of product backlog items
- recall main concept of system testing, VCM, software architecture, technical debt
- What should a student be able to understand at the end of the course?
By the end of the course, the students should be able to
- discus pros can cons of different project management tools
- describe criteria for good product backlog
- describe criteria for efficient user stories
- explain how to conduct iteration planing, review and retrospective
- discuss possible strategy of Agile implementation
- What should a student be able to apply at the end of the course?
By the end of the course, the students should be able to
- elicit requirements and work with requirements
- design, implement, verify and maintain efficient systems
- present work in front of stakeholders
- effectively critiquing the work of others and receiving such criticism
- work in a development team and collaborate between different teams
Course evaluation
Type | Points |
---|---|
Group work | 60 |
Individual work | 40 |
Test | 10 |
Grades range
Grade | Points |
---|---|
A | [85, 100] |
B | [75, 84] |
C | [60, 74] |
D | [0, 59] |
Resources and reference material
- Essential Scrum: a practical guide to the most popular agile process by Kenneth S. Rubin.
- Lean Software Development in Action by Janes, Andrea, Succi, Giancarlo
- Software Architecture in Practice, Third Edition by Rick Kazman, Paul Clements, Len Bass
- Design Patterns: Elements of Reusable Object-Oriented Software 1st Edition by Erich Gamma, Richard Helm, Ralph Johnson
- Pro Git by Ben Straub and Scott Chacon
Course Sections
The main sections of the course and approximate hour distribution between them is as follows:
Section 1
Section title
Introduction
Topics covered in this section
- Course explanation
- Transformation in IT Sphere
- Modern trends and the evolution of development processes
- Building IT teams (roles and responsibilities)
- Philosophy of Agile
- Projects presentation
What forms of evaluation were used to test students’ performance in this section?
Form | Yes/No |
---|---|
Development of individual parts of software product code | 0 |
Homework and group projects | 1 |
Midterm evaluation | 0 |
Testing (written or computer based) | 1 |
Reports | 1 |
Essays | 0 |
Oral polls | 1 |
Discussions | 1 |
Typical questions for ongoing performance evaluation within this section
- First, discuss your class project with a stakeholder. With your target stakeholder in mind, design an interview script with closed- and open-ended questions that cover the professional background or knowledge. The questions should also explore in- depth how that person conducts their business in the problem space.
- Second, prepare to conduct the interview. Plan for 15 minutes and record the interview using an audio recorder. Take brief notes as you go, recognizing that you have the audio recording to complement your notes.
- Third, transcribe 1-page of information from your interview that describes the most relevant events to your project. This should include the user’s goals and any explanation of how and why they pursue those goals.
- Fourth, choose 60-second sample from audio file that cover most important information and provide (word-to-word) transcription of it.
Typical questions for seminar classes (labs) within this section
- Create 4-pages document with comparison for tools Project management tools and mind map tools
- Create 10 minutes presentation with tools observation.
Tasks for midterm assessment within this section
Test questions for final assessment in this section
- What is the project management triangle?
- What does mean challenging project?
- What the structure of waterfall model?
- What the difference between iterative and incremental model?
- What the key points in scrum process model?
- What differences between functional, cross-functional and team overlap structures?
- What difference between semantic vs episodic memory?
- What are the basis components of a question
Section 2
Section title
Iteration 0
Topics covered in this section
- Impact mapping
- Introduction to Product Backlog,
- Assessing criteria’s DEEP and INVEST
What forms of evaluation were used to test students’ performance in this section?
Form | Yes/No |
---|---|
Development of individual parts of software product code | 0 |
Homework and group projects | 1 |
Midterm evaluation | 1 |
Testing (written or computer based) | 0 |
Reports | 1 |
Essays | 0 |
Oral polls | 1 |
Discussions | 1 |
Typical questions for ongoing performance evaluation within this section
- Create an impact map for your project in one of the mind mapping tools.
- Write a one- to two-page reflection: based on your experience during this exercise, what were the strengths and weaknesses of impact maps? Did you find impact maps helpful to surface any particular assumptions, or were there issues that were difficult to express using this technique?
- Create a presentation of your impact map. Be sure that it is easy to follow and readable. Prepare for 10 minutes exhibition plus 3 minutes Q&A session.
Typical questions for seminar classes (labs) within this section
- Create an impact map for one of the project that was presented, ask questions if have problems with creation
- Present the results and answer to group mate questions
Tasks for midterm assessment within this section
Test questions for final assessment in this section
- Describe the Impact mapping strategy. Reason how it might help to create product backlog.
- Discuss the difficulties with using impact map technique.
- What means appropriate level of detail in the backlog?
- With given user story provide its evaluation with INVEST grading criteria’s.
Section 3
Section title
Iteration 1
Topics covered in this section
- Methods for Product Backlog estimation
- Definition of Done (DoD)
- Acceptance criteria (AC)
- Sprint Planning / Review /Retrospective
What forms of evaluation were used to test students’ performance in this section?
Form | Yes/No |
---|---|
Development of individual parts of software product code | 1 |
Homework and group projects | 1 |
Midterm evaluation | 0 |
Testing (written or computer based) | 0 |
Reports | 1 |
Essays | 1 |
Oral polls | 1 |
Discussions | 1 |
Typical questions for ongoing performance evaluation within this section
- Update your product backlog with clarification of user stories that will come to the Iteration 2.
- Provide the estimation for your user stories in story points based on the planning poker technique. Use as the basis your team velocity for Iteration 1.
- Apply for every user story in the product backlog the acceptance criteria in a format that was presented during the lectures.
- Create a definition of done checklist for your project.
- Provide brief justification of statements in your checklist.
- Create slides to present your acceptance criteria for user stories, and your definition of the done checklist.
- Consider to present it with your Sprint 1 deliveries. The final performance should be no more than 10 minutes plus 3 minutes Q&A session.
Typical questions for seminar classes (labs) within this section
- Update estimation for US and provide AC for the project that was presented last seminar classes, ask questions if have problems
- Present the results and answer to group mate questions
Tasks for midterm assessment within this section
Test questions for final assessment in this section
- Describe sprint rituals. Reason of necessity to follow rituals.
- Explain how Definition of Done might help to development team. What problems arises when you do not use such technique?
- What benefits for customer of providing Acceptance Criteria for every user story? What about developers, testers?
- Is it reasonable to provide Acceptance Criteria for epics stories?
- When it better to use T-short size estimation, Story Points estimation and Ideal Hours (days)?
Section 4
Section title
Iteration 2
Topics covered in this section
- Practical implementation in industry
- System Testing
- Version Control Management
What forms of evaluation were used to test students’ performance in this section?
Form | Yes/No |
---|---|
Development of individual parts of software product code | 1 |
Homework and group projects | 1 |
Midterm evaluation | 0 |
Testing (written or computer based) | 0 |
Reports | 1 |
Essays | 1 |
Oral polls | 1 |
Discussions | 1 |
Typical questions for ongoing performance evaluation within this section
- Implement the tasks that were chosen in the iteration backlog from the product backlog
- During implementation focus on the process as well and follow the scrum rituals
Typical questions for seminar classes (labs) within this section
- Examine and create unit tests, integration's tests, UI tests for your project.
- Example of working with Git (Setup repository, connect it with students project, create master and developer brunches)
Tasks for midterm assessment within this section
Test questions for final assessment in this section
- Describe differences between Unit test and integration test.
- Enumerate different types of the test.
- Explain the purpose of different types of the test.
- Draw the git workflow. Reason about benefits and weaknesses of presenting workflow.
Section 5
Section title
Iteration 3
Topics covered in this section
- Intro to Software Architecture
- Technical Debt
- SOLID technique
What forms of evaluation were used to test students’ performance in this section?
Form | Yes/No |
---|---|
Development of individual parts of software product code | 1 |
Homework and group projects | 1 |
Midterm evaluation | 0 |
Testing (written or computer based) | 0 |
Reports | 1 |
Essays | 1 |
Oral polls | 1 |
Discussions | 1 |
Typical questions for ongoing performance evaluation within this section
- Implement the tasks that were chosen in the iteration backlog from the product backlog
- During implementation focus on the process as well and follow the scrum rituals
Typical questions for seminar classes (labs) within this section
- Install Sonar Cube and connect it with your project code.
- Examine the Sonar Cube reports.
- Reason about your Technical Debt. Was it done intentionally or unintentionally.
- Discuss your previous experience and/or situation that might happen. Think when the usage of Technical Debt is justified and when it is not.
Tasks for midterm assessment within this section
Test questions for final assessment in this section
- Enumerate type of Technical Debt
- Do we always have to pay technical debt?
- How fast should we pay technical debt?
- Reason about the situation when software is rarely modified, should we pay technical debt?
- What is the relationship between product support and technical debt?
- Explain what acronym SOLID means. Describe two out of for best SOLID practices.