0% found this document useful (0 votes)
193 views11 pages

s19 Architecture

This document provides the syllabus for the Architectures for Software Systems course offered in Spring 2019. The course objectives are to teach students how to design, understand, and evaluate software systems at an architectural level. Key topics covered include architectural styles, patterns, documentation, quality attributes, and case studies. The course meets twice a week for lectures and once a week for recitations. Assignments include quizzes and four programming assignments. Required texts and the course schedule are also outlined.

Uploaded by

Phu Phan Thanh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
193 views11 pages

s19 Architecture

This document provides the syllabus for the Architectures for Software Systems course offered in Spring 2019. The course objectives are to teach students how to design, understand, and evaluate software systems at an architectural level. Key topics covered include architectural styles, patterns, documentation, quality attributes, and case studies. The course meets twice a week for lectures and once a week for recitations. Assignments include quizzes and four programming assignments. Required texts and the course schedule are also outlined.

Uploaded by

Phu Phan Thanh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

17655

Course Syllabus
Architectures for Software Systems Spring 2019 (17-655 and 17-755)

Course Objectives: Architectures for Software Systems aims to teach you how to
design, understand, and evaluate systems at an architectural level of abstraction. By the
end of the course you will be able to:

• Understand the influence of architectural drivers on software structures.


• Understand the technical, organizational, and business role of software architecture.
• Identify key architectural structures (styles, patterns, tactics, etc.).
• Understand the principles of good architectural documentation and presentation.
• Understand the impact that open source and third party components have on
architectural designs.
• Generate architectural alternatives in a given context and choose among them.
• Understand how formal notations can be used to specify architectures.
• Evaluate the fitness of an architectural design in meeting a set of system
requirements and balancing quality tradeoffs.
• Be aware of the future trends in software architecture.

Course Organization:
Lectures: There will be two lectures weekly. Attendance at lectures is mandatory.
Recitations: To help you master key techniques and tools, provide guidance for
assignments, and review the results of assignments, we will hold several
recitations. Recitations will be held on Fridays. For some recitations, the class will be
divided into smaller groups.
Computing: A personal computer or laptop is required for this course. For the course
assignments we will be using the Java programming language. You will need to
download and install the Java Software Development Kit (the latest version of
J2SE). You may use any editor or development environment that you like, however,
each of the assignments requiring coding can be completed with a simple text editor
and command line prompt.
Course Meetings:
Class: Monday/Wednesday, 1:30PM - 2:50PM
Recitation: Fridays, 12:00PM – 1:20PM
Classroom: 300 South Craig Street, Room 265
Instructors:
David Garlan
[email protected]
WeH 4218
412-268-5056
Office hours by appointment
Assistant: Margaret Weigand ([email protected])
Matthew Bass
[email protected]
300 SCR, Room 267
412-268-6163
Office hours by appointment
Teaching Assistants:
Sujata Telang
[email protected]
300 SCR, Room 273
412-268-4644
Office hours: Fri 1:30-2:30pm

Cody Kinneer
[email protected]
Office hours: Wed 3-4pm

CJ Zhang
[email protected]
Office hours: Mon 3-4pm

Grading Policies:

• Late assignments are penalized 10% per day


• Lowest 2 quizzes are dropped
• No late or makeup quizzes
• Instructor discretion adjustment based on participation, effort, and peer review
Assignment Submission Policies:

• All submitted assignments should be named docx(where AndrewID = your andrew id


and AssignmentNumber = the assignment number)
• The time uploaded will be counted as the submission time
• All assignments are to be submitted to Canvas
• All assignments will be in either Microsoft Word or pdf format

Required Texts:

• Software Architecture in Practice, Third Edition,by Bass, Clements, Kazman,


Addison-Wesley 2013 [BCK13].
• Architecting Software Intensive Systems: A Practitioner’s Guide, Lattanze, Auerbach
2008 [ASIS08].
• Documenting Software Architectures: Views and Beyond, Second Edition, by
Clements, et al. Addison-Wesley 2011 [C+11].
• We will also use a collection of supplementary readings, which will be available
through the course web site.

Schedule

Lecture Date Major Topic Lecture/Recitation Assignments Readings

Mon
Architectures
1 Jan Overview Course Introduction
14

Wed ! Lecture 2 - Exercise


Business Goals and
2 Jan ! ASIS ch 1
Architectural Drivers
16 ! BCK ch 3

Fri
Jan No Recitation
18
Mon
No Class Martin Luther
Jan
King Day
20

Wed
Architecture and
3 Jan A1 Assigned ! BCK ch 4
Lifecycles
23

Fri
R1 Jan Architecture Drivers Quiz
25

! Lecture 4 - Exercise
Mon
Documenting
4 Jan ! C+11 Prolog
Architecture
28
! C+11 ch 9

Wed
Quality Performance and
5 Jan ! BCK ch 8
Attributes Performance Tactics
30

Fri
R2 Feb Architectural Drivers Quiz
1

Mon
Modifiability and
6 Feb A1 Due ! BCK ch 7
Modifiability Tactics
4

Wed
Availability and
7 Feb A2 Assigned ! BCK ch 5
Availability Tactics
6

Fri
R3 Feb Quiz ! ABC Mobile Security
8
Mon Extensibility/Scalability ! GGL03
8 Feb and associated Tactics
11 ! Ham07

Wed ! BCK ch 9
Security and Security
9 Feb
Tactics ! Saltzer et al.
13

Fri
R4 Feb Quiz
15

Mon ! BCK13 pps 215-216, 232-


Architectural
10 Feb Dataflow Systems
Patterns ! Lat99
18

Wed
11 Feb Event Systems ! Hoh06
20

Fri
R5 Feb Quiz
22

Mon ! BCK13 pps 217-226; 235-


Call-and-Return
12 Feb
Patterns ! Par72
25

! L13 Tiered Exercise


Wed A2 Due ! Intel01
Client-Server and
13 Feb
Tiered Systems A3 Assigned ! MS Client-Server
27
! MS N-Tiered

Fri
R6 Mar Quiz
1
! Bak14
Mon
14 Mar Middleware ! https://www.computerworld
4 things/the-necessary-evil-enterp
middleware.html (Links to an ex

! Bur11b
Wed
15 Mar Data Centric Systems ! Cor12
6
! Nak08

Fri No Recitation
R7 Mar Mid-
7 Semester Break

Mon
Mar
11
Spring Break
Wed
Mar
13

Mon ! GLT03
Embedded and Cyber
16 Mar
Physical Systems ! Lee06
18

Wed
Architecture to Architecture Design In
17 Mar ! ASIS Chap 5
Implementation A Project Environment
20

Fri
R8 Mar Quiz ! SJH15
22

Mon
Architecture Design In
18 Mar ! Cli96
An Agile Environment
25
Wed
Implementing An
19 Mar A3 Due ! SJH15
Architecture
27

Quiz
Fri
R9 Initial
Mar
Deliverable for
29
Final Project

Mon ! Reconstruction Exercise


Architecture
20 Apr
Reconstruction ! A4 Assigned
1

Wed
Development
21 Apr ! IEEE Column
Operations
3

Fri
R10 Apr Quiz
5

Mon Using UML to


Architectural
22 Apr Document ! C+11 Appendix A, pps 431
Methods
8 Architectures

Wed
Architecture
23 Apr
Evaluation
10

Fri
R11 Apr Quiz
12

Mon ! ASIS08 ch 7
24 Apr TBD
15 ! Lat12
Wed
Emerging
25 Apr Microservices ! J+18
Topics
17

Fri Quiz
R12 Apr Final Project
19 Check in

! GS06
Mon
Formal Methods and
26 Apr A4 Due ! SG03
Architecture
22
! Optional: http://www.cs.cm

! BCK13 Ch 25
Wed
Architecture Reuse
27 Apr ! Bos09
and Product Lines
24
! GAO95

Fri
R13 Apr Quiz
26

! https://livebook.manning.c
systems/chapter-1/v-11/1 (Links
site.
Mon ! https://keon.io/deep-q-lear
Machine Learning for an external site.
28 Apr
the Software Architect ! Optional: https://becoming
29
dqn-df57e8ff3b26 (Links to an e

! GS07
Wed ! GCSS04
29 May Future Directions
1 ! Skim SG03
! Optional: Gar14

R14 Fri Quiz


May
3

Mon
Final Project
30 May Finals Day 1
Due
6

Wed
31 May Finals Day 2
8

References

Architecting Software Intensive Systems: A Practitioner’s Guide.


ASIS
Lattanze. Auerbach 2008.

Bak14 Middleware. David E. Bakken. 2014

Software Architecture in Practice, Third Edition. Bass, Clements,


BCK
Kazman, Addison-Wesley 2013

Bos09 From Software Product Lines to Software Ecosystems. Jan Bosch.

Bur11b From Login, NoSQL. Greg Burd, October 2011.

Documenting Software Architectures: Views and Beyond, Second


C+11
Edition. Clements, et al. Addison-Wesley 2011.

The Pros and Cons of Adopting and Applying Design Patterns in the
Cli96
Real World. Marshal Cline. 1996

Collaborating Software, Blackboard and Multi-agent Systems & Future.


Cor12
Daniel D. Corkill.

Architectural Mismatch or, Why it’s hard to build systems out of existing
GAO95
parts. Garlan, Allen, Ockerbloom.
Software Architecture: A Travelogue. David Garlan, ACM978-1-4503-
Gar14
2865-4/14/05.

Rainbow: Architecture-Based Self-Adaptation with Reusable


GCSS04 Infrastructure. Garlan, Cheng, Schmerl, Steenkiste. IEEE
Computer 0018-9162/04/2004.

The Google File System. Ghemawat, Gobioff, Leung. SOSP 03 October


GGL03
19-22, 2003 ACM 1-58113-757-5/03/0010.

Embedded Software Engineering: The State of the Practice. Graaf,


GLT03
Lormans, Toetenel. IEEE Software, 0740-7459/03.

Architecture-driven Modeling and Analysis. David Garlan and Bradley


GS06
Schmerl.

The RADAR Architecture for Personal Cognitive Assistance. David


GS07 Garlan and Bradley Schmerl.. International Journal of Software
Engineering and Knowledge Engineering, Vol. 17(2), April 2007.

On Designing and Deploying Internet-Scale Services. James Hamilton,


Ham07
21stLarge Installation System Administration Conference (LISA07).

Programming Without a Call Stack – Event-driven Architectures. Hohpe,


Hoh06
2006.

IEEE Column The Software Architect and DevOps.

N-tier Architecture Improves Scalability, Availability, and Ease of


Integration. Microsoft, “Client-Server Pattern.”
Intel01
https://msdn.microsoft.com/en-
us/library/ee658117.aspx#NTier3TierStyle.

Microservices, The Journey So Far and Challenges Ahead. Jamshidi,


J+18
Pahl, Mendonca, Lewis, Tilkov. IEEE Software 0740-7459/18, 2018.

Lat99 Case Study: An Early Exploitation of Product Lines. Anthony Lattanze.


Cyber-Physical Systems – Are Computing Foundations Adequate?
Lee06 Edward Lee. NSF Workshop on Cyber-Physical Systems, October
2006.

https://docs.microsoft.com/en-us/previous-versions/msp-n-
MS N-Tiered
p/ee658117(v=pandp.10)#NTier3TierStyle

Nak08 Bitcoin: A Peer-to-Peer Electronic Cash System. Nakamoto. 2008.

On the Criteria for Decomposing Systems into Modules. Comm. Of the


Par72
ACM, 15(12):1053-1058, December 1972.

The Protection of Information in Computer Systems. Saltzer and


SS75
Schroeder. MIT 1975.

The Aura Software Architecture: an Infrastructure for Ubiquitous


SG03 Computing. Joao Sousa and David Garlan. CMU-CS-03-183, August
2003.

Impact of Object Oriented Design Patterns on Software Development.


SJH15 Subburaj, Jekese, Hwata. International Journal of Scientific &
Engineering Research, Volume 6, Issue 2, February 2015.

You might also like