Software Analysis and Design
CS 3700
3 credit hours

Course Information

Course Description:

The course teaches students various stages of software development. Topics include software systems analysis, software requirements analysis, modeling tools and methods for analysis and design, development of a software requirements specification document, software design guidelines and heuristics, software testing and debugging, and the development of a software design and testing document.

Course Objectives:

  1. Learn and appreciate the basic issues involved in the development of complex engineering software system

  2. Learn tools and techniques for requirements analysis and design and apply it within the context of your chosen paradigm for software development.

  3. Use automated tools (CASE tools), if necessary, for your class project (s).

  4.  Develop a Software Requirements Specification (SRS) and a detailed Design and Test Specification document for your chosen project.

  5. Learn to work in a group and contribute effectively as a team member.

Prerequisites and Co-requisites:

Proficient with programming in at least one language (C/C++/Java) is required. Refer course syllabus for additional requirements. Practical and Professional Issues in Computer Science, Design of Algorithms, Foundations of Computer Science

PLEASE DO NOT ENROLL IN THIS CLASS WITHOUT THESE PREREQUISITES. CHECK WITH THE INSTRUCTOR ON ANY QUESTIONS.
Also, be sure to read the general instructions for the class.

Course Topics:

Overview of software engineering paradigms and management techniques. Detailed analysis and design techniques  software testing and debugging techniques, maintenance, configuration management and reliability, etc.  

Documents

Major Topics

Minor Topics

Additions

 

Paradigms

Lifecycle / Waterfall

 

 

 

Spiral

 

 

 

Prototyping

 

 

 

Formal Methods

 

 

 

CASE

 

Project Proposal

 

 

 

 

Metrics

Size Oriented

KLOC

 

 

Function Oriented

Function points

 

 

 

 

 

Project Management

Timelines

Gnatt Charts

 

 

Scheduling 

Pert/CPM, Cost Projections

 

 

 

 

 

Requirements Analysis

Data Collection

Interviews, Questionnaires, Hard data collection

 

 

Problem Analysis

What vs How, Want vs Need

 

 

State based tools

Flowcharts, FSA, StateCharts, Petri Nets, OO methods

 

 

Data Flow tools

DFDs, CFDs

 

 

Data Oriented tools

ER models, 

 

 

View Point analysis

Warnier Orr method

Software Requirements Specification

 

 

 

 

Design

Software Architecture

Structure Charts, OO notations

 

 

Program Design

PDL, Decision trees, decision tables, Other graphical tools

 

 

Data Structure Design

Data dictionaries

 

 

Issues

Coupling and Cohesion, Fan-in and Fan-out, OO issues

 

 

Formal Specification

Algebraic Specification

Software Design Specification

 

 

 

 

Testing and Complexity

McCabe's Measure

Cyclomatic complexity, Simple OO measures

 

 

McCall's Quality factors

Product operation, revision and transition factors

 

 

White-box testing

Path testing using Cyclomatic complexity, logic testing of loops and conditions

 

 

Black Box testing

Equivalence partitioning, Boundary value analysis, IO testing

 

 

Other issues

GUI testing, verification and validation

 

 

Test integration

Top-down, bottom-up and sandwich integration

 

 

Debugging

Brute force, backtracking, induction and deduction approaches, Regression testing

Software Test Document

 

 

 

 

Specific Course Requirements:

  1. Ability to perform independently and as a team member is absolutely essential. 
  2. A good working knowledge of C, C++ or Java is highly recommended. You will not be taught programming in this class. A good knowledge of a word processing package such as Microsoft Word. 
  3. Each project group will choose "specific" learning objectives on their projects based on the question for the class. Once you have chosen a paradigm to use for your project, you will develop a merit evaluation criteria (with my help AND to be finally approved by me) for the your project requirements analysis, design and implementation. During the appropriate stage of your project, in addition to other evaluations, each project group will virtually meet with the instructor and self-evaluate themselves along with me!
  4. Question for the class: "Internalize one of the paradigms for requirements analysis, design and testing. Analyze, design, implement and test your project using this chosen paradigm"

Textbooks, Supplementary Materials, Hardware and Software Requirements

Required Textbooks:

Roger S. Pressman, “Software Engineering: A Practitioner’s Approach", Fifth Edition, McGraw Hill. [RP]
OR
 Sommerville, “Software Engineering”, 6th edition, Addison-Wesley  [IS]

                                        (One of the above books is sufficient for the class)

Supplementary Materials:

Class notes (handouts, etc.).

Hardware Requirements:

A Pentium class computer with Internet access, CD-ROM, zip/floppy disks and at least 32 MB RAM. 

Software Requirements:

Real Player, Media Player, Acrobat Reader, Microsoft Office, etc.

Assessment and Grading

Testing Procedures:

Tests, assignments and quizzes will be solely on an individual basis. Appropriate time frames for the tests and assignments will be given. You will be responsible for turning these in within the allocated time frame.

Exam (2)

2 * 10      = 20

Quizzes (2 or more - as often as deemed appropriate)

10

Project (9 stages):

70 

 

Project Stage

Description

Due Date

Project Score

Project Proposal

A 5 page description - including group details (members, skills, etc.), the proposed system and its functionality with appropriate block diagrams, etc., Mutually accepted schedule / format for group meetings, project web page location, its first cut design, web page administrator, any other member accepted responsibilities. Failure to maintain the web site regularly will be reason enough for losing 5 points off your grade at a later time. 

End of Week 2

5

Weekly update of member progress

A brief paragraph describing your contributions towards the project  is due every week after week 1. 

Every week - Latest by  Monday morning  of the following week

1 point / week / group person for a maximum of 5 points

Project Status Review - Draft of Software Requirements Specification

An "almost final" draft of your SRS

End of week 4

0

SRS

The completed version of your SRS - in word or PDF form. A power point presentation of the SRS must be posted publicly to the class. 

End of week 5

20

SRS / Project Progress Review

Review of your SRS document and progress as a group (all members of the group meet virtually with the instructor) 

Week 6

5

Project Status Review - Draft of Software Design/Testing Specification

A "almost final" draft of your SRS

End of Week 9

0

Software Design/Testing Specification

The completed version of your software Design/Testing Specification document - in word or PDF form. A power point presentation of the SDS must be posted publicly to the class. 

End of week 10

20

Project Implementation

Upload your complete project implementation / link to your implementation 

End of Week 11

10

SDS / Project Progress Review

Final review of your project and progress as a group (all members of the group meet virtually with the instructor)

Week 12

10

Grading Procedure:

Grades will be based on your tests / assignments and group participation. Members of a group are required to keep the instructor aware of any interpersonal differences and or lack of contribution by other group members in their weekly updates. Weekly updates are also to be uploaded to the group's project web site.  

WebCT Discussion:

  1. I will post at least 5 topics (or items / issues) for discussion on WebCT about once every one or two weeks. You will be given two weeks to post your "original" messages regarding the issue after researching (readings from virtual library search (http://www.tn.regentsdegrees.org/tvl.htm ) and/or other web surfing acceptable). Make sure your cite your references appropriately. Up to 5 points can be earned for participation in the discussion (Hint! you have to participate in at least 5 discussions). These points will be added to your score for grade improvement at the end of the course or used instead of a quiz at the discretion of the instructor.
  2. For students taking the class completely online: I want to be involved in at least one of your discussion sessions before and after the midterm date (before SRS and after SRS dates). At your convenience, arrange for me to join your discussion and spend 30 minutes in your discussion group. 
  3. For students taking the class on campus: I want to be involved in at least one of your discussion sessions before and after the midterm date (before SRS and after SRS dates). At your convenience, arrange for me to join your discussion and spend a session with your discussion group. 

Grading Scale:

A: 90-100               B: 80-89                  C: 70-79  D: 60-69  F: < 60

Assignments and Participation

Assignments and Projects:

The course web site will continually be revised and students are responsible for checking into the web site at least 2-3 times a week. Course reading assignments will be posted on the web site and students are required to participate equally towards the group project. Deadlines for survey papers will also be posted on the web site. 

Class Participation:

  1. Students must participate in all interactive aspects of the course. 
  2. Students in this class must communicate with other students in the chat room through regularly scheduled meeting times
  3. Students are expected to communicate regularly with the instructor - A brief paragraph describing your contributions towards the project is due every week after week 1. 
  4. Students must check the course bulletin board frequently (2-3 times a week) for announcements and messages.
  5. Students must actively participate in threaded discussion events.

Punctuality:

You are required to be punctual to your group meeting times. Also you are required to be reading up on class work as appropriate.  

Course Ground Rules

 

  1. Copying / cheating of any kind will result in a letter grade of F to everyone involved. However coordination and communication through accepted channels between all the students in the class will be encouraged.

  2. Due  dates will not be changed without prior permission (at least a week in advance). However, if you had an emergency, I will make an exception with proper supporting documents.

  3. You may have up to 2  students per group for your project.

  4. All tests / assignments / projects should be typed, and the documents must be well prepared / documented. You will not be graded for any loose sheets snail mailed to me (including documents with clips).

  5.  Deadlines indicate the amount of time and effort required both towards the completion of your assignment / project and its documentation. Do not anticipate to complete your assignments / projects and related documentation 2-3 days prior to the final deadlines. I expect the group members to meet as often as necessary through chat rooms, emails, etc. (once in 2-3 days) and be kept informed about the progress of other members in the group.   Major sections of your group work will be evaluated on the functioning of the entire group and not based on individual accomplishments. Therefore, be aware of persons who are not willing to spend the appropriate amount of time. I will not entertain complaints about irresponsible group members just before the due dates!.

  6. Your weekly report is my only source of tracking your and your group's progress. Therefore these reports must be as complete as possible.

  7. If appropriate at a later time, the instructor reserves the right to modify any of the dates / criterion for this course.

  8. The course involves a lot of writing. You are required to be responsible and make all efforts to organize your thoughts and communicate effectively (within the team and in your reports). If you do not take responsibility, your grades may be adversely affected. Note that there are different organization styles for your documents and there is not a unique "correct" style. I suggest that you and your team discuss and agree on some standard document formats. If you seek timely help, I will make all efforts to comment on your style and organization of your documents.

  9. Class notes / out of class reading assignments are essential for the class. You are required to read all such reading material.  Read ahead, not after every class / week, to fully understand and finish your work in time!

  10. All groups will post  their design in the class web site through a power point presentation by the beginning of week 6 and 12. All students in class (this includes your group’s evaluation of your own work) will evaluate this final presentation. You do not have to complete your documentation / coding, but it should provide you a chance to gather meaningful inputs. Any good suggestions must be included in your final implementation and the design document.

Guidelines for Communications

Email:

  1. Always include a subject line.
  2. Remember without facial expressions some comments may be taken the wrong way. Be careful in wording your emails. Use of emoticons might be helpful in some cases.
  3. Use standard fonts.
  4. Do not send large attachments without permission.
  5. Special formatting such as centering, audio messages, tables, html, etc. should be avoided unless necessary to complete an assignment or other communication.
  6. Respect the privacy of other class members.

Discussion Groups:

  1. Review the discussion threads thoroughly before entering the discussion. Be a lurker then a discussant.
  2. Try to maintain threads by using the "Reply" button rather starting a new topic.
  3. Do not make insulting or inflammatory statements to other members of the discussion group. Be respectful of other’s ideas.
  4. Be patient and read the comments of other group members thoroughly before entering your remarks.
  5. Be cooperative with group leaders in completing assigned tasks.
  6. Be positive and constructive in group discussions.
  7. Respond in a thoughtful and timely manner.

Chat:

  1. Introduce yourself to the other learners in the chat session.
  2. Be polite. Choose your words carefully. Do not use derogatory statements.
  3. Be concise in responding to others in the chat session.
  4. Be prepared to open the chat session at the scheduled time.
  5. Be constructive in your comments and suggestions.

Web Resources:

  1. Srini's web site - www.csc.tntech.edu/~srini
  2. Srini's links - www.csc.tntech.edu/~srini/links.html 
  3. Columbia Guide to Online Style by Janice R. Walker and Todd Taylor
  4. Citation Styles Online http://www.bedfordstmartins.com/online/cite6.html
Library

 

The Tennessee Board of Regents Virtual Library is available to all students enrolled in the Regents Degree Program. Links to library materials (such as electronic journals, databases, interlibrary loans, digital reserves, dictionaries, encyclopedias, maps, and librarian support) and Internet resources needed by learners to complete online assignments and as background reading must be included in all courses. 
Students With Disabilities

 

Qualified students with disabilities will be provided reasonable and necessary academic accommodations if determined eligible by the appropriate disability services staff at their home institution. Prior to granting disability accommodations in this course, the instructor must receive written verification of a student's eligibility for specific accommodations from the disability services staff at the home institution. It is the student's responsibility to initiate contact with their home institution's disability services staff and to follow the established procedures for having the accommodation notice sent to the instructor.
Syllabus Changes

 

The instructor reserves the right to make changes in the syllabus if necessary due to time constraints or other unforeseen events.   If this is necessary, members of the class will be notified as soon as possible BY E-MAIL and / or posted on the BULLETIN BOARD.

General Instructions for the Class

Please be aware that this course is conducted totally online. As a result, you should be certain that you feel comfortable in an online setting. While on-campus students have the option of meeting with me on personal appointments, others may not have this added opportunity. So be prepared to spend the required amount of time without meeting face-to-face with an instructor. 

 

This course will require between 10-12 hours of work per week for (online browsing of lectures, completing additional reading assignments and exploratory research). This includes viewing the PowerPoint presentations on WebCT, taking the chapter post-tests from the book’s web site, attending 2-3 one hour group meetings (virtual or otherwise) every week, keeping the project web site updated every week, etc. If you are pressed for time due to other classes, outside work or other personal commitments, this is not the course for you. You are expected to complete all work assigned by the published due dates. Late submissions (without prior excuse) are not permitted and a “0” is automatically for those portions of the course. Every student is expected to log into the class web site as often as possible (at least once every two days) to check for news items / announcements. 

 

Early in the course, you should become very familiar with WebCT’s navigation and communication features and have access to a computer system with network access. Having Internet Explorer (recommended), Acrobat Reader, Basic MS-Office applications (at least MS-Word and power point) is a necessity. Let me know immediately if you don’t have either of these two packages and can’t use the computer labs on your campus. Please make sure you cite any references (web sites, books, etc.) appropriately in your discussions, project documents and other submissions.

 

Class Discussions and Chats will take place using the WebCT communications module. Each student is expected to participate in class discussions and chats. Part of your grade will be based on the contributions you make in these discussions, in addition to your group’s project discussions and implementation.

On-Campus TTU students will have in-class presentations during the 5th and/or 6th weeks of class (for SRS presentation) and 13/14th weeks of class for SDS / implementation presentation. Additionally there will be an introductory / orientation session during the first two weeks of classes. RODP students are also welcome to attend, if they find it appropriate. 

[Back to Regents Online Degrees Home]