BIS 210 Enterprise Systems Gio Wiederhold CS EE
BIS 210 – Enterprise Systems Gio Wiederhold CS, EE, Medicine March 2001 [SPWF: Medical Informatics, chap. 5] 9/6/2021 Gio: BIS 210 ES 1
Outline • • • Systems and Components Requirements Buy or Build Software Engineering Trends 9/6/2021 Gio: BIS 210 ES 2
Systems and Components System: a collection of components • Components: – Hardware • • Processing transformation Input – Output to people/paper Communication among components Storage temporal communication – Programs to drive the hardware What's different when writing systems from writing programs? 9/6/2021 Gio: BIS 210 ES 3
Large systems • Many communication paths – People as sources and sinks – Components as intermediate nodes • Many objectives – Solution workflow is hierarchical • Conflicting decompositions – Interactions form a network • conflicts with simple design models 9/6/2021 Gio: BIS 210 ES 4
One Application in the World Transform Data into Information Match Costumer Model Hierarchical to Resource Model General network (and maintain models) 9/6/2021 Gio: BIS 210 ES 5
Hospital Information Systems Many Functions / many types of users • Patient admission, transfer, discharge • Order entry & distribution to subsystems • Pharmacy, Lab, Radiology, Supplies, . . . • Record of actions performed • Triggering of follow-ups needed • Billing • Inpatient Medical Records • Surveillance (iatrogenic diseases) 9/6/2021 Gio: BIS 210 ES 6
Ambulatory Care Multiple patient contact points • Problem tracking why more important for outpatients? • Care tracking: medications, . . , outcomes • Scheduling • Long-term medical records • . . . many more This is a wonderful list, and there is nothing more wonderful than a list, and we could go on and on adding things, but now we have to go to do real (work). [Umberto Ecco, The Name of the Rose] 9/6/2021 Gio: BIS 210 ES 7
System Architecture = Connections among Components • Issues – Performance – Reliability – Maintainability • Factors – Size – Number of components 9/6/2021 Gio: BIS 210 ES 8
Architectural Models • Central – ok for single objective • Distributed – owned subsystems – autonomous services • Transaction – small services, isolated – database provides all communication – often 3 -layer 9/6/2021 Gio: BIS 210 ES 9
Transforming Data to Information Application Layer Mediation Layer Foundation Layer 9/6/2021 users at workstations value-added services hidden data and simulation resources Gio: BIS 210 ES 10
Buy or Build ? time is an issue • Build (to get exactly the system you want tomorrow) – Specification requires experience – Building takes personnel and time (3 years? ) – Long-term commitment to staff • Buy (and adapt your operations to its capabilities) – Specifications are based on other prior experiences – Not all functions may be available from one source – If it's complete today it's likely obsolete today • Mixed (compose from best available modular pieces) – Ideal ? Faster (1 year? ) – Which of many standards ? 9/6/2021 Gio: BIS 210 ES 11
Build: Software Engineering Where to start ? Where to go to ? • Waterfall model Traditional Engineering – Requirements specifications design code test deliver maintain ? • Rapid Prototyping Iterative ~3 -month cycle – Demo: build { code test deliver fix } Prototype 1. . . n {"}, Operational n+1. . . m {"} • Watersluice Priority-based [Burback] – Most risky module first. . . design assess . . . – Scaffolding 9/6/2021 Gio: BIS 210 ES 12
Lifetime costs of SW systems • • Requirements 3% Specifications 3% Design 5% Code 5% Module Test 8% Integration test 7 % Maintenance 67 % much more later [Meiler Page-Jones: The Practical Guide to Structured Systems Design, Prentice Hall, 1988] 9/6/2021 Gio: BIS 210 ES 13
Design Defects in Applications • • Requirements 29. 1 % Functionality 14. 2 % (when delivered) User interface 22. 0 % Data definition 8. 7 % Why ? Error checking 5. 3 % Data handling 10. 2 % Computation 5. 5 % Logic Implementation 3. 9 % [Robert Grady: Practical SW Metrics for Program Management and Process Improvement, Prentice Hall, 1992] 9/6/2021 Gio: BIS 210 ES 14
Decision can differ by layer – Programming • who potential 4 Service (GUI) customer 3 Application Lang. domain exp. 2 Platform (API) funct. progr. 1 Native syst. progr. 9/6/2021 Elements used difficulty Products revenue Components Services low ? v. high: browsers Capabilities Components moderate high Primitives Capabilities high moderate Generic SW Primitives v. high low Gio: BIS 210 ES 15
Maintenance • Definition: Unscheduled tasks to fix • errors in software (often induced by growth in scope) • adapt to externally imposed changes (tax laws, regulations, interfaces, customer expectations, …) • adapt to internally imposed changes (mergers, corporate reorganization, new product lines, . . . ) • Crucial leverage: – 60 -90% of system costs are SW-maintenance • If maintenance costs can decrease 25% we double our capability to develop innovative products • If maintenance costs increase by 25% we loose any capability for innovation – Affected by paradigm change 9/6/2021 Gio: BIS 210 ES 16
Is the waterfall, i. e. , engineering model valid? long lifetime Life Dep MC low depreciation @ 1 / lifetime 13 ? 12 11 years 10 9 8 7 6 high maintenance cost Life of asset Depreciation Maintenance Cost 90 80 70 60 Life Dep MC 5 50 maint. cost/y % depr. /y % 40 4 30 3 20 2 10 1 0 automobile software hardware • Software differs from hardware 9/6/2021 Gio: BIS 210 ES 17
Maintenance Strategy Good BENEFIT/COST wrt customer • Benefit is relevant information, requires constant updating • Avoid cost of change, don’t change system, interfaces We expect SW to be adaptable Life Dep MC 13 12 11 ? 100% years 10 9 8 7 6 5 4 3 2 1 90 80 70 Life Dep MC 0 software hardware • Cost – initial – maintenance (60 -90% for SW) Gio: BIS 210 ES 50 40 30 20 10 – enables change, growth – long lifetimes – regular, high maintenance 9/6/2021 60 18
Composition of modules • Completeness Multiple vendors – New & modern ? Risk – Legacy • Interface specifications • Formats • Terminology – Ontologies – Effect on performance 9/6/2021 Gio: BIS 210 ES 19
History: Logical Progression • Machine language 1945 – generation of basic code sequences • Assembly language 1955 – shared code & shared data in memory • Compiled languages – standardized code units with parameters • Database services – control ceded to the DB administrator • Object Libraries for specific Domains – domains & solution structure predefined Loss of autonomy Increase of scale 9/6/2021 1960 1975 1990 & Cede control & Benefit from work of others Gio: BIS 210 ES 20
Software Paradigm Shift • Re-allocation of autonomy is gradual, invisible • In the aggregate, over time, affects – Technology Paradigm – Business Practices – Educational needs • Hypothesis: We have to explicitly change from a subroutine mentality (programmer control) to a service mentality (cooperation & mediation) 9/6/2021 Gio: BIS 210 ES 21
Evidence PAST ARGUMENTS • Hardware architecture Number of bits/word Number of registers Size of address field • DEC vs IBM vs CDC vs Mac CURRENT ARGUMENTS • Component architecture Description Asynchrony Inheritance • CORBA vs XML vs UDDI vs. . . ARGUING implies VALUE SHIFT from Hardware to Software Componentry 9/6/2021 Gio: BIS 210 ES 22
Workforce reallocation Integration Coding Integration originally performed for large systems • by system integration companies: – Honeywell, IBM federal, Fujitsu, Lockheed, SAIC, Andersen. . . Integration now performed for most systems • by application clients and services: – too many to name, including you. . . 9/6/2021 Gio: BIS 210 ES 23
Growth through Reuse New Applications Prior & Revised Mediators Extended Data Resources 9/6/2021 Gio: BIS 210 ES 24
Incremental Maintenance 1. New/Revised application needs more data 2. Mediator isolates other applications 3. New application checks out data and function 4. Other applications can join when feasible versus 1. New/Revised application needs more data 2. Determine affected applications 3. Change affected codes, create test scaffolding 4. Plan for system-wide release at three-month cycle 5. Batch all other changes for that cycle 6. Perform critical, risky release of batch 9/6/2021 Gio: BIS 210 ES 25
New Metrics • Productivity Lines of Code --> Time to Asssemble a Product • Time to Update Product Several years --> 3/6 months • Satisfaction of System Administrator --> Customer – -- missing: • Performance based on Detailed data --> Component / Service specs 9/6/2021 Gio: BIS 210 ES 26
Economics Composition Programming • • Train programmers Detailed system analysis Detail coding and debug Integration Revisit specifications Satisfy all requirements Maintain software with growth and as requirements change • • Purchase of base Learning its conventions Adapting to them Misunderstanding Supplier errors Multi-base mismatch Unsatisfied requirements • Obtain updates • Participate in base growth Long term costs > < Dependence, Risk Development Speed ? 9/6/2021 Gio: BIS 210 ES 27
Software as a Service Paradigm • Customer views understood within server domain • Processes use stored and maintained knowledge • Processing adds value to data objects accessed • Payment received for services and results 9/6/2021 Gio: BIS 210 ES 28
Summary • No single path to Nirvana • Large failure rate • No large systems will be built anymore from the ground up • Growth potential in Services • Healthcare uses often very old systems – hard to show benefits of change – costs hard to justify versus benefits/income. 9/6/2021 Gio: BIS 210 ES 29
- Slides: 29