|
Course ID: | CSCI 4050/6050. 4 hours. | Course Title: | Software Engineering | Course Description: | Full cycle of a software system development effort, including requirements definition, system analysis, design, implementation, and testing. Special emphasis is placed on system analysis and design. The design phase includes development of a user interface. A large term project incorporates the full software life cycle. | Oasis Title: | Software Engineering | Duplicate Credit: | Not open to students with credit in CSCI 4050E or CSCI 6050E | Prerequisite: | CSCI 2720 or CSCI 2725 | Semester Course Offered: | Offered fall and spring semester every year. | Grading System: | A-F (Traditional) |
| Course Objectives: | This course presents a survey of topics in software engineering most relevant to students studying computer science. At the end of the semester, all students will be able to do the following:
1. Identify and differentiate phases of a typical software process and how it relates to the software life cycle and the different software process models.
2. Create functional requirement specifications in the form of use cases and user stories, and differentiate between functional and non-functional requirements.
3. Develop static and dynamic UML diagrams to model both the structural and behavioral aspects of the software system throughout the different phases of the development life cycle.
4. Create a software architecture specification, including subsystem decomposition and subsystem interface descriptions.
5. Communicate and effectively function as a member of a software development team to develop a software system based on its specification and previously created models.
6. As a team, deliver a coherent and professional presentation and demonstration of a functioning software system and the results of its testing. | Topical Outline: | 1. Software engineering and software process (3-hours)
2. Team and project management (2-hours)
3. Requirements elicitation and specification (4-hours)
4. Use case modeling (3-hours)
5. Requirements analysis (4-hours)
6. UML diagrams (4-hours)
7. Static and dynamic modeling (3-hours)
8. System design and architectural styles (4-hours)
9. Design patterns (3-hours)
10. Detailed (object) design (4-hours)
11. Object constraint language (1-hour)
12. Implementation techniques (5-hours)
13. Source code management (2-hours)
14. Persistence and storage systems (2-hours)
15. Verification and testing (3-hours)
16. Software demonstration (3-hours) | |
Course ID: | CSCI 4050E/6050E. 4 hours. |
Course Title: | Software Engineering |
Course Description: | Full cycle of a software system development effort, including requirements definition, system analysis, design, implementation, and testing. Special emphasis is placed on system analysis and design. The design phase includes development of a user interface. A large term project incorporates the full software life cycle. |
Oasis Title: | Software Engineering |
Duplicate Credit: | Not open to students with credit in CSCI 4050 or CSCI 6050 |
Nontraditional Format: | This course will be taught 95% or more online. The course content is delivered fully online. Text and video contents will be posted on eLC. Students will use eLC features and other tools to access a variety of experiences involving text and multimedia presentations. Lectures are supported by online practicing activities, online discussions, and online office hours support. Recordings of the discussion sessions will be posted on eLC. Proctored exams will also be offered through a combination of online and in-person proctored sessions, which may have proctoring fees associated with them. |
Prerequisite: | CSCI 2720 or CSCI 2725 |
Grading System: | A-F (Traditional) |
|
Course Objectives: | Students will gain an understanding of modern software engineering methodologies, including an in-depth study of one of the methodologies. They will be exposed to the full software life-cycle, including requirements specification, analysis, software design, implementation, and testing. The students will implement a large system, following the design and development of one of the studied software methodologies.
Expected Learning Outcomes:
This course presents a survey of topics in software engineering most relevant to students studying computer science. At the end of the semester, all students will be able to do the following:
1. Identify and differentiate phases of a typical software process and how it relates to the software life cycle and the different software process models.
2. Create functional requirement specifications in the form of use cases and user stories and differentiate between functional and non-functional requirements.
3. Develop static and dynamic UML diagrams to model both the structural and behavioral aspects of the software system throughout the different phases of the development life cycle.
4. Create a software architecture specification, including subsystem decomposition and subsystem interface descriptions.
5. Communicate and effectively function as a member of a software development team to develop a software system based on its specification and previously created models.
6. Deliver, as a team, a coherent and professional presentation and demonstration of a functioning software system and the results of its testing. |
Topical Outline: | 1. Software engineering and software process (3-hours)
2. Team and project management (2-hours)
3. Requirements elicitation and specification (4-hours)
4. Use case modeling (3-hours)
5. Requirements analysis (4-hours)
6. UML diagrams (4-hours)
7. Static and dynamic modeling (3-hours)
8. System design and architectural styles (4-hours)
9. Design patterns (3-hour)
10. Detailed (object) design (4-hours)
11. Object constraint language (1-hours)
12. Implementation techniques (5-hours)
13. Source code management (2-hours)
14. Persistence and storage systems (2-hours)
15. Verification and testing (3-hours)
16. Software demonstration (3-hours) |
Syllabus: No Syllabus Available
|