1
Software Engineering – http://www.cs.uta.fi/se University of Tampere, CS Department Jyrki Nummenmaa
SOFTWARE ARCHITECTURES
An architecture contains the information on how the software devides into building blocks.
Software Engineering – http://www.cs.uta.fi/se University of Tampere, CS Department Jyrki Nummenmaa
“GUI-Hanger” syndrome
FuncX(…) { do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; } FuncX(…) { do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; } FuncX(…) { do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; } FuncX(…) { do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; } FuncX(…) { do this; do that; do this; do that; do this; do that; do that; do this; do that; do this; do that; do this; do that; } FuncX(…) { do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; } FuncX(…) { do this; do that; do this; do that; do this; do that; do that; do this; do that; do this; do that; } FuncX(…) { do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; do this; do that; }
Software Engineering – http://www.cs.uta.fi/se University of Tampere, CS Department Jyrki Nummenmaa
Why software architectures?
- Managing complexity
– It is easier to manage complexity, if we divide the application into reasonable parts.
- Maintainability
– Usually a reasonable architecture makes it much easier to maintain the software. – This may actually be the biggest reason for architectural design.
- Efficiency
– A good architecture enables us to isolate the potential causes for inefficiency and makes it possible to scale up performance when load increases.
Software Engineering – http://www.cs.uta.fi/se University of Tampere, CS Department Jyrki Nummenmaa
Architectural Design Choices
Choices Made In Architectural Design:
- Components
- High-Level Design Patterns
- Architectural Styles
- A Possible Framework Architecture
- Processes and Hardware
- Processes and Communication
- Other Architecture-Related Decisions ☺
- > Some of these issues depend on each other strongly.
- Let’s have a look at some historical development.
Software Engineering – http://www.cs.uta.fi/se University of Tampere, CS Department Jyrki Nummenmaa
Monolithic Architecture / 1
- Monolithic systems are not divided into independent parts.
They typically run on a single processing unit (computer).
- There was a time when computers typically did not talk that
much with each other.
- This made monolithic systems more or less the only choice.
- Lack of complicated communication speeds up processing,
but it is hard to improve performance in any other way than increasing processing power for that one computer.
Software Engineering – http://www.cs.uta.fi/se University of Tampere, CS Department Jyrki Nummenmaa
Monolithic Architecture / 2
- Typically and historically, the monolithic system talks with
fairly dumb clients (like terminals).