Quiz 2

Ace your homework & exams now with Quizwiz!

Designing the Architecture

Architectural designs can begin as early as the analysis activity of the requirements phase, where conceptual models of the system are devised. • Designing architectures require the selection of particular perspectives for design that are appropriate for describing the system to be developed. • To this end, several models have been created that suggest popular views that are useful in the design of most systems. These models propose addressing the system's architectural design from perspectives that are common to most software systems and provide designers with a structured approach for modeling the architecture of software-intensive systems. • The most popular model is Kruchten's (1995) 4 + 1 view model

HIERARCHICAL SYSTEMS

Conceptually, components residing at higher levels of the hierarchy structure dispatch requests and rely on the services of those in lower levels of the hierarchy. • The hierarchy structure is mapped conceptually to the processing of data, resulting in a set of functional cohesive components at appropriate levels of abstraction for creating modular systems.

Components of the Model View Controller

Model is the component that represents the system's core including its major processing capabilities and data. View - component that represents the output representation of the system Controller- Component (associated witha view) that handles user input

Process View

Since analysis using the process view is behavioral in nature, behavioral UML diagrams can be used efficiently to address issues pertinent to the process views. Particularly, UML sequence and communication diagrams, together with the active object notation, can be used to evaluate, analyze, and characterize the system's capabilities from the process perspective. • This view is necessary for projects that need to meet performance and availability requirements by modeling aspects of concurrency, distribution, and fault tolerance.

HIERARCHICAL SYSTEMS

designing systems in hierarchical fashion typically leads to well-structured and modular systems. Two common architectural patterns for hierarchical systems are - Main program and subroutine - Layered

What is Behavioral Modeling?

Behavioral models are models of the dynamic behavior of the system as it is executing. • They show what happens or what is supposed to happen when a system responds to a stimulus from its environment. • Event-driven modeling shows how a system responds to external and internal events. • It is based on the assumption that a system has a finite number of states and that events (stimuli) may cause a transition from one state to another

Interactive Systems

By doing this, the functional core—which is typically stable since it is largely based on functional requirements—is separated from user displays, which are largely based on quality requirements. Since user interfaces are more likely to change and adapted to future versions of software systems, segregating them from the system core increases the modifiability of interactive systems. • Examples of interactive systems include gaming systems, simulations, and Internet applications, where such systems need to respond to user requests rapidly and update the display so the user can interact appropriately.

Client-Server Pattern

Client-server systems are particularly useful for distributed systems with a large client base, since they provide localization of data in one central place. Therefore, making updates or adding new information in once central place is all that it is needed for a multitude of clients to receive this information.

Architect Components of a Disitrbuted Signal Processing System

Data source- produce real time video or audio stream local pipe - Mechanism for transfering video or audio data streams secruity filter- transform data streams b y encrypting flow of data distributed pipe- mechanism for transfering data streams wirelessly data sink- destination component where data streams are stored

Data Centered Systems

Data-centered systems are systems primarily decomposed around a main central repository of data. • Therefore, typical responsibilities found in components of data-centered system include a centralized data manager and various worker components. - The data manager component controls, provides, and manages access to system data, while worker components execute operations and perform work based on the data. - The communication in data-centered systems is characterized by a one-to-one bidirectional communication between workers and data manager components. - That is, worker components do not interact with each other directly; all communication goes through the data manager.

DATA FLOW SYSTEMS

Data-flow systems are primarily decomposed around the central theme of transporting data (or data streams) and transforming the data along the way to meet application- specific requirements. • Therefore, typical responsibilities found in components of data-flow systems include worker components—those who perform work on data—and transport components, which transmit data among worker components.

DISTRIBUTED SYSTEMS

Distributed systems are commonly known as systems decomposed into multiple processes that collaborate through the network. • These systems are ubiquitous in today's modern systems thanks to wireless, mobile, and Internet technology. • In some distributed systems, one or more distributed processes perform work on behalf of client users and provide a bridge to some server computer, typically located remotely and performing work delegated to it by the client part of the system. • Common architectural patterns for these systems include - Client-server - Broker

HIERARCHICAL SYSTEMS

Hierarchical systems are systems in which components can be structured in hierarchical fashion so that components exist at different levels of abstraction and each level addresses a particular concern of the software system. • For each level identified in the hierarchical system, one or more components can be identified, each possibly branching downward to other components necessary to carry out a particular operation.

Processing applications

IO Processing Application Logic Transaction Manager Databse

What is 4+1 View Model?

In 1995, Philippe Kruchten published an influential paper that proposed modeling software architectures using different perspectives; each perspective provides avenues for addressing problems from different angles, and, when combined, the set of models created from each perspective helps form the software architecture.

Physical View

In some applications, modeling system deployment may require one or more UML deployment diagrams. Different deployment diagrams may be necessary to model different deployment configurations of the same software system, for example, deployments of software systems in testing environments or in different locations where deployment configurations may differ.

What are Interactive Systems?

Interactive systems are systems that support user interactions, typically through user interfaces. • When designing interactive systems, design alternatives concentrate on two main quality attributes: usability and modifiability.

Qualities of the Client-Server Archtectural Pattern

Interoperability-Allows clients on different platforms to interperate with servers of different platforms Modifiability- Allows for centralizied changes in the server and quick distribution Availaibility- by separating server data, multiple server nodes can be connected as backup to increase hthe server data or services avaialbility Reusability- by seprating server from clients services or data proovided by the server can be resued in different applications

Quality of the BlackBoard Architectural Pattern

Modifiability - Agents are compartmentalized and independent from each other therefore it is easier to add or remove agents to fit new systems Reusability- Specialized components can be reused easily in other applications Maintainability- Allows for separation of concerns and independence of knowledge-based agents therefore maintaining existing components becomes easier

Qualities of the MV Architectural Pattern

Modifiability - rehance the user experience or add additional features Usability- allowing easy exchangeability of user interfaces, systems can be configured user interfaces to meet different usability needs of particular groups Reusability - by separating the concerns of the model, view, and controller and reused in other systems

Architectural Patterns

Patterns are a means of representing, sharing and reusing knowledge. • An architectural pattern is a stylized description of good design practice, which has been tried and tested in different environments. • Patterns should include information about when they are and when the are not useful. • Patterns may be represented using tabular and graphical descriptions.

The identification of redundant nodes using the physical view requires downstream design and development to think about techniques for identifying faults and swapping between primary and redundant nodes when necessary to support the system's availability. • Similarly, aspects that affect system performance must be addressed using the physical view. - When performance is measured with through put,the physical view of systems must identify the elements that directly impact this metric, such as required bandwidth between a client and server.

Physical View

Students Scheduling System

Schedule Manager - access to student black board Student history- knowledge source for students history, including courses, etc. Worlkschedule - work schedule course offerings - university course offerings schedule blackboard- elements and solution space ares stored.

Advantages of Explicit Architecture

Stakeholder communication - Architecture maybe used as a focus of discussion by system stakeholders. System analysis - Means that analysis of whether the system can meet its non- functional requirements is possible. Large-scale reuse - The architecture maybe reusable across arrange of systems - Product-line architectures may be developed.

What is Structural Modeling?

Structural models of software display the organization of a system in terms of the components that make up that system and their relationships. • Structural models are static models. • You create structural models of a system when you are discussing and designing the system architecture. • Architectural design is a particularly important topic in software engineering and UML component, package, and deployment diagrams may all be used when presenting architectural models.

what are system modeling

System modeling is the process of developing abstract models of a system, with each model presenting a different view or perspective of that system. • System modeling has now come to mean representing a system using some kind of graphical notation, which is now almost always based on notations in the Unified Modeling Language (UML). • System modelling helps the analyst to understand the functionality of the system and models are used to communicate with users.

What is Architectural Reuse?

Systems in the same domain often have similar architectures that reflect domain concepts. • Application product lines are built around a core architecture with variants that satisfy particular customer requirements. • The architecture of a system may be designed around one of more architectural patterns or 'styles'. - These capture the essence of an architecture and can be instantiated in different ways.

The 4 + 1 View Model

The 4+1 model provides an adequate framework for modeling the architecture of most software systems. • However, adoption of the model varies from organization to organization, and from project to project. - For example, when concurrency is not an issue,modeling the system from a process view makes little to no sense. - Similarly,for systems that reside in one node and in which the physical properties of their deployment are not of concern, modeling them using the physical view provides little to no benefit. - Typically,all software systems benefit from the logical view;therefore, designs elements from this view should be incorporated into the software architecture.

Blackboard(Repository) Pattern

The blackboard architectural pattern decomposes software systems into components that work around a central data component to provide solutions to complex problems. • Each component provides solutions that build upon the problem's current state, which is defined by the collective set of solutions provided by the blackboard's components.

DATA FLOW SYSTEMS

The data transformation and transport in data-flow systems can entail transporting and transforming data among different components within a single node or between nodes in distributed fashion. • Data-flow systems provide the means for data transformation to take place in series or in parallel fashion, which helps the system improve performance by adding concurrency to the system.

What is Use Case Modeling?

Use cases were developed originally to support requirements elicitation and now incorporated into the UML. • Each use case represents a discrete task that involves external interaction with a system. • Actors in a use case may be people or other systems. • Represented diagramatically to provide an overview of the use case and in a more detailed textual form.

qualities of the pipes and filter pattern

extensiblity - processing filters can be added easily for more capabilities efficiency- by connecting filters in parallel,, concurrency can be achieved to reduce latency in system. reusability - compartmentalizing pipes anf ilters modifability- filters are compartmentalized and independenent security- at any point during data flow security compoenents can be injected to the provide different types of mechanisms maintainability- allows for separation of conenrs and indnepdence of the filters and pipes existing components become easier.

What are the purpose of system boundaries?

• System boundaries are established to define what is inside and what is outside the system. - They show other systems that are used or depend on the system being developed. • The position of the system boundary has a profound effect on the system requirements. • Defining a system boundary is a political judgment - There maybe pressures to develop system boundaries that increase/ decrease the influence or workload of different parts of an organization.

Development View

• This way, components can be mapped to the hierarchy of files in the file system, and their interrelationships and process for building one or more versions of the software system can be carefully specified.

What is Architectural Design?

An early stage of the system design process. • Represents the link between specification and design processes. • Often carried out in parallel with some specification activities. • It involves identifying major system components and their communications.

The Architecture of the Android OS

Applications Built in(phone, contact, browser) 3rd part ApplicatioN Frameworks Telephone Mgr, Location Mgr, Notification Mgr, Libraries Android runtime graphics, etc. Core libraries Linux Kernel Power, filesystem, etc

Architectural Abstraction

Architecture in the small is concerned with the architecture of individual programs. At this level, we are concerned with the way that an individual program is decomposed into components. • Architecture in the large is concerned with the architecture of complex enterprise systems that include other systems, programs, and program components. These enterprise systems are distributed over different computers, which may be owned and managed by different companies.

Use of Architectural Models

As a way of facilitating discussion about the system design - A high-level architectural view of a system is useful for communication with system stakeholders and project planning because it is not cluttered with detail. Stakeholders can relate to it and understand an abstract view of the system. They can then discuss the system as a whole without being confused by detail. • As a way of documenting an architecture that has been designed - The aim here is to produce a complete system model that shows the different components in a system, their interfaces and their connections.

• Usable systems are designed in such way that operators can quickly become proficient with the system; they also respond to user requests rapidly to support high interactivity requirements. • Whereas usability is achieved mostly through user interface design, modifiability and interactive performance are mainly functions of the architectural logical design. • To maximize modifiability and performance in interactive systems, the graphic user interface that represents the system data needs to be efficiently decoupled from the functional system core.

INTERACTIVE SYSTEMS

What are the Architecture and System Characteristics

Performance Localize critical operations and minimize communications. Use large rather than fine-grain components. Security - Use a layered architecture with critical assets in the inner layers. • Safety - Localize safety-critical features in a small number of sub-systems. • Availability - Include redundant components and mechanisms for fault tolerance. • Maintainability - Use fine-grain,replace able components.

What is Sequence Modeling?

Sequence diagrams are part of the UML and are used to model the interactions between the actors and the subsystems, and objects within a system. • A sequence diagram shows the sequence of interactions that take place during a particular use case or use case instance. • The subsystems, objects and actors involved are listed along the top of the diagram, with a dotted line drawn vertically from these. • Interactions between subsystems, objects are indicated by annotated arrows.

What is a Software Architecture?

The design process for identifying the sub-systems making up a system and the framework for sub-system control and communication is architectural design. • The output of this design process is a description of the software architecture.

Development View

The development view of software systems represents the software development configuration aspects of the software system, where the main units of decomposition are actual physical files and directories. • The development view is used to analyze the system from the perspective of how logical components map to physical files and directories.

Logical View

The logical view of a software system is used to decompose systems into logical components that represent the structural integrity that supports functional and nonfunctional requirements. • Using this view, the static structure of the system can be modeled using high-level diagrams to decompose, abstract, and encapsulate the services that the system needs to provide to its users. • By using these diagrams, the major components, their interfaces, and their associations with all other components are identified.

MVC architectural pattern

The mainstream architectural pattern employed in most interactive systems is the model-view-controller (MVC). • The MVC architectural pattern is used in interactive applications that require flexible incorporation of human- computer interfaces. • With the MVC, systems are decomposed into three main components that handle independently the system's input, processing, and output. • By separating the system's output from its core processing functions, different representations of the system core can be easily supported

MVC

The model-view-controller architectural pattern. It presents a UML component diagram for a hypothetical real estate housing market system that allows users to find properties for sale. The real estate system is based on the MVC architectural pattern and is composed of two views, each with their own controller and a model that contains all real estate information. The two views are designed uniquely for usability on a standard PC and large SMART board environment. 64

Layered Pattern

Used to model the interfacing of sub-systems. • Organises the system into a set of layers (or abstract machines) each of which provide a set of services. • Supports the incremental development of sub-systems in different layers. When a layer interface changes, only the adjacent layer is affected.

The scenarios created can help capture important system functions and discover new knowledge that drives architectural design decisions. • The user view also provides an effective source of information for verifying and validating system functions, after the system is built.

User View

Blackboard(Repository) Pattern

Using the blackboard architectural pattern, systems can be broken down to include a common repository where data and solutions to particular problems reside (i.e., the blackboard), a controller, and various agents that work to refine and further solutions to arrive at an acceptable solution.

MVC

View and controller components work together as part of the user interface to accept user input and transform this input into format compatible with the model component. In some variants of the MVC, the responsibility of controllers and views are fused into one component. The relationship among the model, view, and controller components can vary depending on the application; however, at minimum, MVC designs provide relationships that allow changes in the model to be propagated to its view and, when necessary, to controllers. This way, MVC systems provide a systematic, flexible, and controlled approach for accepting system inputs and providing system outputs. 63

Archteicture Libsys system

Web browser interface LIBSYS form and query maanger print manager login Distributed seach retrival manager accounting library index DB1 DB2 DB3 DB4 DBN

A generic layered architecture

user interface user interface management authentication and authorization core buisness logic and application functionality system utitles System Support(OS,Database,etc

Layered Pattern

• A more constrained form of hierarchical structure involves each layer having one main component—which can be composed internally of multiple components—that provides a unified interface for communicating with components residing immediately below in the hierarchy structure. • This form of constrained collaboration of hierarchical architectures is captured with the layered architectural pattern. • With the layered architectural pattern, the work performed to accomplish a system function is somewhat independent and more compartmentalized than in the main program and subroutine.

What are Architectural Design Decisions?

• Architectural design is a creative process so the process differs depending on the type of system being developed. • However, a number of common decisions span all design processes and these decisions affect the non-functional characteristics of the system. Is there a generic application architecture that can be used? • How will the system be distributed? • What architectural styles are appropriate? • What approach will be used to structure the system? • How will the system be decomposed into modules? • What control strategy should be used? • How will the architectural design be evaluated? • How should the architecture be documented?

What are the types of system modeling?

Context modeling - Model the context or environment of the system. • Process modeling - Model how the system being developed is used in broader business processes • Interaction modeling - Model the interactions between a system and its environment, or between the components of a system. • behavioral modeling - model the dynamic behavior of the system and how it responds to events • Structure modeling - model the organization of a system or the structure of the data that is processed by the system

What are context models?

Context models are used to illustrate the operational context of a system - they show what lies outside the system boundaries. • Social and organisational concerns may affect the decision on where to position system boundaries. • Architectural models show the system and its relationship with other systems.

What is a Process Model?

Context models simply show the other systems in the environment, not how the system being developed is used in that environment. • Process models reveal how the system being developed is used in broader business processes. • UML activity diagrams may be used to define business process models.

A repository Architecture for an IDE

Design Translator - lead to UMLS and Analyzer, Code Generators, Report Generator then which will lead to Java and Python editors.

Layered Pattern

It is used when systems can be decomposed into cohesive layers with a structured way of interfacing between layers. • The layered architecture is widely used in systems software, such as an operating system's communication stack, where each layer is an abstraction of a major function of communication systems. - Open Systems Interconnection(OSI) - AndroidOS • Each layer also relies on services from other layers directly below to create communication packets and to provide quality of service, routing services, node-to-node communication, and transmission using varied physical layers.

The 4 + 1 View Model

Kruchten's model concentrated on four main views: logical, process, development, and physical. • Modeling systems from each view requires addressing design problems of different natures, such as problems that deal with the logical system structure or problems that deal with dynamic, concurrency system issues. • To ensure consistency among all four views, the user's perspective is captured through several key use cases.

What is an Interaction Model?

Modeling user interaction is important as it helps to identify user requirements. • All system involve interaction of some kind - User interaction which involves user inputs and outputs - Interaction between the system being developed and other system - Interaction between the components (or subsystems) of the system. • Use case diagrams and sequence diagrams may be used for interaction modeling. - Use case modeling is mostly used to model interactions between a system and external actors (users or other systems) - Sequence diagram are used to model interactions between system components (subsystems) or external systems.

What is a Physical View?

The physical view of a software system represents the deployment aspects of software systems where the main elements of analysis are nodes, connections between nodes, and maps of software artifacts to nodes. • The physical view focuses on modeling of elements that directly affect quality requirements, such as availability, performance, and scalability - Forexample,consideracasewheresystemqualityismeasuredinpart by the availability of the system. That is, systems are perceived as low quality when they fail to provide a specified behavior. - Inthiscase,availabilitycanbeaddressedviaredundancyofprocessors or complete nodes, which both can be depicted using UML deployment diagrams

Pipe and Filter Pattern

The pipe and filter architectural pattern decomposes software systems into components that carry out two major functions: processing and transforming data and transferring data between components. • Components responsible for processing and transforming data are referred as filters, while components that transfer data between components are referred as pipes. • Together, these components are combined in various ways to create families of related systems that process streams of data

Pipe and Filter Pattern

The pipes and filters architectural pattern is commonly seen in data-flow systems, where data inputs need to be transformed into data output through a series of computational or manipulative components. • Transaction processing applications are - database-centered applications that process user requests for information and update the information in a database. - These are the most common type ofi nteractive busines s systems. - They are organized in such away that user actions can't interfere with each other and the integrity of the database is maintained. - This class of system includes interactive banking systems,e-commerce systems, information systems, and booking systems.

What is Process View?

The process view of a software system represents the dynamic or behavioral aspects of the software system where the main units of analysis are processes and threads • Using this view, software systems are decomposed into processes and threads to address design issues that deal with the dynamic flow of control between architectural elements, such as concurrency, distribution, system's integrity, fault tolerance, and other nonfunctional requirements

User View

The user view of a software system represents the behavior that the system exhibits to its users. Specifically, the user view depicts how users interact with the system and how the specific sequences of inputs and outputs occur during software operation. • Users represent anyone who interacts with the software system, such as operators, software testers, analysts, and quality. • As part of this view, UML use case models can be used to drive scenarios that provide storylines and to promote consistency among all other models.

Development View

These analyses can be employed to address concerns that deal with ease of development, reusability, constraints imposed by tool sets, allocation of work to teams, cost evaluation and planning, monitoring the project's progress, portability, and security • In UML, architectural elements resulting from analyzing systems from the development's perspective can be documented using package diagrams in combination with components and class diagrams as well as notes, tagged values, and constraints to enhance the meaning of the diagrams.


Related study sets

Chapter 9 : Abdominal vasculature - REVIEW QUESTIONS

View Set

Ch 19 Processes and Stages of Labor and Birth

View Set

Understanding Business Chapter 15A

View Set

Lesson 2: Exponential Decay and Atom Structure

View Set