1. Homepage
  2. Programming
  3. [2022] Queensland - CSSE6400 Software Architecture - Assessment - Documenting an Architecture

[2022] Queensland - CSSE6400 Software Architecture - Assessment - Documenting an Architecture

Engage in a Conversation
The University of QueenslandCSSE6400Software Architecture Documenting an Architecture

Documenting an Architecture Software Architecture CourseNana.COM

Semester 1, 2022 CourseNana.COM

  CourseNana.COM

Summary CourseNana.COM

In this assignment, you will demonstrate your ability to understand and subsequently communicate the architecture of an existing software project. CourseNana.COM

1. First, you need to choose a suitable open source software project. The project must have non-trivial CourseNana.COM

functionality and architecture. CourseNana.COM

2. You will write a report which describes the architecture of your selected software project. CourseNana.COM

  CourseNana.COM

1 Introduction CourseNana.COM

The digital world relies heavily on open source software, as seen by the recent log4j vulnerability.1 Fortunately, open source developers often maintain high quality documentation for the users of their projects. Unfortunately however, many open source projects do not maintain the same high quality documentation for the architecture of their software projects. This can cause difficulty for developers who want to contribute to the project, but first need to understand it. CourseNana.COM

  CourseNana.COM

In this assignment, you have the chance to right this wrong. Your task is to find an open source software project with a sufficiently complex architecture and document it. You may optionally choose to share this documentation with the project developers. You are encouraged to do this, as the perspective of a newcomer to a project is often invaluable to the seasoned developers. CourseNana.COM

  CourseNana.COM

Before looking for projects, read some of the architecture documentation written by students at TU Delft: https://delftswa.gitbooks.io/desosa2016/content and https://delftswa.github.io. CourseNana.COM

  CourseNana.COM

It would also be advantageous to read through one of the architecture descriptions in either volume of The Architecture of Open Source Applications: http://aosabook.org. CourseNana.COM

  CourseNana.COM

2 Finding a Project CourseNana.COM

Criteria for the software project: CourseNana.COM

• The project cannot be covered in the tutorials or by the TU Delft students above. CourseNana.COM

• The project must have at least one release within the last year. CourseNana.COM

• The project must be an executable system or library with a significant software structure. (e.g. A CSS CourseNana.COM

library is not executable nor does it have a significant software structure.) CourseNana.COM

Places to look for projects: CourseNana.COM

• GitHub explore page: https://github.com/explore; CourseNana.COM

• Apache project list: https://apache.org/index.html#projects-list; CourseNana.COM

• Awesome Open Source https://awesomeopensource.com/; CourseNana.COM

• in class discussion with other students; CourseNana.COM

• or, ask your tutor. CourseNana.COM

  CourseNana.COM

3 Report Structure CourseNana.COM

  CourseNana.COM

Title                            Name of the software project. CourseNana.COM

Abstract                     Summarise the key points of your document. CourseNana.COM

Introduction              Describe the software project, explaining its key functionality and target users. CourseNana.COM

ASRs                          Describe the project’s architecturally significant requirements. CourseNana.COM

Context                      Provide an overview of the software system’s context and its external dependencies. CourseNana.COM

Architecture              Describe the software’s architecture in detail. CourseNana.COM

Critique                      Evaluate the software’s architecture, describing its advantages and disadvantages. CourseNana.COM

Conclusion                 Highlight the key points or lessons learnt about the software’s architecture. CourseNana.COM

  CourseNana.COM

4 Report Content CourseNana.COM

  CourseNana.COM

How you present the information in your report, is up to you. You need to select an appropriate notation to provide a visual representation of the software’s architecture. You need to select appropriate ways of describing the architecture. CourseNana.COM

  CourseNana.COM

The “Architectural Views” notes [1] describe different types of views that can be used to describe aspects of a software architecture. The notes also describe two different notations that can be used to describe parts of a software architecture. You need to decide which views are appropriate to provide an accurate, informative, and complete description of the project’s architecture. The notation you use to provide visual information about the architecture must convey that information appropriately. Your textual commentary needs to expand on the information provided in the diagrams. CourseNana.COM

  CourseNana.COM

The introduction section of your report must include a link to the project’s main repository (e.g. Ruby on Rails Repo2) and, if useful, any other important sites related to the project (e.g. Ruby on Rails3). The introduction should provide enough information so that a reader who is not familiar with the project can understand what it delivers. CourseNana.COM

  CourseNana.COM

You need to identify what you think are the project’s architecturally significant requirements (ASRs) and, in particular, the quality attributes that are important to the project’s success. You need to justify why these requirements are important. You should consider how these attributes would be prioritised to make decisions when trade offs need to be made in the design. Your critique should describe how well the software’s architecture supports delivering the ASRs that you identified as being important. CourseNana.COM

  CourseNana.COM

The context should help the reader to understand who uses the system and its dependencies on other systems. It should elaborate on the general introduction of the system to provide a starting basis to understand the software system’s architecture. CourseNana.COM

  CourseNana.COM

Provide a detailed description of the software system’s architecture. It should cover all important aspects of the architecture. You should include diagrams to help the reader understand the details of the architecture. You should describe any security risks inherent in the software architecture. Your critique should evaluate and discuss what security design principles appear to have been followed in the design of the software and how well they guard against the security risks. Your critique should also assess the advantages and potential drawbacks of the architectural design. CourseNana.COM

  CourseNana.COM

You are not expected to get down to the level of describing the detailed design of the software. You should not need to provide class diagrams for the entire system. You may need to provide class diagrams to highlight important features supported by the architecture. For example, a class diagram showing a plug-in API, and how the application uses a plug-in, would be informative. CourseNana.COM

  CourseNana.COM

You may use tools to generate diagrams and to extract information from source code that is used to create diagrams or other documentation artefacts. CourseNana.COM

  CourseNana.COM

The audience of your report is software developers who are familiar with software architecture and design. You may assume that the reader is familiar with UML and C4 notations. CourseNana.COM

  CourseNana.COM

5 Presentation CourseNana.COM

  CourseNana.COM

The presentation assessment task scheduled later in the semester will be based on the project you select for this assignment. In the presentation you will provide CourseNana.COM

CourseNana.COM

CourseNana.COM

CourseNana.COM

Get in Touch with Our Experts

WeChat (微信) WeChat (微信)
Whatsapp WhatsApp
The University of Queensland代写,CSSE6400代写,Software Architecture代写, Documenting an Architecture代写,The University of Queensland代编,CSSE6400代编,Software Architecture代编, Documenting an Architecture代编,The University of Queensland代考,CSSE6400代考,Software Architecture代考, Documenting an Architecture代考,The University of Queenslandhelp,CSSE6400help,Software Architecturehelp, Documenting an Architecturehelp,The University of Queensland作业代写,CSSE6400作业代写,Software Architecture作业代写, Documenting an Architecture作业代写,The University of Queensland编程代写,CSSE6400编程代写,Software Architecture编程代写, Documenting an Architecture编程代写,The University of Queenslandprogramming help,CSSE6400programming help,Software Architectureprogramming help, Documenting an Architectureprogramming help,The University of Queenslandassignment help,CSSE6400assignment help,Software Architectureassignment help, Documenting an Architectureassignment help,The University of Queenslandsolution,CSSE6400solution,Software Architecturesolution, Documenting an Architecturesolution,