SA Analysis and Design

Size: px
Start display at page:

Download "SA Analysis and Design"

Transcription

1 SA Analysis and Design Software Architecture ( ) Denis Helic KMI, TU Graz Oct 24, 2012 Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

2 Outline 1 Terminology 2 Development Process 3 Requirements 4 Quality Attributes 5 Runtime QA 6 Non-runtime QA 7 Requirements Analysis: Example 8 Architectural Analysis & Design 9 Architectural Views Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

3 Questions Terminology What is software architecture? What is software? What is architecture? What is a software system? What is a system? Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

4 Terminology Definition Latin word systema meaning a whole consisting of several parts or a complex whole A system is a set of elements (components) that are connected to each other to form a whole The components composition is called system structure Mostly, systems perform a certain function or serve a particular purpose E.g. an operating system The structure of a system might be quite complex, e.g. the Web Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

5 Terminology Components interaction To serve their purpose the system components interact with each other E.g. CPU, memory, I/O devices These complex interactions are called system behavior Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

6 Terminology System boundaries Typically, there are boundaries between the system and its surroundings E.g. computer, humans The environment provide input to the system, and the system answers with output E.g. a search query as input to Google, a list of search result as output The dependencies of outputs on the system inputs are typically complex Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

7 Terminology Definition summary Systems serve a purpose Systems have a structure Systems have behavior Systems take input(s) from their environment and produce output(s) Systems and their properties are very often complex Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

8 Terminology Types of systems Natural systems, e.g. biological, astronomical, etc. Man-made systems, e.g. engineering system Hybrid systems, e.g. a mix between man-made and natural phenomena Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

9 Software systems Terminology Software is collection of programs, related data, and related documentation. Software is a conceptual entity, whereas hardware is a collection of physical entities (devices). A software system is a system in which all of its components, their connections and interactions are software entities. A software system runs on a specific hardware. Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

10 Terminology Models of a system Mostly, systems are complex, e.g. huge number of components Sometimes, complex interactions, e.g. the Web To study complex natural systems we create models of systems Model is a simplified view of the system that focuses on a single aspect of a system Typically, multiple (interdependent) views to study multiple aspects Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

11 Terminology Models of man-made systems We create models of natural systems to understand them better We create models of engineering systems to be able to build them Planing model, requirements model, structural model, behavior model, implementation model, etc. More models specific for software: run-time model, software design model, usability model, etc. Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

12 Terminology Model abstraction and granularity level Models can be created at varying levels of abstraction and details E.g., an object-oriented model of a car At the lowest detail level: car has engine, wheels, brakes, etc. At the highest detail level: car objects with variables, interacting with other objects OO programming model abstracts assembly, operating system, hardware,... Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

13 Terminology Model abstraction and granularity level Figure: Car Components, image source: Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

14 Terminology Model abstraction and granularity level Figure: Car components at a very fine level of granularity, image source: Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

15 Definition Terminology A system architecture is an integral collection of related system models at different levels of abstraction and granularity. An initial system architecture is designed before the actual development of the system. This architecture governs the system development. Mostly, the initial system architecture is iteratively updated during the system development. Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

16 Terminology Definition A software architecture is a collection of models of a software system at various abstraction and detail levels. The models describe: the system as a whole system components component connections how component interact to fulfill the system purpose. Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

17 Terminology When do we need a software architecture? Only complex systems Complexity can be (sometimes) estimated Large number of users, large amounts of data, large number of interacting components, complex functions, etc. Sometimes you do not know this beforehand, e.g. the Web Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

18 Terminology Wikipedia Example: Huge amount of documents E.g. managing tens of millions of documents How to store documents, how to search in documents? How to create, edit documents? User access rights How to display documents? How to print documents? Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

19 Terminology Delicious Example: Large number of users Tagging systems for sharing bookmarks (e.g. millions of users) Which users can create tags? With whom the users can share tags? Do we allow users to connect to each other? Are there black lists? Ignoring other users, etc? Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

20 Terminology Amazon Example: Complex interactions Product recommendation system Which users have similar interests to other users? What should be tracked? Clicks? Purchases? Comments? Are there privacy issues? Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

21 Terminology Facebook, Google, Twitter Combine all of the complexities discussed above Large number of users, huge amount of data, complex interactions Complex connections: networks, social networks, etc. Underlaying all of these is the Web Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

22 Terminology When a software architecture is not needed? Simpler systems E.g., less command line tool in Unix When there are proven designs and we know about them, e.g. a frontend for a database We need the experience in developing this particular kind of a system, i.e. we developed many such systems We need experience to make the distinction Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

23 Terminology Analogy with classical architecture Making buildings by G. Booch Building a dog kennel: no architectural design is needed Building a house: you might need an architectural design but if the builders are good it is not necessary Building a skyscraper: you definitely need an architectural design Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

24 Development Process Methodology Different software development processes have software architecture as a part of the process Rational unified process Spiral development method Agile development method Evolutionary rapid development Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

25 Place of SA in SDP Development Process Figure: Source: Software Architecture Primer by Reekie, McAdam Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

26 Development Process Methodology After the initial requirements analysis but before software design The first architecture is also a communication basis with the customer Inputs for the development of the architecture: 1 Requirements 2 Context (technical, organizational, business,...) Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

27 Requirements Analysis At the beginning there is always a customer who wants a specific software system Customer wishes are always informal Interviews, some documents, some Excel tables,... We need to analyze such informal records and structure it Requirements engineering is a huge field but we just illustrate here one possibility Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

28 Requirements Analysis The results of the requirements analysis: 1 Functional requirements 2 Non-functional requirements (a) Runtime qualities (b) Non-runtime qualities 3 Contextual requirements Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

29 Requirements Functional requirements A technical expression of what a system will do Arise from stakeholder needs Structured language: software requirements specification Use cases: structured description of user interactions with the system Formal models: e.g. state-charts Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

30 Requirements Non-functional requirements Other needs than directly functional or business-related Generally expressed in the form of quality-attributes Runtime quality attributes Non-runtime quality attributes Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

31 Requirements Contextual requirements What technology is available? Expertise of the development team Previous experience of users/customers Technical, business, market, legal, ethical,... Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

32 Quality Attributes Need to address QAs Without any need for performance, scalability,... any implementation of functionality is acceptable However, we always need to take into account the broader context E.g. hardware, technological, organizational, business,... The functionality must be there but without proper addressing of QA it is worth nothing Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

33 Quality Attributes Influence on QAs Typically, a single component can not address a QA completely Any QA is influenced by multiple components and their interactions E.g. a UI component has a high degree of usability: however, usability of the system is compromised if a data management component has poor performance in accessing the data users need to wait long poor usability Components and their interactions software architecture QAs are directly influenced by software architecture Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

34 Runtime QA PURS PURS (performance, usability, reliability, security) Performance: time performance, memory, disk, or network utilization Usability: human factors, easy to learn, easy to use,... Reliability: availability, safety,... Security: authentication, data protection,... Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

35 Runtime QA Performance Time performance is most obvious Measured in the number of operations per second Also, latency: the time from receiving an input and producing an output Other measures: memory, disk, network utilization or throughput Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

36 Runtime QA Performance Different measures are typically traded off against each other E.g. increasing throughput may increase latency Time performance might be increased with more memory True performance of the system is not only defined by performance of single components But also by their interactions and the overall processes in the system Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

37 Runtime QA Performance factors Choice of algorithms Database design Communication Resource management Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

38 Runtime QA Choice of algorithms Performance of algorithms is measured by their complexity (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(n 2 ) 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 Design Oct 24, / 99

39 Runtime QA Database design Performance of database queries can dominate the overall performance The design of the tables has enormous impact on the overall performance Techniques to improve it: lazy evaluation, replication, caching Some additional cost to manage replication and/or caching In-memory databases (real-time systems) Developing a new database (search engines) Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

40 Runtime QA Communication Network overhead Package data according to a protocol, sending data over network Each layer means additional overhead Think how to use network: packaging binary data as XML!? Use more compact formats, e.g. JSON vs XML Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

41 Runtime QA Resources management Overloaded components need to be avoided A chain is only as strong as its weakest link! E.g. a single-threaded shared resource is in use: all other threads are blocked Very difficult to track down Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

42 Runtime QA Usability Usability is a very rich field If usability is important you will need a usability expert Combination of many factors: responsiveness, graphical design, user expectations, confidence Measuring with time taken to complete task, error rate, time to response,... Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

43 Runtime QA Responsiveness and data availability An example of relations between 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 path of the user action Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

44 Runtime QA Responsiveness and data availability Figure: Usability vs. Performance Source: Software Architecture Primer by Reekie, McAdam Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

45 Runtime QA Discussion on relations between QAs This diagram shows that we need to pay attention to tuning communication between B and Y Performance of the communication channel is a consequence of a usability requirement Do we need to support security of the communication channel? We support QAs always only as a response to user needs Never because it is needed anyway! Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

46 Runtime QA Discussion on relations between QAs If we support security even if it is not needed Very often QAs exercise opposing forces on the system Security requires a lot of checking: performance will suffer usability will suffer A minimalistic approach: develop only what is required! Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

47 Runtime QA Reliability In traditional engineering disciplines reliability measures the failure rate of the system Failure rate specified by mean time to failure MTTF A related measure: mean time between failures MTBF MTTR is mean time to repair A is availability Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

48 Reliability Runtime QA MTBF = MTTF + MTTR A = MTTF A = MTBF MTTF MTTF +MTTR E.g. expected availability of Web systems: Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

49 Reliability Runtime QA MTBF = MTTF + MTTR A = MTTF A = MTBF MTTF MTTF +MTTR E.g. expected availability of Web systems: 1 (always up-and-running) = MTTF Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

50 Runtime QA Reliability Increasing reliability involves testing However, impossible to prove that a system is correct, i.e. without bugs Acceptability of errors depends on the nature of a system Personal desktop use: bugs are typically tolerated Enterprise level: medium reliability level High-reliable systems: bugs can be fatal Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

51 Runtime QA Security Increasingly important aspect of systems is security Because systems are exposed to threats Especially networked systems As with other QAs security is a set of related responses to user needs Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

52 Runtime QA Authentication Requirement for identification of users with a system Users present credentials so that the system can identify them Typically username and password Other forms: certificates, smart cards, biometric features Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

53 Runtime QA Authorization After authentication authorization which functions and what data is available for users This information is captured in an authorization model Access control lists (ACL) define who can access and how a resource might be accessed E.g. read access, write access, delete access,... Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

54 Runtime QA Authorization Drawbacks 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 difficult, e.g. subresources of resources Also, performance problems with checking Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

55 Runtime QA Authorization Another model: role-based access control (RBAC) Roles are used 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 parts of roles, e.g. create page, create tests,... Users are than assigned to a role and acquire automatically permissions of that role Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

56 Non-runtime QA MeTRiCS MeTRiCS (maintainability, evolvability, testability, reusability, integrability, configurability, scalability) Maintainability: how easy can you fix bugs and add new features Evolvability: how easy your system copes with changes Testability: how easy can you test the system for correctness Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

57 Non-runtime QA MeTRiCS Reusability: 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 correctly together Configurability: how easy can a system be configured for different installations and target groups Scalability: how easy the system copes with a higher performance demand Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

58 Non-runtime QA Maintainability This QA considers the whole lifecycle of a system What happens during system operation? Property that allows a system to be modified after deployment wirh ease E.g. extensible, modified behavior, fixing errors Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

59 Non-runtime QA Maintainability At the design and implementation level Code comments Object-oriented principles and design rules Consistent programming styles Documentation Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

60 Non-runtime QA Maintainability Maintainability is very 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 effect of changes degrades the quality of the system Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

61 Non-runtime QA Maintainability The systems tend to become messy systems Regardless of how a nice plan you had at beginning Design for change - recollect OO design rules Abstract messy parts of the system so that they can be exchanged Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

62 Non-runtime QA Maintainability Don t be afraid to refactor and rewrite and redesign Each software vendor does this with major versions Create throw-away prototypes Think out-of-box and innovate Don t always follow a hype - very often nothing new in hypes E.g. Web services Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

63 Non-runtime QA Testability Means to improve testability Test cases: if something fails there is a bug Separation of the testing framework and the system, i.e. testing with scripts from outside Logging Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

64 Non-runtime QA Configurability Ability of a system to vary its operational parameters without re-compiling or re-installing E.g. selecting appropriate database drivers, configuring network parameters,... Typically, realized by a set of configuration files E.g. Apache Web server configuration file sets host name, virtual hosts,... Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

65 Non-runtime QA Configurability Configurability interacts with other QAs such as testability, maintainability, reliability High degree of configurability tends to have a negative impact on those QAs Testing of different system configuration becomes more difficult reliability compromised Configurable components will be strongly parametrized decreased maintainability Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

66 Non-runtime QA Scalability Ability of a system to increase its capacity without re-compiling or re-installing E.g. serving additional Web pages means only copying these Web pages into a Web server file system Sometimes increasing capacity means increasing hardware, e.g. Web server clusters Managing user session on the client side, means only providing additional code-on-demand from the server Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

67 Requirements Analysis: Example System description Web-based Network Analysis Tool: W-NAT A simple and usable system for network analysis is needed. Networks are entities that contain not only individuals but also their connections with other individuals (see e.g. 5 for an example). The system accepts a network representations as a list of pairs of connected nodes stored in a dataset file. Nodes are represented as integers. An edge between two nodes is stored as a line containing two nodes delimited 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 history for each user. Users may calculate degree distributions, network diameter, clustering coefficient, connectivity measures, singular values, and different centrality measures. Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

68 Requirements Analysis: Example System description Web-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 notify the user by when the calculation is over. The results of the calculations should be available in textual and in graphical form. All results can be also downloaded 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 primarily an educational tool it needs to be didactically sound, i.e. simplicity and usability are very important. Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

69 System description Requirements Analysis: Example 6 How to search in a small world Pajek Figure 2: HP Labs communication (light grey lines) mapped onto the organizational hierarchy (black lines). Note that communication tends to cling to the formal organizational chart. Figure: Social network of HP Labs constructed out of communication. From: How to search a social network, Adamic, with one another. The h-distance, used to navigate the network, is computed as follows: individuals have h-distance one to their manager and to everyone they share a manager with. Distances are then recursively assigned, so that each individual has h-distance 2 to their first neighbor s neighbors, and h-distance 3 to their second Denis Helic (KMI, TU neighbor s Graz) neighbors, etc. SA Analysis and Design Oct 24, / 99

70 Requirements Analysis: Example System description Web-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 satisfied, meaning that pages are valid (X)HTML pages in at least 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 Design Oct 24, / 99

71 Requirements Analysis: Example Functional requirements UR1: The system is a network analysis tool. The system can calculate the following measures. UR1.1: Out-degree distribution UR1.2: In-degree distribution UR1.3: Cumulative out-degree distribution UR1.4: Cumulative in-degree distribution UR1.5: Hop plot Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

72 Requirements Analysis: Example Functional requirements UR1: The system is a network analysis tool. The system can calculate the following measures. UR1.6: Clustering coefficient UR1.7: Distribution of weakly connected components UR1.8: Distribution of strongly connected components UR1.9: Left singular vector UR1.10: Right singular vector Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

73 Requirements Analysis: Example Functional requirements UR1: The system is a network analysis tool. The system can calculate the following measures. UR1.12: Network singular values UR1.12: Degree centrality UR1.13: Closeness centrality UR1.14: Betweenness centrality UR1.15: Eigenvector centrality Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

74 Requirements Analysis: Example Functional requirements UR2: Networks are stored in dataset files. UR3: The dataset file has the following format. NodeID1 \t NodeID2\n 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 Design Oct 24, / 99

75 Requirements Analysis: Example Functional requirements UR6: 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 notifies users about a finished calculation by . When is this notification needed? If the user is logged out? Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

76 Requirements Analysis: Example Functional requirements UR10: 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? ? Captcha? UR13: Users can login and log out. Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

77 Requirements Analysis: Example Non-functional requirements UR1: 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. Reliability Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

78 Requirements Analysis: Example Non-functional requirements UR6: Human-readable URLs. Evolvability, reusability, maintainability, testability, integrability UR7: Extending the system with new metrics. Evolvability, reusability, maintainability, testability, integrability, configurability UR8: Reliability of a Web-based system. Testability UR9: Multiple users. Scalability Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

79 Requirements Analysis: Example Contextual requirements UR1: Web browser. UR2: Valid (X)HTML, at least (X)HTML Transitional. UR3: No browser plugins are allowed. Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

80 Architectural Analysis & Design Analysis We analyze the requirements and try to identify so-called key concepts Understanding of the domain Static part of the domain We also try to identify key process and activities Dynamic part of the domain Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

81 Architectural Analysis & Design Design Design is the process of creating models (recollect the definition of SA) Two basic types of architectural models Structure and behavior Architectural structure is a static 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 Design Oct 24, / 99

82 Architectural Analysis & Design Architectural structure The 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 model Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

83 Architectural Analysis & Design Architectural structure What 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 model Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

84 Architectural Analysis & Design Architectural structure Figure: Example of an architectural structure Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

85 Architectural Analysis & Design Architectural structure In 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? Request/response cycles? Method invocations? Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

86 Architectural Analysis & Design Architectural structure What 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, file I/O, cache, plug-ins,... Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

87 Architectural Analysis & Design Architectural structure Comparison with OO: a component is an object and a connector is a message sent between two objects Because models in OO are very well defined Therefore, we need additional information that accompanies diagrams To describe criteria for decomposition and provide explanations on granularity Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

88 Architectural Analysis & Design Architectural behavior Complementing structure is architectural behavior Interaction of system elements to perform some useful work Functionality vs. behavior Functionality is what the system can do and behavior is the activity sequence Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

89 Architectural Analysis & Design Architectural behavior Example: Accessing a tweets document Request is sent to the Web presentation layer That layer forwards the request 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 display a tweets document, behavior is the sequence of activities that makes it happen Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

90 Architectural Analysis & Design Architectural behavior Each component has a set of responsibilities Behavior is the way how these responsibilities are exercised to respond to some event An event may be an action of the user or an event from an external system A particular behavior is an event plus a response in the form of a sequence of component responsibilities Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

91 Architectural Analysis & Design Architectural behavior To 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 responsibility Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

92 Architectural Analysis & Design Architectural behavior Figure: Types of traces in use-case maps Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

93 Architectural Analysis & Design Architectural 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) And-Fork: The traces after the line are potentially concurrent (run in parallel) Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

94 Architectural Analysis & Design Architectural behavior Figure: Types of traces in use-case maps Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

95 Architectural Analysis & Design Architectural 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 arrow Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

96 Architectural Analysis & Design Architectural behavior Figure: Example of architectural behavior Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

97 Architectural Views Architectural views We can examine a system from different points of view Different kinds of views Conceptual: components are set of responsibilities and connectors are flow of information Execution: components are execution units (processes) and connectors are messages between processes Implementation: components are libraries, source code, files, etc and connectors are protocols, api calls, etc. Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

98 Architectural Views Architectural views There are other models as well We will mention them but we will investigate only previous three models Data model describes the data Physical model describes servers, firewalls, workstations,... Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

99 Architectural Views Architectural views Each view provides different information about the structure of the system Each view addresses a specific set of concerns All views taken together is the primary means of documenting software architecture Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

100 Architectural Views Architectural views The conceptual architecture considers the structure of the system in terms 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 structure Denis Helic (KMI, TU Graz) SA Analysis and Design Oct 24, / 99

SA Analysis and Design

SA Analysis and Design SA Analysis and Design Software Architecture VO (706.706) Roman Kern Institute for Interactive Systems and Data Science, TU Graz 2018-10-10 Roman Kern (ISDS, TU Graz) SA Analysis and Design 2018-10-10

More information

Implementation Architecture

Implementation Architecture Implementation Architecture Software Architecture VO/KU (707023/707024) Roman Kern ISDS, TU Graz 2017-11-15 Roman Kern (ISDS, TU Graz) Implementation Architecture 2017-11-15 1 / 54 Outline 1 Definition

More information

Implementation Architecture

Implementation Architecture Implementation Architecture Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2014-11-19 Roman Kern (KTI, TU Graz) Implementation Architecture 2014-11-19 1 / 53 Outline 1 Definition 2

More information

Conceptual Architecture

Conceptual Architecture Conceptual Architecture Software Architecture VO/KU (707.023/707.024) Denis Helic KMI, TU Graz Nov 2, 2011 Denis Helic (KMI, TU Graz) Conceptual Architecture Nov 2, 2011 1 / 42 Outline 1 Definition 2 Designing

More information

Architectural Styles II

Architectural Styles II Architectural Styles II Software Architecture VO/KU (707.023/707.024) Denis Helic, Roman Kern KMI, TU Graz Nov 21, 2012 Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles II Nov 21, 2012 1 / 66

More information

Execution Architecture

Execution Architecture Execution Architecture Software Architecture VO (706.706) Roman Kern Institute for Interactive Systems and Data Science, TU Graz 2018-11-07 Roman Kern (ISDS, TU Graz) Execution Architecture 2018-11-07

More information

Architectural Styles I

Architectural Styles I Architectural Styles I Software Architecture VO/KU (707.023/707.024) Denis Helic, Roman Kern KMI, TU Graz Nov 14, 2012 Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, 2012 1 / 80

More information

Databases 2 (VU) ( )

Databases 2 (VU) ( ) Databases 2 (VU) (707.030) Denis Helic KMI, TU Graz Oct 5, 2015 Denis Helic (KMI, TU Graz) Dbase2 Oct 5, 2015 1 / 33 Lecturer Name: Denis Helic Office: IWM (Know-Center), Inffeldgasse 13, 5th Floor, Room

More information

Architectural Styles I

Architectural Styles I Architectural Styles I Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2015-01-07 Roman Kern (KTI, TU Graz) Architectural Styles I 2015-01-07 1 / 86 Outline 1 Non-Functional Concepts

More information

Ch 1: The Architecture Business Cycle

Ch 1: The Architecture Business Cycle Ch 1: The Architecture Business Cycle For decades, software designers have been taught to build systems based exclusively on the technical requirements. Software architecture encompasses the structures

More information

ADD 3.0: Rethinking Drivers and Decisions in the Design Process

ADD 3.0: Rethinking Drivers and Decisions in the Design Process ADD 3.0: Rethinking Drivers and Decisions in the Design Process Rick Kazman Humberto Cervantes SATURN 2015 Outline Presentation Architectural design and types of drivers The Attribute Driven Design Method

More information

S1 Informatic Engineering

S1 Informatic Engineering S1 Informatic Engineering Advanced Software Engineering Web App. Process and Architecture By: Egia Rosi Subhiyakto, M.Kom, M.CS Informatic Engineering Department egia@dsn.dinus.ac.id +6285640392988 SYLLABUS

More information

DEVELOPING WEB APPLICATIONS WITH MICROSOFT VISUAL STUDIO Course: 10264A; Duration: 5 Days; Instructor-led

DEVELOPING WEB APPLICATIONS WITH MICROSOFT VISUAL STUDIO Course: 10264A; Duration: 5 Days; Instructor-led CENTER OF KNOWLEDGE, PATH TO SUCCESS Website: DEVELOPING WEB APPLICATIONS WITH MICROSOFT VISUAL STUDIO 2010 Course: 10264A; Duration: 5 Days; Instructor-led WHAT YOU WILL LEARN In this course, students

More information

Incremental development A.Y. 2018/2019

Incremental development A.Y. 2018/2019 Incremental development A.Y. 2018/2019 Incremental development Interleaves the activities of specification, development, and validation. The system is developed as a series of versions (increments), with

More information

Software Design Description Report

Software Design Description Report 2015 Software Design Description Report CodeBenders Haldun Yıldız 1819663 Onur Aydınay 1819002 Deniz Can Yüksel 1819697 Ali Şihab Akcan 1818871 TABLE OF CONTENTS 1 Overview... 3 1.1 Scope... 3 1.2 Purpose...

More information

Software Development Chapter 1

Software Development Chapter 1 Software Development Chapter 1 1. Introduction Software Applications are increasingly used to tackle problems that concern everyday life : Automatic Bank tellers Airline reservation systems Air traffic

More information

Liferay Security Features Overview. How Liferay Approaches Security

Liferay Security Features Overview. How Liferay Approaches Security Liferay Security Features Overview How Liferay Approaches Security Table of Contents Executive Summary.......................................... 1 Transport Security............................................

More information

Chapter 9. Software Testing

Chapter 9. Software Testing Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of

More information

Lecture 9a: Sessions and Cookies

Lecture 9a: Sessions and Cookies CS 655 / 441 Fall 2007 Lecture 9a: Sessions and Cookies 1 Review: Structure of a Web Application On every interchange between client and server, server must: Parse request. Look up session state and global

More information

W H IT E P A P E R. Salesforce Security for the IT Executive

W H IT E P A P E R. Salesforce Security for the IT Executive W HITEPAPER Salesforce Security for the IT Executive Contents Contents...1 Introduction...1 Background...1 Settings Related to Security and Compliance...1 Password Settings... 1 Session Settings... 2 Login

More information

Lesson 14 SOA with REST (Part I)

Lesson 14 SOA with REST (Part I) Lesson 14 SOA with REST (Part I) Service Oriented Architectures Security Module 3 - Resource-oriented services Unit 1 REST Ernesto Damiani Università di Milano Web Sites (1992) WS-* Web Services (2000)

More information

WHAT S NEW IN QLIKVIEW 11

WHAT S NEW IN QLIKVIEW 11 WHAT S NEW IN QLIKVIEW 11 QlikView 11 takes Business Discovery to a whole new level by enabling users to more easily share information with coworkers, supporting larger enterprise deployments through enhanced

More information

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping Coping with change Change is inevitable in all large software projects. Business changes lead to new and changed system requirements New technologies open up new possibilities for improving implementations

More information

Evolutionary Architecture and Design

Evolutionary Architecture and Design Evolutionary Architecture and Design Pradyumn Sharma pradyumn.sharma@pragatisoftware.com www.twitter.com/pradyumnsharma 1 What is Software Architecture? Structure of a system, comprising software elements,

More information

Introduction to Software Engineering

Introduction to Software Engineering Introduction to Software Engineering Gérald Monard Ecole GDR CORREL - April 16, 2013 www.monard.info Bibliography Software Engineering, 9th ed. (I. Sommerville, 2010, Pearson) Conduite de projets informatiques,

More information

Course Report Computing Science Advanced Higher

Course Report Computing Science Advanced Higher Course Report 2018 Subject Level Computing Science Advanced Higher This report provides information on the performance of candidates. Teachers, lecturers and assessors may find it useful when preparing

More information

Web Engineering. Introduction. Husni

Web Engineering. Introduction. Husni Web Engineering Introduction Husni Husni@trunojoyo.ac.id Outline What is Web Engineering? Evolution of the Web Challenges of Web Engineering In the early days of the Web, we built systems using informality,

More information

TECHNOLOGY Introduction The Difference Protection at the End Points Security made Simple

TECHNOLOGY Introduction The Difference Protection at the End Points Security made Simple APPGATE TECHNOLOGY UNIFIED TECHNOLOGY Introduction The AppGate solution truly delivers holistic security and access control where other approaches fall short. It is designed to address the security and

More information

Architecture and Design Evolution

Architecture and Design Evolution Architecture and Design Evolution Pradyumn Sharma pradyumn.sharma@pragatisoftware.com www.twitter.com/pradyumnsharma 1 What is Software Architecture? Structure of a system, comprising software elements,

More information

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION http://www.tutorialspoint.com/software_architecture_design/introduction.htm Copyright tutorialspoint.com The architecture of a system describes its major components,

More information

Apica ZebraTester. Advanced Load Testing Tool and Cloud Platform

Apica ZebraTester. Advanced Load Testing Tool and Cloud Platform Whether Fortune 100 or the next big startup, Apica s bestin-class load testing and test automation platform helps companies ensure their web and mobile services runs with optimal performance. is an enterprise-level

More information

Learning and Development. UWE Staff Profiles (USP) User Guide

Learning and Development. UWE Staff Profiles (USP) User Guide Learning and Development UWE Staff Profiles (USP) User Guide About this training manual This manual is yours to keep and is intended as a guide to be used during the training course and as a reference

More information

Up and Running Software The Development Process

Up and Running Software The Development Process Up and Running Software The Development Process Success Determination, Adaptative Processes, and a Baseline Approach About This Document: Thank you for requesting more information about Up and Running

More information

Embedded Technosolutions

Embedded Technosolutions Hadoop Big Data An Important technology in IT Sector Hadoop - Big Data Oerie 90% of the worlds data was generated in the last few years. Due to the advent of new technologies, devices, and communication

More information

Ch 1: The Architecture Business Cycle

Ch 1: The Architecture Business Cycle Ch 1: The Architecture Business Cycle For decades, software designers have been taught to build systems based exclusively on the technical requirements. Software architecture encompasses the structures

More information

HP SDN Document Portfolio Introduction

HP SDN Document Portfolio Introduction HP SDN Document Portfolio Introduction Technical Solution Guide Version: 1 September 2013 Table of Contents HP SDN Document Portfolio Overview... 2 Introduction... 2 Terms and Concepts... 2 Resources,

More information

Corso di Progettazione di Applicazioni Web e Mobile

Corso di Progettazione di Applicazioni Web e Mobile Corso di Progettazione di Applicazioni Web e Mobile Mirko Calvaresi Università di Camerino - Mirko Calvaresi - Progettazione Applicazioni Web e Mobile What this is about? How a web appliaction works? let

More information

CLIENT SERVER ARCHITECTURE:

CLIENT SERVER ARCHITECTURE: CLIENT SERVER ARCHITECTURE: Client-Server architecture is an architectural deployment style that describe the separation of functionality into layers with each segment being a tier that can be located

More information

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment Copyright Rational Software 2002 http://www.therationaledge.com/content/dec_02/m_uiiterativeenvironment_jc.jsp Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

More information

Introduction to Object Oriented Analysis and Design

Introduction to Object Oriented Analysis and Design A class note on Introduction to Object Oriented Analysis and Design Definition In general, analysis emphasizes an investigation of the problem and requirements of the domain, rather than a solution. Whereas,

More information

Software Security and Exploitation

Software Security and Exploitation COMS E6998-9: 9: Software Security and Exploitation Lecture 8: Fail Secure; DoS Prevention; Evaluating Components for Security Hugh Thompson, Ph.D. hthompson@cs.columbia.edu Failing Securely and Denial

More information

DiskSavvy Disk Space Analyzer. DiskSavvy DISK SPACE ANALYZER. User Manual. Version Dec Flexense Ltd.

DiskSavvy Disk Space Analyzer. DiskSavvy DISK SPACE ANALYZER. User Manual. Version Dec Flexense Ltd. DiskSavvy DISK SPACE ANALYZER User Manual Version 10.3 Dec 2017 www.disksavvy.com info@flexense.com 1 1 Product Overview...3 2 Product Versions...7 3 Using Desktop Versions...8 3.1 Product Installation

More information

What s New in VMware vsphere 5.1 VMware vcenter Server

What s New in VMware vsphere 5.1 VMware vcenter Server What s New in VMware vsphere 5.1 VMware vsphere 5.1 TECHNICAL MARKETING DOCUMENTATION V 1.0/UPDATED JULY 2012 Table of Contents Introduction... 3 Key Components... 3 vcenter Single Sign-On Server.... 3

More information

ITM DEVELOPMENT (ITMD)

ITM DEVELOPMENT (ITMD) ITM Development (ITMD) 1 ITM DEVELOPMENT (ITMD) ITMD 361 Fundamentals of Web Development This course will cover the creation of Web pages and sites using HTML, CSS, Javascript, jquery, and graphical applications

More information

The SAP Internet Programming Model, Part 1

The SAP Internet Programming Model, Part 1 The SAP Internet Programming Model, Part 1 Since the first SAP ITS-enabled R/3 release (R/3 3.1G), the number of standard Internet Applications Components (IACs) provided by SAP has constantly increased.

More information

Agile Internationalization User Stories

Agile Internationalization User Stories Agile Internationalization User Stories Tex Texin Chief Globalization Architect XenCraft Internationalization and Unicode Conference IUC41 Abstract User stories are the way that Agile Methodology describes

More information

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6 04 Webservices Web APIs REST Coulouris chp.9 Roy Fielding, 2000 Chp 5/6 Aphrodite, 2002 http://www.xml.com/pub/a/2004/12/01/restful-web.html http://www.restapitutorial.com Webservice "A Web service is

More information

An Introduction to Big Data Formats

An Introduction to Big Data Formats Introduction to Big Data Formats 1 An Introduction to Big Data Formats Understanding Avro, Parquet, and ORC WHITE PAPER Introduction to Big Data Formats 2 TABLE OF TABLE OF CONTENTS CONTENTS INTRODUCTION

More information

Exercises: Instructions and Advice

Exercises: Instructions and Advice Instructions Exercises: Instructions and Advice The exercises in this course are primarily practical programming tasks that are designed to help the student master the intellectual content of the subjects

More information

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? CIS 8690 Enterprise Architectures Duane Truex, 2013 Cognitive Map of 8090

More information

Refresher: Lifecycle models. Lecture 22: Moving into Design. Analysis vs. Design. Refresher: different worlds. Analysis vs. Design.

Refresher: Lifecycle models. Lecture 22: Moving into Design. Analysis vs. Design. Refresher: different worlds. Analysis vs. Design. Analysis vs. Design Why the distinction? Design Processes Logical vs. Physical Design System vs. Detailed Design Architectures System Architecture Software Architecture Architectural Patterns (next lecture)

More information

ForeScout Extended Module for Carbon Black

ForeScout Extended Module for Carbon Black ForeScout Extended Module for Carbon Black Version 1.0 Table of Contents About the Carbon Black Integration... 4 Advanced Threat Detection with the IOC Scanner Plugin... 4 Use Cases... 5 Carbon Black Agent

More information

Level 4 Diploma in Computing

Level 4 Diploma in Computing Level 4 Diploma in Computing 1 www.lsib.co.uk Objective of the qualification: It should available to everyone who is capable of reaching the required standards It should be free from any barriers that

More information

SOFTWARE REQUIREMENTS ENGINEERING LECTURE # 7 TEAM SKILL 2: UNDERSTANDING USER AND STAKEHOLDER NEEDS REQUIREMENT ELICITATION TECHNIQUES-IV

SOFTWARE REQUIREMENTS ENGINEERING LECTURE # 7 TEAM SKILL 2: UNDERSTANDING USER AND STAKEHOLDER NEEDS REQUIREMENT ELICITATION TECHNIQUES-IV 1 SOFTWARE REQUIREMENTS ENGINEERING LECTURE # 7 TEAM SKILL 2: UNDERSTANDING USER AND STAKEHOLDER NEEDS REQUIREMENT ELICITATION TECHNIQUES-IV 12 th June, 2013 Instructor Information 2 Course Instructor:

More information

Enhancing cloud applications by using external authentication services. 2015, 2016 IBM Corporation

Enhancing cloud applications by using external authentication services. 2015, 2016 IBM Corporation Enhancing cloud applications by using external authentication services After you complete this section, you should understand: Terminology such as authentication, identity, and ID token The benefits of

More information

Software Engineering

Software Engineering Software Engineering chap 4. Software Reuse 1 SuJin Choi, PhD. Sogang University Email: sujinchoi@sogang.ac.kr Slides modified, based on original slides by Ian Sommerville (Software Engineering 10 th Edition)

More information

What is Software Architecture

What is Software Architecture What is Software Architecture Is this diagram an architecture? (ATM Software) Control Card Interface Cash Dispenser Keyboard Interface What are ambiguities in the previous diagram? Nature of the elements

More information

Integrated Access Management Solutions. Access Televentures

Integrated Access Management Solutions. Access Televentures Integrated Access Management Solutions Access Televentures Table of Contents OVERCOMING THE AUTHENTICATION CHALLENGE... 2 1 EXECUTIVE SUMMARY... 2 2 Challenges to Providing Users Secure Access... 2 2.1

More information

SYSPRO s Fluid Interface Design

SYSPRO s Fluid Interface Design SYSPRO s Fluid Interface Design Introduction The world of computer-user interaction has come a long way since the beginning of the Graphical User Interface, but still most application interfaces are not

More information

Requirements Specification

Requirements Specification Requirements Specification Smart Scheduling Requested by: Dr. Robert Yoder Associate Professor of Computer Science Computer Science Department Head Siena College Tom Mottola Jason Czajkowski Brian Maxwell

More information

XVIII. Software Architectures

XVIII. Software Architectures XVIII. Software Architectures Software Architectures UML Packages Client-Server vs Peer-to-Peer 3-Tier and 4-Tier Architectures Horizontal Layers and Vertical Partitions The Model-View-Controller Architecture

More information

Identity-based Access Control

Identity-based Access Control Identity-based Access Control The kind of access control familiar from operating systems like Unix or Windows based on user identities This model originated in closed organisations ( enterprises ) like

More information

DRACULA. CSM Turner Connor Taylor, Trevor Worth June 18th, 2015

DRACULA. CSM Turner Connor Taylor, Trevor Worth June 18th, 2015 DRACULA CSM Turner Connor Taylor, Trevor Worth June 18th, 2015 Acknowledgments Support for this work was provided by the National Science Foundation Award No. CMMI-1304383 and CMMI-1234859. Any opinions,

More information

*ANSWERS * **********************************

*ANSWERS * ********************************** CS/183/17/SS07 UNIVERSITY OF SURREY BSc Programmes in Computing Level 1 Examination CS183: Systems Analysis and Design Time allowed: 2 hours Spring Semester 2007 Answer ALL questions in Section A and TWO

More information

BECOME A LOAD TESTING ROCK STAR

BECOME A LOAD TESTING ROCK STAR 3 EASY STEPS TO BECOME A LOAD TESTING ROCK STAR Replicate real life conditions to improve application quality Telerik An Introduction Software load testing is generally understood to consist of exercising

More information

Programming in C# for Experienced Programmers

Programming in C# for Experienced Programmers Programming in C# for Experienced Programmers Course 20483C 5 Days Instructor-led, Hands-on Introduction This five-day, instructor-led training course teaches developers the programming skills that are

More information

Object Oriented Programming

Object Oriented Programming Binnur Kurt kurt@ce.itu.edu.tr Istanbul Technical University Computer Engineering Department 1 Version 0.1.2 About the Lecturer BSc İTÜ, Computer Engineering Department, 1995 MSc İTÜ, Computer Engineering

More information

MIDDLE EAST TECHNICAL UNIVERSITY ENGINEERING FACULTY DEPARTMENT OF COMPUTER ENGINEERING. Vitriol. Software Design Document GROUP MALLORN

MIDDLE EAST TECHNICAL UNIVERSITY ENGINEERING FACULTY DEPARTMENT OF COMPUTER ENGINEERING. Vitriol. Software Design Document GROUP MALLORN MIDDLE EAST TECHNICAL UNIVERSITY ENGINEERING FACULTY DEPARTMENT OF COMPUTER ENGINEERING Software Design Document GROUP MALLORN Merve Bozo Yaşar Berk Arı Sertaç Kağan Aydın Mustafa Orkun Acar Team Leader:

More information

Introduction to Assurance

Introduction to Assurance Introduction to Assurance Overview Why assurance? Trust and assurance Life cycle and assurance April 1, 2015 Slide #1 Overview Trust Problems from lack of assurance Types of assurance Life cycle and assurance

More information

CTI Higher Certificate in Information Systems (Internet Development)

CTI Higher Certificate in Information Systems (Internet Development) CTI Higher Certificate in Information Systems (Internet Development) Module Descriptions 2015 1 Higher Certificate in Information Systems (Internet Development) (1 year full-time, 2½ years part-time) Computer

More information

AJAX Programming Overview. Introduction. Overview

AJAX Programming Overview. Introduction. Overview AJAX Programming Overview Introduction Overview In the world of Web programming, AJAX stands for Asynchronous JavaScript and XML, which is a technique for developing more efficient interactive Web applications.

More information

In his paper of 1972, Parnas proposed the following problem [42]:

In his paper of 1972, Parnas proposed the following problem [42]: another part of its interface. (In fact, Unix pipe and filter systems do this, the file system playing the role of the repository and initialization switches playing the role of control.) Another example

More information

Adobe Marketing Cloud Best Practices Implementing Adobe Target using Dynamic Tag Management

Adobe Marketing Cloud Best Practices Implementing Adobe Target using Dynamic Tag Management Adobe Marketing Cloud Best Practices Implementing Adobe Target using Dynamic Tag Management Contents Best Practices for Implementing Adobe Target using Dynamic Tag Management.3 Dynamic Tag Management Implementation...4

More information

WHITE PAPER AGILOFT SCALABILITY AND REDUNDANCY

WHITE PAPER AGILOFT SCALABILITY AND REDUNDANCY WHITE PAPER AGILOFT SCALABILITY AND REDUNDANCY Table of Contents Introduction 3 Performance on Hosted Server 3 Figure 1: Real World Performance 3 Benchmarks 3 System configuration used for benchmarks 3

More information

DB2 is a complex system, with a major impact upon your processing environment. There are substantial performance and instrumentation changes in

DB2 is a complex system, with a major impact upon your processing environment. There are substantial performance and instrumentation changes in DB2 is a complex system, with a major impact upon your processing environment. There are substantial performance and instrumentation changes in versions 8 and 9. that must be used to measure, evaluate,

More information

Chapter 5. The Database Life Cycle. Class 04: Topic 3.1: The Database Life Cycle

Chapter 5. The Database Life Cycle. Class 04: Topic 3.1: The Database Life Cycle Chapter 5 The Database Life 1 Database Design Life Database Life : all the events from the time the database is first proposed to the time it is retired from service Work is typically divided into project

More information

Application Architectures, Design Patterns

Application Architectures, Design Patterns Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term

More information

CS 575: Software Design

CS 575: Software Design CS 575: Software Design Introduction 1 Software Design A software design is a precise description of a system, using a variety of different perspectives Structural Behavioral Packaging Requirements, Test/Validation

More information

Developing Data Access Solutions with Microsoft Visual Studio 2010

Developing Data Access Solutions with Microsoft Visual Studio 2010 Developing Data Access Solutions with Microsoft Visual Studio 2010 Course Code: 10265A; Five days; Instructor-Led About this Course In this course, experienced developers who know the basics of data access

More information

COMPUTING SUBJECT KNOWLEDGE AUDIT

COMPUTING SUBJECT KNOWLEDGE AUDIT COMPUTING SUBJECT KNOWLEDGE AUDIT Use this needs analysis to help self-assess and track your computing subject knowledge. Topic Area 1 Computational thinking Define, explain and use these concepts with

More information

GRANDSTREAM PRIVACY STATEMENT

GRANDSTREAM PRIVACY STATEMENT GRANDSTREAM PRIVACY STATEMENT This Privacy Statement governs how Grandstream Networks, Inc. and its affiliates ( Grandstream, us, our or we ) may collect, use, and disclose information that we obtain through

More information

1 Software Architecture

1 Software Architecture Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to

More information

1. I NEED TO HAVE MULTIPLE VERSIONS OF VISUAL STUDIO INSTALLED IF I M MAINTAINING APPLICATIONS THAT RUN ON MORE THAN ONE VERSION OF THE.

1. I NEED TO HAVE MULTIPLE VERSIONS OF VISUAL STUDIO INSTALLED IF I M MAINTAINING APPLICATIONS THAT RUN ON MORE THAN ONE VERSION OF THE. CUSTOMER PAIN POINTS 1. I NEED TO HAVE MULTIPLE VERSIONS OF VISUAL STUDIO INSTALLED IF I M MAINTAINING APPLICATIONS THAT RUN ON MORE THAN ONE VERSION OF THE.NET FRAMEORK. THAT S TAKING UP SPACE ON MY HARDDRIVE

More information

Instructions 1. Elevation of Privilege Instructions. Draw a diagram of the system you want to threat model before you deal the cards.

Instructions 1. Elevation of Privilege Instructions. Draw a diagram of the system you want to threat model before you deal the cards. Instructions 1 Elevation of Privilege Instructions Draw a diagram of the system you want to threat model before you deal the cards. Deal the deck to 3 6 players. Play starts with the 3 of Tampering. Play

More information

Database code in PL-SQL PL-SQL was used for the database code. It is ready to use on any Oracle platform, running under Linux, Windows or Solaris.

Database code in PL-SQL PL-SQL was used for the database code. It is ready to use on any Oracle platform, running under Linux, Windows or Solaris. Alkindi Software Technology Introduction Alkindi designed a state of the art collaborative filtering system to work well for both largeand small-scale systems. This document serves as an overview of how

More information

Mastering phpmyadmiri 3.4 for

Mastering phpmyadmiri 3.4 for Mastering phpmyadmiri 3.4 for Effective MySQL Management A complete guide to getting started with phpmyadmin 3.4 and mastering its features Marc Delisle [ t]open so 1 I community experience c PUBLISHING

More information

Data Virtualization Implementation Methodology and Best Practices

Data Virtualization Implementation Methodology and Best Practices White Paper Data Virtualization Implementation Methodology and Best Practices INTRODUCTION Cisco s proven Data Virtualization Implementation Methodology and Best Practices is compiled from our successful

More information

Curriculum Guide. ThingWorx

Curriculum Guide. ThingWorx Curriculum Guide ThingWorx Live Classroom Curriculum Guide Introduction to ThingWorx 8 ThingWorx 8 User Interface Development ThingWorx 8 Platform Administration ThingWorx 7.3 Fundamentals Applying Machine

More information

Using Java to Front SAS Software: A Detailed Design for Internet Information Delivery

Using Java to Front SAS Software: A Detailed Design for Internet Information Delivery Using Java to Front SAS Software: A Detailed Design for Internet Information Delivery Jonathan Stokes, JJT Inc., Austin, Texas, USA ABSTRACT As the Java language evolves from its rudimentary stages into

More information

QLIKVIEW SCALABILITY BENCHMARK WHITE PAPER

QLIKVIEW SCALABILITY BENCHMARK WHITE PAPER QLIKVIEW SCALABILITY BENCHMARK WHITE PAPER Hardware Sizing Using Amazon EC2 A QlikView Scalability Center Technical White Paper June 2013 qlikview.com Table of Contents Executive Summary 3 A Challenge

More information

Software Service Engineering

Software Service Engineering Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley Unified Modeling Language

More information

Development of web applications using Google Technology

Development of web applications using Google Technology International Journal of Computer Engineering and Applications, ICCSTAR-2016, Special Issue, May.16 Development of web applications using Google Technology Vaibhavi Nayak 1, Vinuta V Naik 2,Vijaykumar

More information

Full Stack Web Developer Nanodegree Syllabus

Full Stack Web Developer Nanodegree Syllabus Full Stack Web Developer Nanodegree Syllabus Build Complex Web Applications Before You Start Thank you for your interest in the Full Stack Web Developer Nanodegree! In order to succeed in this program,

More information

CTI Short Learning Programme in Internet Development Specialist

CTI Short Learning Programme in Internet Development Specialist CTI Short Learning Programme in Internet Development Specialist Module Descriptions 2015 1 Short Learning Programme in Internet Development Specialist (10 months full-time, 25 months part-time) Computer

More information

Snapt Accelerator Manual

Snapt Accelerator Manual Snapt Accelerator Manual Version 2.0 pg. 1 Contents Chapter 1: Introduction... 3 Chapter 2: General Usage... 3 Accelerator Dashboard... 4 Standard Configuration Default Settings... 5 Standard Configuration

More information

Software Architectures. Lecture 6 (part 1)

Software Architectures. Lecture 6 (part 1) Software Architectures Lecture 6 (part 1) 2 Roadmap of the course What is software architecture? Designing Software Architecture Requirements: quality attributes or qualities How to achieve requirements

More information

Properties of High Quality Software. CSE219, Computer Science III Stony Brook University

Properties of High Quality Software. CSE219, Computer Science III Stony Brook University Properties of High Quality Software CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Software Engineering Basics Important Principles for creating a Software Solution:

More information

Sonatype CLM - IDE User Guide. Sonatype CLM - IDE User Guide

Sonatype CLM - IDE User Guide. Sonatype CLM - IDE User Guide Sonatype CLM - IDE User Guide i Sonatype CLM - IDE User Guide Sonatype CLM - IDE User Guide ii Contents 1 Introduction 1 2 Installing Sonatype CLM for Eclipse 2 3 Configuring Sonatype CLM for Eclipse 5

More information

BEAWebLogic. Portal. Overview

BEAWebLogic. Portal. Overview BEAWebLogic Portal Overview Version 10.2 Revised: February 2008 Contents About the BEA WebLogic Portal Documentation Introduction to WebLogic Portal Portal Concepts.........................................................2-2

More information

Web Serving Architectures

Web Serving Architectures Web Serving Architectures Paul Dantzig IBM Global Services 2000 without the express written consent of the IBM Corporation is prohibited Contents Defining the Problem e-business Solutions e-business Architectures

More information