/*Architecture.txt*/ 1 Architecture 2 ------------ 3 4 If one considers 'Requirements' to be the problem definition 5 6 and 'Design/Implementation/Test' to be the solution space, 7 8 'Architecture' is the bridge between the two. 9 10 You have already started your architecture with your Subsystem 11 Decomposition (as part of Subsystem Requirements). 12 13 Architecture is the Blueprint for the system. It is a key 14 document for developers and for maintenance engineers. 15 16 It provides the "technical structure" for the project. 17 18 19 During the Architecture phase, the Architecture team partitions 20 the system into major subsystems, specifies all of the interactions 21 among subsystems and documents the the software's top-level technical 22 plans. 23 24 The team also addresses the major design issues that run throughout the 25 system like error handling, memory management, data model. 26 27 Usually a team denotes a single person as the "Lead Architect". This 28 person ensures that all designs are consistent with the overall blueprint. 29 30 31 What is included in an Architecture Document? 32 33 - Major Subsystems (usually between 5 & 9 subsystems) 34 > responsibilities 35 > preliminary list of modules & classes contained within each 36 > inter-subsystem communication ** NEW ** UML Class Diagrams and Interaction Diagrams have been added to this deliverable due to the length of time allocated for this phase. All subsystems should be depicted by a set of high-level classes. All communication should be shown using Interaction Diagrams. It is required that the CASE tool Together/J be used for this. ** END NEW ** 37 38 - Areas that are likely to change 39 40 - Major technology 41 > Identification of components which will be purchased 42 commercially (buy vs. build) 43 > Identification of tools (e.g., IDEs, Frameworks) that will 44 be used 45 > Reuse strategy 46 > Programming language decisions 47 48 - System-wide conventions 49 > Error handling strategy (e.g., error logging) 50 > Memory management 51 > Multithreading/multiprocessing strategy 52 > Approach to distribution, networking 53 > Internationalization/localization 54 > Portability > ProblemML (or other system-wide expression/language) 55 56 - Major Design Decisions 57 > External software interfaces (e.g., Remote Procedure 58 calls, message-passing) 59 > Identification of major Data Structures and those 60 passed across program interfaces 61 > Database Organization (data model, content) 62 > Data storage (major data structures, file formats) 63 > Key algorithms 64 65 66 The document needs to be written and controlled in a version-control 67 system.