Download presentation
Presentation is loading. Please wait.
Published byBonnie Conley Modified over 8 years ago
1
CS 5150 Software Engineering Lecture 12 Software Architecture 1
2
CS 5150 2 Administrivia You should have received comments on your reports Presentation room TBD (today)
3
CS 5150 3 First Presentation Preparation Who is your audience? Primary: Client(s), instructor Secondary: TA Practice! Presenter should stand, others should sit A team member should take notes When asked a question, the presenter should answer Refer to other team members if necessary It is unprofessional to interrupt your colleagues
4
CS 5150 4 SE in the News LinkedIn mobile redesign Fast, easy, reliable House metaphor Mix of native and web Microsoft just announced TypeScript Dart, GWT, Script#
5
CS 5150 5 Software Architecture Lots of pieces of the puzzle Operational definition: Technical decisions made early in a project that are expensive to change Equal parts experience and engineering creativity, with a sprinkling of science A Pattern Language. Ishikawa, Alexander, Silverstein
6
CS 5150 6 Components of Software Architecture Computers and networks (e.g., monolithic, distributed) Interfaces and protocols (e.g., http, ODBC) Databases (e.g., relational, distributed) Security (e.g., smart card authentication) Operations (e.g., backup, archiving, audit trails) Software environments (e.g., languages, source control tools) Testing frameworks
7
CS 5150 7 Language and Framework Choice If you are working in an established application domain, go with a popular choice If you are trying to define a new niche, unusual choices might be appropriate Long-lived projects tend to become multi- lingual No necessarily bad, but carries a high cost
8
CS 5150 8 Machine-Level Concurrency (Distribution) Can/Do components of your application run on different computers? Inherent in application domain: email, big scientific simulations Isolation: security-sensitive data lives on a different machine Convenience: Use an application locally or remotely
9
CS 5150 9 Distribution Has Big Costs Moving data from one machine to another More special cases to handle Testing is much harder Installation and maintenance can be more complex Conclusion: do not split your application into pieces that can run on different computers unless there is a compelling reason
10
CS 5150 10 Modules and Interfaces Architecture is all about Modules (sub-components, classes, pieces,...) Interfaces (methods, protocols, languages, data types,...) Goal: Module interactions are strictly governed by interfaces Cognitive burden Replacement Human work parallelization
11
CS 5150 11 Architectural Pattern: Pipes Chain or pipe of components
12
CS 5150 12 Architectural Pattern: Three Tiers Popular in web design Many variations on the theme exist How much logic belongs in Presentation versus Application?
13
CS 5150 13 Architectural Pattern: Repository Advantage: Flexible pattern for data-intensive applications Disadvantage: Repository can be a bottleneck and an artificial block to code evolution
14
CS 5150 14 Improvement on Repository Pattern
15
CS 5150 15 Architectural Patterns for Distributed Data Mirrors Caches Single-owner Consistency and performance are hard to balance properly in distributed data schemes
16
CS 5150 16 Good Software Architecture How do you know if an architecture is good? Experience always plays an important role Do the module boundaries (interfaces) correlate well with actual interactions in the application? Direct invocation Data send/receive Indirect invocation Indirect data paths Leaky abstractions!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.