Software Architecture

Software architecture encompasses specification and design of the application's global structure, leaving the details aside. It is related to the general software organization in terms of its components and connectors. Components are things like modules, compilation units, objects, and files. Connectors define interactions among components through procedure calls, parameters of initialization, instructions for the linker.

Defining the architecture of a software system involves the choice of architectural style. Each architectural style defines a family of software systems organized in a similar way, the corresponding vocabulary of components and connectors, constraints in using the components and connectors in building the system according to that style, and the way the overall system behavior depends on the behavior of its components. Examples of software architectural styles
include layered architectures, pipeline architecture, object-oriented architecture, event-based architecture, repository-based architecture, component-based systems (CBS) architectures, process-control architectures, real-time architectures, and various heterogeneous and Internet-based architectures.

As soon as the initial set of requirements is gathered, the project manager should direct the chief architect and some other engineers to define the initial software architecture of the system to be developed. Software architecture definition does not get sealed after the project begins. On the contrary, it is an evolving activity that continues through all the phases of the product's lifecycle. It interweaves with requirements specification, domain analysis, study of
possibilities for reuse, and even design.

Selecting an architectural style and evolving the software architecture is far from being simple, because it involves many issues other than just the system's overall structure. Project managers must be aware of such issues. The issues include the platform the system is to run on (e.g., the hardware architecture,operating system, database management system, and network protocols), global control structures, data communication, synchronization, and access protocols,
reusable building blocks available, deployment considerations, legacy systems,the choice among multiple design alternatives, assignment of functions to modules and subsystems, the system's functionality, scalability, reliability, and usability, its comprehension and resilience to changes, and also its esthetical considerations.

3 comments:

Micawatson said...

knock knock

Iwi finds said...

Who's there? :p

Unknown said...

Can you add my blog to your blog roll pls??

I have already added your!

here is the URL

http://mylot-get-paid-to-chat.blogspot.com/

Pls use the anchor text

"Get Paid to chat"

Thanks!

Copy HTML and Paste in Your Page

Search Engine Submission and Optimization Service


FREE Search Engine Submission
Internet Marketing
BigDirectory.org -free url submission, online website directory