SE 480 Software Architecture I
Summary
This
course addresses the critical task of choosing
appropriate software architectures for complex software systems. The
architecture of a system plays a critical role in helping a development
organization meet its business goals. Proper consideration of
architectural
issues, including the use of suitable architectural patterns, can make
a system
easier to build, maintain, and extend. A system's architectural design
is
concerned with describing its decomposition into software elements, the
interfaces of those elements, and the collaborations among
them.
In
this course, we explore three major areas of software
architecture practice:
- Creating, analyzing, and
evaluating an architecture
- Designing an architecture and
moving to an actual system
- Documenting software
architecture
Specific
topics discussed include analysis, selection, and evaluation of
an appropriate architecture; architectural tactics and architectural
patterns;
documenting a software architecture; identifying and
scheduling architectural releases; identifying constraints on and
enablers for architectural decisions;
and analyzing architectural trade-offs. Throughout, we frame all these
topics within the
architectural business cycle (ABC) described in Bass et al. (see Textbooks
and Printed Resources, following) and examine the influence
of the
development organization on the architecture, as well as the influence
of the
architecture on the organization.
This
course is intended to complement the student's
small-system development experience in a course such as SE 450
Object-Oriented
Software Development with practical techniques and artifacts important
in designing and developing large, complex, and long-lived software
systems.
The
course consists of lectures,
reading, individual homework assignments, a mid-term exam, and a final
exam. A team project is also required. Online students work
remotely on the team project with in-class students and/or other online
students. Some individual assignments involve programming. Programming
coursework is graded on functionality, code
quality, and documentation.
Java
is used for source
code examples, homework assignments, assessment questions, and projects.
All
students are expected to read and fully comply with DePaul's Academic
Integrity Policy, the text of which is available at:
http://condor.depaul.edu/~tla/html/student_academic_integrity
Course Goals
Upon
successful completion of this course, the student should:
- Understand the architectural
business cycle (ABC).
- Understand what software
architecture is and is not.
- Be able to apply architectural
patterns in system design.
- Be able to produce Java
programs that demonstrate the use of architectural design patterns.
- Be able to analyze and evaluate
software architectures.
- Be able to perform effective
architectural reviews.
- Be able to document a software
architecture.
- Understand and apply the
principles of architecture-based development.
Texts
Required:
- Software Architecture
in Practice, Second Edition,
by Len Bass, Paul Clements, and Rick Kazman. Addison-Wesley, 2003.
- The text may be supplemented by
papers from the CMU/SEI Software Architecture publication list.
Grading
Unless
otherwise specified, all assignments must be submitted via Course
OnLine (COL) and
are due by 11:59 PM on the assignment due date.The assignment documents may be submitted
in Adobe PDF (preferred) or Microsoft Word (.doc or .docx) format. Any included
figures must be embedded directly within the document, not bundled
separately.
Assignments
are graded on a PASS/FAIL scale. Assignments submitted on-time and
adequately addressing the assignment problem (that is, meeting all
assignment requirements and showing adequate understanding of the
problem) receive a grade of PASS (100%). Assignments that are
incomplete, inadequately
address the assignment problem, or that
are received after the due date receive a grade of FAIL or LATE (0%).
However, students should complete and submit all assignments, even if
they are late. They are reviewed and graded when time permits, and may
be used to determine borderline grades, entirely at the instructor's
discretion.
The
meaning and point value of each of the grades is summarized in the
following table:
| Grade |
Description |
Mark |
Value |
| PASS/PASS+ |
Submitted
on-time and adequately addresses the assignment problem. Meets all
assignment requirements and shows a clear and
comprehensive understanding of the problem.
A P+ indicates that the
student significantly exceeded the requirements for the assignment. It
is a recognition grade only; it has the same point value as a 'P'.
|
P/P+ |
100 |
| PASS- |
Submitted
on-time and adequately addresses the assignment problem. Meets all
major assignment requirements but shows some lack of understanding of
the problem or omits some minor assignment requirement. |
P- |
75 |
| LATE |
Meets
the requirements for a PASS or PASS-, but submitted after assignment
deadline. No explicit point value, but will be considered for
borderline final grades, entirely at the instructor's discretion. |
L |
0 |
| FAIL |
Does not
meet major assignment requirements or shows significant lack of
understanding of the problem. This grade will also be assigned to work
which is deemed to not be the student's own work. |
F |
0 |
The
team project coursework component is done as part of team consisting of
three to five students.
All students on each team are expected to contribute equally to each
assignment. At the end of the
quarter,
students must complete an online peer review of their teammates. The
peer review assesses the participation, quality of work, and
cooperation of all members of the team. The review is used, in part, in
determining each student's team team project grade component,
which constitutes 30% of the overall grade.
The
following table details the grade proportions for all coursework:
| Coursework |
Grade Proportion |
| Homework assignments |
30%
|
| Mid-term exam |
20%
|
| Final exam |
20%
|
| Team project |
30%
|
| Total |
100%
|
Course
letter grades are computed using the following scale:
| If the final numeric grade is less than: |
and greater than or equal to: |
the final letter grade is: |
| - |
93 |
A |
| 93 |
90 |
A- |
| 90 |
87 |
B+ |
| 87 |
83 |
B |
| 83 |
80 |
B- |
| 80 |
77 |
C+ |
| 77 |
73 |
C |
| 73 |
70 |
C- |
| 70 |
67 |
D+ |
| 67 |
63 |
D |
| 63 |
60 |
D- |
| 60 |
- |
F |
Evaluations are a way for students to provide valuable feedback regarding their instructor and the course. Detailed feedback will enable the instructor to continuously tailor teaching methods and course content to meet the learning goals of the course and the academic needs of the students. They are a requirement of the course and are key to continue to provide you with the highest quality of teaching. The evaluations are anonymous; the instructor and administration do not track who entered what responses. A program is used to check if the student completed the evaluations, but the evaluation is completely separate from the student’s identity. Since 100% participation is our goal, students are sent periodic reminders over three weeks. Students do not receive reminders once they complete the evaluation. Students complete the evaluation online in CampusConnect.
Email is the primary means of communication between faculty and students enrolled in this course outside of class time. Students should be sure their email listed under "demographic information" at CampusConnect is correct.
This course will be subject to the academic integrity policy passed by faculty. More information can be found at http://academicintegrity.depaul.edu/
The university and school policy on plagiarism can be summarized as follows: Students in this course should be aware of the strong sanctions that can be imposed against someone guilty of plagiarism. If proven, a charge of plagiarism could result in an automatic F in the course and possible expulsion. The strongest of sanctions will be imposed on anyone who submits as his/her own work any assignment which has been prepared by someone else. If you have any questions or doubts about what plagiarism entails or how to properly acknowledge source materials be sure to consult the instructor.
An incomplete grade is given only for an exceptional reason such as a death in the family, a serious illness, etc. Any such reason must be documented. Any incomplete request must be made at least two weeks before the final, and approved by the Dean of the College of Computing and Digital Media. Any consequences resulting from a poor grade for the course will not be considered as valid reasons for such a request.
Students who feel they may need an accommodation based on the impact of a disability should contact the instructor privately to discuss their specific needs. All discussions will remain confidential.
To ensure that you receive the most appropriate accommodation based on your needs, contact the instructor as early as possible in the quarter (preferably within the first week of class), and make sure that you have contacted the Center for Students with Disabilities (CSD) at:
Student Center, LPC, Suite #370
Phone number: (773)325.1677
Fax: (773)325.3720
TTY: (773)325.7296