CEN4021: Software Engineering II up↑

Syllabus

Spring Term 2010

Instructor Contact Information

Instructor: Ted Baker
  • course URL: http://www.cs.fsu.edu/~baker/swe2
  • Office hours: Monday, Wednesday, Friday 10AM - 11AM, and by appointment
  • Office location: 207A LOV
  • Phone: 644-5452
  • e-mail: baker at cs dot fsu dot edu

Meetings

MeetingDay(s)Time of DayLocation
 MWF9:05-9:55AM301 LOV
 W8:00-8:50AM301 LOV

In addition to the above, you will probably need to schedule additional time for team meetings. Details of these other meetings will be worked out in class, during the first week of the term.

You are expected to attend all class meetings.

"LOV" is the J.J. Love Building. For a campus map showing the location, follow this link.

Catalog Description

CEN4021. Software Engineering II (3). Prerequisites: CEN 4020; STA 3032, STA 4321 or STA 4442. The second of a two-semester sequence on project-system development, this course focuses on software design and implementation. Topics include software design, architectures, testing, deployment, metrics, configuration management, reusability, portability, and interoperability.

Overview

The IEEE defines software engineering as "the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software". There are many competing approaches to software engineering. A goal of this course sequence is for the students to become aware of a representative range of software development approaches, including the associated concepts, techniques, and terminology, and to learn some of the techniques in sufficient depth to apply them to projects in the course. Another goal is to improve the students' ability to work on a software development team, through experiences in course projects and reflection on those experiences.

Prerequisites

CEN4020-CEN4021 serves as one of the "capstones" of the computer science curriculum. As such, it requires students to demonstrate that they are able to apply a collection of skills that they should have learned in prior courses, including the co-requisite COP4530 (Data Structures, Algorithms, and Generic Programming ) and its prerequisites. These skills include:

Beware:

  1. CEN4020 and CEN4021 are intended to be taken back-to-back, during the same academic year. The division of content between the two courses may change from year to year, and the project is cumulative, with requirements analysis in CEN4020 and design, implementation, and testing in CEN4021. Students who take CEN4o21 after a gap may need to do extra work to get into synchronization with the rest of the class.
  2. Students who do not meet the prequisites for CEN4021 will be administratively dropped from the course. A problem is that this may not happen before the end of the drop/add period, so the student will be left without a full schedule. Do not test the system. Contact the Computer Science academic advisor for any problems in this regard. She is the only person who can give any special permissions.

Objectives & Topics

The following are the educational objectives and topics for this course that were approved by the University Curriculum Committee:

At the end of the course, the student will:

  1. Define design specifications for software development
  2. Recognize and use selected design paradigms
  3. Compute design metrics
  4. Define selected design architectures
  5. Define and design Human computer Interfaces
  6. Define and develop software components
  7. Use UML as a template for writing software
  8. Adhere to software coding Standards
  9. Test software for both user and developer
  10. Deploy software in selected environments
  11. Use configuration management tools.

Topics to be covered:

  1. Software design principles. ethical considerations, pardigms, metrics, architectures
  2. Software architectures and architectural patterns
  3. Distributed Systems, middleware and frameworks
  4. Human computer Interfaces (HCI)
  5. Component Design: UML class diagrams, database design, use cases, sequence diagrams, design patterns, metrics for component design
  6. Coding and reuse: programming environments, configuration management, refactoring
  7. Software Testing paradigms and techniques: unit, use-case, scenario, system, functional, acceptance, integration, white-box, black-box

This term I intend to also cover the topic of the Scrum approach to software development.

In addition, the Department of Computer Science has specified that students who pass this course will demonstrate the following outcomes, to satisfy the requirements of the State of Florida Academic Learning Compacts (SMALC) and the Accreditation Board for Engineering and Technology (ABET). These outcomes will be assessed in certain assignments and exam questions, to be identified during the term. Students are required to obtain a passing score these outcomes in order to pass the course.

SMALC

ABET

The above (rather lengthy) set of lists of requirements may be daunting. We will use these in class for an example of how to prioritize and map software requirements.

Textbooks & Other References

dennis textbook resource link Title: Systems Analysis and Design with UML Version 2.0: An Object-Oriented Approach, 3rd Edition
Authors: Alan Dennis, Barbara Haley Wixom, David Tegarden
Publication Date: August 2009
Publisher: John Wiley & Sons Inc.
ISBN-10: 0471348066
ISBN-13: 9780471348061
baase textbook resource link Title: A Gift of Fire: Social, Legal, and Ethical Isseus for Computing and the Internet, 3rd Edition
Author: Sara Baase
Publication Date: December 2007
Publisher: Pearson
ISBN-10: 0136008488
ISBN-13: 9780136008484

Other reading materials will be provided on the Web as the semester progresses. These will include lecture notes and links to other materials, some of which are based on the text, and some of which expand on topics not fully discussed in the book, including Scrum and agile software development.

Assignments & Examinations

Readings.You will be assigned readings in the textbook and on the Web. For the textbook readings, you should try to answer the review questions and attempt as many as you can of the exercises at the end of each chapter, to help you find out whether you have understood the material you have read.

Class Attendance & Participation. Class attendance is required. This includes all class meetings. Attendance will be checked at most class meetings. If you are not present when attendance is checked you will be considered absent. Each unexcused recorded absence will result in a reduction of the class participation grade. The first three (3) absences (or latenesses) will be excused without justification; after that, absences will only be excused for the reasons listed in the University Attendance Policy.

Examinations.There will be two midterm examinations. The final examination will be an oral presentation on the term project. The exams are designed to evaluate the student's comprehension of material, rather than just memorization. Questions may include multiple choice, true false, essay, and deliverable composition. On exams, you will be responsible for all of the assigned readings, the quiz questions, (including those not actually on the quizzes), and the deliverable composition. All examinations will be "closed book". That is, no books or reference materials or electronic devices will be allowed in the examination room. All students will be expected to take the examinations at the scheduled time, shown on the course Calendar.

If you know in advance of a reason you will not be able to take a scheduled examination within the scheduled window of time, you are responsible for making arrangements in advance with the instructor. If you make prior arrangements, or have a documented last-minute emergency conflict -- such as a medical emergency or your employer requires you to make an out-of-town trip -- the instructor will attempt to accommodate you. However, under no circumstances will a student be allowed to take an examination before the rest of the class. A make-up examination may have an entirely different format from the examination given in class, and may be an oral examination. If a student misses one midterm examination and chooses not to take a makeup examination, the final grade for the course will be computed using the final examination in place of the missed midterm examination.

Homework & Programming Assignments. The best way to learn and understand software engineering concepts is to apply them. Students will do some assignments individually and some as part of a team. You will typically have at least one such "deliverable" due every week. As we move into the Scrum mode, the weekly deliverable will correspond to a set of items on the Scrum "backlog" list.

Some of the deliverables will be oral presentations. There will also be one major presentation at the end, as the final examination. The deliverables for a presentation will include PowerPoint slides and notes for on-campus students, and an audio-visual presentation for distance students.

Team Project

This term, everyone in the course will work on development of a system whose requirements were analyzed by the students of CEN 4020 in fall 2009. The system is intended to support research on understanding the non-verbal markings (sigla) found on ancient Etruscan artifacts. The customers will be represented by an FSU Professor of Classics (Dr. Nancy de Grummond) and her students, as well as FSU CS faculty member Dr. David Gaitros.

Teams

Project groups (teams) will consist of 3 to 8 students. If the class is small enough, we will function as a single team.

For team assignments, the entire team will receive a base grade, which may be adjusted upward or downward by the instructor based on observations of team participation.

Programing Environment

One of the important aspects of software engineering is making effective use of software tools. A great variety of commercial tools are available for all aspects and phases of the software development process, from project management to coding and debugging, and from requirements analysis through design, testing, and maintenance. A goal of this course is to make students aware of the range of software tools available, and for students to experience using a representative sample.

In the first week of class, the students of the course will review the requirements for the Etruscan Sigla project, and choose a tool set for the term. That will be the first assignment.

How to Do Well in this Course

Read the assigned chapter(s) at least once prior to the corresponding lectures, and take notes in class.

In class, ask questions if you have any point on which you feel unclear. Don't be afraid to interrupt, or to expose ignorance. Being engaged enough to ask questions is a big plus in my book. Especially when I pause and ask whether there are questions, speak up if you want me to to repeat or clarify something.

After class, review the readings and go over the notes. Use the review questions provided, and the homework problems, to check how well you understood.

Work on the assignments diligently. This is a subject that cannot be learned just by reading. You will not really understand the ideas covered in this course until you try to apply them. Having a good grasp of the readings will help you do better on the project assignments, and having done the project assignments well will assist you when taking an exam.

If you have questions about the class materials, review questions, or the project, post them on the Blackboard discussion board, since others may have the same questions.

In my experience with several software engineering courses, most students enjoy working on their project, and enjoy the interactions with their team-mates on the projects. By the end of the term they are quite proud of what they have accomplished. If it is not working for you that way, discuss it with me.

Your main sources of on-line information for this course are: (1) the class meetings; (2) my on-line notes; (3) the course calendar. Links to the calendar are provided on the course home page at http://www.cs.fsu.edu/~baker/swe2 and on the Blackboard announcement page for the course. The calendar will evolve during the term, so it is important to always refer to the current one on the website (not an older printed version).

There is an overwhelming amount of online reading material available for this course, accumulated from various sources. That includes the example artifacts and PowerPoint notes used by Dr. Sara Stoecklin, the instructor of the distance learning version of this course last year ( including a set of lecture notes provided by the textbook publisher), which are accessible via links from Dr. Stoecklin's spring 2009 calendar. Dr. Stoecklin provided all this material because she was offering that course in distance learning mode: there were no class meetings. Because I find some of those notes rather sparse on details, I will also post notes from some IBM/Rational software engineering courses. However, we do have class meetings in this course, which you are expected to attend, and which will reduce the amount of time you have for reading. Therefore, it is not practical to expect everyone to read all of these (old) materials.

I will post whatever HTML or PowerPoint slides I use in the class meetings, or a post hoc summary of the class meeting, which I will post in the Notes subdirectory on the course website. This is intended to for your use in reviewing for exams. It may also be of some help if you cannot avoid missing a class meeting. However, on-line notes will not ben an adequate substitute for class meetings this term. First: It is not practical to capture all of the information we will exchange in class. Second: Two of the main objectives of this course are to improve your skills in team interaction and oral communication. Third: I will be attempting to apply the Scrum development technique to the organization of the course itself. This requires your active participation.

Grading

The final course grade will be based on a weighted average of the graded work done in the course, according to the tables below, subject to the provision regarding obtaining a minimum of "C-" on assessments of the SMALC/ABET learning outcomes mentioned under Objectives above.

Graded workWeight
Midterm exams40%
Quizzes5%
Final exam/presentation5%
Individual deliverables20%
Team deliverables20%
Class participation10%

The above distribution of credit may need to be adjusted (with notice) as the term progresses, depending on the ratio of individual to team deliverables.

PercentLetter
94-100A  [4.00]
90-93A- [3.75]
87-89B+ [3.25]
PercentLetter
84-85B  [3.00]
80-83B- [2.75]
77-79C+ [2.25]
PercentLetter
74-76C  [2.00]
70-73C- [1.75]
67-69D+ [1.25]
PercentLetter
64-69D  [1.00]
64-66D- [0.75]
0-59F  [0.00]

Do not expect to turn in work late. There is no room in the course schedule for slippage. Turn in your best effort result at the time the deliverable is due, regardless of whether you are satisfied with it. In some cases you may have an opporunity to correct mistakes as part of the next project phase, but the grade for each deliverable will be based on what is turned in by the deadline.

Attendance Policy

Students are expected to attend all classes, including recitation meetings. Exceptions are limited to cases covered by the University attendance policy, below:

Excused absences include documented illness, deaths in the family and other documented crises, call to active military duty or jury duty, religious holy days, and official University activities. These absences will be accommodated in a way that does not arbitrarily penalize students who have a valid excuse. Consideration will also be given to students whose dependent children experience serious illness.

Academic Honor Policy

The Florida State University Academic Honor Policy outlines the University's expectations for the integrity of students' academic work, the procedures for resolving alleged violations of those expectations, and the rights and responsibilities of students and faculty members throughout the process. Students are responsible for reading the Academic Honor Policy and for living up to their pledge to "...be honest and truthful and ... [to] strive for personal and institutional integrity at Florida State University." (Florida State University Academic Honor Policy, found at http://dof.fsu.edu/honorpolicy.htm.)

Take note that this policy not only puts you on your honor not to cheat. It requires that you report any cheating that you observe. In this course, the academic penalty for first violation will be a zero on the assignment or examination where the violation occurred, and the penalty for repeat violations will result in a grade of "F" in the course. Please read the detailed discussion of how the Honor Code applies to programming assignments for this course, at http://www.cs.fsu.edu/~baker/plagiarism.html.

Americans with Disabilities Act

Students with disabilities needing academic accommodation should:

  1. register with and provide documentation to the Student Disability Resource Center; and
  2. bring a letter to the instructor indicating the need for accommodation and what type.

This should be done during the first week of class.

This syllabus and other class materials are available in alternative format upon request.

For more information about services available to FSU students with disabilities, contact the:

Student Disability Resource Center
874 Traditions Way
108 Student Services Building
Florida State University
Tallahassee, FL 32306-4167
(850) 644-9566 (voice)
(850) 644-8504 (TDD)
sdrc@admin.fsu.edu
http://www.disabilitycenter.fsu.edu/

Communication

If you are experiencing difficulty or are concerned about your progress, please contact the instructor right away. Problems are usually easier to solve when they are addressed early.

You are required to verify that your e-mail address is included in the class e-mail list. The Instructor will send everyone a message at the start of the term. If you don't get that first message, make sure you are added to the list.

Check regularly for electronic mail sent to you containing information about this course. You are also encouraged to use e-mail to ask questions and report problems. For this course, we will be using only official University ("@fsu.edu") or CS Department ("@cs.fsu.edu") e-mail accounts.

So that you receive all e-mail promptly, if you ordinarily read your e-mail using another account, you should set up automatic e-mail forwarding from your "@cs.fsu.edu" account and your "@fsu.edu" accounts to that other account.

This syllabus and other information, such as course announcements, assignments, lecture notes, and some useful links to other Web sites, will be posted on the Web site for the course, which is located at http://www.cs.fsu.edu/~baker/swe2/. Access to most of the materials on that site will require a special login name and password, which will be provided to you by the instructor in class or by e-mail.

Changes to the Syllabus

Except for changes that substantially affect implementation of the evaluation (grading) statement, this syllabus is a guide for the course and is subject to change with advance notice. Notice may be by e-mail or by announcment on Blackboard.

T. P. Baker ($Id$)