Syllabus: ESOF 423
Spring 2026 Schedule
Note: This page is a living document. Dates and assignments >1 week out may be adjusted
during the semester.
Assignments to be submitted are in bold italics
|
Week |
Date |
Lecture Topic |
Ind. work |
Group work |
|
1 |
W Jan 13 F Jan 15 |
CourseOverview Introductions |
|
Meet others in the class; form ideas of who you would like to work with |
|
2 |
M Jan 19 W Jan 21 F Jan 23 |
MLK DAY - No classes workshop - Agile Workflow workshop - Agile Artifacts |
|
|
|
3 |
M Jan 26 W Jan 28 F Jan 30 |
Group, Client registration Scrum lab Scrum lab |
Agile Quiz
|
Finalize groups Sprint 1: Planning Submit Plan |
|
4 |
M Feb 2 W Feb 4 F Feb 6 |
Product Releases, Retrospectives Scrum lab Scrum lab |
|
Lecture
Zero Feature Release |
|
5 |
M Feb 9 W Feb 11 F Feb 13 |
Git, GitHub Scrum lab Scrum lab |
Git Exercise |
Lecture Sprint 2: Planning |
|
6 |
M Feb 16 W Feb 18 F Feb 20 |
PRESIDENTS DAY - No classes Scrum lab Scrum lab |
|
Alpha release |
|
7 |
M Feb 23 W Feb 25 W Feb 27 |
Continuous Integration Scrum lab Scrum lab |
CI Activity |
Lecture Sprint 3 Planning |
|
8 |
M Mar 2 W Mar 4 F Mar 6 |
TDD/PP, Portfolio Discussion Scrum lab Scrum lab |
|
Lecture
Beta release Portfolio Draft |
|
9 |
M Mar 9 W Mar 11 F Mar 13 |
Selenium Testing Scrum lab Scrum lab |
Selenium |
Lecture Sprint 4: Planning
|
|
10 |
Mar 16–20 |
SPRING BREAK - No classes |
|
|
|
11 |
M Mar 23 W Mar 25 F Mar 27 |
User Testing Scrum lab Scrum lab |
|
Feature Complete |
|
12 |
M Mar 30 W Apr 1 F Apr 3 |
Scrum lab Scrum lab UNIVERSITY DAY - No classes |
User Tests |
Sprint 5 Planning
|
|
13 |
M Apr 6 W Apr 8 F Apr 10 |
Black box testing Scrum lab Scrum lab |
|
Lecture
Release Candidate |
|
14 |
M Apr 13 W Apr 15 F Apr 17 |
Final Release Logistics Scrum lab Scrum lab |
Post Mortem |
Lecture Sprint 6 Planning Final Portfolio |
|
15 |
M Apr 20 W Apr 22 F Apr 24 |
Open Lab Scrum lab Scrum lab |
|
Final Release |
|
16 |
M Apr 27 W Apr 29 F Apr 30 |
2 Groups Present 2 Groups: Present 2 Groups: Present |
Attendence |
Presentation |
|
Finals Week |
M May 4 |
No final exam (exam period is reserved for presentations if more time is required.) |
|
|
Course Description
ESOF 423. Software Engineering Applications. 3 Credits. (1 Lec. 2 Lab) S
PREREQUISITES: ESOF 322 Application of software engineering techniques and methodologies acquired in previous courses to solve an open-ended software engineering problem provided by stakeholders. Students will use a team based approach to requirements gathering, designing, implementation, testing, integration and delivery of the software solution. CSCI 440 is recommended.
Resources
- HRDC Google Drive
- Agile, Scrum references
- https://ecat.montana.edu/d2l/home (Assignments, intergroup discussion)
- https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
- https://github.com/
- 2024 Student Projects
Instructor
- Mr. Daniel DeFrance
- Office hours
- Office: Barnard Hall 358
- E-Mail: daniel.defrance@montana.edu
Meetings
- 10:00 pm - 10:50 pm in Roberts Hall Room 210.
- Monday: LECTURE (Software Engineering Topics)
- Wednesday, Friday: LABS (Scrum meetings and group work sessions)
Course Assistants
- NA
Projects
- The projects are specified by outside clients, and each team can take on a project
of their choice.
- Teams are required to develop the product specified by the client through the completion of the provided user stories.
- The teams are required to closely follow agile development methods followed in the industry (http://agilemanifesto.org/).The teams are self organizing and will decide what portions of the project requirements they will implement during each sprint.
- During each planning meeting the team decides the portion of the requirements they
are going to implement during that sprint and discuss how the work is distributed
among team members.
- Teams are required to produce a working piece software at the end of each sprint and will be iteratively and incrementally developed toward the final product.
- The teams are required to maintain project with Git, a proper distributed version control workflow which includes maintaining proper branch structures and frequent meaningful commits by all the developers in the group. We will use GitHub in class for hosting public repos.
- The teams are required to apply quality assurance techniques through unit/integration/system testing and using proper tools to evaluate the test quality (e.g. coverage tool).
Grading
Final letter grades will be based on the relative distribution of total scores and not on any preset numerical grade.
INDIVIDUALLY GRADED
- 20%: Individual Assignments: based on lecture material
- 24%: Participation: Be there.
- Meet in person and start on time for the 24 scheduled Scrum Labs.
- Exceptions: If one member of a group must miss a scrum meeting for any reason, advance
notice* must be given to the professor (email) as well as the other member of the
group for an excused absense.
- * Ideally advance notice should be a minimum of a week, but sometimes things just spring up. If you learn you can't be present the morning of a lab, text or call your partner, who can relay the info to me. Follow up with an email to me when you get to a computer.
- It is not required for the second group member to attend lab when their partner as an excused absense.
- Each group member has a maximum of 2 excused absenses for the semseter.
- 6%: Attendl final presentations. (no submission -- graded by observation)
- Support, learn from, ask questions of the other group's presentations
GROUP GRADES
- 30% : Development releases: (group demo, graded by observation; group grades)
- A series of 5 software releases leading up to the final product
- Proper maintenance of the scrum artifacts; from retrospective document
- Completed requirements, code maintainability/extensibility, quality assurance methods, continuous integration, testing, and delivery.
- 20%: Final Release (presentation, portfolio, release, repo, recording): (group submission;
group grades)
- Presentation - Target audience is the client. Each developer should speak for 3-5 minutes with slides highlighting their contribution and how the client can use the feature. Be prepared for questions.
- Portfolio content: Target audience is a technical developer. Incldue high level UML diagrams displaying the design, discussion on the design patterns used, discussion of code maintainability/extensibility and methods used to accomplish them, quality assurance methods and their evaluation.
- Final Release: Project is COMPLETE: fully featured, tested, debugged, functional, user documented, and usable by clients.
- Revision Control: All source code, CI, technical documentation, issues, links and references are in good order on GitHub.
- Demo - Clear 10 - 15 minute recorded video recording demonstrating usage of the application for an end user
Grades are determined based on your score in the class as follows:
| Letter Grade | % Score |
|---|---|
| F | 0 |
| D- | 60 |
| D | 63 |
| D+ | 67 |
| C- | 70 |
| C | 73 |
| C+ | 77 |
| B- | 80 |
| B | 83 |
| B+ | 87 |
| A- | 90 |
| A | 93 |
Course Outcomes
At the end of the course, students should be able to
-
Design and implement a solution to an open-ended problem in software engineering defined by a stakeholder.
-
Evaluate alternative solutions to a problem in software engineering.
- Effectively and methodically test code, and review code written by others.
- Use written/oral/visual means to document and present the solution to the stakeholder.
Course Policies
See the policies page for expectations and consequences on subjects like collaborating with others, what constitutes cheating, copyright responsibilities, using tools like ChatGPT, lateness, and what to do in case of emergencies.
