Instructor:
Office: EC
3.204, ECSS, UTD
Office Hours: Tuesdays 1:00pm -
3:00pm ; or by appointment
Lectures: Time: TuTh 5:30PM-6:45PM, Room: SCI 3.250
E-mail: chung@utdallas.edu
Phone:
972-883-2178
Web page: http://www.utdallas.edu/~chung/SA/syllabus.htm
( eLearning)
TA: Ahmad Alshomar (ahmad.alshomar@utdallas.edu ; Office ECSS 3.415: ; Office Hours: TBA )
Textbook: Lecture Notes
Primary
Reading: Software
Architecture: Perspectives on an Emerging Discipline, Mary Shaw and David
Garlan, Prentice hall
References:
Software Architecture
on Google Scholar:
Documenting Software
Architectures: Views and Beyond, P. Clements, F. Bachmann, L. Bass, D. Garlan,
J. Ivers, R. Little, R. Nord and J. Stafford, MA: Addison-Wesley, 2003.
Software Architecture
in Practice,
L. Bass, P. Clements & R. Kazman, Addison Wesley.
Architecting Software
Intensive Systems: A Practitioner’s Guide, A. Lattanze, Boca Raton, FL: Auerbach
Publishing, 2008.
Component-Based
Software Engineering,
Edited by A. W. Brown, IEEE Computer Society
Design Patterns: Elements of Reusable
Object-Oriented Software,
Eric
Gamma, Richard Helm, Ralph Johnson and John Vlissides, Addison-Wesley
Design Patterns for
Object-Oriented Software Development, Wolfgang Pree, Addison-Wesley Longman
Seamless Object-Oriented
Software Architecture: Analysis and Design of Reliable Systems,
Kim Walden & Jean-Marc Nerson,
Prentice Hall
Designing Enterprise Applications with the
J2EE Platform, 2/E,
Inderjeet
Singh, Beth Stearns, Mark Johnson, The Enterprise Team, Addison Wesley &
Benjamin Cummings
Understanding
CORBA: The Common Object Request Broker Architecture,
Randy
Otte, Paul Patrick and Mark Roy, Prentice Hall
The
Essential Client/Server Architecture: Survivor's Guide,
Robert
Orfali, Dan Harkey and Jeri Edwards, John Wiley & Sons
Network
Application Support for Building Open Systems, James Martin and Joe Leben,
Digital Press
Non-Functional
Requirements in Software Engineering,
Lawrence Chung, Brian Nixon, Eric Yu and
John Mylopoulos, Kluwer Academic Publishing
The Unified Modeling Language User Guide,
Booch, Rumbaugh, Jacobson, Addison Wesley, 1999
Prerequisites:
CS/SE 3354 Software Engineering
or Equivalent
Objectives: Concepts and
methodologies for the systematic analysis, development, evolution, and reuse of
software architectural design. Common software architectural styles, elements
and connectors. Decomposition and composition of software functionality.
Non-functional requirements as criteria for analyzing trade-offs and selecting
among architectural design alternatives. State of the practice and art.
·
Ability
to understand model of software architecture
·
Ability
to understand software architecture description (module interconnection
languages, abstract data types, axiomatic specification)
·
Ability
to understand software architecture styles
·
Ability
to understand software architecture analysis
·
Ability
to understand design patterns
Computer
Usage:
You can obtain a demo version of Rational Rose from the IBM
Rational web site to run the program(s)
on your home PC. If you wish, you can
use the facilities at UTD too (EC4.408 and EC4.406). The labs at UTD have PC’s
with Rational Rose installed on them.
There are several open access labs.
You will need to get a user ID for the lab. The McDermitt PC lab number is 972-883-2641
and the web site is http://www.utdallas.edu/ir/tcs
Course Project: There will
be a 2-phase project.
Each project phase should be submitted by the
expected due date in the beginning of the class that day – one hardcopy per
team and all the softcopies should be available on the team web site. Project phases should be submitted with project
phase #, class/section, team name; team URL; (rotating) team leader(s); and for
each member of the team: student name, student ID, student email address,
percentage of contribution and signature, written on the first page. There
should also be a description of all the meeting conducted, and for each
meeting: date, location, agenda, participants, and summary.
The project will be done by teams of
approximately 4 students (The team size will depend on the number
of students in the course, and more on this will be discussed in class). All
students in a team will get the same mark for the work they do unless they
unanimously agree (in writing) to an unequal division. You are to choose your
own team members. An orphan will be assigned to a team by the instructor.
For each
deliverable, there should be at least one team leader, who coordinates
communication and deliverable submission.
Project I
under development should be presented approximately 1 week before the final
submission due date; Project II under development should be submitted
approximately 1 week before the final submission-presentation due date.
The first
or second page of your deliverable should describe all the meetings your team
had, while indicating the participants in each of the meetings. This page
should be signed by all members of the team.
The last
page of your deliverable should describe why you believe your deliverable is at
least as good as, or better than, any other team’s work, based on your
observation on other teams’ presentations.
Exams:
There will be two
tests, one in the middle (test 1) and the other at the end (test 2) of the
course.
Term
Paper: Each
paper can be a survey paper or a new research paper. A new research paper can
be about new ideas, case studies or implementations.
The
topic of the paper should be discussed with the course instructor (during the
instructor’s office hours).
Each interim progress also
needs to be discussed (More details on this later).
Late
work: Any assigned work will have 10 points
deducted for each week passed.
Grading:
Project
(approx. 10 + 20) |
30 % |
Test 1 |
25 % |
Test 2 |
40 % |
Class/Project
Participation |
5 % |
Class Attendance Policy (departmental): Three consecutive absences leads to one letter grade drop. Four consecutive absences leads to an F, modulo COVID-19 polies.
Important
Dates:
1.
August
22 (Tuesday) - First day of class for
this course
2.
August
31 (Thursday) - Preliminary Project Plan (Project snapshot, Team organization,
Team leaders/deliverable, Team web site URL, Tools, etc.)
3.
September
28 (Thursday)/October 3 (Tuesday) –
Interim Project I (Preliminary definition [PDF]) PPT
submission & presentation;
4.
October
5 (Thursday) – Test 1
5.
October
10 (Tuesday) – Final Project I
submission
*Devise your own template, but you could consider templates
available on the Internet as a reference
6.
November
14 (Tuesday) – Interim project II ([PDF]) document submission
7.
November
16 (Tuesday) – Test 2
November 20-26 Fall Break + Thanksgiving
Holidays
8.
November
28 (Tuesday) / November 30 (Thursday) –
Final Project II submission, presentation and demo
At the time of the demo, a hardcopy should be submitted,
which should include;
1.
Final
project plan
2.
Project
I
3.
Project
II
4.
Any
dependency/traceability between Project I and Project II
all in one document.
1. Presentation slides 1 & 2
! Please email the url to the instructor where all the files
can be found as a single zip file !
9. December 5 (Tuesday) Optional, if any discussions are needed, either individually or group-wise
** August 22 (Tuesday) – December 5
(Tuesday): communications and revisions
of the project plan
Cheating/Dishonesty:
The University of Texas System Policy on
Academic Honesty (The Regents and Regulations, Part One, Chapter VI, Section 3,
Paragraph 3.22:
Any student who commits an act of
scholastic dishonesty is subject to discipline. Scholastic dishonesty includes
but is not limited to cheating, plagiarism, collusion, the submission for
credit of any work or materials that are attributable in whole or in part to
another person, taking an examination for another, any act designed to give
unfair advantage to a student or the attempt to commit such acts.
The minimum penalty for academic dishonesty is a failing grade
(zero)
VIDEO CLIP:08/18/2020,
1st class --- Course Syllabus: Course Organization
Houses, architectural
blueprints
Introduction to Software Architecture [PostScript]; [PDF]; [PPT]
[After class on 08/20/2020] Houses, architectural blueprints [PPT]
[After class on 08/25/2020] Introduction to Software Architecture [PPT]
[After class on 08/27/2020] Introduction to Software Architecture [PPT]
- Unix OS architecture [1] [2]
- Pipe-&-Filter architectures [1]
VIDEO CLIP:08/20/2020,
Houses, architectural blueprints
VIDEO CLIP:08/25/2020, Introduction to Software Architecture
VIDEO CLIP:08/27/2020, Introduction to Software Architecture
Classical Module Interconnection Languages [PostScript] [PDF] [Powerpoint];
Abstract Data Types [PostScript] [PDF] [Powerpoint]
VIDEO CLIP:09/22/2020, - Abstract Data Types
VIDEO CLIP:09/24/2020, - 1st 4 presentations on Interim I
VIDEO CLIP:09/29/2020, - 2nd 4 presentations on Interim I
Module Decomposition Issues
Overview [PostScript] [PDF]; [PPT]
[After class on 09/01/2020] Overview [PPT]
Architectural Alternative I [PostScript] [PDF]; [PPT]
[After class on 09/01/2020] Architectural Alternative I [PPT]
Architectural Alternative II [PostScript] [PDF]; [PPT]
[After class on 09/08/2020] Architectural Alternative II [PPT]
Architectural Alternatives III & IV [PostScript] [PDF]; [PPT]
[After class on 09/15/2020] Architectural Alternative III & IV [PPT]
Some Diagrams of Implicit Invocation Style
4 + 1 View (concerning use of UML/OO)
VIDEO CLIP:09/01/2020, Overview; 1st slide of Architectural Alternative I
VIDEO CLIP:09/03/2020, 2nd - last slides of Architectural Alternative I
VIDEO CLIP:09/08/2020, - 1st part of Architectural Alternative II
VIDEO CLIP:09/10/2020, - 2nd part of Architectural Alternative II
VIDEO CLIP:09/15/2020, - 1st part of Architectural Alternatives III & IV
VIDEO CLIP:09/17/2020, - 2nd part of Architectural Alternatives III & IV
Data Flow [PostScript] [PDF][PPT]
Formalization of A Simple Oscilloscope [PowerPoint]
VIDEO CLIP:10/06/2020, - 1st part of Data Flow
VIDEO CLIP:10/08/2020, - 2nd part of Data Flow
VIDEO CLIP:10/13/2020, - 3rd part of Data Flow
VIDEO CLIP:10/15/2020, - 4th part of Data Flow: Formalization of Oscilloscope
VIDEO CLIP:10/20/2020, - 5th/last part of Data Flow: Formalization of Oscilloscope
Repositories [PostScript] [PDF] [PPT]
VIDEO CLIP:10/22/2020, - 1st part of Repositories
VIDEO CLIP:10/27/2020, - 2nd part of Repositories; and 1st part of Events
Events (and if time permits, Process Control) [PostScript] [PDF] [PPT]
VIDEO CLIP:10/29/2020, - 2nd part of Events
End of the Primary Reading’s Material
VIDEO CLIP:11/03/2020, - last part of Events; Role of Java (JEM); 1st part of Design Patterns
Client Server [PostScript] [PDF] [PPT]; Last Two Pages [PostScript] [PDF]
VIDEO CLIP:11/12/2020, - 2nd part of Client Server
Middleware [PostScript]
[PDF];
- J2EE: Why, What and
How
Design Patterns [PostScript] [PDF] ; An Alternate
[After class on 11/05/2020] Design Patterns [PPT]
VIDEO CLIP:11/05/2020, - 2nd part of Design Patterns
VIDEO CLIP:11/10/2020, - 3rd part of Design Patterns; 1st part of Client Server
VIDEO CLIP:11/19/2020, - Project II final presentations, with a number of comments included
Other Topics: Service-Oriented
Architectures (SOA), 4+1 Views, Domain-Specific Architectures, System
Integration, Architecting Processes
Priorities: Class Discussions, Lecture
Notes, Primary
Other relevant
material:
More on
Component Diagrams & Architectures
Document
Templates – general IEEE
Design Document Example – System
Design; Object
Design
Test
Plan Template; Test Case
Specification Template
Course Project - Part I [PostScript] [PDF]
Sample Deliverable 1 Sample Deliverable 2
Course Project - Part II [PostScript] [PDF]
Software for Old KWIC Project implementation on J2EE Platform
Tutorial by Yun on KWIC Project implementation on J2EE Platform
Course Project - Part I [PostScript] [PDF]
Sample Deliverable 1 Sample Deliverable 2
Course Project - Part II [PostScript] [PDF]
Sample Deliverable 1 Sample Deliverable 2
Course Project - Part III [PostScript] [PDF]
Software for Old KWIC Project implementation on J2EE Platform
Course Project - Part III Fall 2001 [PostScript] [PDF]
Course Project - Part III OLD [PostScript] [PDF]
Some reference material:
Four Architectures for the NFR Assistant [PDF]
Int. Workshop on Architectures for Software Systems [PostScript] [PDF]
Int. Conf. on Software Quality [PostScript] [PDF]
OMG-DARPA-MCC Workshop on Compositional Software Architectures [PostScript] [PDF]
Software Architecture --- 1st Working IFIP Conf. on Software Architecture (WICSA1) [WORD6.0] [XML] [PDF]
Sample Tests
Sample Test 1 [PostScript] [PDF]
Sample Test 2 [PostScript] [PDF]
Sample Test 3 [PostScript] [PDF]
Sample Test 4 [PostScript] [PDF]
Sample Test 5 [PDF]
Sample Test 6 [PDF]
Sample Test with Answers [PostScript] [PDF]
Term Papers - Spring 2005
Current Semester’s Term Papers
Previous Semesters’ Sample Term Papers
Some Interesting Links:
How to write unmaintainable code
Last updated: January 5, 2005
Job Postings: