
e1fc41de90e75bb1e9cbac10e9057635.ppt
- Количество слайдов: 51
Object-Oriented Technology and Software Reuse Dr. Nam-Yong Lee nylee@computig. soongsil. ac. kr 1 -1, Sangdo-dong, Dongjak-gu, Seoul, Korea Phone: (02)820 -0671 Handphone: 011 -362 -5656 1 Copyright© 1999 by Dr. Nam. Yong Lee
Information Technologies DISTRIBUTION TELECOM E. mail, FAX, LAN, WAN Phone, Cellular, E-Conference 2 -Way TV National Information Super Highway Info Vendors GUI & OS/ COMPUTER PC, Engineering Workstations Super-mini, Mainframe CONSUMER ELECTRONICS MEDIA & PUBLISHING Interactive News, , Newspapers, Newsletters Magazines & Journals Books Videogame, CD & Videodisc Film, TV, Video, Records & Cassettes Office Equipment Copier, Printers Scanners Medium--Transport--Translate--Transform--Present--Message/Content 2 Copyright© 1999 by Dr. Nam. Yong Lee
What Makes Systems Complex? Complex software costs Software cost n Performance constraints n Time-to-market pressures n Certification requirements n Distributed, real-time requirements n Size & geographic distribution of the engineering team n Reliability and fault-tolerance requirements n Rate of requirements and technology change n The interplay of these factors 3 n Diseconomy of scale Software Costs = E * (Size) P size/scale Copyright© 1999 by Dr. Nam. Yong Lee
Current Software Technology Thrusts Software Costs = E * (Size) 4 P Copyright© 1999 by Dr. Nam. Yong Lee
Software Maintenance Cost n n Total Life Cycle Cost Development Cost: 100 % – • Design Cost: 40% • Code: 20 % • Integration/Testing: 40 % Design Cost: 40 % n n Code: 20 % n Integration/Testing: 40 % – n 5 Development cost: 30 % Maintenance Cost: 300 % n Maintenance Cost: 70 % How to reduce Maintenance Cost ? Copyright© 1999 by Dr. Nam. Yong Lee
Establishing a Project’s Focus n Every successful project must have a set of primary characteristics against which business decisions can be made Time-to-market Scaleability Completeness Exensibility Performance Portability Quality Architectural reusability Fault tolerance n All of a project’s characteristics cannot be optimized at once n We can never have a completely rational development process 6 Copyright© 1999 by Dr. Nam. Yong Lee
Every Software Project Has a Particular Focus n Calendar-driven n Requirements-driven n Documentation-driven n Quality-driven n Architecture-driven 7 Copyright© 1999 by Dr. Nam. Yong Lee
Requirements-Driven Systems System function Common Infrastructure 8 Copyright© 1999 by Dr. Nam. Yong Lee
Architecture-Driven Systems System function Domain-specific framework Common Infrastructure GUI/decktop environment Domain model Application environment Domain-independant framework Distributed object management Networking Persistent object store 9 Basic operating system Copyright© 1999 by Dr. Nam. Yong Lee
Mitigating Software Failure n Success factors include – Ada 95, C++, etc. – Tools development environments, frameworks, application generators – Methods Booch, OMT, OOSE, UML – n Languages Processes SEI CMM, ISO 9000, Rational Unified Process No one factor is sufficient – 10 It’s an issue of balance Copyright© 1999 by Dr. Nam. Yong Lee
Programming Languages Lisp ALGOL 60 1960 Simula 67 1970 Smalltalk-72 Smalltalk-74 Pascal Smalltalk-76 C 1980 Flavors Smalltalk-78 LOOPs Smalltalk-80 Cluster Common Lisp Ada 83 Objective C Eiffel C with Classes Common Loops C++ 1. XX CLOS C++ 2. XX 1990 New Flavors C++ 3. XX Ada 95 C++ 4. XX Object-Oriented Language 11 Object-Based Language Procedural Language Copyright© 1999 by Dr. Nam. Yong Lee
Tools n Development environments – n Apex Frameworks – – Taligent – UNAS – n Ship System 2000 fin++ Application Generators – – 12 Powerbuilder Visual Basic, etc. Copyright© 1999 by Dr. Nam. Yong Lee
Methods Process maturity -- SEI CMM -- ISO 9000 Booch OMT Metrics and QA Objectory Unified Modeling Language Other methods -- CRC cards -- Responsibilty-driven design -- OBA -- Harel 13 Patterns Formalism Copyright© 1999 by Dr. Nam. Yong Lee
Evolution of the UML Submission to OMG for adoption, July ´ 97 Publication of 1. 0 Standard Dec ´ 96 public feedback June ´ 96 & Oct ´ 96 UML 0. 9 & 0. 91 Booch ´ 93 14 Standardization UML 1. 0 OOPSLA ´ 95 Unified Method 0. 8 Other methods Booch ´ 91 Industrialization UML 1. 1 UML Partners Expertise Fragmentation OMT - 2 OMT - 1 Unification OOSE Copyright© 1999 by Dr. Nam. Yong Lee
Processes n Be deliberate when considering process maturity – Successful projects will tend to rate high on the SEI CMM – A high rating on the SEI CMM does not infer success n ISO 9000 emphasizes quality and predictability n MIL-STD-498 emphasizes quality and reusability n ISO 12207 emphasizes processes n Consider acquisition processes as well – 15 Defense Science Board: Acquiring Defense Software Commercially Copyright© 1999 by Dr. Nam. Yong Lee
Levels of Process Maturity Optimized Performance - Cost - Schedule - Quality Managed Successful Projects Defined Applicable Initial . 16 . . . ? A successful organization will rate high in the CMM ? A high rating is not necessarily a strong predictor of success Copyright© 1999 by Dr. Nam. Yong Lee
The Artifacts of a Software Project n Architecture n Design n Code n Requirements n Data n Human interface n Estimates n Project plans n Test plans n Documentation 17 Copyright© 1999 by Dr. Nam. Yong Lee
Architectural Modeling Logical View Development View Scenarios Process View 18 Platform View Copyright© 1999 by Dr. Nam. Yong Lee
Other Issues n Managing risk n Planning and scheduling n Costing and staffing n Monitoring, measuring, and testing n Documenting n Projects in crisis n Domain-specific considerations 19 Copyright© 1999 by Dr. Nam. Yong Lee
The Development Team Documentation Analysis Tech Support Q&A Integration Application Engineers Project Manager Librarian End Users Analyst Architect Toolsmith Product Manager System Administrator 20 Patron Copyright© 1999 by Dr. Nam. Yong Lee
General Object-Oriented Technology Trends n The language wars are over – – Smalltalk – n C++ Ada 95 and others The method wars are over – n There a number of signs of growing maturity and acceptance – 21 Unified Modeling Language Success in a variety of application domains Copyright© 1999 by Dr. Nam. Yong Lee
The Emergence of Patterns n A pattern is a solution to a problem in a context – n A pattern codifies specific knowledge collected from experience in a domain – n A pattern also expresses its author’s intent Patterns capture common design solutions All well-structured systems are full of patterns – – 22 Mechanisms – n Idioms Frameworks Domain-specific patterns are emerging; patterns are being collected, cataloged, and used to build systems Copyright© 1999 by Dr. Nam. Yong Lee
Distributed Computing n Most interesting applications are rarely single programs running on isolated computers n Crafting distributed, concurrent systems is very hard n Issues include – – Migration – 23 Distribution Synchronization Copyright© 1999 by Dr. Nam. Yong Lee
Programming without Programming n Componentware – – Open. Doc – n OLE and COM CORBA Visual programming – – JAVA(JDK) – 24 Visual C++ – n Visual Basic Powerbuilder, SQL/Windows, and Object. Pro The emergence of domain-specific frameworks Copyright© 1999 by Dr. Nam. Yong Lee
Language Comparisons n Function points are essentially language independent n SLOC are definitely language dependent n Language expressiveness as a function of: – Unadjusted Function Points===> SLOC translation ratios Language SLOC/UFP Assembly 320 C 128 Fortran 77 105 COBOL 85 91 Source: Capers Jones Ada 71 C++29 Ada 95 25 ? ? Copyright© 1999 by Dr. Nam. Yong Lee
Megaprogramming Software Technology Language Level Support Software Micro programming Bits: 100, 010 F 12, A 07, 124, AAF Low level programming Instructions: LDR, ADDX, Assemblers, linkers CLA, JMPS High level language programming Lines: IF A then B loop I=I+1 Object based and Objectoriented programming Objects & packages: Compilers Type color is (red, yellow, green); package traffic_light Runtime libraries when green go; Megaprogramming Components & Services - Reuse - Automatic coding - COTS components 26 Machine languages Compilers Operating systems Compilers Overlay map with grid; Runtime libraries When failure switchover; Networks Shutdown all test processes; Operating systems Middleware CASE tools Copyright© 1999 by Dr. Nam. Yong Lee
Hardware Engineering Analogs to Megaprogramming Cobol System C Ada 83 Ada 95 C++ Smalltalk Megaprogramming Systems Rack Layers Card Categories, Subsystems, Class Libraries LSI chip Classes, Objects, SSI/ MSI chip Gate 27 Functions, Arguments, Return values, Strong typing Variables, Expressions, Statements Copyright© 1999 by Dr. Nam. Yong Lee
Technology State-of-the-Art Evolution Conventional Software Engineering Target Environment/Tools Custom - ad hoc Separate but off-the-shelf Off-the-Shelf and integrated Size 100% Custom 30% Megaprogrammed 70% Custom 70% Megaprogrammed 30% Custom Process/Team Ad hoc Repeatable Managed & measured Project Performance 28 Predictable Always over budget over schedule Unpredictable Infrequently on budget on schedule Predictable Competitive budget & schedule performance Copyright© 1999 by Dr. Nam. Yong Lee
Software Cost Evolution Conventional Diseconomy of Scale Software Engineering Modern Best Practices Economy of scale Project Cost Software ROI Functionality, scale and complexity Era Design methods 60 s 70 s 80 s 90 s Functional Declarative Object-Oriented Waterfall 2167 Iterative development Architecture Proprietary centralized Proprietary distributed Open distributed Languages FORTRAN-COBOL C-Ada 95, C++ Risk focus Functionality Performance Adaptability Process 29 Copyright© 1999 by Dr. Nam. Yong Lee
General Observations n Software development is hard – n And demands keep increasing You need all the help you can get – – Languages – Tools – 30 Patterns – n Methods Shared experiences Object-oriented technology is here to stay Copyright© 1999 by Dr. Nam. Yong Lee
Object-Oriented Technology Risk Evolution n Experience: 1986 vs 1994 Early risk focus Today’s risk focus Compiler maturity/performance Personnel training Environment/tool existence Process definition Development cost Integration complexity Requirements freeze Hardware resource adequacy Personnel skill Extent of automation Process improvement Reuse cost Formal test complexity Architecture adaptability TIMES HAVE CHANGED - OOT IS VERY MATURE 31 Copyright© 1999 by Dr. Nam. Yong Lee
Software Production SOFTWARE PRODUCTION FACTORS HUMAN TOOLS PARTS OR COMPONENTS PROCESS SOFTWARE PRODUCTS GET THE BEST FROM HUMAN IMPROVE SOFTWARE PRODUCTIVITY MAKE STEPS MORE EFFICIENT ELIMINATE STEPS ELIMINATE REWORK BUILD SIMPLER PRODUCTS REUSE COMPONENTS SOFTWARE PRODUCTIVITY IMPROVEMENT FACTORS 32 Copyright© 1999 by Dr. Nam. Yong Lee
Software Quality Metrics 33 Copyright© 1999 by Dr. Nam. Yong Lee
Software Components SYSTEM SEGMENT CSCI IRS SEGMENT HWCI 기개발된 소프트웨어 CSCI IRS HWCI CSC HWCI IRS HWCI CSC CSC CSU CSC CSU CSC 동일한 CSU가 서로다른 CSCs에서 사용됨 CSU CSC CSU CSU 34 CSU CSU Copyright© 1999 by Dr. Nam. Yong Lee
Empirical Studies on Software Reuse n LEGEND – – PRO: Productivity – n REU: Reusability MAI: Maintenability GROSSORY – – HAR: Hartford(Cavaliere, 1983) – TOS: Toshiba’s Software Factory(Matsumoto, 1984) – RAY: Raytheon’s Missile Systems Division(Lanergan & Grasso, 1984) – UOC: University of California at Irvine(Standish, 1984) – JAP: Japanese Software Factory(Standish, 1984) – GTE: GTE Data Services(Mc. Clure, 1992) – 35 AXE: AXE developed by Erisson Telecom in Sweden(Oskarsson, 1983) NAS: NASA(Selby, 1987) Copyright© 1999 by Dr. Nam. Yong Lee
Three Rs u Reusability œ is an approach to software development that is based on creating software systems from reusable components that are stored in automated libraries. u Re-engineering œ is the counterpart technology to CASE and the application of the newest technologies and tools to software maintenance. u Repository œ is more than a CASE repository because it integrates CASE tools, re-engineering tools, third-generation, fourth-generation, and fifthgeneration tools. 36 Copyright© 1999 by Dr. Nam. Yong Lee
Reusability u u u 37 Reusability is a much broader concept than simple reusable code. Possibilities of reusable components include: œ Abstract œ Higher-level software components such as design, models, data, and project management information Higher levels of reusability offers greater promise because they have greater potential to increase software productivity. Repository provides the library mechanism and representation formalism needed for reusability. The repository and re-engineering tools are the enabling tools for reusability. Copyright© 1999 by Dr. Nam. Yong Lee
Re-engineering u Re-engineering Technologies: – – Program logic restructuring – Data restructuring – Reverse engineering – n Program code analyzers and metrics Configuration and change management Re-engineering tools: – – Metrics tools – Restructuring tools – Reverse engineering tools – 38 Program analyzers Translators and converters Copyright© 1999 by Dr. Nam. Yong Lee
Reverse Engineering u Reverse engineering is the process of deriving a conceptual or logical description of a software system’s contents and components from its physical level description with the aid of automated tools REVERSE ENGINEERING PROCESS JCL Source code DDL File Description Reverse Engineer PHYSICAL LEVEL (IMPLEMENTATION-ORIENTED) 39 Spec. Language Data Models Process Models Interrelationships LOGICAL LEVEL (DESIGN-ORIENTED) Copyright© 1999 by Dr. Nam. Yong Lee
Process Reuse Framework u PLAN Goals, Strategies, Tailed Processes, Resources CREATE Needs, Lessons learned, Process Assets Lessons Needs 40 Assets MANAGE Assets and Descriptions Lessons UTILIZE Copyright© 1999 by Dr. Nam. Yong Lee
Reuse Process u Adaptive Process to Support Reuse u Parameterized Process to Support Reuse u Engineered 41 Process to Support Reuse Copyright© 1999 by Dr. Nam. Yong Lee
Adaptive Process to Support Reuse Domain Artifact u EXISTING SOFTWARE Reused Software ADAPTIVE ENGINEERING New Artifact MODIFIED SYSTEM Ported Software NEW PLATFORM 42 Copyright© 1999 by Dr. Nam. Yong Lee
Parameterized Process to Support Reuse EXISTING u SOFTWARE PARAMETERIZED SOFTWARE DOMAIN ARTIFACT PARAMETERIZED ENGINEERING NEW ARTIFACT DOMAIN RESOURCES REUSED SOFTWARE MODIFIED SYSTEM NEW APPLICATION FEEDBACK STANDARD PRODUCTS 43 Copyright© 1999 by Dr. Nam. Yong Lee
Engineered Process to Support Reuse EXISTING SOFTWARE u Domain Resources DOMIAIN ENGINEERING Dmain Artifact DOMAIN DATA Technology base Domain Expertise Theory 44 Domain and Software Architectures DOMAIN ANALYSIS NEW APPLICATION Feedback REUSE ENGINEERING Reuse-Engineered Software Domain Knowledge Reuse-Based Software Practices Copyright© 1999 by Dr. Nam. Yong Lee
Domain Analysis Techniques FODA(Feature-Oriented Domain Analysis) u Jaworski Technique u Prieto-Diaz technique u Synthesis Technique u 45 Copyright© 1999 by Dr. Nam. Yong Lee
Selected and Reusable Data Items n Concept Development Data Items n Management Data Items – Mission Need Statement – System Engineering Management Plan – Automation Economic Analysis – Data Communication Network Master Plan – System Decision Paper – Software Development Plan – Project Manager Charter – Software Configuration Management Plan – Acquisition Strategy and Plan – Software Standards and Procedures Manual – Statement Of Work – Software Quality Evaluation Plan – Work Breakdown Structure – Integration Test Plan – Independent Cost Estimation – System Security Plan – Product Management Plan – Development and Implementation Plan – Operational Concept Document – – 46 Data Requirement Document n Engineering Data Items – System/Segment Specification – Software Requirement Specification – Interface Requirement Specification – Software Top Level Design Document System Segment Specification Copyright© 1999 by Dr. Nam. Yong Lee
Selected and Reusable Data Items n Engineering Data Items – System Allocation Document – Software Detailed Design Document – Interface Design Document – Data-Base Design Document – Software Product Specification – n Test Data Items – Hardware Test Plan – Software Test Description – Software Test Procedures Version Description Document – Software Test Reports – Engineering Change Proposal – System Integration Test Plan – Specification Change Notice – Vendor Acceptance Test Plan – Interface Control Document – Software Quality Test Plan – Others: • System/Design Trade-Off – Software Acceptance Test Plan – System Acceptance Test Plan – Others • • • 47 Study Report System/Equipment Failure & Repair Study Report Program Review Documents Safety Evaluation Report Copyright© 1999 by Dr. Nam. Yong Lee
Selected and Reusable Data Items u 48 Operational & Support Data Items œ Computer Systems Operator’s Manual œ Software User’s Manual œ Computer System Diagnostic Manual œ Software Programmer’s Manual œ Firmware Support Manual œ Computer Resources Integrated Support Document œ Others Copyright© 1999 by Dr. Nam. Yong Lee
Windchill Product Families Customer Applications Future Applications Change Control View Management Windchill Information Modeler Product Structure Management Workflow Management Life Cycle Management Document Management Windchill Enterprise Configuration Manager Windchill Enterprise Document Manager Federation Administrator Windchill Foundation 49 Copyright© 1999 by Dr. Nam. Yong Lee
Information Infrastructure Cross Functional / Cross Service Integration ENTERPRISE INTEGRATION Functional Applications C 2 Applications Intelligence Applications Base/ Tactical Applications Mission Support Applications Future Applications Tactical Integration Shared Services, Technologies & Data DMS Base/ Tactical Infrastructure Technical Infrastructure Foundation 50 Modeling/ System Simulation Technology Base EC/EDI Mega centers Standards DII COE DII Control Concept Test and Evaluation Information Warfare/ Information Security Shared Data Futute Services DISN Future Infrastructure Software Engineering Architecture DII Policy Copyright© 1999 by Dr. Nam. Yong Lee
Strategies for Software Development Approach X+1 Year X+2 Year X+3 Year Solution X+3 Year Language Method and Process Tools 51 Object-Oriented Language (Ada’ 95, C++, JAVA) Structured Method US Do. D-2167 A, etc. Tools for SA/SD Unified Modeling Language ISO 12207, Unified Process BOOCH, OMT, etc. MIL-STD-498, etc. Tools for supporting UML and CORBA/DCOM Tools for BOOCH, etc. Copyright© 1999 by Dr. Nam. Yong Lee
e1fc41de90e75bb1e9cbac10e9057635.ppt