Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 5150 Software Engineering Lecture 12 Software Architecture 1.

Similar presentations


Presentation on theme: "CS 5150 Software Engineering Lecture 12 Software Architecture 1."— Presentation transcript:

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!


Download ppt "CS 5150 Software Engineering Lecture 12 Software Architecture 1."

Similar presentations


Ads by Google