CMSC 345
Software Design and Development
Fall 2004
Description
This course is an introduction to the basic concepts of
software engineering including software lifecycle, requirements analysis,
design, coding, testing and documentation.
Professional ethics in computer science and the social impact of computing are
discussed. Additional topics may include tools for software development,
software metrics, and software maintenance. The objectives of the course are
met using classroom presentations, guest lecturers, and a semester-long project
developed in a team setting.
Textbook
Writting Effective Use Cases -- Alistar Cockburn Addison-Wesley 2000 ISBN
0-201-01702258
Objectives
The
major objective of this course is to give the student real-life software
development experience. This objective is accomplished through the student's
participation on a team that will develop a single software product over the
course of one semester. Product development will follow the full software
development lifecycle from requirements analysis through product delivery. More
specific objectives are:
- To understand the
software development process
- To learn the
definition, goals, and principles of software engineering and how to apply
them
- To experience working
in a software development team
- To experience
taking a leadership role in a software development team
- To enhance verbal
and written communication skills
- To learn about
professional ethics in computer science and the social impact of computing
Grading
Your grade will contain elements of
individual accomplishments and team accomplishments broken down as follows:
- Quizzes
(10 %)
-- an individual grade
-- 3 or 4 announced quizzes during the semester
- Project
Artifacts (40%)
-- a team grade
-- You will be responsible for the timely delivery of
the following artifacts:
- System
Requirements Specification (10%)
- System
Design Document (10%)
- Code
Inspection Report (5%)
- Test
Report (5%)
- User
Manual (5%)
- Administrator
Manual (5%)
See the Project Description for
details.
- Customer Statisfaction Reports
(10%)
-- a team grade
-- Customers will be asked periodically throughout the
semester to fill out reports indicating their current satisfaction with
the team. See the Customer
Satisfaction Report for details.
- Final
Product Delivery and Demonstration (10%)
- Final
Product (30%)
-- a team grade
-- This grade will be based on the product's adherence
to the software requirements, the quality of the product, and the degree
of customer satisfaction. Note that you must receive a grade of
"C" or above on the final product in order to pass the class.