09/03/2014 First lecture 12:20-1:10pm in Engineering
Building Room 304
development requires skills beyond just programming.
Additional development strategies and tools aid in managing and
testing software, especially when developing complex multi-threaded
applications. Further, large projects require teams of
developers with a range of different skills and backgrounds.
This course covers both design and testing methodologies,
especially for multi-threaded programs, as well as software tools
that assist in the development process. The course will
introduce students to software engineering basics using a
combination of lectures, practical lab work and assignments, and
large team-based software projects. At the end of the course
student will be familiar with: 1) software processes, 2) software
design and testing methodologies, 3) common software development
tools, 4) C and C++ programming, and 5) multi-threaded application
development. Below is an outline of the major course topics.
- Software Processes
- Software Lifecycle Models
- Formal Methods
- Object-oriented Design
- Top-Down Bottom-Up Development
- Software Testing
- Black-Box White-Box Testing
- Unit Testing
- Test Case Development
- Common Development Tools
- Unix Scripting
- Version Control
- Build Utilities
- Threads and Fork
- Deadlock, Semaphores and Barriers
A pdf version of the
syllabus for the course is available here.
The prerequisites for the course are either ECE 242 (Data
Structures and Algorithms) or CMPSCI
187 (Programming with Data Structures).
The course textbook
is Software Engineering, 9th Edition by Ian
Sommerville. The textbook is recommended as a
reference, but not required. All material on tests
and projects will be covered in the class. The textbook is
available from the UMass bookstore here,
or from a well-known online vendor here.
The class will
consist of two lectures on Monday and Wednesday from
12:20-1:10pm in Engineering Building I room 306, and a practical
session on (most) Fridays from 12:20-1:10pm in Engineering
Building I room 307. When a practical session is not held,
we will have a normal lecture in room 306. Room 307
is also reserved for the class from 10:10am-12:05pm every
Friday. This optional lab time is primarily available for
groups to meet and work on their projects.
Course grades will be
determined based on the following breakdown:
- 5 Assignments:
- 2 Group
- 2 Exams: 35%
Please note that all projects and assignments are due by midnight
(11:59pm) on the due date. A penalty of 20% will be assessed
each day an assignment is late, starting with the day the
assignment is due if it is turned in after 12:20pm.
Academic Honesty Policy
submitted must be your own (or your groups)
- Exams are closed-book and no outside help is allowed. Any cheating on an exam
will result in an F for the course.
- You may discuss general
aspects of assignments and projects with other students.
However, any written work (or your group's work) must be your
own. Copying is not allowed, and collaboration so close that it looks like copying is not
allowed. (In general, if I get two identical submissions I will
accept neither of them (i.e., both get F's) and I will report
this action to the Academic Honesty Board.) Please contact me if
you have any questions. A good practice is to divide your
work into an "ideas phase" where you collaborate and a "writeup
phase" where you work alone -- enter the writeup phase with
notes, but not written solutions.
- If you make use of a printed or on-line source for
assignments, other than specific course materials such as the
textbook or web site, please cite it in your writeup. Note that
copying a solution from the web is cheating, and is easier for
us to detect than you might think.
- If you have any questions ask me or consult the University Academic Honesty Policy.