Spring 2025 Schedule 

Week

Date

Lecture Topic

Ind. work

Group work

1

 

W Jan 15

F Jan 17

 

CourseOverview, Introductions

Projects; Agile Dev & Artifacts
Designers attend

Introductions
Meet others in the class; get an idea of who you might like to work with

2

M Jan 20

W Jan 22


F Jan 24

MLK DAY - No classes

Client pitch 1: HRDC
Clients attend
Designers attend

Client pitch 2: HRDC
Clients attend
Designers attend

Clients pitch projects to class

Listen to client pitches; ask questions; decide which project you'd like to develop

3

M Jan 27

W Jan 29

F Jan 31

Agile Arifacts

Scrum (lab)

Scrum (lab)
Designers attend

 

Be on a team

Form groups

Sprint 0: Planning

List Group Members

4

M Feb 3

W Feb 5

F Feb 7

Product Releases, Retrospectives

Scrum (lab)

Scrum (lab)
Clients attend: Krista (virtual)
Designers attend

 

Lecture

 

Zero Feature Release
Sprint 0: Retrospective

5

M Feb 10

W Feb 12

F Feb 14

Git, GitHub

Scrum (lab)

Scrum (lab)
Designers attend

 

 

Git Exercise

Lecture

Sprint 1: Planning

Weekly Scrum

6

M Feb 17

W Feb 19

F Feb 21

PRESIDENTS DAY - No classes

Scrum (lab)

Scrum (lab)
Clients attend: Krista, 
Designers attend

 

 

Peer Survey

--

Weekly Scrum

Alpha release
Sprint 1: Retrospective

7

M Feb 24

W Feb 26

W Feb 28

Continuous Integration

Scrum (lab)

Scrum (lab)
Designers attend

 

 

CI Activity

Lecture

Sprint 2: Planning

Weekly Scrum

8

M Mar 3

W Mar 5

F Mar 7

TDD/PP

Scrum (lab)

Scrum (lab)
Clients attend: Krista (virtual)
Designers attend

 

 

Peer Survey

Lecture

Scrum

Beta release
Sprint 2: Retrospective

9

M Mar 10

W Mar 12

F Mar 14

Selenium Testing

Scrum (lab)

Scrum (lab)
Designers attend

 

 

Selenium HW

Lecture

Sprint 3: Planning

Scrum

10

Mar 17- 21

SPRING BREAK - No classes

 

 

11

M Mar 24

W Mar 26

F Mar 28

Black box testing

Scrum (lab)

Scrum (lab)
Clients attend: Krista out
Designers attend

 

 

Scrum

Feature Complete
Sprint 3: Retrospective

12

F Mar 31

W Apr 1

F Apr 3

User Testing

Scrum (lab)

Scrum (lab)
Designers attend

 

 

User Tests

Portfolio Draft 

Sprint 4 Planning

Scrum

13

M Apr 7

W Apr 9

F Apr 11

Portfolio Discussion

Scrum (lab)

Scrum (lab)
Clients attend: Krista 
Designers attend

 

 

Peer Survey

Lecture

Scrum

Release Candidate
Sprint 4: Retrospective

14

M Apr 14

W Apr 16

F Apr 18

Scrum (lab)

Scrum (lab)

UNIVERSITY DAY - No classes

 

 

Sprint 5 Planning 

Scrum

15

M Apr 21

W Apr 23

F Apr 25

Final Release Logistics

Scrum (lab)

Scrum (lab)
Designers attend

 

 

Peer Survey

Lecture

Scrum

Final Release
Sprint 5: Retrospective

16

M Apr 28


W Apr 30


F May 2

2 Groups Present: TBD
Client attends: Krista
Designers attend

2 Groups: Present: TBD
Clients attend: Krista and Jenna
Designers attend

2 Groups: Present: TBD
Client attends: Jenna
Designers attend

Presentations


Presentations


Presentations

Attendence,
Portfolios,
Demo Videos


Finals Week

M May 5

No final exam  (We will reserve exam period for presentations if more time is still 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

Instructor

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

  • TBD
    • Availability for Assistance: TBD, and by appointment.
    • Location: Barnard Hall 259
    • Email: 

Lecture Topics

  • Software development process: introduction, traditional vs iterative vs agile, scrum, extreme programming, test driven development, rugby
  • Version control: introduction and types of version control systems, distributed version control systems, Git/GitHub
  • Software testing: introduction, automated unit testing and xUnit/jUnit, test coverage
  • Continuous integration and delivery
  • Code Refactoring: code smells, refactoring techniques to remove code smells and to incorporate design patterns
  • Test driven development and pair programming: introduction and practical TDD/PP Code reviews: Introduction, code review planning and checklists, logistics, code reviews in the industry
  • Static Code analysis: introduction, advantages of static analysis, static analysis methods, static analysis tools

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.

  • 20%: 5 Homework Assignments:  (individual submission; individual grades)
    • Homework assignments will posted on D2L to be completed individually
  • 20%: 4 Peer Evaluations:  (individual surveys, individual grades)
    • Private surveys to check in with all group members on team participation
  • 24%: 6 Two-Week Project Sprint Retrospectives:  (group submission, individual grades)
    • Individual Daily Scrum meeting participation. No D2L submission; graded by observation in class
    • Indivudual work done toward achieving the defined sprint goal; from retrospective document
    • Activity and maintenance of the git workflow and the repository; as seen in GitHub repo
  • 15% : 5 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%: 1 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
  • 1%: Be present for all final presentations. (no submission -- graded by observation)
    • Support, learn from, ask questions of the other group's presentations
    • Make the total for these things come out to 100% 
  • 0%: Exams
    • :)

 

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.

Additional MSU Resources


MSU Bozeman
Montana State University
358 Barnard Hall
P.O. Box 173880
Bozeman, MT 59717-3880

Email
daniel.defrance@montana.edu