SOFTWARE ARCHITECTURE I. INTRODUCTION Software architecture is the high-level structure and organization of a software system. It defines the components, their interactions, and the overall design principles. It focuses on decisions that affect the system's quality attributes, like performance, scalability, and maintainability. It provides a blueprint for developers to follow when implementing the system. It guides the allocation of responsibilities among different software modules. It helps stakeholders understand and communicate about the system's design and functionality. II. CLIENT/SERVER ARCHITECTURE Server – manages one or more information system resources or provides a welldefined service. Client – communicates with a server to request resources or services, and the server responds to those requests. Client/Server Architecture – is a general model of software organization and behavior that can be implemented in many ways. (may illustration) The architectural issues to be addressed when designing client/server software are: - Decomposing software into client and server programs or object - Determining which clients and servers will execute on which computer systems. - Describing the communication protocols and networks that connect clients and servers. Centrally Managed Services – includes security authentication and authorization, credit verification, and scheduling. In each case, a service provides a set of well defined processes such as retrieval, update and approval based on a data store that is hidden from the client.(may illustration)