.

Sunday, April 7, 2019

Analysis and Design of Software Architecture Essay Example for Free

abbreviation and bod of softw atomic number 18 product Architecture EssayOutline1 2 3 4 5 6 7 8 organic evolution Process Requirements Quality Attributes Run conviction QA Non-run era QA Requirements synopsis example architectural abstract concept architectural ViewsDenis Helic (KMI, TU Graz)SA depth psychology and imageOct 19, 20112 / 78Development ProcessMethodologyDierent softw atomic number 18 package development processes have softw atomic number 18 architecture as a get down of the process Rational unied process Spiral development method acting Agile development method Evolutionary rapid developmentDenis Helic (KMI, TU Graz)SA synopsis and curriculummeOct 19, 20113 / 78Development Process describe of SA in SDP visualize Source Software Architecture Primer by Reekie, McAdam Denis Helic (KMI, TU Graz) SA compend and protrude Oct 19, 2011 4 / 78Development ProcessMethodologyAfter the initial requirements analytic thinking but before software design The rst archite cture is also a communication basis with the customer Inputs for the development of the architecture 1 2Requirements shirktext (technical, organizational, business, )Denis Helic (KMI, TU Graz)SA depth psychology and headingOct 19, 20115 / 78Requirements abbreviationAt the beginning in that location is unceasingly a customer who wants a specic software carcass Customer wishes are always in act uponal Interviews, some documents, some Excel tables, We read to analyze such(prenominal) informal records and structure it Requirements technology is a huge eld but we just illust dictate here unrivaled possibilityDenis Helic (KMI, TU Graz)SA compendium and traffic patternOct 19, 20116 / 78Requirements analytic thinkingThe results of the requirements analysis1 2Functional requirements Non-functional requirements(a) Run clipping qualities (b) Non-runtime qualities3contextual requirementsDenis Helic (KMI, TU Graz)SA compend and introductionOct 19, 20117 / 78RequirementsFunctional requirementsA technical expression of what a trunk leave do Arise from stakeholder commands Structured language software requirements specication Use cases structured translation of procedurer interactions with the administration Formal lays e. g. state-chartsDenis Helic (KMI, TU Graz)SA psychoanalysis and foundationOct 19, 20118 / 78RequirementsNon-functional requirementsOther ineluctably than nowadays functional or business-related Gener all in ally expressed in the form of quality-attributes Runtime quality attributes Non-runtime quality attributesDenis Helic (KMI, TU Graz)SA abridgment and architectural planOct 19, 20119 / 78RequirementsContextual requirementsWhat technology is purchasable? Expertise of the development team Previous have a go at it of substance ab users/customers Technical, business, market, legal, ethical, Denis Helic (KMI, TU Graz)SA psychoanalysis and nameOct 19, 201110 / 78Quality AttributesNeed to address QAsWithout whatsoever need for operation, scalability, any implementation of functionality is delightful However, we always need to take into account the broader context E.g. hardware, technological, organizational, business, The functionality essential be there but without proper addressing of QA it is worth nothingDenis Helic (KMI, TU Graz)SA summary and DesignOct 19, 201111 / 78Quality AttributesInuence on QAsTypically, a single parcel endure not address a QA completely e really QA is inuenced by multiple helpings and their interactions E.g. a UI component has a high degree of usability however, usability of the form is compromised if a data management component has poor causeance in accessing the data users need to detainment yearn poor usability Components and their interactions software architecture QAs are directly inuenced by software architectureDenis Helic (KMI, TU Graz)SA psychoanalysis and DesignOct 19, 201112 / 78Runtime QAPURSPURS (performance, usability, dependability, security) motion time performance, memory, disk, or ne 2rk utilization Usability human factors, wholesome-situated to learn, comfy to use, Reliability approachability, safety, guarantor authentication, data protection, Denis Helic (KMI, TU Graz)SA summary and DesignOct 19, 201113 / 78Runtime QA movement date performance is most obvious Measured in the number of operations per second Also, latent period the time from receiving an input and producing an output Other measures memory, disk, interlocking utilization or throughputDenis Helic (KMI, TU Graz)SA synopsis and DesignOct 19, 201114 / 78Runtime QAPerformanceDierent measures are typically traded o against each different E.g. increasing throughput whitethorn increase latency Time performance power be increased with more memory True performance of the remains is not only dened by performance of single components But also by their interactions and the overall processes in the frameDenis Helic (KMI, TU Graz)SA abbreviation and D esignOct 19, 201115 / 78Runtime QAPerformance factorsChoice of algorithms Database design Communication imagery managementDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201116 / 78Runtime QAChoice of algorithmsPerformance of algorithms is measured by their complexness (big O) E.g. linear complexity O(n) Running time increases in direct proportion to the size of the data E.g. polynomial complexity O(n2 ) It does not scale double size of the data running time increased by factor of 4 Goal O(nlog (n))Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201117 / 78Runtime QADatabase designPerformance of database queries keister dominate the overall performance The design of the tables has enormous impact on the overall performance Techniques to modify it lazy evaluation, replication, caching Some additional cost to manage replication and/or caching In-memory databases (real-time systems) Developing a parvenueborn database (search engines)Denis Helic (KMI, TU Graz)SA A nalysis and DesignOct 19, 201118 / 78Runtime QACommunicationNetwork hit Package data gibe to a protocol, sending data over network individually layer means additional overhead Think how to use network packaging binary data as XML? Use more condense data formattings, e.g. JSON vs XMLDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201119 / 78Runtime QAResources managementOverloaded components need to be avoided A range of mountains is only as strong as its weakest link E.g. a single-threaded shared resource is in use all other threads are jam Very dicult to track downDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201120 / 78Runtime QAUsabilityUsability is a very rich eld If usability is big you will need a usability expert Combination of many factors responsiveness, pictorial design, user expectations, condence Measuring with time taken to complete task, error rate, time to response, Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201121 / 78Runtime Q AResponsiveness and data availabilityAn example of dealings amidst QAs Usability requires that the system responds to user actions within a certain period of time If it is a complex system this need translates into performance along the cartroad of the user actionDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201122 / 78Runtime QAResponsiveness and data availabilityFigure Usability vs. Performance Source Software Architecture Primer by Reekie, McAdamDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201123 / 78Runtime QADiscussion on traffic between QAsThis draw shows that we need to pay attention to tuning communicationbetween B and Y Performance of the communication channel is a con taking over of a usability requirement Do we need to give birth security of the communication channel?Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201124 / 78Runtime QADiscussion on relations between QAsThis diagram shows that we need to pay attention to tuning communicat ion between B and Y Performance of the communication channel is a consequence of a usability requirement Do we need to fill-in security of the communication channel? We assert QAs always only as a response to user necessarily Never because it is needed anywayDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201124 / 78Runtime QADiscussion on relations between QAsIf we post security even if it is not needed Very often QAs elaborateopposing forces on the system Security requires a lot of checking performance will suer usability will suer A minimalistic approach develop only what is requiredDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201125 / 78Runtime QAReliabilityIn traditional engineering disciplines reliability measures the failure rate of the system Failure rate specied by mean time to failure MTTF A related measure mean time between failures MTBF MTTR is mean time to repair A is availabilityDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201126 / 7 8Runtime QAReliabilityMTBF = MTTF + MTTR A= A=MTTF MTBF MTTF MTTF +MTTRE.g. expected availability of Web systemsDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201127 / 78Runtime QAReliabilityMTBF = MTTF + MTTR A= A=MTTF MTBF MTTF MTTF +MTTRE.g. expected availability of Web systems 1 (always up-and-running) = MTTF Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201127 / 78Runtime QAReliabilityIncreasing reliability involves testing However, impossible to prove that a system is correct, i.e. without bugs acceptableness of errors depends on thenature of a system Personal desktop use bugs are typically tolerated enterprisingness level medium reliability level High-reliable systems bugs feces be fatalDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201128 / 78Runtime QASecurityIncreasingly important aspect of systems is security Because systems are exposed to threats Especially networked systems As with other QAs security is a restore of related responses to user needsDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201129 / 78Runtime QAAuthenticationRequirement for identication of users with a system Users present credentials so that the system send away identify them Typically username and password Other forms certicates, smart cards, biometric featuresDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201130 / 78Runtime QA leaveAfter authentication authorization which functions and what data is available for users This cultivation is captured in an authorization clay sculpture gateway control lists (ACL) dene who layabout access and how a resource might be accessed E.g. read access, carry through access, delete access, Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201131 / 78Runtime QAAuthorizationDrawbacks of ACLs It is resource based, e.g. a page in a CMS Often, authorization needs to address functions or tasks Also, managing of ACLs is dicult, e.g. subresources of resources Also, performance problems wi th checkingDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201132 / 78Runtime QAAuthorizationAnother model business office-based access control (RBAC) Roles are apply to manage many-to-many relations between users and permissions Roles are used to represent the job functions, e.g. author, teacher, student in an E-learning system Permissions are modeled as qualitys of roles, e.g. create page, create tests, Users are than assigned to a role and acquire automatically permissions of that roleDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201133 / 78Non-runtime QAMeTRiCSMeTRiCS (maintainability, evolvability, testability, reusability, integrability, congurability, scalability) Maintainability how easy seat you x bugs and add new features Evolvability how easy your system copes with changes Testability how easy provide you test the system for correctnessDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201134 / 78Non-runtime QAMeTRiCSReusability how easy is to use software elements in other contexts, e.g. a software library Integrability how easy you can make the separately developed components of the system work decent together Congurability how easy can a system be congured for dierent installations and target groups Scalability how easy the system copes with a higher performance demandDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201135 / 78Non-runtime QAMaintainabilityThis QA considers the unscathed lifecycle of a system What happens during system operation? Property that allows a system to be modied by and by deployment wirh ease E.g. extensible, modied behavior, xing errorsDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201136 / 78Non-runtime QAMaintainabilityAt the design and implementation level Code comments Object-oriented principles and design rules Consistent programming styles DocumentationDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201137 / 78Non-runtime QAMaintainabilityMaintainability is v ery important because any software system will change over time Experience shows that such changes tend to degrade the system over time Software systems are subject to entropy The cumulative eect of changes degrades the quality of the systemDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201138 / 78Non-runtime QAMaintainabilityThe systems tend to dumbfound messy systems Regardless of how a nice plan you had at beginning Design for change ring OO design rules Abstract messy parts of the system so that they can be exchangedDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201139 / 78Non-runtime QAMaintainabilityDont be afraid to refactor and rewrite and redesign severally software vendor does this with major versions Create throw-away prototypes Think out-of-box and innovate Dont always go over a hype very often nothing new in hypes E.g. Web servicesDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201140 / 78Non-runtime QATestabilityMeans to improve testabi lity Test cases if something fails there is a bug insulation of the testing framework and the system, i.e. testing with scripts from outside LoggingDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201141 / 78Non-runtime QACongurabilityAbility of a system to vary its operational parameters without re-compiling or re-installing E.g. selecting appropriate database drivers, conguring network parameters, Typically, cognise by a set of conguration les E.g. Apache Web legion conguration le sets host name, practical(prenominal) hosts, Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201142 / 78Non-runtime QACongurabilityCongurability interacts with other QAs such as testability, maintainability, reliability High degree of congurability tends to have a negative impact on those QAs Testing of dierent system conguration becomes more dicult reliability compromised Congurable components will be strongly parametrized decreased maintainabilityDenis Helic (KMI, TU Graz)SA Anal ysis and DesignOct 19, 201143 / 78Non-runtime QAScalabilityAbility of a system to increase its capacity without re-compiling or re-installing E.g. helping additional Web pages means only copying these Web pages into a Web server le system Some propagation increasing capacity means increasing hardware, e.g. Web server clusters Managing user posing on the client side, means only providing additional code-on-demand from the serverDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201144 / 78Requirements Analysis subjectSystem descriptionWeb-based Network Analysis Tool W-NAT A simple and operable system for network analysis is needed. Networks are entities that contain not only individuals but also their connections with other individuals (see e.g. 3 for an example). The system accepts a network representations as a list of pairs of connected nodes stored in a dataset le. Nodes are represented as integers. An edge between two nodes is stored as a line containing two nodes deli mited by a tabulator. Users might upload datasets to the systems and store them for further analysis. Each user might upload multiple datasets and can execute various analysis on those datasets. The system keeps the track of the analysis narrative for each user. Users may weigh degree distributions, network diameter, clustering coecient, connectivity measures, singular values, and dierent centrality measures. Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 19, 2011 45 / 78Requirements Analysis ExampleSystem descriptionWeb-based Network Analysis Tool W-NAT Users can execute various calculations on multiple datasets in parallel. The system must not be blocked if a calculation is currently under way. Rather it should be possible to start a new calculation, or view previous calculations, etc. In case of longer calculations the system needs to give out the user by e-mail when the calculation is over. The results of the calculations should be available in textual and in graphical form. All results can be also transfered to a local computer. The system will be used by a group of students that learn the basics of network analysis. It is expect that at any times the system will be used by multiple users executing multiple calculations. Since the system is generally an educational tool it needs to be pedagogically sound, i.e. simplicity and usability are very important.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201146 / 78Requirements Analysis ExampleSystem description6 How to search in a small worldPajekFigure 2 HP Labs email communication (light grey lines) mapped onto the organizational pecking order of HP Labs constructed out the e-mail communication. Figure Social network(black lines). Note that communication tends to cling to of formal organizational chart. From How to search a social network, Adamic, 2005.with one another. The h-distance, used to navigate the network, is computed as follows individuals have h-distance one to their music director and to everyone they share a manager with. Distances are then recursively assigned, so that each individual has h-distance 2 to their rst neighbors neighbors, and h-distance 3 to their second Denis Helic (KMI, TU neighbors neighbors, etc. SA Analysis and Design Graz)Oct 19, 201147 / 78Requirements Analysis ExampleSystem descriptionWeb-based Network Analysis Tool W-NAT The system is a Web-based system and the users should be able to operate the system by using a standard Web browser. The users need not install any additional plugins to operate the system. User perceived performance of the system should be acceptable. In addition, standard Web usability concepts need to be followed. In particular, browser back button must be working at all times and it should be possible to bookmark pages at all times. Finally, standard Web design principles should be satised, meaning that pages are valid (X)HTML pages in at to the lowest degree HTML Transitional. The system needs to support cross browser compatibility. Further, each page and each important application state needs to have a unique and human-readable URL.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201148 / 78Requirements Analysis ExampleFunctional requirementsUR1 The system is a network analysis tool. The system can calculate the following measures. UR1.1 UR1.2 UR1.3 UR1.4 UR1.5 Out-degree distribution In-degree distribution Cumulative out-degree distribution Cumulative in-degree distribution Hop plotDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201149 / 78Requirements Analysis ExampleFunctional requirementsUR1 The system is a network analysis tool. The system can calculate the following measures. UR1.6 Clustering coecient UR1.7 Distribution of weakly connected components UR1.8 Distribution of strongly connected components UR1.9 Left singular vector UR1.10 Right singular vectorDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201150 / 78Requirements Analysis ExampleFunctional requirementsUR1 The system is a network analysis tool. The system can calculate the following measures. UR1.12 UR1.12 UR1.13 UR1.14 UR1.15 Network singular values Degree centrality Closeness centrality Betweenness centrality Eigenvector centralityDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201151 / 78Requirements Analysis ExampleFunctional requirementsUR2 Networks are stored in dataset les. UR3 The dataset le has the following format. NodeID1 t NodeID2n UR4 Users can upload multiple datasets to the system. UR5 To perform an analysis users select a dataset and then choose a measure to calculate.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201152 / 78Requirements Analysis ExampleFunctional requirementsUR6 For each user and for each dataset the system manages a history of calculations. UR7 Users may initiate multiple calculations simultaneously. UR8 When a calculation is started the system is not blocked. UR9 The system noties users nearly a nished calculation by e-mail.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201153 / 78Requirements Analysis ExampleFunctional requirementsUR6 For each user and for each dataset the system manages a history of calculations. UR7 Users may initiate multiple calculations simultaneously. UR8 When a calculation is started the system is not blocked. UR9 The system noties users about a nished calculation by e-mail. When is this notication needed? If the user is logged out?Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201153 / 78Requirements Analysis ExampleFunctional requirementsUR10 The calculation results are presented in a textual as healthful as in a graphic form.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201154 / 78Requirements Analysis ExampleFunctional requirementsUR10 The calculation results are presented in a textual as closely as in a graphic form. Which form? Format? Graphics format?Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201154 / 78Requirements An alysis ExampleFunctional requirementsUR10 The calculation results are presented in a textual as well as in a graphic form. Which form? Format? Graphics format? UR11 Users can download the calculation results.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201154 / 78Requirements Analysis ExampleFunctional requirementsUR10 The calculation results are presented in a textual as well as in agraphic form. Which form? Format? Graphics format? UR11 Users can download the calculation results. Single results? All results? Archived, how archived?Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201154 / 78Requirements Analysis ExampleFunctional requirementsUR10 The calculation results are presented in a textual as well as in a graphic form. Which form? Format? Graphics format? UR11 Users can download the calculation results. Single results? All results? Archived, how archived? UR12 Users can register with the system.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201154 / 78Requirements Analysis ExampleFunctional requirementsUR10 The calculation results are presented in a textual as well as in a graphic form. Which form? Format? Graphics format? UR11 Users can download the calculation results. Single results? All results? Archived, howarchived? UR12 Users can register with the system. How register? E-mail? Captcha?Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201154 / 78Requirements Analysis ExampleFunctional requirementsUR10 The calculation results are presented in a textual as well as in a graphic form. Which form? Format? Graphics format? UR11 Users can download the calculation results. Single results? All results? Archived, how archived? UR12 Users can register with the system. How register? E-mail? Captcha? UR13 Users can login and log out.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201154 / 78Requirements Analysis ExampleNon-functional requirementsUR1 The system is simple, operative and pedagogically sound.Denis Helic ( KMI, TU Graz)SA Analysis and DesignOct 19, 201155 / 78Requirements Analysis ExampleNon-functional requirementsUR1 The system is simple, usable and didactically sound. UsabilityDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201155 / 78Requirements Analysis ExampleNon-functional requirementsUR1 The system is simple, usable and didactically sound. Usability UR2 The system needs to support multiple users simultaneously.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201155 / 78Requirements Analysis ExampleNon-functional requirementsUR1 The system is simple, usable and didactically sound. Usability UR2 The system needs to support multiple users simultaneously. PerformanceDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201155 / 78Requirements Analysis ExampleNon-functional requirementsUR1 The system is simple, usable and didactically sound. Usability UR2 The system needs to support multiple users simultaneously. Performance How many users?Denis Helic (KMI, TU Gra z)SA Analysis and DesignOct 19, 201155 / 78Requirements Analysis ExampleNon-functional requirementsUR1 The system is simple, usable and didactically sound. Usability UR2 The system needs to support multiple users simultaneously. Performance How many users? UR3 Authentication should be supported.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201155 / 78Requirements Analysis ExampleNon-functional requirementsUR1 The system is simple, usable and didactically sound. Usability UR2 The system needs to support multiple users simultaneously. Performance How many users? UR3 Authentication should be supported. SecurityDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201155 / 78Requirements Analysis ExampleNon-functional requirementsUR1 The system is simple, usable and didactically sound. Usability UR2 The system needs to support multiple users simultaneously. Performance How many users? UR3 Authentication should be supported. Security UR4 User-perceived performance must be acc eptableDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201155 / 78Requirements Analysis ExampleNon-functional requirementsUR1 The system is simple, usable and didactically sound. Usability UR2 The system needs to support multiple users simultaneously. Performance How many users? UR3 Authentication should be supported. Security UR4 User-perceived performance must be acceptable Performance and UsabilityDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201155 / 78Requirements Analysis ExampleNon-functional requirementsUR1 The system is simple, usable and didactically sound. Usability UR2 The system needs to support multiple users simultaneously. Performance How many users? UR3 Authentication should be supported. Security UR4 User-perceived performance must be acceptable Performance and Usability How many seconds at max users can wait?Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201155 / 78Requirements Analysis ExampleNon-functional requirementsUR1 The system is simple, usable and didactically sound. Usability UR2 The system needs to support multiple users simultaneously. Performance How many users? UR3 Authentication should be supported. Security UR4 User-perceived performance must be acceptable Performance and Usability How many seconds at max users can wait? UR5 Web-based system should be available at all times.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201155 / 78Requirements Analysis ExampleNon-functional requirementsUR1 The system is simple, usable and didactically sound. Usability UR2 The system needs to support multiple users simultaneously. Performance How many users? UR3 Authentication should be supported. Security UR4 User-perceived performance must be acceptable Performance and Usability How many seconds at max users can wait? UR5 Web-based system should be available at all times. ReliabilityDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201155 / 78Requirements Analysis ExampleNon-functional requirementsUR 6 Human-readable URLs.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201156 / 78Requirements Analysis ExampleNon-functional requirementsUR6 Human-readable URLs. Evolvability, reusability, maintainability, testability, integrabilityDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201156 / 78Requirements Analysis ExampleNon-functional requirementsUR6 Human-readable URLs. Evolvability, reusability, maintainability, testability, integrability UR7 Extending the system with new metrics.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201156 / 78Requirements Analysis ExampleNon-functional requirementsUR6 Human-readable URLs. Evolvability, reusability, maintainability, testability, integrability UR7 Extending the system with new metrics. Evolvability, reusability, maintainability, testability, integrability, congurabilityDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201156 / 78Requirements Analysis ExampleNon-functional requirementsUR6 Human-readable URLs. E volvability, reusability, maintainability, testability, integrability UR7 Extending the system with new metrics. Evolvability, reusability, maintainability, testability, integrability,congurability UR8 Reliability of a Web-based system.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201156 / 78Requirements Analysis ExampleNon-functional requirementsUR6 Human-readable URLs. Evolvability, reusability, maintainability, testability, integrability UR7 Extending the system with new metrics. Evolvability, reusability, maintainability, testability, integrability, congurability UR8 Reliability of a Web-based system. TestabilityDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201156 / 78Requirements Analysis ExampleNon-functional requirementsUR6 Human-readable URLs. Evolvability, reusability, maintainability, testability, integrability UR7 Extending the system with new metrics. Evolvability, reusability, maintainability, testability, integrability, congurability UR8 Reliability of a Web-based system. Testability UR9Multiple users.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201156 / 78Requirements Analysis ExampleNon-functional requirementsUR6 Human-readable URLs. Evolvability, reusability, maintainability, testability, integrability UR7 Extending the system with new metrics. Evolvability, reusability, maintainability, testability, integrability, congurability UR8 Reliability of a Web-based system. Testability UR9 Multiple users. ScalabilityDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201156 / 78Requirements Analysis ExampleContextual requirementsUR1 Web browser. UR2 sensible (X)HTML, at least (X)HTML Transitional. UR3 No browser plugins are allowed.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201157 / 78architectural Analysis DesignAnalysisWe analyze the requirements and try to identify so-called key concepts Understanding of the creation Static part of the domain We also try to identify key process and activities Dyna mic part of the domainDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201158 / 78architectural Analysis DesignDesignDesign is the process of creating models (recollect the denition of SA) cardinal basic types of architectural models Structure and behavior Architectural structure is a quiet model of a system (i.e. how the system is divided into components) Architectural behavior is a dynamic model of a system (i.e. how the components interact with each other to perform some useful work)Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201159 / 78Architectural Analysis DesignArchitectural structureThe division of a system into components and connectors To represent the model box-and-lines diagrams (to see at a glance important concepts) It is important to remember that diagrams are only representations of the model Diagrams must always be accompanied by additional material such as text, data models, mathematical models, etc. The combination of diagrams and additional material is an architectural modelDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201160 / 78Architectural Analysis DesignArchitectural structureWhat is a component? What is a connector? Components might be subsystems, separate processes, source code packages, Connectors might be network protocols, method invocations, associations, The combination of diagrams and additional material is an architectural modelDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201161 / 78Architectural Analysis DesignArchitectural structureFigure Example of an architectural structureDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201162 / 78Architectural Analysis DesignArchitectural structureIn the diagram we have one user-interface and one database component But what is the criteria for deciding what is a component? Separate program modules? Separate threads or processes? Conceptual or functional division? And what about connectors? Network protocols? Callbacks? pass along/r esponse cycles? Method invocations?Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201163 / 78Architectural Analysis DesignArchitectural structureWhat is the level of granularity of a diagram? E.g. for a Web-based system, components are servers and browsers and connector is HTTP But, components of a server are HTTP parser, le I/O, cache, plug-ins, Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201164 / 78Architectural Analysis DesignArchitectural structureComparison with OO a component is an object and a connector is a put across sent between two objects Because models in OO are very well dened Therefore, we need additional information that accompanies diagrams To describe criteria for decomposition and provide explanations on granularityDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201165 / 78Architectural Analysis DesignArchitectural behaviorComplementing structure is architectural behavior Interaction of system elements to perform some useful work F unctionality vs. behavior Functionality is what the system can do and behavior is the activity sequenceDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201166 / 78Architectural Analysis DesignArchitectural behaviorExample Accessing a tweets document Request is sent to the Web presentation layer That layer forwards the communicate to the application logic, e.g. TweetDeck TweetDeck contacts TweetViews to obtain a particular template, then retrieves the data from TweetDB wraps it into an HTML response and sends the response to TweetUI Functionality allows me to scupper a tweets document, behavior is the sequence of activities that makes it happenDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201167 / 78Architectural Analysis DesignArchitectural behaviorEach component has a set of responsibilities Behavior is the way how these responsibilities are exercised to respond to some number An showcase may be an action of the user or an event from an external system A part icular behavior is an event plus a response in the form of a sequence of component responsibilitiesDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201168 / 78Architectural Analysis DesignArchitectural behaviorTo represent behavioral models we use use-case map notation by Buhr A use-case map consists of a trace drawn through a structural diagram of the system The path of the trace through a structural diagram shows the sequence of activities Each crossing of a component by the trace indicates exercising of a responsibilityDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201169 / 78Architectural Analysis DesignArchitectural behaviorFigure Types of traces in use-case mapsDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201170 / 78Architectural Analysis DesignArchitectural behavior(a) Single trace all responsibilities exercised sequentially (b) Two traces are consecutive Equivalent to single trace but shows that continuation is triggered by another event (c) An d-Fork The traces after the line are potentially concurrent (run in parallel)Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201171 / 78Architectural Analysis DesignArchitectural behaviorFigure Types of traces in use-case mapsDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201172 / 78Architectural Analysis DesignArchitectural behavior(a) N-Way And-Fork the trace after the fork may be replicated an arbitrary number of times (b) Or-Fork The trace is split and activity proceeds along one or another path (c) Seq-Fork The traces after the line are followed in the order indicated by the cursorDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201173 / 78Architectural Analysis DesignArchitectural behaviorFigure Example of architectural behaviorDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201174 / 78Architectural ViewsArchitectural viewsWe can examine a system from dierent points of view Dierent kinds of views Conceptual components are set of responsibilit ies and connectors are ow of information achievement components are exploit units (processes) and connectors are messages between processes Implementation components are libraries, source code, les, etc and connectors are protocols, api calls, etc.Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201175 / 78Architectural ViewsArchitectural viewsThere are other models as well We will mention them but we will investigate only previous three models Data model describes the data Physical modeldescribes servers, rewalls, workstations, Denis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201176 / 78Architectural ViewsArchitectural viewsEach view provides dierent information about the structure of the system Each view addresses a specic set of concerns All views taken together is the primary means of documenting software architectureDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201177 / 78Architectural ViewsArchitectural viewsThe conceptual architecture considers the s tructure of the system in price of its domain-level functionality The execution architecture considers the system in terms of its runtime structure The implementation architecture considers the system in terms of its build-time structureDenis Helic (KMI, TU Graz)SA Analysis and DesignOct 19, 201178 / 78

No comments:

Post a Comment