LnRiLWZpZWxke21hcmdpbi1ib3R0b206MC43NmVtfS50Yi1maWVsZC0tbGVmdHt0ZXh0LWFsaWduOmxlZnR9LnRiLWZpZWxkLS1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LnRiLWZpZWxkLS1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0fS50Yi1maWVsZF9fc2t5cGVfcHJldmlld3twYWRkaW5nOjEwcHggMjBweDtib3JkZXItcmFkaXVzOjNweDtjb2xvcjojZmZmO2JhY2tncm91bmQ6IzAwYWZlZTtkaXNwbGF5OmlubGluZS1ibG9ja311bC5nbGlkZV9fc2xpZGVze21hcmdpbjowfQ==
LnRiLWNvbnRhaW5lciAudGItY29udGFpbmVyLWlubmVye3dpZHRoOjEwMCU7bWFyZ2luOjAgYXV0b30gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWNvbnRhaW5lci50Yi1jb250YWluZXJbZGF0YS10b29sc2V0LWJsb2Nrcy1jb250YWluZXI9ImNlODg0MDE5NzQ3ZjQ2YzBmMTAwZWY5MWI0MDk1OGNjIl0geyBib3JkZXItcmFkaXVzOiA1cHg7cGFkZGluZzogMjVweDsgfSAudGItY29udGFpbmVyIC50Yi1jb250YWluZXItaW5uZXJ7d2lkdGg6MTAwJTttYXJnaW46MCBhdXRvfSAud3AtYmxvY2stdG9vbHNldC1ibG9ja3MtY29udGFpbmVyLnRiLWNvbnRhaW5lcltkYXRhLXRvb2xzZXQtYmxvY2tzLWNvbnRhaW5lcj0iNzkxNTVmMTI5Mzk4MTNkNzQ5MzFkOTk2MzRkMjllNDYiXSB7IGJvcmRlci1yYWRpdXM6IDVweDtiYWNrZ3JvdW5kOiByZ2JhKCAyNTUsIDI1NSwgMjU1LCAxICk7cGFkZGluZzogNXB4IDM1cHggNXB4IDM1cHg7IH0gLnRiLWNvbnRhaW5lciAudGItY29udGFpbmVyLWlubmVye3dpZHRoOjEwMCU7bWFyZ2luOjAgYXV0b30gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWNvbnRhaW5lci50Yi1jb250YWluZXJbZGF0YS10b29sc2V0LWJsb2Nrcy1jb250YWluZXI9IjhlODg0NGUyZjFiMzIxOWE4YWM2NjJhMzgyMWNmY2E4Il0geyBwYWRkaW5nOiAyNXB4OyB9ICAgLnRiLWNvbnRhaW5lciAudGItY29udGFpbmVyLWlubmVye3dpZHRoOjEwMCU7bWFyZ2luOjAgYXV0b30gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWNvbnRhaW5lci50Yi1jb250YWluZXJbZGF0YS10b29sc2V0LWJsb2Nrcy1jb250YWluZXI9IjViMDQ3MWM0OWIxZDM0YzZkODFkYmI0NmUzYjJjY2YzIl0geyBwYWRkaW5nOiAyNXB4OyB9IC50Yi1ncmlkLC50Yi1ncmlkPi5ibG9jay1lZGl0b3ItaW5uZXItYmxvY2tzPi5ibG9jay1lZGl0b3ItYmxvY2stbGlzdF9fbGF5b3V0e2Rpc3BsYXk6Z3JpZDtncmlkLXJvdy1nYXA6MjVweDtncmlkLWNvbHVtbi1nYXA6MjVweH0udGItZ3JpZC1pdGVte2JhY2tncm91bmQ6I2QzOGEwMztwYWRkaW5nOjMwcHh9LnRiLWdyaWQtY29sdW1ue2ZsZXgtd3JhcDp3cmFwfS50Yi1ncmlkLWNvbHVtbj4qe3dpZHRoOjEwMCV9LnRiLWdyaWQtY29sdW1uLnRiLWdyaWQtYWxpZ24tdG9we3dpZHRoOjEwMCU7ZGlzcGxheTpmbGV4O2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydH0udGItZ3JpZC1jb2x1bW4udGItZ3JpZC1hbGlnbi1jZW50ZXJ7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpjZW50ZXJ9LnRiLWdyaWQtY29sdW1uLnRiLWdyaWQtYWxpZ24tYm90dG9te3dpZHRoOjEwMCU7ZGlzcGxheTpmbGV4O2FsaWduLWNvbnRlbnQ6ZmxleC1lbmR9IC53cC1ibG9jay10b29sc2V0LWJsb2Nrcy1ncmlkLnRiLWdyaWRbZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkPSJjNWJiOGIzYzMwY2MzOWExMzllNTNiZWY3NjMwZDdhMyJdIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMC41ZnIpIG1pbm1heCgwLCAwLjVmcik7Z3JpZC1jb2x1bW4tZ2FwOiAzMnB4O2dyaWQtcm93LWdhcDogNDRweDtncmlkLWF1dG8tZmxvdzogcm93IH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9ImM1YmI4YjNjMzBjYzM5YTEzOWU1M2JlZjc2MzBkN2EzIl0gPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoMm4gKyAxKSB7IGdyaWQtY29sdW1uOiAxIH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9ImM1YmI4YjNjMzBjYzM5YTEzOWU1M2JlZjc2MzBkN2EzIl0gPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoMm4gKyAyKSB7IGdyaWQtY29sdW1uOiAyIH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49IjQ2ZGNkMGU3MjI5ZDMwZTI4NmNkNDE0ZTE0NmYyNjRlIl0geyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCAyNTUsIDI1NSwgMjU1LCAxICk7Ym9yZGVyLXJhZGl1czogNXB4O3BhZGRpbmctcmlnaHQ6IDM1cHg7cGFkZGluZy1sZWZ0OiAzNXB4O2Rpc3BsYXk6IGZsZXg7IH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49IjQ2ZGNkMGU3MjI5ZDMwZTI4NmNkNDE0ZTE0NmYyNjRlIl0gcCB7IGZvbnQtc2l6ZTogMThweDsgfSAgLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49Ijk0MzBmNTg3NTEwMzg3NTI4ZDI4ZGI2MWNmYWQxNDJhIl0geyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCAyNTUsIDI1NSwgMjU1LCAxICk7Ym9yZGVyLXJhZGl1czogNXB4O3BhZGRpbmctcmlnaHQ6IDM1cHg7cGFkZGluZy1sZWZ0OiAzNXB4O2Rpc3BsYXk6IGZsZXg7IH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49Ijk0MzBmNTg3NTEwMzg3NTI4ZDI4ZGI2MWNmYWQxNDJhIl0gcCB7IGZvbnQtc2l6ZTogMThweDsgfSAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3ODFweCkgeyAudGItY29udGFpbmVyIC50Yi1jb250YWluZXItaW5uZXJ7d2lkdGg6MTAwJTttYXJnaW46MCBhdXRvfS50Yi1jb250YWluZXIgLnRiLWNvbnRhaW5lci1pbm5lcnt3aWR0aDoxMDAlO21hcmdpbjowIGF1dG99LnRiLWNvbnRhaW5lciAudGItY29udGFpbmVyLWlubmVye3dpZHRoOjEwMCU7bWFyZ2luOjAgYXV0b30gIC50Yi1jb250YWluZXIgLnRiLWNvbnRhaW5lci1pbm5lcnt3aWR0aDoxMDAlO21hcmdpbjowIGF1dG99LnRiLWdyaWQsLnRiLWdyaWQ+LmJsb2NrLWVkaXRvci1pbm5lci1ibG9ja3M+LmJsb2NrLWVkaXRvci1ibG9jay1saXN0X19sYXlvdXR7ZGlzcGxheTpncmlkO2dyaWQtcm93LWdhcDoyNXB4O2dyaWQtY29sdW1uLWdhcDoyNXB4fS50Yi1ncmlkLWl0ZW17YmFja2dyb3VuZDojZDM4YTAzO3BhZGRpbmc6MzBweH0udGItZ3JpZC1jb2x1bW57ZmxleC13cmFwOndyYXB9LnRiLWdyaWQtY29sdW1uPip7d2lkdGg6MTAwJX0udGItZ3JpZC1jb2x1bW4udGItZ3JpZC1hbGlnbi10b3B7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0fS50Yi1ncmlkLWNvbHVtbi50Yi1ncmlkLWFsaWduLWNlbnRlcnt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDthbGlnbi1jb250ZW50OmNlbnRlcn0udGItZ3JpZC1jb2x1bW4udGItZ3JpZC1hbGlnbi1ib3R0b217d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpmbGV4LWVuZH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9ImM1YmI4YjNjMzBjYzM5YTEzOWU1M2JlZjc2MzBkN2EzIl0geyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO2dyaWQtcm93LWdhcDogMjRweDtncmlkLWF1dG8tZmxvdzogcm93IH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9ImM1YmI4YjNjMzBjYzM5YTEzOWU1M2JlZjc2MzBkN2EzIl0gID4gLnRiLWdyaWQtY29sdW1uOm50aC1vZi10eXBlKDFuKzEpIHsgZ3JpZC1jb2x1bW46IDEgfSAud3AtYmxvY2stdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW4udGItZ3JpZC1jb2x1bW5bZGF0YS10b29sc2V0LWJsb2Nrcy1ncmlkLWNvbHVtbj0iNDZkY2QwZTcyMjlkMzBlMjg2Y2Q0MTRlMTQ2ZjI2NGUiXSB7IGRpc3BsYXk6IGZsZXg7IH0gIC53cC1ibG9jay10b29sc2V0LWJsb2Nrcy1ncmlkLWNvbHVtbi50Yi1ncmlkLWNvbHVtbltkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uPSI5NDMwZjU4NzUxMDM4NzUyOGQyOGRiNjFjZmFkMTQyYSJdIHsgZGlzcGxheTogZmxleDsgfSAgIH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OTlweCkgeyAudGItY29udGFpbmVyIC50Yi1jb250YWluZXItaW5uZXJ7d2lkdGg6MTAwJTttYXJnaW46MCBhdXRvfS50Yi1jb250YWluZXIgLnRiLWNvbnRhaW5lci1pbm5lcnt3aWR0aDoxMDAlO21hcmdpbjowIGF1dG99LnRiLWNvbnRhaW5lciAudGItY29udGFpbmVyLWlubmVye3dpZHRoOjEwMCU7bWFyZ2luOjAgYXV0b30gIC50Yi1jb250YWluZXIgLnRiLWNvbnRhaW5lci1pbm5lcnt3aWR0aDoxMDAlO21hcmdpbjowIGF1dG99LnRiLWdyaWQsLnRiLWdyaWQ+LmJsb2NrLWVkaXRvci1pbm5lci1ibG9ja3M+LmJsb2NrLWVkaXRvci1ibG9jay1saXN0X19sYXlvdXR7ZGlzcGxheTpncmlkO2dyaWQtcm93LWdhcDoyNXB4O2dyaWQtY29sdW1uLWdhcDoyNXB4fS50Yi1ncmlkLWl0ZW17YmFja2dyb3VuZDojZDM4YTAzO3BhZGRpbmc6MzBweH0udGItZ3JpZC1jb2x1bW57ZmxleC13cmFwOndyYXB9LnRiLWdyaWQtY29sdW1uPip7d2lkdGg6MTAwJX0udGItZ3JpZC1jb2x1bW4udGItZ3JpZC1hbGlnbi10b3B7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0fS50Yi1ncmlkLWNvbHVtbi50Yi1ncmlkLWFsaWduLWNlbnRlcnt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDthbGlnbi1jb250ZW50OmNlbnRlcn0udGItZ3JpZC1jb2x1bW4udGItZ3JpZC1hbGlnbi1ib3R0b217d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24tY29udGVudDpmbGV4LWVuZH0gLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQudGItZ3JpZFtkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQ9ImM1YmI4YjNjMzBjYzM5YTEzOWU1M2JlZjc2MzBkN2EzIl0geyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO2dyaWQtYXV0by1mbG93OiByb3cgfSAud3AtYmxvY2stdG9vbHNldC1ibG9ja3MtZ3JpZC50Yi1ncmlkW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZD0iYzViYjhiM2MzMGNjMzlhMTM5ZTUzYmVmNzYzMGQ3YTMiXSAgPiAudGItZ3JpZC1jb2x1bW46bnRoLW9mLXR5cGUoMW4rMSkgeyBncmlkLWNvbHVtbjogMSB9IC53cC1ibG9jay10b29sc2V0LWJsb2Nrcy1ncmlkLWNvbHVtbi50Yi1ncmlkLWNvbHVtbltkYXRhLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uPSI0NmRjZDBlNzIyOWQzMGUyODZjZDQxNGUxNDZmMjY0ZSJdIHsgZGlzcGxheTogZmxleDsgfSAgLndwLWJsb2NrLXRvb2xzZXQtYmxvY2tzLWdyaWQtY29sdW1uLnRiLWdyaWQtY29sdW1uW2RhdGEtdG9vbHNldC1ibG9ja3MtZ3JpZC1jb2x1bW49Ijk0MzBmNTg3NTEwMzg3NTI4ZDI4ZGI2MWNmYWQxNDJhIl0geyBkaXNwbGF5OiBmbGV4OyB9ICAgfSA=
Course Description
This course is the cornerstone of the SE curriculum covering software engineering principles, software process models, and project management. To gain hands-on experience in software development, students will be grouped into teams to work on a semester-long project. The project will require team members to collaborate and produce an idea proposal, problem domain analysis, system requirement analysis, and system design. Teams will then work together to implement and test their design. Finally, at the conclusion of this course, each team will produce three deliverables: a Software Requirements Specification Document, Software Design Specification Document, and a system executable. In addition to gaining a deeper understanding of SE principles, students will also expand their teamwork, documentation, and communication skills.
The course progression and submission due dates are detailed in the course schedule. To be successful, please conform to the schedule without delay.
Prerequisite: SWENG311
Overview
This course is designed to focus on SE principles and Object-Oriented Methodologies, with the presumption that you have already mastered one or two object-oriented programming languages (CMPSE 121, 122, SWENG 311). Of its nature, this course is writing-intensive, demanding that you document system requirements and designs in standard formats and in UML (a semi-formal language). Given that no individual has the knowledge and experience of the team as a whole, teamwork is a critical factor to becoming a successful software engineer. Hence, while working on your project, each team should split tasks wisely, seek help proactively, and share thoughts frequently.
Course Outline:
Module 1 – Orientation Module 2 – Software Process Models Module 3 – Project Management and Planning Module 4 – Agile Software Development Module 5 – Object-Oriented Modeling Basics Module 6 – Software Requirements Module 7 – Use Cases Module 8 – System Architectural Design Module 9 – From Use Cases to Object Interactions Module 10 – System Structural Design Module 11 – System Behavioral Design Module 12 – Software Design Patterns Module 13 – Software Testing Module 14 – Software Maintenance Module 15 – Project Presentation
Learning Goals
Upon completion of the course, students will:
- Understand key concepts related to the Software Engineering discipline;
- Understand the ethical issues related to software engineering;
- Have a working knowledge of the software development process;
- Have practiced using various UML diagrams to represent software artifacts;
- Have practiced applying OO concepts in software construction;
- Know key techniques for analyzing and documenting software requirements;
- Know key concepts and techniques for software system modeling;
- Understand the general principles of human-computer interface design;
- Know a few design patterns and know how to use them in the course project;
- Understand the basics of unit testing and integration testing;
- Know the process and key activities for project planning and management.
Course Requirements and Grading
1. Grading Policy
Grading is based on midterm exams, quizzes, lab assignments, and course projects. The following weights are assigned to the different assessed components of the course:
Category |
Evaluation |
Percentage |
Midterm Exam I |
Individual |
7% |
Midterm Exam II |
Individual |
8% |
Midterm Exam III |
Individual |
10% |
Quizzes (10 modules) |
Individual |
15% |
Module Discussions (first 4 modules) |
Individual |
5% |
Module Assignments |
Teamwork |
25% |
Team Project Final Deliverables |
Teamwork |
30% |
Labs: The hands-on laboratory component concentrates mainly on the application of object-oriented techniques to design and develop software projects. Course Project The course project will require the design and development of a moderately-sized software system. The main goal is to help you gain in-depth experience with object-oriented software design and construction. You will be asked to propose project ideas early in the semester. The course project grade consists of three parts, (a) software construction (from requirements to a working system), (b) software documentation, and (c) system presentation. Your individual grade for the group project will reflect the peer evaluations that will be performed at the end of the semester (each student will be evaluated by other team members about your involvement in the production of the project deliverables).
2. Grade Assignments
Assignments are based on 100 points with a final letter grade being assigned as follows:
A |
A- |
B+ |
B |
B- |
C+ |
C |
D |
F |
93-100 |
89-92 |
85-88 |
80-84 |
75-79 |
70-74 |
65-69 |
60-64 |
0-59 |