CIS 3310: SYSTEMS
DESIGN (with the CIS Common Case
Crabgrass Books)
Course Prerequisites
CSP 1, CIS 3300 and a
Programming Track (CIS 3260, CIS 3280 or CIS 3260, CIS 3270 or CIS 3210, CIS
3215). The programming track requirement went into effect at the start of the
Fall 2001 Semester.
Prerequisites are strictly
enforced!
Students
who have not fulfilled these requirements
are subject to removal
from the class.
Additionally, it is assumed that the students have some familiarity working with
computers. Specifically, it is assumed that students be able to, or will learn
outside of class, the following:
-
Principles of
Programming,
-
An object oriented
programming language or Integrated Development Environment,
-
creation of web
documents,
-
the syntax of Java and
J2EE OR any Microsoft .NET’s Object Oriented web application development
languages (C++, C#, VB.NET)
-
Use of MS Office or
similar tool to write business reports, academic papers and specification
documents.
-
Additionally, it is
expected that students will quickly learn how to
-
use email and a
browser,
-
to set up a website
and load/download files there from,
-
newsgroups and,
-
how to work
effectively in groups
Primary Text and Software
-
Bernd Oestereich,
Developing Software with UML.
Object-Oriented Analysis and Design in Practice,
Addison Wesley, 2002 (ISBN 0-201-75603-X).
-
Boggs, W. and Boggs,
M., Mastering UML with Rational Rose, Sybex, 1999 (ISBN0-7821-2453-4)
-
Rational Rose
Enterprise Suite:
Available from
course’s rational rose web site
Additional Helpful Resources/Material
FOR THE .NET ENTHUSIASTS
-
Visual Studio .NET,
Professional Edition for Academic Market,
Microsoft Corporation. Available for FREE download through the CIS
Department's MSDNAA program (Strongly recommended for groups that will be
using .NET to complete course project). You MUST be a CIS major to qualify for
this edition. Sign up for the MSDNAA program at:
http://www2.cis.gsu.edu/cis/student/sn.asp.
FOR THE JAVA ENTHUSIASTS
-
A java software
development kit
-
An integrated
development environment for Java e.g. Netbeans 3.0, JWSDK (Java Web Services
Development Kit). Available for free from
http://java.sun.com
; IBM Websphere
studio, etc. OR A simple editor for Java programs e.g. TextPad,
Jcreator, etc.
Catalog Description
The general description of this course can be obtained in
the University’s Undergraduate Catalog:
http://www.gsu.edu/~wwwreg/0304undergrad/images/undergradcatalog0304.pdf
Prerequisite:
CIS 3300 and completion of a CIS
programming
track (CIS
3260 and CIS 3280, or CIS 3260 and CIS 8270, or CIS 3210 and CIS 3215). CSP 1.
This course builds upon the skills and knowledge developed in CIS 3300. Emphasis
is placed upon the design and development of information systems, including the
software and databases that are needed to support the business needs of the
organization. Both data-oriented and process-oriented design methods are
covered. These methods are discussed in the context of managing a systems
development project, including issues such as project estimation and project
management techniques, software quality assurance, and configuration management.
Detailed Course Description:
This
course provides an introduction to the logical and physical design of computer
based information systems. Emphasis is placed on object-oriented development
paradigms for the design of business information systems.
The course
extensively utilizes the CIS Common Case suite (CISCC) and, in particular, the
Crabgrass Books case as a known context from which students extend their
knowledge of all topics covered in the course.
The focus
of this course involves the use of a persistence framework to transition from
UML classes to distributed web applications using Sun’s J2EE/J2SE framework or
Microsoft’s .NET frameworks. The principles learned can also be applied to other
leading frameworks for building distributed enterprise software.
Information systems development is a process in which
technical, organizational, and human aspects of a system are analyzed and
changed with the goal of creating an improved system. In spite of the advanced
technologies that surround computer-based information systems, the process of
systems analysis and design is still largely an art. There is a high dependency
on the skills of the individual analysts and designers even though there are
established principles, methods, and tools. This course will give students an
understanding of the most common tools, techniques, and theories currently used
in systems design.
Detailed Course
Objectives
At the end of the semester, the student
will be able to:
-
Read an Analysis
Document for design
-
Use a Persistence
Framework in the Design of an Information System
-
Create and document a
Logical Design
-
Create and document a
Physical Design
-
Create and document an
Application Database
-
Use a CASE tool to
assist in systems design
-
Create a commonly
expected “deliverables” of systems design
-
Determine the
architecture and technology requirements for implementation of a system’s
design
-
Implement a system’s
blue-print as a working information system
Conduct of Course: Lecture/Discussions, Demos, and Labs:
Class sessions will be divided between: (1)
lecture/discussion of certain software concepts and features, (2) instructor
demonstrations of these same software concepts and features, and (3) student
laboratory sessions working with these same software concepts and features.
The
purpose of this pedagogical approach is to introduce and reinforce ideas and
skill sets so that students can master these on their own after class hours. To
bring this knowledge to a highly proficient, professional level, students will
have to spend time and effort outside of class working in the GSU computer labs
or on their own micros.
To ensure
that you have the basic knowledge that will allow you to function on your own
after class, be sure to ask the instructor questions during class, either during
the lecture/discussion, demo, or lab.
Course Project:
For the course project,
students, working in groups of three,
will prepare fully functioning distributed applications that address a typical
business need. The application will be of significant complexity and will be
developed in any of the .NET programming languages or in Java’s J2EE framework.
The complete specifications for the projects will be covered in a separate
handout.
Each member of a project
team shall work on a separate, well defined portion of the design problem. The
entire team’s solution is expected to be synchronized and integrated (For,
example, team must use common vocabulary for classes, attributes, methods etc.
and the design diagrams they create must be interrelated). There will be points
for the individual parts designed by each team member, and separate points for
the quality of the entire team’s integrated solution. Therefore it is possible
for members within the same group to earn different grades on the project.
All parts of the project
shall be submitted electronically by posting your group’s solution to your web
site by the due date. Each group MUST use a web site that can adequately deploy
the web-application in the framework/programming-platform that each initially
selects for the project. Therefore, (1) groups using .NET must find web space on
a server that has been configured for deployment of .NET applications and
components; while (2) groups using J2EE/J2SE must locate space on a server that
is configured to host servlets, java beans, jsps, conventional java programs and
applets.
CIS TUTORS are available
in RCB suite 822 for assistance with issues relating to software installation;
program debugging; and, the use of Rational Rose to draw design models for the
project’s solution. You can get details about the CIS TUTOR program at
http://www2.cis.gsu.edu/cis/tutors/index.asp. NOTE: Tutors will not do
your assignments/project for you!
All work
must be your own. Duplicate project submissions will be given a grade of
"zero". ALL members of both the teams copying the assignment and the teams
supplying the copy will be penalized equally!
Quizzes/Homeworks
A maximum
of 5 take-home quizzes shall be administered in the duration of the course. Each
student’s best 4 quiz scores shall count towards course credit for the
calculation of the final grade. Quizzes will be posted on the course web
site three days prior to the due date. Therefore quizzes due on Wednesdays shall
be posted the prior Sunday in the evening.
Quizzes
MUST be submitted IN CLASS on the due date. They will be collected at the start
of class. Only Paper copies (hard-copies) of the quizzes will be accepted.
Therefore print your quiz (making sure that your script contains your name, and
that all questions answered are adequately numbered) BEFORE coming to class.
Policies
Grading
Policy:
|
Design
Project |
POINTS |
|
Project part 1: conceptual design diagrams & web publishing |
100 |
|
Project part 2: Draft Technical design and prototype
(design diagrams =50, implementation & code=50) |
100 |
|
Project part 3: Final Technical design and Prototype system
(design diagrams =75, system implementation & code=75) |
150 |
|
Project Presentations |
|
|
Presentation 1: Conceptual Models of proposed system |
50 |
|
Presentation 2: Technical Design diagrams of proposed system |
50 |
|
Presentation 3: Demonstration of final Prototype & system documentation |
50 |
|
Quizzes & Participation |
|
|
Best
4of 5 quizzes (each worth 100 points) |
400 |
|
Participation (in-class assignments, discussion, etc) |
100 |
|
Total |
1000 |
Policies
on Student Conduct and Academic Honesty
-
Prerequisites are
strictly enforced. Students failing to complete a prerequisites with a grade
of “C” or higher will be administratively withdrawn from the course in which
they are in violation with a loss of tuition fees. There are no exceptions.
-
Students are expected
to attend all classes and group meetings, except when precluded by
emergencies, religious holidays or bona fide extenuating circumstances.
If one or more class is missed, it is the student's responsibility to
determine the specific material covered during their absence and make the
necessary arrangements for making up what is missed. Class discussion is
strongly encouraged. More than two missed classes in a row without the
instructor's permission will be considered a withdrawal on the part of the
student.
-
Make-up assignments
will not be given for any reason whatsoever.
-
Students who, for
non-academic reasons beyond their control, are unable to meet the full
requirements of the course should notify the instructor. Incompletes may be
given if a student has ONE AND ONLY ONE outstanding assignment.
-
A “W” grade will be
assigned if a student withdraws before mid-semester while maintaining a
passing grade. Withdrawals after the mid-semester date will result in a grade
of “WF”. Refer to GSU catalog or Registrar’s office for details.
-
Spirited class
participation is encouraged and informed discussion in class is expected. This
requires completing readings and assignments before class.
-
Unless specifically
stated by the instructor, all assignments and teaching examples are to be
completed by the student alone.
-
Within group
collaboration is allowed on project work. Collaboration between project groups
will be considered cheating unless specifically allowed by an instructor.
-
Copy work from the
Internet without a proper reference and citation will be considered plagiarism
and subject to disciplinary action as delineated in the Student Handbook.
-
Any non-authorized
collaboration will be considered cheating and the student(s) involved will
have an Academic Dishonesty charge completed by the instructor and placed on
file in the Dean’s office and the CIS Department. All instructors regardless
of the type of assignment will apply this Academic Dishonesty policy equally
to all students. See excerpt from the Student Handbook below:
Academic Honesty
(Abstracted from GSU’s Student Handbook Student Code of Conduct “Policy on
Academic Honesty and Procedures for Resolving Matters of Academic Honesty” -
http://www.gsu.edu/~wwwcam/academichonesty.html)
“As
members of the academic community, students are expected to recognize and uphold
standards of intellectual and academic integrity. The University assumes as a
basic and minimum standard of conduct in academic matters that students be
honest and that they submit for credit only the products of their own efforts.
Both the ideals of scholarship and the need for fairness require that all
dishonest work be rejected as a basis for academic credit. They also require
that students refrain from any and all forms of dishonorable or unethical
conduct related to their academic work.
Students
are expected to discuss with faculty the expectations regarding course
assignments and standards of conduct. Here are some examples and definitions
that clarify the standards by which academic honesty and academically honorable
conduct are judged at GSU.
Plagiarism.
Plagiarism is presenting another person’s work as one’s own. Plagiarism includes
any paraphrasing or summarizing of the works of another person without
acknowledgment, including the submitting of another student’s work as one’s own.
Plagiarism frequently involves a failure to acknowledge in the text, notes, or
footnotes the quotation of the paragraphs, sentences, or even a few phrases
written or spoken by someone else. The submission of research or completed
papers or projects by someone else is plagiarism, as is the unacknowledged use
of research sources gathered by someone else when that use is specifically
forbidden by the faculty member. Failure to indicate the extent and nature of
one’s reliance on other sources is also a form of plagiarism. Failure to
indicate the extent and nature of one’s reliance on other sources is also a form
of plagiarism. Any work, in whole or part, taken from the internet or other
computer based resource without properly referencing the source (for example,
the URL) is considered plagiarism. A complete reference is required in order
that all parties may locate and view the original source. Finally, there may be
forms of plagiarism that are unique to an individual discipline or course,
examples of which should be provided in advance by the faculty member. The
student is responsible for understanding the legitimate use of sources, the
appropriate ways of acknowledging academic, scholarly or creative indebtedness,
and the consequences of violating this responsibility.
Cheating
on Examinations.
Cheating on examinations involves giving or receiving unauthorized help before,
during, or after an examination. Examples of unauthorized help include the use
of notes, texts, or “crib sheets” during an examination (unless specifically
approved by the faculty member), or sharing information with another student
during an examination (unless specifically approved by the faculty member).
Other examples include intentionally allowing another student to view one’s own
examination and collaboration before or after an examination if such
collaboration is specifically forbidden by the faculty member.
Unauthorized Collaboration.
Submission for academic credit of a work product, or a part thereof, represented
as its being one’s own effort, which has been developed in substantial
collaboration with assistance from another person or source, or computer
honesty. It is also a violation of academic honesty knowingly to provide such
assistance. Collaborative work specifically authorized by a faculty member is
allowed.”
Typical Schedule
|
WEEK |
DATE |
TOPIC |
READINGS |
WORK DUE
|
|
1 |
|
Syllabus
Group Formation
and Student Web Accounts
Installing Course
Software:
Rational Rose (all groups)
Rational XDE (.NET and J2EE editions)
COURSE
INTRODUCTION
Lecture 1: Introduction to Systems Design, UML and Rational Rose;
Set context within the CIS Common Case(s) (CISCC)
Crabgrass
Books. |
Oestereich: pages
1-56; 114-120
Boggs Chapter 1 and 2
Intro to UML
A rational Development Process |
|
|
|
|
Class Discussion:
What does a software systems designer do?
SYSTEMS
ARCHITECTURE CONCEPTS
Lecture 2: Architecture: The Basis of Object Oriented Design |
Oestereich pages
161-171; 64-98; 256-264; 39-42
4+1 views of software |
|
|
2 |
|
THE USE-CASE VIEW
Lecture 3: Modeling Use-Cases
THE LOGICAL VIEW
Lecture 4: Modeling Object Interaction
Class Discussion:
What is the connection between use-cases and interaction diagrams? What is
the strategic value of use-cases? What is the value of interaction
diagrams in systems design?
Illustrate concepts within the CIS Common
Case(s) (CISCC)
Crabgrass
Books. |
Oestereich pages
224-249
Boggs Chapter 3 and 4
Managing Use Cases Using Rational Solution for .NET |
|
|
|
|
THE LOGICAL VIEW
Lecture 5: Modeling Classes and Packages
Class Discussion:
When do you use classes and when do you use packages? How do you
distinguish between the two? Illustrate concepts within the CIS Common Case(s) (CISCC)
Crabgrass Books. |
Oestereich pages
172-223; 120-155
Boggs Chapter 5 and 6 |
|
|
3 |
|
THE LOGICAL VIEW
Lecture 6: Modeling Relationships among Classes
Class Discussion:
Does it matter which type of relationship we use? How do we distinguish
between the various types of relationships? How do we tell which type of
relationship to use in specific contexts?
Illustrate
concepts within the CIS Common Case(s) (CISCC)
Crabgrass
Books. |
Oestereich pages
249-254; 265-271; 99-104
Boggs Chapter 7
Value of Modeling
|
|
|
|
|
THE LOGICAL VIEW
Lecture 7: Modeling Object Behavior with State-Chart Models (State-Chart
Diagrams)
Class Discussion: How
do state charts differ from class diagrams? What is the association
between state charts and class diagrams? |
|
|
|
4 |
|
THE LOGICAL VIEW
Lecture 8: Modeling System or Use-Case Behavior with Activity
Diagrams
Class Discussion: How
do activity diagrams differ from state charts and class diagrams? What is
the association between activity diagrams and class diagrams? What
is the association between activity diagrams and state charts?
Illustrate concepts within the CIS Common
Case(s) (CISCC)
Crabgrass
Books. |
Boggs Chapter 8 |
|
|
|
|
Review of Phase 1 of
Project
Class Discussion: “Do
NOT Call registry” |
Development of the “DO NOT CALL” registry
|
Quiz 1 (week 1 – end
of week 3) |
|
5 |
|
THE LOGICAL VIEW
UML Extensions for
WEB Applications |
Boggs Chapter 11, 12
& 14
Modeling web apps with UML
|
|
|
|
|
Project 1 due,
Presentation 1
Presentation 1: Conceptual Design Model
|
|
Project
part 1: Conceptual Design Model
Exercise
7 |
|
6 |
|
Debriefing on
Project Phase 1: Points of improvement
|
|
|
|
|
|
THE COMPONENT VIEW
Lecture 9: The Component view (software architecture)
Illustrate
concepts within the CIS Common Case(s) (CISCC)
Crabgrass
Books. |
Oestereich
pages
272;117-120
Business of software
|
|
|
7 |
|
THE DEPLOYMENT
VIEW
Lecture 10: The Deployment view (hardware architecture)
KEY FRAMEWORKS FOR
OBJECT ORIENTED DESIGN
Class Discussion:
A Comparison of J2EE and .NET
|
Oestereich
pages 273
Boggs Chapter 10 |
|
|
|
|
PRESENTATION LAYER
DESIGN:
REPRESENTING
WEB-BASED COMPONENTS IN UML :
Lecture 11: Modeling HTML Pages, JSPs, ASPs, Applets and .NET Web Forms
|
Oestereich pages
108-111
|
Quiz
2 (week 4 – end of week 6) |
|
8 |
|
PRESENTATION LAYER
DESIGN:
REPRESENTING
WINDOWS-BASED GRAPHIC USER INTERFACE COMPONENTS IN UML :
Lecture 12: Modeling VB, C++, and
Java GUIs
|
|
|
|
|
|
PRESENTATION LAYER
DESIGN:
Lecture 13: Principles of Graphic User Interface Design
Class Discussion: Do
principles of GUI design apply to web interfaces in the same ways that
they apply to windows interfaces? Explain your answer? Identify an
organizational web site and critique it for the criterion contained in the
lecture on principles of GUI design.
|
|
|
|
9 |
|
BUSINESS LOGIC
LAYER DESIGN
REPRESENTING
SERVER-SIDE BUSINESS LOGIC LAYER WEB COMPONENTS IN UML:
Lecture 14: Modeling
JSP, ASP, PHP, COLDFUSION business-logic layer components in UML
Class discussion:
How do web-services
fit into this design domain?
What is the
difference in modeling of scripted code in comparison to compiled code? |
|
|
|
|
|
BUSINESS LOGIC
LAYER DESIGN
REPRESENTING JAVA
COMPONENTS IN UML :
Lecture 15: Modeling J2EE Servlets and EJBs
Lecture 16: Java and J2EE Code Generation
Class discussion:
How do conventional
java programs (console applications) fit into this design domain?
How do CGI programs
fit into this domain |
Boggs Chapter 13
Developing Components and Web Services |
|
|
10 |
|
BUSINESS LOGIC
LAYER DESIGN
REPRESENTING C++
COMPONENTS IN UML :
Lecture 17: C++ and Visual C++ Design and Code Generation
REPRESENTING
VISUAL BASIC COMPONENTS IN UML :
Lecture 18: Visual Basic Design and Code Generation
Class discussion:
How do conventional
C++ programs (console applications) fit into this design domain?
How do CGI programs
(console applications) fit into this design domain?
|
Boggs Chapter 11, 12
& 14 |
|
|
|
|
DATA LAYER DESIGN:
Mapping Persistent Objects to Relational Data Schemas
Lecture 19: Data Orientation, Database Design Principles and Entity
Relationship Diagrams
|
UML data modeling profile
-
create data model
Boggs Chapter 17 |
Quiz 3
(week 7 – end of week 9) |
|
11 |
|
DATA LAYER DESIGN:
Lecture 20: Forward Engineering an Object Model to a Data Model -
Transforming Class diagrams into Entity Relationship diagrams
|
Boggs chapter 18
UML and Data Modeling
JDBC Connection to ALTAMAHA
JDBC driver for sql server
JDBC Tutorial 1
JDBC Tutorial 2
Download VPN client |
|
|
|
|
DATA LAYER DESIGN:
Mapping Persistent Objects to Relational Data Schemas
Lecture 21: Database Normalization and Code Generation
Class discussion: Why
is normalization important? Does RR perform normalization?
|
|
|
|
12 |
|
Review of Phase 2 of
Project |
|