The document discusses software architecture, including its definition and key components. It describes different views used to represent architectures, including logical, process, physical, and development views. These views capture different aspects of the architecture such as its structure, concurrency, hardware mapping, and development organization. The document also discusses common architecture models and patterns that are used to describe behavioral and allocation aspects. As an assignment, students must present on and write about specific software architecture patterns.
The document discusses software architecture, including its definition and key components. It describes different views used to represent architectures, including logical, process, physical, and development views. These views capture different aspects of the architecture such as its structure, concurrency, hardware mapping, and development organization. The document also discusses common architecture models and patterns that are used to describe behavioral and allocation aspects. As an assignment, students must present on and write about specific software architecture patterns.
The document discusses software architecture, including its definition and key components. It describes different views used to represent architectures, including logical, process, physical, and development views. These views capture different aspects of the architecture such as its structure, concurrency, hardware mapping, and development organization. The document also discusses common architecture models and patterns that are used to describe behavioral and allocation aspects. As an assignment, students must present on and write about specific software architecture patterns.
The document discusses software architecture, including its definition and key components. It describes different views used to represent architectures, including logical, process, physical, and development views. These views capture different aspects of the architecture such as its structure, concurrency, hardware mapping, and development organization. The document also discusses common architecture models and patterns that are used to describe behavioral and allocation aspects. As an assignment, students must present on and write about specific software architecture patterns.
SOFTWARE ARCHITECTURE • The software architecture represents the decomposition of requirements into the functions and subfunctions that are necessary to provide the specified behavior and performance characteristics. Software architecture refers to the art and science of designing and implementing software products (Scmidt, 2013). • It stablishes the design framework for a software product • an architecture must be designed to meet the specific requirements and constraints of the application it is intended for. • In partitioning an application, the architect assigns responsibilities to each constituent component. These responsibilities define the tasks a component can be relied upon to perform within the application. In this manner each component plays a specific role in the application, and the overall component ensemble that comprises the architecture collaborates to provide the required functionality • One of the most powerful mechanisms for describing an architecture is hierarchical decomposition. Components that appear in one level of description are decomposed in more detail in accompanying design documentation • The architecture clearly partitions the responsibilities of each team, defining the dependencies between them. ARCHITECTURE VIEWS ARCHITECTURE VIEWS The term “architecture views” rose to prominence in Philippe Krutchen’s 19955 paper on the 4+1 View Model. This presented a way of describing and understanding an architecture based on the following four views: • Logical View • Process view • Physical view • Development view LOGICAL VIEW • This describes the architecturally significant elements of the architecture and the relationships between them. The logical view essentially captures the structure of the application using class diagrams or equivalents. PROCESS VIEW • It focuses on describing the concurrency and communications elements of an architecture. In IT applications, the main concerns are describing multi-threaded or replicated components, and the synchronous or asynchronous communication mechanisms used. PHYSICAL VIEW • It depicts how the major processes and components are mapped on to the applications hardware. It might show, for example, how the database and web servers for an application are distributed across a number of server machines. PHYSICAL VIEW DEVELOPMENT VIEW • This captures the internal organization of the software components, typically as they are held in a development environment or configuration management tool. For example, the depiction of a nested package and class hierarchy for a Java application would represent the development view of an architecture. DEVELOPMENT VIEW ARCHITECTURE MODEL • Module: a structural view of the architecture, comprising the code modules such as classes, packages and subsystems in the design. It also captures module decomposition, inheritance, associations and aggregations. • Component and Connector: This view describes the behavioral aspects of the architecture. Components are typically objects, threads or processes, and the connectors describe how the components interact. Common connectors are sockets, middleware like CORBA or shared memory. • Allocation: This view shows how the processes in the architecture are mapped to hardware, and how they communicate using networks and/or databases. It also captures a view of the source code in the configuration management systems, and who in the development group has responsibility for each modules. ASSIGNMENT 2 DIRECTIONS • Each group has to give an oral presentation and turn in a written file (PTT). I. The written document should include the following • Definition • Characteristics (Deployment, testability, performance, scalability, development) • Uses • Advantages & Disadvantages II. Oral Presentation • Two members of each group will give a presentation (10 min). SOFTWARE ARCHITECTURE PATTERNS
1. Layered pattern 6. Peer-to-peer pattern
2. Client-server pattern 7. Event driven pattern
3. Master-slave pattern 8. Model view controller pattern