Warning: include(/home/faculty/schahczenski/webSites_Common/contact.php): failed to open stream: No such file or directory in /opt/www/classes/esof326/esof326.php on line 67
Warning: include(): Failed opening '/home/faculty/schahczenski/webSites_Common/contact.php' for inclusion (include_path='.:/usr/share/php') in /opt/www/classes/esof326/esof326.php on line 67
Office Hours:
Warning: include(/home/faculty/schahczenski/webSites_Common/officeHours_spring.php): failed to open stream: No such file or directory in /opt/www/classes/esof326/esof326.php on line 73
Warning: include(): Failed opening '/home/faculty/schahczenski/webSites_Common/officeHours_spring.php' for inclusion (include_path='.:/usr/share/php') in /opt/www/classes/esof326/esof326.php on line 73
Text: None
Prerequisite: ESOF322
Meeting times and place: Mon., Wed. & Wed. 1:00 - 1:50pm, CBB 105
What is in this course?
Continues to study the process of developing software applications and systems. Software requirements, design, and testing are addressed. Students gain experience in these areas by working on a software maintenance project that involves significant changes to a previously developed product.
Grading:
Activity | Percentage |
---|---|
Introductory Assignments | 10% |
Sprints | 30%, 30% and 30% |
Grade for each Sprint:
Activity | Percentage |
---|---|
Quality of work and number of issues handled | 10% |
Inspection prepartion:
|
10% |
Reporting on GitLab | 3% |
Attendance, number of days attended / number of days | 3% |
Reflection paper | 4% |
Two students will serve as scrum masters for each sprint. The scrum master will earn extra points for serving as scrum master. Ordinarily, 3 extra percentage points will be added to the scrum master's overall score. A student performing exceptionally well as a scrum master will earn 5 extra percentage points, and a student performing poorly will only earn 1 extra percentage point. Before each sprint, students will get the opportunity to apply to be the scrum master of the next sprint.
See catalog online, fall semester of junior year, in Software Engineering, B.S. Program or Computer Science, B.S. Program.
Expected skills students have coming into the course:
- E1. Students have a basic understanding of object-oriented programming and can create multi-class programs in Java. (CSCI 135)
- E2. Students entering this course should be able to construct source files in C++ and Java that conform to the Montana Tech Methods standards for such files. (ESOF 322).
- E3. Students entering this course should be able to write and execute any of the following standard Montana Tech Methods software development documents: a Simple Program Development Sheet and a Simple Program Development Document (from ESOF 322).
Expected outcomes from taking this course:
- R1. Demonstrated the ability to work effectively in a team setting on a multi-programmer, multi-month, software project. (CAC-a, b, c, d, f, i, k; EAC-a, c, e, g, k, 1, 3)
- R2. Taken a project that was previously worked on and either bring it to the next stage of completion or made major enhancements. (CAC-a, b, c, d, f, h, i, k; EAC-a, c, e, g, i, k, 1, 3)
- R3. Appreciate the importance of early and continuous involvement of all system stakeholders during the development cycle. (CAC-b, d, f, g; EAC-d, g,)
- R4. Be able to create and follow a MTM Software Test Plan/ Report and can report failures, correct faults, and resubmit test case results. (CAC-a, d, f, i, k; EAC-a, e, k, 1, 2, 3)
- R5. Be able to keep a log of the time spent on this course and understand the importance of software metrics and know the standard measurements such as person hours and lines of code. (CAC-d; EAC-a, c, k, 4)
- R6. Can describe his or her experience with the personal, technical, managerial and people aspects of a class maintenance project. (CAC-f; EAC-g, 4)
- R7. Be able to take a description of a medium size software application and complete either an MTM Simple Program Development Document or an MTM SRS, SDD and STP/R. (CAC-a, c, d, e, f, i, j, k; EAC-a, c, d, e, f, g, k)
- R8. Be able to construct an "executable" UML design for a medium size application. (CAC-a, c, f, i, j, k; EAC-a, c, e, g, k, 1, 2)
Related student outcomes:
- CAC-a An ability to apply knowledge of computing and mathematics appropriate to the discipline
- CAC-b An ability to analyze a problem, and identify and define the computing requirements appropriate to its solutions
- CAC-c An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needsEAC-1 The ability to analyze, design, verify, validate, implement, apply and maintain software systems
- CAC-d An ability to function effectively on teams to accomplish a common goal
- CAC-e An understanding of professional, ethical, legal, security and social issues and responsibilities
- CAC-f An ability to communicate effectively with a range of audiences
- CAC-g An ability to analyze the local and global impact of computing on individuals, organizations and society
- CAC-i An ability to use current techniques, skills and tools necessary for computing practices
- CAC-j An ability to apply mathematical foundations, algorithmic principles and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices
- CAC-k An ability to apply design and development principles in the construction of software systems of varying complexity
- EAC-a An ability to apply knowledge of mathematics, science and engineering
- EAC-c An ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability and sustain ability
- EAC-d An ability to function on multidisciplinary teams
- EAC-e An ability to identify, formulate and solve engineering problems
- EAC-f An understanding of professional and ethical responsibility
- EAC-g An ability to communicate effectively
- EAC-i A recognition of the need for and an ability to engage in life-long learning
- EAC-k An ability to use the techniques, skills and modern engineering tools necessary for engineering practice
- EAC-1 the ability to analyze, design, verify, validate, implement, apply and maintain software systems
- EAC-2 the ability to appropriately apply discrete mathematics, probability and statistics, and relevant topics in computer science and supporting disciplines to complex software systems
- EAC-3 the ability to work in one or more significant application domains
- EAC-4 the ability to manage the development of software systems