|
|
Instructor: Dr.
Nancy Green
|
|
Office Hours: MW
|
Office: 322
|
Meeting Time: Wednesdays
|
Meeting Place: 121
|
Instructions for Project
|
Instructions for Other Assignments
|
|
|
lecture
slides (textbook author's)
|
·Prerequisites:
Graduate status in Computer Science and satisfaction of all provisional
admission requirements for CSC130/230/330 and English literacy. (This course
assumes that the student has good object-oriented programming skills in
C++ and spoken/written English language proficiency. The project, other
assignments, and tests will require analytical skill, communication skill,
and programming skill.)
·Brief
Description:
·Course
Objectives: The overall goal is for the student to learn basic principles
of SWE that can be applied to his or her career as a software engineer,
or that can be the foundation for futher
graduate study.
·Topics:
This calendar may be revised during the semester. Announcement
of changes in due dates and tests will be made with at least 2 weeks advance
notice.
Wednesday
|
Lecture: Textbook
|
Other Class Activities
|
8/20
|
Overview: ch. 1-3
|
Course web page, Student Info Forms, OOPL proficiency
exercise
|
8/27
|
Team/Client Req. Meetings (assign teams, 1st
client meeting)
|
|
9/3
|
Requirements: ch.
6-7;
|
Team/Client Req. Meetings
|
9/10
|
Requirements:ch. 9
|
Team/Client Req. Meetings
(Turn
in list of which group member is responsible for each Requirements task
unit and the prototype demo by the end of class tonight, if not sooner.)
|
9/17
|
Prototype Demo/Informal Review
|
Handout on use cases; Go over critical review instructions |
9/24
|
Test
1 (ch. 1-9, 22)
|
Team Meetings (optional, after test)
|
10/1
|
Design (Arch.): ch.
10
|
Student reports
|
10/8 (fall break is 10/11-10/14)
|
Design (OOD): ch.
12,
|
Student reports
(Turn in list of which group member is responsible for each Design task unit and informal design review presentation by the end of class tonight, if not sooner.) |
10/15
|
Design (Reuse): ch. 14
Design (UI): ch. 15 |
Student reports
|
10/22
|
UI Design (cont.)
Informal Design Presentation due |
Design review & Student reports
|
10/29
|
Defect Prevention: ch.
18;
Notes
on Testing with Drivers and Stubs, notes
on Evaluating SWE Information
|
Test case selection exercise (?) & Student reports
|
11/5
|
V&V: ch. 19
Software Testing: ch. 20 |
Student reports
(Turn in list of which group member is responsible for implementing each class and for remaining miscellaneous task units by the end of class tonight, if not sooner.) |
11/12
|
Mgmt (Cost, Quality): ch.
23, 24; Software Change: ch. 27
|
Student reports & Code Review exercise (?)
|
11/19
|
Test
2 (ch. 10, 12, 14-15, 18-20, 23, 24,
27)
|
Team Meetings (optional, after test)
|
11/26 (No class - Thanksgiving
|
(no class)
|
|
12/3 (Last class)
|
Final Project Demo,
|
|
12/10-12, 12/15-17 (Final exam period)
|
Make-up tests and/or revised Project Demo to
show bug fixes (by appointment & with permission of instructor only)
|
|
·Project
·Requirements
Document Instructions
Instructions for Final Implementation Deliverables (Code, Demo, Misc Tasks)
·Miscellaneous Tasks Instructions
Percentage of Grade by Category
|
|
Maximum points (total 100)
|
Project (50%)
|
one task unit of Requirements Deliverables (see
below)
|
15
|
|
one task unit of Design Deliverables (see below)
|
15
|
|
one task unit of Implementation Deliverables (see
below)
|
15
|
|
one unit of Misc. Tasks (see below)
|
5
|
|
demonstrated contribution to success of group project
beyond above
|
5 (extra credit
- a maximum of 50 points from project will count towards course grade however)
|
Exams (40%)
|
Test 1
|
20
|
|
Test 2
|
20
|
Critical Review (10%)
|
in-class presentation reviewing SWE article
|
10
|
Task Units for Project Deliverables
The tasks for each phase of the project will be divided into units to divide up the work fairly. As shown in the table above, each person must perform one task unit of each category. Group members are expected to contribute to each task through extensive discussion; and they are encouraged but not required to provide feedback on each others' deliverables and to cooperate on debugging and testing code. This type of group collaboration is not considered cheating! However, to reduce problems that often arise in group assignments, only one person will get credit for each task unit. For information about the deliverables in each task unit, please see the Project Instructions web page.
Requirements Deliverables Tasks (for 6-member group) (for details about each task see Requirements Document Instructions):
·Unit 1: Preface, Introduction, Glossary, all User/Domain Requirements
·Unit 2: Parts of Requirements Doc.: System Requirements (functional & non-functional), System Evolution, Prioritized List of User and System Requirements
·Unit 3: Parts of Requirements Doc.: System Models (DFD, STD, Class Model)
·Unit 4: Parts of Requirements Doc.: Use Case Analysis (written use cases and UML use case diagram), Release Plan (list of use cases in each release following prioritization of requirements in unit 2)
·Unit 5: Prototype: implementation of prototype in C++ and creation of realistic sample files for demonstrating prototype. (Note: presenting the prototype demo is a separate task unit; see miscellaneous tasks below.)
·Unit
6: for each Use Case,
1 Primary Scenario and 3-4 secondary scenarios.
Design Deliverables: See Design Deliverables Instructions
for task units.
Miscellaneous Tasks (for 6-member group): See Final Implementation instructions for details on 3-6:
·Unit 1: prototype demo (giving presentation, not credit for implementing the code) and writing summary of feedback from client on demo (included in Requirements Doc)
·Unit 2: informal design review presentation (making PPT slides and giving presentation)
·Unit 3: part I of final demo
·Unit 4: part II of final demo
·Unit 5: packaging final product and running live demo
·Unit
6: User Manual
Implementation Tasks:
The C++ classes to be implemented should be divided among the group
members and each person's grade will be determined as a function of the
timeliness,
quality, amount, and difficulty of the working source code that he or she
contributes to the final product. Only one person will get credit for each
C++ class. In order to determine timeliness, the unit-tested
code that each person turns in (due several weeks
before the
final implementation is due; see the calendar for the date) will be compared
to the code in the final version of the product. Therefore,
the less unit-tested code is turned in or the less it resembles the final
product, the less credit will be received for the final version of that
code. In order to determine quality, code readability, maintainability,
and documentation (comments) will be considered. Amount of code
will be determined by the amount of working code in the final implementation
that was written by a person. Difficulty will be determined by the
difficulty of implementing the services that the class provides; however,
unnecessary complexity will reduce the code's quality rating.
·Attendance
is
required. You may be dropped from the course for missing more than two
meetings.
·Collaboration
on the group project is encouraged!. However,
exams and assignments designated for individual credit are to be the work
of the individual student alone. Students are expected to be familiar with
and to follow the UNCG
Academic Integrity Policy.
·Due
dates: Late work will not be accepted. Make arrangements
with the instructor to turn in work early if you will not be in
class on the due date.
·Missed exams may be taken only if the student's absence has been excused by the instructor and if the exam is made up on the make-up exam time announced by the instructor.
Books On UNCG Library Reserve for CSC640:
·The Mythical Man-Month, Frederick P. Brooks, Addison-Wesley, 1995.
·A
Discipline for Software Engineering,
Other Recommended Books
·Object-Oriented Software Engineering, Bruegge, Bernd and Dutoit, Allen H., Prentice-Hall, 2000. [See p. 39-44 on use cases and scenarios]
·Introduction to the Personal Software Process, Watts S. Humphrey, Addison-Wesley, 1997.
·Introduction to the Team Software Process, Watts S. Humphrey, Addison-Wesley, 2000.
·Use Cases: Requirements in Context, D. Kulak and E. Guiney, Addison-Wesley, 2000.
·Requirements Analysis and System Design, L. A. Maciaszek, Addison-Wesley, 2001.
Journals (* if in UNCG library)
·ACM Computing Surveys (on-line)
·ACM Transactions on Software Engineering and Methodology (on-line)
·Communications of the ACM (on-line)
·IEEE Computer*
·IEEE Software
·IEEE Transactions on Software Engineering*
·Publications
of the Software Engineering Institute (on-line)
The University
Writing Center offers all UNCG students free, individual assistance
with planning,
writing, or revising papers for any course.
On-line Reference Materials
·Yale
University Web Style Guide
Related Conferences
Other Related Web Sites
ACM Digital Library (ACM publications
available on-line from campus)
ACM Software Engineering
Code of Ethics
ACM SIGSOFT : Software
Engineering Notes , RISKS
CMU Software Engineering
Institute (SEI) : Personal
Software Process (PSP) , Capability
Maturity Models (CMM)
Dilbert
IEEE : Software
, Transactions on Software Engineering
RTP Chapter of SPIN (Software Process
Improvement Network)
Software Engineering Body of Knowledge