SW3460: Software Methodology

Summer Quarter 2007 (FY07_4)

Introduction to the Course

Synopsis and Course Goal

The course is designed to teach you the basic concepts of software engineering and methods for requirements definition, design and testing of software. Specific topics include introduction to the software life cycle, basic concepts and principles of software engineering, object-oriented methods for requirements analysis, software design and development.

The course assumes a basic proficiency in a programming language.

http://www.movesinstitute.org/~kolsch/courses/SW3460

Syllabus and Schedule

This is a preliminary schedule for the quarter. Reading assignments are chapters in the Larman textbook. The reading report is due before class on the following Monday. For example, Chapters 1-3 are to be read in the week of 07/09 and the reading report must be in my hands before class on 07/16.






WeekDate Topic Reading Assignments





1 07/09Getting Started in Software Engineering 1-3 (Part One)form project teams
Lecture: Introductory Lectures & Object Technology





2 07/16Requirements Development 4-7 (Part Two)begin work on project
Lecture: Continue Use cases in UML





3 07/23System Design 8-13 project plan due
Lecture: The [Rational] Unified Process





4 07/30Object Design: Adressing Design Goals 14-16 (assignments from web)
Lecture: UML & Software Development





5 08/06Object Design: Reusing Pattern Solutions 19, 20, 22 project requirements due
Lecture: UML (continued)





6 08/13Midterm Exam: covers all topics to this point including web readings and lectures
08/15GRASP 1 17, 18
Lecture: Dynamic UML Diagrams, Testing, etc.





7 08/20Implementation Issues in Software & Elaboration (GRASP 2) 24, 25, 26 software design due
Lecture: UML wrap-up





8 08/27More of Software Design & Elaboration 21, 33-36 (assignments from web)
Lecture: Software Engineering Issues (not from book)





9 09/03Understanding Life-Cycles and Change 28, 29, 37 software test plan due
Lecture: CMMI, Advanced Topics





10 09/10Project Presentations 39, 22, 23, 30 special topics
Lecture: Project Augmentation





11 09/17Final Exam, 0800-0950, GE-117





Hours

Lectures and lab:

Monday 1500-1650, GE-117

Wednesday 1600-1750, GE-117

Final:

Monday 9/17/07, 0800-0950 GE-117

Holidays:

Wed 4 July 2007 (Independence Day),

Mon 3 Sept 2007 (Labor Day),

Office Hours:

I am available for questions and help whenever I am in my office (WA-279) and have some time. If you would like a firm appointment, please don’t hesitate to set one up by email or phone (656-3402).

Grading

Grades for homework assignments etc. will be on Blackboard:
40% project
10% quizzes, other activities
10% peer grading
20% midterm
20% final

Peer grading is the evaluation you are given by your fellow team members based on your contribution to the team project. The real world actually works this way. If you do the minimum assigned work for this class, you will get a grade of B. If you go above and beyond the assigned minimum for the class, your chances of an A are improved a lot. It is rare for anyone to ever get a grade less than a B in this class, but, sadly, it has happened.

Assignments, Late Policy, Teamwork etc.

The required weekly reading report should be a short, one or two page summary of your reading for the previous week. I keep an spreadsheet checklist of reading reports turned-in. Missing reading reports will affect your final grade. All assignments have to be completed before class on the respective day. For some reading assignments, there will be study questions posted on Blackboard. You need to complete those along with the reading assignment.

I will also assign some additional reading of articles from journals and Internet sources. My lectures are usually supplementary to the reading, not a repeat of it. Lecture notes are available on Blackboard, but you are responsible for taking good notes in class. In fact, I encourage you to search the Internet for literature related to software development methods and techniques, especially UML. Try some of the Usenet forums (which you can access through http://www.mailgate.org if you have no newsreader available). Look on the Web for additional resources. Use your team member skills well. That is, each team member has a strength in some area related to your project. Take advantage of that strength.

No credit will be given for assignments that are more than 3 days late (Sunday 11:59pm). You can hand in at most one assignment up to 3 days late and still receive full credit. That is: one permitted late assignment for the entire quarter. Additional late assignment will be given a max of 50% credit.

Unless otherwise noted, reading assignment can be handed in on a sheet of paper (preferred) at the beginning of class or by email at least one hour prior to class. If you email it to me, please make sure your name appears on top of the actual assignment (e.g., in the text file attachment), not just in the email.

Collaborative work on assignments to be completed individually:

Project

This is not a programming class. The demonstration of your project does not have to be live programming code. That is, it does not have to execute. A visual prototype is fine. You may even use Powerpoint or some Graphical prototyping tool for the presentation to the class. However, I have appreciated those projects where the students demonstrated a semi-operational prototype of their final project.

Project methodology. You may use an alternate project method. Whichever project method approach you select, you will be required to use UML Notation, including use cases. If your team is confident in its programming skills, you may use an Agile Process, but check with me first. If you are not strong in programming skills, you might want to take an approach where programming is less demanding. If you do decide to take a programming approach, any language that supports object-oriented programming (Java, C++, Ada, Ruby, Python, C#, Eiffel, etc.) is acceptable. Ruby might be the easiest to use.

Plan to demonstrate your final project toward the end of the Quarter, even if they are not quite completed. Of course, they will be complete when you turn them in.

Resources

Textbooks, more or less in order of relevance

  1. required class textbook: Larman, Craig. Applying UML and Patterns, Third Edition
  2. Frederick Brooks, Mythical Man Month, Chapters 2, 16, 17 & 19