Project Guidelines
Course syllabus
Course description and objectives
Software engineering is usually understood as the profession of developing and maintaining software. This course will introduce the students to the theoretical and practical aspects of this profession with an emphasis on contemporary practice. We will study the application of systematic methodologies and tools in the software design cycle. Students will learn the software engineering processes as applied to the design, implementation, and verification of software. As software engineering is a skill that can only be learned with practice, the course will focus on applied learning: processes, tools and workflows that are relevant to the current practice of software development. The semester-long project will serve as the showcase of the student's learning.
The course will require a considerable amount of programming in Java (unless you can make a case for another language or platform). By the end of the course you will not only be proficient in programming skills but also in the skills required to translate a set of given requirements to high-quality software.
Resources
Software Engineering:
- IEEE SE Center
- http://producingoss.com/en/producingoss.pdf
- Software Engineering Proverbs
- Software Engineering Book of Knowledge
- Software Engineering for Internet Applications
- ACM's Code of Ethics
- Getting Real
Code:
- Java Sockets: zipped source files
- MVC Example zipped source files
- SimpleUI: A basic UI setup
-
HandleButtonClicks: Using
ActionListerner
to respond to button clicks - MouseLocator: Handling mouse movements
- LoadImage: Load an image onto a panel
- Person.java, Programmer.java, Manager.java
Subversion
- A Visual Guide to Version Control: great first read on the way to Subversion mastery
- Version Control with Subversion: Full Subversion book online
- Cheat sheet for common Subversion commands
Miscellaneous:
Java Resources:
- Thinking in Java: possibly the best book on Java and object-oriented programming in general. Free older version available
- Javanotes: nice online tutorial
- Learning Java: decent O'Reilly book
Lecture Slides
- Chapter 5 - Testing
- Chapter 4 - Design
- Chapter 3 - System Modeling
- Chapter 2 - Requirements and Specifications
- Chapter 1 - Introduction to Software Engineering
Assignments
(Send all assignments to rahmad@manchester.edu. Make sure that subject line starts with CPTR221.)New Assignments
-
Assignment #2: String Processing. Solution: StringProcessing.java
-
Assignment #1: Project Triangle