Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Student: Zhanhui Lin u6022913Supervisor: Henry Gardner
Software ArchitecturesFor
Techlauncher
COMP 4560 (12 units)
What is architecture?
“Architecture is both the processand the product of planning,designing, andconstructing building orany other structures.”-- Wikipedia
2
https://www.sketchup.com/sites/www.sketchup.com/files/molecule_image/Disc-Arch-S2-Visualize.png
What is software architecture?• Software architecture refers to
the high-level structures of a software system.
• Structures are interleaved with each other
• Without a good software architecture, it will be impossible to implement all of the desired quality attributes.
3
https://www.tutorialspoint.com/software_architecture_design/images/software_architecture_types.jpg
Motivation
• Different software architectures have their own characteristics, and usually developers have little idea about how to use a software architecture in a proper way.
• My project aims to explore how to apply the concepts of design patterns and clean architecture in real-world software and how to help developers to recognize how to make their software architectures better.
4
Introduction to “Clean Architecture”
5
From an abstract level to general level from the inside to the outside• Entities include enterprise business
rules and depends on domain models. • Use cases are application business
rules; they depend on the inner layer of entities
• External interfaces: The most appropriate framework for the whole software
• Adapter layer: 1. Implements interfaces which are
supported by use cases 2. Control data flow 3. Interacting with applications
https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
Why “Clean Architecture” ?
• Independent of frameworks• Testable• Independent of database• Independent of UI• Independent of any external agency
6
Introduction to Django Framework• Django is a high-level web framework written in the
Python programming language which is effective and efficient on the development and maintenance of websites.
• Used in Techlauncher projects!• Advantages:
– Fast– Fully loaded– Secure– Scalable– Versatile
7
Two case studies
• FutureYou
• ANU Fifty50
8
Analysis Metholdology
• Concepts from “Clean Architecture” by Robert C Martin, a.k.a. Uncle Bob
• Properties analysed following ideas from the dissertation: “Architectural styles and the design of network-based software architectures ” byRoy Fielding
• Hypothetical scenarios evaluated to analyse properties such as “extensibility”
9
FutureYou
• An online gamifying career planning and development platform, supported by ANU Student Experience & Career Development (SECD).
• A web-application
• Career development & Engage in career life early.
10
Sample page: FutureYou
11
Results
12
ANU Fifty50
13
• ANU Fifty50 is a student-run online mentoring platform
• Aims to help mentees (junior students) to search, find, and pair with their mentors (senior students) automatically.
• Mentees can have tutorials with their mentorsand coaching content will be released every two weeks.
A poster of ANU Fifty50
14
Results
15
Comparison
16
Conclusion & Future work
• Both FutureYou and ANU Fifty50 have their ownfeatures.
• More comprehensive hypothetical scenarios • More researches on software architecture
17
Thank you!
18
Reference1. Chung, T. (2017). How to Organize CLEAN ARCHITECTURE to Modular Patterns in 10 Minutes.
[online] Hacker Noon. Available at: https://hackernoon.com/applying-clean-architecture-on-web-application-with- modular-pattern-7b11f1b89011
2. Deutsch, D. (2018). A quick introduction to clean architecture. [online] freeCodeCamp.org News. Available at: https://medium.freecodecamp.org/a- quick-introduction-to-clean-architecture-990c014448d2
3. MDN Web Docs. (2019). Django introduction. [online] Available at: https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Introduction
4. Fielding, R. (2000). Architectural styles and the design of network-based software architectures. Irvine: University of California, Irvine ©2000, p.162.
5. Hansen, S. (2017). Advantages and Disadvantages of Django. [online] Hacker Noon. Available at: https://hackernoon.com/advantages-and-disadvantages-of- django-499b1e20a2c5
6. Martin, R. (2018). Clean Architecture. Boston Columbus Indianapolis New York San Francisco Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montreal Toronto Delhi Mexico City São Paulo Sydney Hong Kong Seoul Singapore Taipei Tokyo: Prentice Hall.
7. En.wikipedia.org. (2019). Architecture.8. Google Docs. (2018). Techlauncher_Poster.pdf. [online] Available at:
https://drive.google.com/file/d/0Bw7MUyh12MoYVDNnWVN6cXgzTkk/view
19