CS 383 Software Engineering ITotal Credits: 3 cr Course Coordinator: Clinton Jeffery URL: http://www2.cs.uidaho.edu/~jeffery/courses/383 Current Catalog Description: Current topics in development of software systems; software life cycle model, requirements definition, design, verification and validation, and project management techniques. Prereq: CS 270 or perm. Textbook: The course uses a book that provides a comprehensive coverage of software engineering presenting a variety of commonly used approaches, methods, and techniques. References: Numerous piece of reference material are provided on the course web site. Course Goals: The fundamental goal of this course is to develop each student's ability to apply a systematic and engineering approach to the development of software systems and products. This course is the first of a two semester sequence in software engineering with concentration on the early phases of the software development process. Topics selected for presentation and discussion will change as the field of software engineering matures and advances. CS 383 provides a focus on software development life cycles, requirements elicitation, and architectural design and design decomposition, while the subsequent course will concentrate on implementation, and testing. The course teaches students about a wide spectrum of modern techniques available for performing activities in each of these areas. Material presented in this course addresses topics identified in the Software Engineering Body of Knowledge, SWEBOK, developed and published by the IEEE Computer Society. Students are exposed to material in major areas of software engineering and then given the opportunity to apply what they have studied to the development of a non-trivial application program. The course exposes students to team-based development by using small groups to complete major project development activities. The student's communication skills will be enhanced by activities requiring both written and oral communication. Discussions of legal, ethical, social, and professional issues are covered in conjunction with presentation of software engineering concepts. Grading is based on a combination of individual work as evidenced by performance on homework assignments, exams, and a written report, as well as how each student performed in team-based activities. At the start of each major section or phase of the course, small teams of students will be formed. Teams will be used to develop a requirements specification and a software design specification. In each team, students will collaborate to accomplish the work needed to successfully complete that phase of the project. All teams will be given the same work product to use as a baseline. With the exception of the initial baseline for the product specification, this work product is selected from among those submitted in the previous phase and which represents a solid, reasonable starting point for the current project phase. After completing this course a student should be able to effectively determine a lifecycle approach appropriate for a specific development situation, elicit and document software requirements, and perform and document a software design. Through the required work in small teams, students will improve their team participation skills. Prerequisites by Topic:
Major Topics Covered in the Course: The following major topics are covered in the course. Along with each topic are listed the ABET Criteria associated with the topic and the CS Body of Knowledge topic identified in the CC 2001.
Laboratory projects (specify number of weeks on each): Some of the laboratory activities identified below may overlap.
Estimated Curriculum Category Content:
In this course, we have assigned all the credits to the Software Design Category to indicate the course's primary focus on application of the software analysis and design techniques in the context of an application under development. Although the vast majority of activity in this course is contained within the Software Design category, some attention is paid to other areas as needed to support effective development of the application. Oral and Written Communications: Every student is required to submit at least 4 written reports (not including exams, tests, quizzes, or commented programs) of typically 3-20 pages and to make 3 oral presentations of typically 10 - 15 minutes duration. Specific requirements are:
Social and Ethical Issues: The foundation of an engineering approach to software product development was created in direct response to the need to achieve legal, ethical, moral, and professional objectives. Each student will be required to write a technical report on a topic in the general area of legal, social, ethical, and professional issues. This report will be in the range of 3 to 5 pages. Theoretical Content: Software architectural styles and design patterns. Problem Analysis: Working with a project sponsor to identify, define, and document the specific needs and requirements to be satisfied by the project. Solution Design: Beginning with a set of software requirements, develop an architectural design and design decomposition that will satisfy those requirements. Course Outcomes: The following list documents the course outcomes and crossreferences them to the BSCS program outcomes. The letter at the beginning of each reference identifies the program outcome supported. The numbers sequentially identify the course outcome for this course. After completing CS 383 a student should know or be able to:
|