200 likes | 479 Views
Siemens’ 4 View Model. (props to My-An Nguyen for giving me her 344 notes on which this lecture is based). Conceptual View Activities. Central design tasks. Create conceptual… components, connectors, ports, roles, protocols. configuration. Global evaluation. Final design task.
E N D
Siemens’ 4 View Model (props to My-An Nguyen for giving me her 344 notes on which this lecture is based)
Conceptual View Activities • Central design tasks. • Create conceptual… • components, connectors, ports, roles, protocols. • configuration. • Global evaluation. • Final design task. • Software resource budgeting (memory, CPU time, …).
What is a Module Definition • Think of it as a UML package. • Does not imply that code will be non-Object-Oriented. • In execution view, will eventually “hold” either Object-Oriented (classes, …) or non-Object-Oriented code.
Module View Activities • Central design tasks. • Definition of subsystems, layers, modules. • Allocation of conceptual elements to the above. • Global evaluation. • Final design task. • Design of (key) module interfaces • Operations (name, signature
Execution View Definition • Define / perform … • Mapping of conceptual components and modules to run-time entities. • Run-time entities: e.g. tasks, processes, threads. • o Communication paths & mechanisms. • o Configuration. • o Resource allocation. • We are concerned with non-trivial views • Trivial Execution View = software that uses a single thread and process.
Execution View Activities • Central design tasks. • Define run-time entities, communication paths, execution configuration. • (Global evaluation) • Final design task. • Resource allocation.
Code View Definition (1) • Define / perform … • Mapping of modules from the Module View to source components • Mapping of run-time entities from the Execution View to deployment components • Define intermediate components; dependencies. • Organization of these components. • Build and Configuration Management.
Code View Definition (2) • Key words: • Source components. • Intermediate components. • Deployment components. • Dependencies between components. • We are concerned with non-trivial views • Trivial Code View = software with a single executable and a small development team. The Code View will then mimic the Module View.
Code View Activities • Central design tasks. Define & organize … • Source Components (& dependencies). • Intermediate Components (& dependencies). • Deployment Components (& dependencies). • (Global evaluation) • Final design task: • Build procedure. • Configuration management.
Code View (common complaints) • Consider what if… • Customer X has a problem with their release that was last built in October, then patched in December and January. You need to run tests to confirm the problem. • The Probe S/W team has just issued a new release, you need to integrate and test … • The Code View contains architectural decisions concerning the code!
Case study (1)IS2000 Execution and Code View – Global Analysis • The few strategies applicable to the Execution View: • Issue: Skill Deficiencies • Strategy: Avoid use of multiple threads. • Strategy: Encapsulate multiprocess support facilities. • Key concern for view: performance.
Case study (2)IS2000 Execution and Code View – Global Analysis • Introduce new issue: High Throughput • Probe has higher data rate than previous products. • Image processing must keep up with probe. • Solutions/Strategies: • Map independent threads of control to processes. However, there was only one developer with experience in multithreading and the cost of creating/destroying processes is low. • Use an additional CPU. • Avoid the use of multiple threads.