SE 2030
|
Description Syllabus Policies Quizzes Lab info Coding Standard Grading Blackboard Sample Code
Credit: Much of this material was originally written by Dr. Mark Hornick
As an SE major, you've previously taken CS or SE courses in computer programming and data structures. With this background, you have a basic understanding of how simple Java applications are constructed using Eclipse. But what kinds of tools are used to create "real" applications, and how do you use them together?
This course provides an introduction to the Software Engineering Tools and Practices - a look at a typical approach software engineers create applications in practice. Topics include requirements analysis, high-level design, detail-level design, UML modeling, code generation, application building, and revision management. Laboratory assignments provide an opportunity for students to develop an understanding of these tools and how how they are used in actual practice.
Please consult the Course Catalog for detailed objectives.
No official textbook. Instead, we have provided urls to internal and
external websites. The
Reading Assignments contain the links to these sites. In addition to those, an
SE2030 Wiki
and and
Enterprise Architect Wiki have been created for this course.
Syllabus
Week | Day | Topic | Reading | Lab |
1 | T | Introduction to the course |
Install Enterprise Architect 10.0 - see your instructor for the license key |
Lab 1: Software Design with UML Class diagrams Due via Blackboard by end of lab. |
F | Lab Review | Wiki (review) - Creating class diagrams using Enterprise Architect | ||
2 | T | UML model to Java Source | Wiki - Code Engineering with EA |
Lab 2: Code Generation from EA class diagrams
EA diagram via Blackboard by end of lab. Code generation demo
due by 3pm Friday. |
F |
Quiz 1 - UML Class relationships Synchronization of UML models from Java source |
|||
3 | T |
Introduction to
Version Control |
Wiki - Version Control Overview |
Due via SVN by beginning of W4 lab |
F |
Quiz 2 UML again Version control continued (updating, committing, branching) |
Subversion online user manual | ||
4 | T |
UML Sequence
Diagrams Sample code: SampleApp.pdf |
Wiki:
Sequence Diagrams Video: Sequence Diagrams with EA |
Lab
4: Team development using Subversion
Due via SVN by beginning of W5 lab |
F |
Subclipse Teamwork | |||
5 | T |
Building JAR files Sample code: JARDemo.zip UIHelper.zip |
Wiki:
Building and executing JAR files Building JAR files - Sun tutorial |
Sequence Diagrams
Quiz 3: Subversion
Lab 5: Software Application Revision and Deploying applications as JAR files Due via SVN by beginning of W6 lab |
F |
Automated build
tools: ANT
Using ANT to build a JAR file inside Eclipse |
Wiki: Creating ANT Scripts Sample ANT Scripts: antscript.xml, class-file-cleanup.xml |
||
6 | T |
Introduction to Unit Testing
using JUnit Sample code: |
Quiz 4 - JAR files and ANT scripts Lab 6: Testing with JUnit
Files for lab: lab6.zip Due via SVN by beginning of W7 lab |
|
F |
Using ANT to run automated JUnit tests Sample ANT script: sample.xml Configuring TortoiseSVN to use ANT to automatically run JUnit tests |
Wiki Running JUnit with ANT | ||
7
|
T |
Requirements coverage via Use Cases Video: Sequence Diagrams with EA |
Web article: Intro to Use Cases
Sample: ATM Use Case -original |
Lab 7: Requirements Analysis - Use Cases Due via SVN by beginning of W8 lab |
F | High-level design: Use Case Textual Analysis |
Web article: Driving Design with Use Cases White paper: Nonfunctional Requirements |
||
8 | T |
Low-level
design: Domain Modeling Model-View-Controller design pattern |
Sample: ActivationDemo.zip |
Lab 8:
High-level design/Detail
design See lab assignment for due dates |
F |
Quiz 5 - Requirements Analysis Low-level algorithm design: Pseudocode in EA |
Video: Use Cases in EA | ||
9 | T |
State Machines
State Diagrams with EA |
Sample Code: Lamp.zip |
Lab
9: Implementation |
F |
Quiz 6 - UML Sequence diagrams
State Machine details |
Web article: David Harel's orginal paper on State Charts | ||
10 | T | Quiz 7: State Machine exercise |
Web article:
EA State Diagram tutorial |
Lab
10: Demo/Report Due Saturday at 5 pm! |
F |
Final Exam prep - review Course/Instructor Evaluation |
Course outcomes / Review | ||
11 |
Common Final Exam You may bring one 8.5 by 11 sheet of notes (double-sided) Friday, Nov 22, 2013 11:00am - 1:00pm Location: CC 53 |
Detailed policies for this course are here.
A quiz will be given approximately once per week at the beginning of Lab. No make-up quizzes will be given.
Note that this algorithm indicates how a grade will be determined for students who have successfully demonstrated mastery of the course objectives. An acceptable level of success in meeting all course objectives is a prerequisite for a passing grade in the course.
Criterion | Weight |
Quizzes | 30% |
Labs | 45% |
Final Exam* | 25% |
*All students must take the final exam to pass the course.
Your lab and report grades will be determined as described on the Lab Report page.
All source code submitted must use JavaDoc commenting conventions and meet the minimum documentation standards below:
The beginning of each source file should contain:Each class method should contain the following documentation:
Note that the labs constitute a significant part of your overall grade. Plan to devote a considerable effort in order to complete these labs successfully and professionally.
The labs for SE2030 are fairly simple programming assignments such as what you have been used to in courses such as SE1021. They are not particularly challenging from an algorithmic standpoint. Rather, they permit you to focus on their primary objective: to help you develop a familiarity with practices and tools used in professional software development.
Even so, as you begin to develop an understanding of using these elements, you will still have to expend a reasonable effort as you practice using these tools. You should probably expect to spend additional time outside of class to complete the assignments for the labs.
This page was last updated on 09/09/2013.