CSC 450 – Software
Engineering - Devon M. Simmonds, Instructor
![]()
Software
Engineering is one of the major branches of the discipline of computer science.
All students of the science of computing are expected to master the essentials
of this exciting study. This course demonstrates a team software development
philosophy. Within this team philosophy, students will be provided students
with in-depth knowledge of the software development process with special
emphasis on requirements analysis, software design and software project
management.
![]()
Course
Catalog Description
Study of object-oriented methods for the design and production
of large software systems emphasizing analysis, design, implementation, and
testing. The course includes the development of a substantial software
project by teams of software developers.
_________________________________________________________________________
General
Course Information
Meeting Days/Time: MWF 9:00 - 9:50am
Location: CI 1006
_________________________________________________________________________
Instructor
Information
Name:
Office
Location:
CI 2046
Office
Hours:
MWF 10:00- 11:00am or by appointment.
Phone: (910) 962-3819
email:
simmondsd[at]uncw.edu
_________________________________________________________________________
Required
Texts

Software
Engineering A Practitioner’s Approach
7th Edition, Roger S. Pressman, McGraw Hill
· ISBN-10: 0073375977
· ISBN-13: 978-0073375977

Object-Oriented
Modeling and Design with UML
2nd Edition, Michael R. Blaha
& James R Rumbaugh
Prentice Hall, ISBN: 0130159204
Course Requirements
Students are organised into teams (groups). Each
group is expected to complete a software development project. The project will
be assigned by the course instructor. In completing their projects, each group
must complete and submit:
A requirements specification document that includes a requirements
class model and use case specification (see format)
Software Design documentation including descriptions of the software
using: design class diagrams, state diagrams, sequence diagrams (see format)
Software implementation documentation (see
format)
Exams: In addition to the project, students must also complete
in-course tests and a final exam.
Teams: The requirements for the organization and management of
groups can be found here.
Presentation Dress Code: Formal attire is required for all presentations and
all team members must participate in each presentation. Presentations should
follow the general format of the written reports.
Textbook & Reading Material
Required Text - Software Engineering A Practitioner’s Approach
6th
Edition, Roger S. Pressman, McGraw Hill
·
ISBN-10: 007301933X
·
ISBN-13: 978-0073019338
Required Text - Object-Oriented Modeling and Design with UML
2nd
Edition, Michael R. Blaha & James R Rumbaugh
Prentice
Hall, ISBN: 0130159204
Recommended Reading Material -
Systems Analysis and Design, by K. E. Kendall and J. E. Kendall.
Prentice Hall.
Fundamentals of Software Engineering, by Carlo Ghezzi, Mehdi Jazayeri,
and Dino Mandrioli. Prentice Hall, 1992.
Grades will be determined on
the basis of students’ performance on project and examinations. Final grades will be based on the following
distribution:
|
COURSE ITEM |
GRADE
PERCENT |
|
Software Requirements
Specification & Presentation |
10% |
|
Software Design &
Presentation |
10% |
|
Software Implementation,
Presentation & Demo |
10% |
|
Quizes - unannounced |
10% |
|
Homeworks |
20% |
|
Tests (2 x 10) |
20% |
|
Final Examination |
20% |
Grades will be assigned based
on the following grading system
·
90% or above A
·
80% - 89% B
·
65% - 79% C
·
50% - 64% D
·
below 50% F
All
students must be present during project presentations. Absence from a presentation
will result in a loss of 10%.
Course
Objectives: At the end of this
course students will be able to:
§ Define
Software Engineering and explain basic software engineering principles.
§ Describe the
software development process and software qualities.
§ Understand
basic software project management.
§ Perform
analysis, design and implement a software project.
§ Explain the
fundamentals of software testing and apply testing techniques to a given
software project.
Course Outline
1.
Introduction
to Software Engineering
1.1.
Course
overview
1.2.
The software
crisis
1.3.
Software
engineering defined
1.4.
Types of
software systems
1.5.
Software
characteristics
1.6.
Software
engineering process & paradigms
1.7.
Software
engineering principles
1.8.
Use of
models in software engineering
2.
Software Project
Management
2.1.
Introduction
to software project management
2.2.
Scoping
2.3.
Estimation
2.4.
Scheduling
2.5.
Feasibility
studies
3.
Requirements
Analysis
3.1.
Introduction
3.2.
Activity
diagrams
3.3.
Use case
modeling
3.4.
Requirements
class modeling
4.
Software
Design
4.1.
Introduction
4.1.1.
Quality, cost,
evolution
4.1.2.
Basic design
principles
4.1.3.
Design
documentation
4.2.
Diagram
Types
4.2.1.
Design class
diagrams
4.2.2.
Package
diagrams
4.2.3.
Sequence
diagrams
4.3.
Architectural
design
4.4.
User
interface design
4.5.
Procedural
design
5.
Implementation
5.1.
Introduction
5.2.
programming
principles
5.3.
Coding standards
and styles
5.4.
Documentation
6.
Testing
6.1.
Introduction
6.2.
Principles
and goals
6.3.
Techniques
and strategies
7.
Ethics in
software engineering
This document contains additional policies to
compliment the information in the other links on the csc385 web page.
Late
assignments will not be accepted.
Academic
Expectations for Students
“In
choosing UNCW, you have become part of our community of scholars. We recognize
that the UNCW learning experience is challenging and requires hard work. It
also requires a commitment to make time available to do that hard work. The
university expects you to make academics your highest priority by dedicating
your time and energy to training your mind and acquiring knowledge. Academic
success in critical thinking and problem solving prepares you for the changes
and challenges you will encounter in the future. Our faculty and academic
support resources are readily available as partners in this effort, but the
primary responsibility for learning is yours”.
Honor
Code
“It is the
responsibility of every student to uphold and maintain the UNCW Academic Honor
Code (see Section V of your Student Handbook). You violate the honor code when
you represent someone else's work as your own. Programming assignments may be
discussed at a conceptual level with other students but details and coding must
be your own. Copying and team collaboration is prohibited.”
Learning
Strategies
“You are expected to
take an active role in your learning in this course. This includes regular
attendance, paying attention in class, reading the textbook, and completing all
course requirements. You are encouraged to study with your classmates outside
of class. Programming assignments usually require a lot more time than
expected, so start early and work some every day.”
Code
of Student Life (pdf)
UNCW practices a zero-tolerance policy for
violence and harassment of any kind. For emergencies contact UNCW CARE at
962-2273, Campus Police at 962-3184, or Wilmington Police at 911. For
University or community resources visit http://uncw.edu/wrc/crisis.htm
Students with Disabilities
“If you have a disability and need reasonable accommodation in this course, you should inform the instructor of this fact in writing within the first week of class or as soon as possible. If you have not already done so, you must register with the Office of Disability Services in Westside Hall (extension 3746) and obtain a copy of your Accommodation Letter. You should then meet with your instructor to make mutually agreeable arrangements based on the recommendations of the Accommodation Letter.”
Student Affairs Disability Services - Policies and Procedures