The catalog description for this course is:
Methods, tools, and notations for requirements capture, analysis, and design. Unified Modeling Language (UML), logic and algebraic specification, prototyping, use cases, domain modeling, software architecture, design patterns, refactoring, software reuse. Prerequisite: CS 690 or 498.
According to the department's syllabus, by the end of the course, a successful student will be able to:
This semester, we will be partnering with ecoREHAB of Muncie, Inc., an organization that provides leadership in ecologically sound and sustainable rehabilitation of existing housing and neighborhoods. Our collaboration with them will provide a concrete context for us to explore themes in software requirements and design while having a positive impact on the local community.
Since this is a three credit-hour graduate course, you should expect to devote twelve hours of attention to it per week.
The following books will be used for required reading during the course. Amazon links are provided for convenience and clarity.
If you have not taken a graduate-level composition course, you should get a copy of Strunk and White's The Elements of Style (revised 4th edition) and read it once or twice. This is the definitive book on how to write clearly and cleanly. There is a copy in the Reference Collection at Bracken Library. Similarly, if you are not familiar with the compositional rules of source code, you should get a copy of Robert Martin's Clean Code and read it. This is an excellent resource on what it means to write good code—a perfect counterpart to writing good prose. There is a physical copy of Clean Code on reserve at Bracken Library.
We will be using a variety of technologies this semester, both for practical use and to help us meet our stated learning objectives. We have a Blackboard site in the usual place, but we will use this mainly as a springboard to other systems more appropriate to our task.
You are expected to have your own laptop computer that you will be able to bring to class meetings.
The semester will be divided into two major sections. For the first month or so, we will be intensively reading important and influential books about software requirements and design, putting these ideas into practice to demonstrate our understanding of them. Then, we will switching our focus to a long-term project: our collaboration with ecoREHAB to create an original software system to solve their needs. During this time, we will follow an iterative and incremental approach, periodically interrupting the project to return to theoretic and orthogonal matters.
Below you will find the sketch for the first month's activity. Any changes will be announced via Blackboard.
|Prepare:||For this meeting:|
|1/9: Introductions, Logistics, and User Stories|
|Read William Rapaport's “How to Study: A Brief Guide”||1/11: A visit by ecoREHAB|
|Read Patton, Prelude through Ch. 5. Bring two discussion questions.||1/13: Story Mapping|
|Rewrite our 1/13 map using a digital tool as assigned||1/18: Comparison of tools|
|Read remainder of Patton, bringing two discussion questions.||1/20: Discussion and Story Mapping|
Read Allen Holub's
UML Quick Reference.
Create a class diagram of the
||1/23: UML class diagrams discussion|
Read Holub Ch. 1–2, bring two discussion questions.
Identify patterns from the reading in the
||1/25: Design Patterns|
|Read Holub Ch. 3. Analyze a previous project for reifications of these patterns or opportunities for them.||1/27: Patterns and Refactoring|
|Read Holub Ch. 4||1/30: Collaborative modeling|
|Read Clean Code Ch. 17 (on course reserve). Analyze previous project's code based on these rules and refactor one or more elements of it.||2/1: Refactoring|
|Read Ch. 1–3 of Beck's Test-Driven Development: By Example (on course reserve for CS222).||2/3: Class analysis and TDD|
Following this, we have a methodology planning meeting tentatively scheduled for February 8, followed by a story mapping session with ecoREHAB on February 10. This will allow us to kick off our first iteration on this project on February 13. That iteration will end February 27, at which time we will divvy out topics for individual investigation, which will be presented back to the class on March 13 and 15. Tentative topics for the individual investigation are listed below:
The final exam is scheduled for noon to 2PM on Wednesday, May 3.
Your grade will be determined from these sources:
Project participation will be evaluated each iteration, with the participation score weighted by the iteration number (second iteration counts twice as much as the first, and so on). Participation in each iteration will be evaluated as
Specific instructions for these elements will be posted to Blackboard.
As usual, I will be using my triage grading rubric. Briefly, each item is graded on a three-point scale of incorrect (1/3), partially correct (2/3), or correct (3/3). These correspond to D, C, and A grades, respectively.
My office hours are listed on my Web site. Students who come to office hours are helped on a first-come, first-served basis; no appointment or prior contact is required. If a student wishes to make an appointment to meet outside of office hours, he or she should email the request along with several possible meeting times.
Students are expected to process their course email at least daily.
All email communication to the instructor should be from a BSU-affiliated address. This policy ensures that senders can be correctly identified and protects your privacy. Email sent from other domains may not be answered.
The instructor may access email through services not affiliated with the University. Please note that such messages necessarily pass through the campus firewall in an unencrypted format, and they may be stored on servers not owned or managed by Ball State University. It is therefore advisable to restrict confidential information to office hours or appointments.
If you are emailing regarding questions in a computer program, it is recommended that you send a copy of the code in question in your email. The preferred method is to copy the code into the body of your message, using plain text and following standard formatting conventions. Alternatively, if the code is in a publicly-readable repository, email the URL.
Although my office telephone number is listed on my Web site, email and face-to-face communication are strongly preferred. I will respond to every student email I receive; I may not respond to telephone messages.
Students and faculty are bound by the Student Academic Ethics Policy of the Code of Student Rights and Responsibilities.
It behooves you to be aware of fundamentals of copyright law and the university's intellectual property policies for student-created work.
When file submission is necessary outside of Google Drive, all files must be submitted in open file formats. Good examples include HTML, PDF, OpenDocument, and plain text. Note that Microsoft Office and Adobe Creative Suite formats do not qualify.
Some assignments and achievements require the writing of an “essay.” I use this term in the classical sense, to describe a composition that represents an attempt to understand a complex idea. An essay is neither a summary nor a staid five-paragraph construction. As the course prerequisite implies, these essays should represent collegiate-level writing. You are encouraged to leverage our digital writing environment to compose multimodal pieces.
Want extra feedback on your papers? The Writing Center is a community of Ball State students and faculty who value writing. Come and collaborate with one of our trained peer tutors on any project for any major. The Writing Center is a comfortable, supportive environment for writers from all communities and backgrounds. It is located in Robert Bell 291. To make an appointment, go to http://ballstate.mywconline.com.
This course held in TC412 is a part of Ball State's Interactive Learning Space Initiative. This room is equipped with ceiling video cameras that document activity in the space (video only—no sound). As a student in this course you will be asked to participate in research projects. A consent form will accompany each research project request.
If you need course adaptations or accomodations because of a disability, please contact the instructor as soon as possible. Ball State's Disability Services office coordinates services for student with disabilities; documentation of a disability needs to be on file in that office before any accomodations can be provided. Disability Services can be contacted at 765-285-5293 or firstname.lastname@example.org.