Software Engineering COSC 4460 Class 4 Cherry Owen
Chapter 4An Architecture-Centric Process • The architecture is the foundation of the system. • The architecture shows various views of the system. • The architecture leaves out details which are not necessary to understand the overall system.
Purpose of the Architecture • Understand the system at a high level • Organize the development • Foster reuse • Evolve the system
Architectural Baseline • baseline is released at the end of the elaboration phase • consists of a set of approved artifacts • represents an agreed upon basis for further development • can be changed only through a formal procedure such as configuration management or change management
What Makes Up the Architecture? • Deployment diagram • Significant subsystems • Relationships of significant subsystems • Most significant classes within each subsystem • Interfaces, collaborations and dependencies • Screen and report design (user interface)
Use Cases and Architecture • Find out what the user needs and wants to do with the system. • Write preliminary use cases. • Consider the architecture. • Refine and add to the use cases.
A Skeleton of a System • The architecture is the big picture of how we will put things together, so everybody has a guideline to know where their part fits in.
Defining an Architecture • Look at the architecture for a general application of the type you are doing. • Pick nodes, operating systems, middleware, database, legacy systems, standards and policies, and do a deployment model. • Pick the most architecturally significant use cases (what is significant depends on the goal of the application.) • Capture requirements, analysis, design, implement and test for the selected use cases.
Adaptability • The use cases must be adapted to the architecture already in place. • We must know what already exists and fit the new use cases into it. • Therefore, an architecture must allow for easily adding functionality with minimal effect on the rest of the system.
Iterations • Iterate through the workflows several times until at the end of the elaboration phase you have a baseline architecture. • This will be a skeleton of the system with a few software "muscles." • The baseline is a working system that covers the essential functionality of the system according to user priorities. • The baseline also addresses the most serious risks.
Feedback • The operational architecture baseline provides a working demonstration to which workers (developers, testers, users) can provide feedback.
Architecture Patterns • A pattern is a solution to a commonly occurring design problem. • Often patterns are presented using standard documentation templates. • The templates assign a name to a pattern. • They present a summary of the problem. • Some architectural patterns: • Layers, Pipes & Filters, Broker
Issues in Architecture • high performance • high quality • highly functional • testable • user-friendly • reliable • highly available • accurate • expandable • change-tolerant • robust • maintainable • portable • secure • safe • economical
Experience shows that less than 10% of the classes in a system are relevant to the architecture.
Architect Qualifications • Know the domain in which she works. • Must work knowledgeable with all stakeholders. • Has knowledge of software process and all parts of software development. • Is not the project manager, but has total management support.