Spring 2024 Schedule 

Week

Date

Topic

Notes

Agenda

1

 

W Jan 17

F Jan 19

 

CourseOverview, Introductions

preparing for projects

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

2

M Jan 22

W Jan 24

F Jan 26

Client overview: HRDC

GitHub, Artifacts

Client pitch 1: Krista, HRDC

Clients pitch projects to class

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

3

M Jan 29

W Jan 31

F Feb 2

Group/Project Choices, Documentation

Agile Development, Scrums

Client pitch 2: Jenna, HRDC

Choose projects, groups

Form groups

Sprint 0: Planning

Scrum

4

M Feb 5

W Feb 7

F Feb 9

Zero Feature Release

lab

lab

 

Lecture

Scrum

Sprint 0 review; ZFR

5

M Feb 12

W Feb 14

F Feb 16

Local Dev, Git

lab

lab

 

Lecture

Sprint 1 Planning

Weekly Scrum

6

M Feb 19

W Feb 21

F Feb 23

PRESIDENTS DAY - No classes

lab

lab

 

 

Weekly Scrum

Sprint 1 review; Alpha release

7

M Feb 26

W Feb 28

F Mar 1

Continuous Integration

lab

lab

 

Lecture

Sprint 2 Planning

Weekly Scrum

8

M Mar 4

W Mar 6

F Mar 8

Black box testing, Selenium Testing

lab

lab

 

Lecture

Scrum

Sprint 2 review; Beta release

9

Mar 11 - 15

SPRING BREAK 

No classes

 

10

M Mar 18

W Mar 20

F Mar 22

JUnit testing

lab

lab

 

Lecture

Sprint 3 Planning

Scrum

11

M Mar 25

W Mar 27

F Mar 29

lab

lab

UNIVERSITY DAY - No classes

 

Scrum

Sprint 3 review; FCR

12

M Apr 1

W Apr 3

F Apr 5

Portfolio Discussion

lab

lab

 

 

Portfolio Draft 

Sprint 4 Planning

Scrum

13

M Apr 8

W Apr 10

F Apr 12

User Testing, Code Reviews

lab

lab

 

Lecture

Scrum

Sprint 4 review; RC

14

M Apr 15

W Apr 17

F Apr 19

TDD/PP, APIs

lab

lab

 

Lecture

Sprint 5 Planning 

Scrum

15

M Apr 22

W Apr 24

F Apr 26

Final Release Logistics

lab

lab

 

Lecture

Scrum

Sprint 5 review; Final Release

16

M Apr 29

W May 1

F May 3

Groups: 2, 4, 5 (Maintenance Tracker)

Groups: 1, 3 (Warming Shelter)

Groups: Final meeting

Presentations

Presentations

Presentations

Presentations, Portfolios and Demo recordings due

Finals Week

M May 6

No final exam  (Use for exam period for presentations if more time is still needed.)

 

 

 

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

  • 1:10 pm - 2:00 pm in Roberts Hall Room 210.
  • Monday: Lecture topic, homework discussions, open forum 
  • Wednesday, Friday: Scrum standup meetings and group work sessions (labs) 

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.

  • Assignments: 30% (individual submission, graded per individual)
    • Homework assignments posted on D2L to be completed individually.
  • Project Sprints: 35%  (group submission, graded per individual)
    • Scrum meeting participation
    • Sprint planning meeting outcomes
    • Work done toward achieving the defined sprint goal
    • Activity and maintenance of the git workflow and the repository.
  • Product releases: 20% (group demo, graded per group)
    • A series of 5 software releases leading up to the final product
    • Proper maintenance of the scrum artifacts (burn down charts and updated product backlog)
    • Completed requirements, code maintainability/extensibility, quality assurance methods, continuous integration, testing, and delivery.
  • Final release presentation, portfolio, software demo – 15% (graded per group) 
    • Portfolio content: Target audience is a technical developer. 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.
    • 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.
    • Demo - Clear 10 - 15 minute 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.

Additional MSU Resources


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

Email
daniel.defrance@montana.edu