CSCI 578 Software Architectures Spring 2024 Homework Assignment 3 Due Wednesday March 27 2024 see D2L for submission details In the previous assignment you developed a UML model of your PATROL app However that model was independent of any mobile platform In this assignment you will adapt your model to comply with Android You are still expected to use UML The UML specification can be found at https www omg org spec UML 2 4 1 Superstructure PDF It depicts the taxonomy of UML diagrams as follows pages 693 694 The paper appended to this assignment provides more information on the relationship between Android and the architectural concepts we have been discussing during the course In addition to making your model Android compliant you should refine it to include the public APIs and any relevant attributes of all components e g Android Activity Service etc Put yourself in the shoes of a potential reader a developer who will implement an Android app according to your model The more design decisions omitted from the model the more assumptions the developer will have to make You should document any departures from your model produced in Homework 2 and the rationale behind each departure You should also explain how and where your model had to change to become compliant with the Android platform You will be evaluated on 1 your model s completeness 2 its compliance with the Android platform and 3 the plain language rationale behind all major architectural decisions you made 1 Like HW 2 you may use as many UML diagrams as needed to describe your architecture You must make your model as if you will implement the PATROL app according to the model In other words this is your opportunity to get familiar with the Android platform and to lay the foundation for the implementation of PATROL Note that the team project will include implementation tasks based on your model details will be provided later Also note that you cannot make drastic changes to the model produced in this assignment during your team project Frameworks You may rely on any version of Android starting with Oreo 8 0 or later Developer information about Android is available from many resources partly because Android is an open platform You may rely on those resources as long as they are consistent with the Android Developer website https developer android com If you are familiar with other frameworks e g Flutter React Native etc that can generate code for the Android platform you are allowed to use them instead Please note however that the TA and instructor may be unfamiliar and thus unable to answer questions about some of those 2 The Journal of Systems and Software 119 2016 31 44 Contents lists available at ScienceDirect The Journal of Systems and Software journal homepage www elsevier com locate jss Software architectural principles in contemporary mobile software from conception to practice Hamid Bagheri a Joshua Garcia a Alireza Sadeghi a Sam Malek b a Nenad Medvidovic a School of Information and Computer Sciences University of California Irvine United States b Computer Science Department University of Southern California United States a r t i c l e i n f o a b s t r a c t Article history Received 3 May 2015 Revised 23 May 2016 Accepted 25 May 2016 Available online 1 June 2016 Keywords Software architecture Android Architectural styles The meteoric rise of mobile software that we have witnessed in the past decade parallels a paradigm shift in its design construction and deployment In particular we argue that today s mobile software with its rich ecosystem of apps would have not been possible without the pioneering advances in soft ware architecture research in the decade that preceded it We describe the drivers that elevated software architecture to the centerpiece of contemporary mobile software We distill the architectural principles found in Android the predominant mobile platform with the largest market share and trace those prin ciples to their conception at the turn of century in software architecture literature Finally to better un derstand the extent to which Android s ecosystem of apps employs architectural concepts we mine the reverse engineered architecture of hundreds of Android apps in several app markets and report on those results 2016 Elsevier Inc All rights reserved 1 Introduction Mobile computing has come a long way from a decade ago De velopment of mobile software used to be an art exercised by a few savvy experienced developers capable of hacking low level C code the lingua franca of mobile software at the time The re sulting software systems were often monolithic rigid one off pro grams which were hard to construct understand and maintain Picco et al 2014 Although software architectural principles had found widespread use in structuring the traditional desktop soft ware at the turn of century Taylor et al 2009 mobile software was often devoid of such structures Picco et al 2014 Medvidovic et al 2003 The dominant preconception was that for developing e cient software suitable for deployment on resource constrained mobile platforms it is necessary to compromise on exibility and decoupling achieved through architectural principles such as decomposition of a software system into components separa tion of communication links in the form of connectors and so on Medvidovic et al 2003 Malek et al 2007 In particular programming language abstractions needed for the realization of Corresponding author E mail addresses hamidb uci edu H Bagheri joshug4 uci edu J Garcia alirezs1 uci edu A Sadeghi malek uci edu S Malek neno usc edu N Medvi dovic http dx doi org 10 1016 j jss 2016 05 039 0164 1212 2016 Elsevier Inc All rights reserved those architectural concepts were deemed unsuitable for use in mobile software Today s mobile software however differs greatly from that of a decade ago Wasserman 2010 Our empirical investigation the details of which are described in Section 5 shows that software architecture plays a signi cant role in the development of modern mobile software Many of the ideas devised in pioneering software architecture work developed around the turn of this century have found a home in the contemporary mobile software In particu lar Android which is the predominant mobile platform realizes many of the architectural principles previously advocated by the software engineering community At rst blush one may conjecture that the increasing promi nence of software architectural principles is a natural progression
View Full Document