CMPS 335 Software Engineering (5)
A general introduction to Software Engineering. Deals with the
specification, development, management, and evolution of complex
software systems. Shows how to cost-effectively apply the methods and
theory from Computer Science to solve difficult problems. The course
presents a broad perspective on software and system engineering and
surveys a wide spectrum of tools and techniques. Students are required
to complete a project as part of a small software engineering team.
Students may choose system projects involving software and hardware
integration.
Prerequisite: CMPS 223.
Programming skill in a high level language and knowledge of data structures and algorithms.
5 quarter units. 4 units lecture (200 minutes), 1 unit lab (150 minutes).
Required for CS
Essentials of Software Engineering, 3rd Edition
By: Frank Tsui; Orlando Karam; Barbara Bernal
Publisher: Jones & Bartlett Learning
Pub. Date: February 7, 2013
Web ISBN-13: 978-1-4496-9200-1
Personal laptop computer is recommended in case of large class size.
Huaqing Wang, Melissa Danforth, Donna Meyers, Gordon Griesel
3d. An ability to function effectively on teams to accomplish a common goal.
1. Fulfill team duties and share in the work of the team.
2. Listen and communicate with other team members.
3. Research and gather information.
4. Meet deadlines and achieve project goals.
5. Cooperate on reports with a reasonable share of duties.
The course maps to the following performance indicators for
Computer Science (CAC/ABET) or Computer Engineering (EAC/ABET) or
Electrical Engineering (EAC/ABET):
- (CAC PIb2): Produce a solution within specifications.
- Group Project
- (CAC PIc3): Design the selected solution for a given problem.
- Programming assignments and group project
- (CAC PIc4): Implement the designed solution for a given problem.
- Group project
- (EAC PIc1): Follow systematic and logical design procedures and define
specifications to meet project requirements.
- Group project
- (EAC PIc3): Consider alternative designs and choose the optimal solution.
- Programming assignments and group project
- (CAC PId1, EAC PId1): Fulfill team duties and share in the work of the team.
- Group project
- (CAC PId2, EAC PId2): Listen and communicate with other team members.
- Group project
- (CAC PId3, EAC PId3): Research and gather information.
- Group project
- (CAC PId4, EAC PId4): Meet deadlines and achieve project goals.
- Group project
- (CAC PId5, EAC PId5): Cooperate on reports with a reasonable share of
duties.
- Group project
- (CAC PIf1, EAC PIg1): Write technical reports.
- Group project
- (CAC PIf2, EAC PIg2): Prepare and deliver oral presentations.
- Group project
- (CAC PIi1): Program in a suitable computer language.
- Programming assignments and group project
- (CAC PIi3): Utilize problem solving skills and techniques to complete
the task.
- Programming assignmenta and group project
- (CAC PIk1): Understand the software/system life-cycle.
- Group project
- (CAC PIk2): Write documentation for each phase of the development cycle.
- Group project
Week-1 |
Writing a simple program, source control |
Week-2 |
Building a system |
Week-3 |
Software process models, the software lifecycle |
Week-4 |
New methodologies, Agile |
Week-5 |
Implementation, debugging and defensive programming |
Week-6 |
Performance optimization, refactoring |
Week-7 |
Testing and quality assurance |
Week-8 |
Software support and maintenance |
Week-9 |
Validation and verification, reverse engineering |
Week-10 |
Project completion and presentation |
Not applicable to course.
Gordon Griesel on [date]
Approved by CEE/CS Department on [date]
Effective [term]