Documente Academic
Documente Profesional
Documente Cultură
Software Architecture,
encompasses the structures of large software systems.
Preliminary Def.
The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.
Architecture as a Tool
An important tool for:
Communication Reasoning Analysis Growth And, ... Publication!
Stakeholders
Low Cost Keeping people employed Leveraging existing corporate assets Performance Security Reliability End User
Development Management
Marketing
Maintenance
Developing Organization
Structure and Nature Staff Skills Schedule and Budget Three Categories:
Immediate Business Long-term Business Organizational Structure
Architect's Experience
Education and training Exposure to successful architectural patterns Exposure to systems that have worked particularly Wish to experiment
Technical Environment
The environment that is current when an architecture is designed will influence that architecture.
It is a brave architect who, in today's environment, does not at least consider a Webbased, object-oriented, middleware-supported design for an information system.
Requirements
Identify and actively engage the stakeholders
Architecture reviews Iterative prototyping
Feedbacks
Other Effects
The customer may be willing to relax some requirements to gain economy Architect's experience with subsequent systems Change the software engineering culture
Process Recommendations
Single architect (or a small group) Should have
Functional requirements Prioritized list of quality attributes
Process Recommendations
Analysis for applicable quantitative measures Creation of a skeletal system Specific (and small) set of resource contention areas
Structural Guidelines
Information-hiding modules Well-defined interfaces Quality attributes Independent of a particular version of a commercial product or tool Modules that produce data should be separate from modules that consume data.
Structural Guidelines
A small number of simple interaction patterns For parallel processing systems:
Well-defined processes or tasks Assignment to specific processors should be changed