The Phases of an Object-Oriented Application
|
|
|
- Ethan Dickerson
- 10 years ago
- Views:
Transcription
1 The Phases of an Object-Oriented Application Reprinted from the Feb 1992 issue of The Smalltalk Report Vol. 1, No. 5 By: Rebecca J. Wirfs-Brock There is never enough time to get it absolutely, perfectly right. I was lured to computer science by the fact that I could spend hours and hours working on elegant solutions to fairly simple problems. When my code became too difficult to follow, often I could find a simpler design, if I had the courage to back up and rethink my almost workable solution. Things actually got better if I would relax, and not try so hard to force my program to work. After I got my degree and an engineering job, I found that not only did my code have to work, I had to provide a detailed plan for my work and estimate when I would complete each major task. Assignments no longer could be easily completed within a week. As a consequence, I learned how to subdivide a large problem into smaller, more manageable activities. I also learned to pad my estimates (in order to account for the unaccountable), and to reassess my plan whenever I achieved a subgoal. Object-oriented technology can add complexity to the software development puzzle. Objectoriented design techniques and programming languages provide good tools for handling abstractions and developing potentially reusable software. Yet what is the additional cost of developing reusable code? It is hard enough to plan and deliver software on time, within budget and meeting customer expectations with traditional development methods. Designing and implementing for reuse presents a totally new set of challenges. A class that has been designed and implemented to be used in more than one application probably requires more effort than a class designed to work within a single application. However, shouldn t all classes be designed to be understood and usable by other programmers, regardless of their general utility? Certainly not all classes are worth equal time and attention. Since time is limited, what should be an appropriate way to divide the time spent developing various parts of an application? The challenge is to know when and where to apply extra effort. It s also important to know when to stop tweaking code for the sake of making it better when returns will be meager. Typical Application Structure An object-oriented application of even moderate complexity is naturally decomposed into several major subsystems. Each subsystem consists of objects from classes that share the overall workload of the subsystem, and collaborate to get the subsystem s tasks accomplished. In a well
2 factored design, objects within each subsystem primarily collaborate with each other. Certain key objects handle requests from other objects outside the subsystem. In general, however, few objects within a subsystem are visible outside the subsystem. In many designs, there also are a number of general utility classes. Smalltalk environments provide a comprehensive set of container, graphics and user interface classes. In addition to this valuable class library, many applications add their own specific utility classes. Rather than having each subsystem design consist of its unique but perhaps only slightly different classes, a common class library is developed and used throughout the entire application. These classes serve to enforce common error handling policies, support default behaviors, or to encapsulate information passed between subsystems. A Development Timeline The overall development process can be roughly divided into distinct phases. The first stage of any design consists of exploring possible alternatives. Major subsystem partitioning strategies are determined. An initial model of the key design objects is proposed. Once this initial model has been developed, effort shifts into a detailing phase where precision is added to initial decisions. Subsystems and the classes within them are sufficiently elaborated and then implemented. Each subsystem will progress at a different pace due to variations in complexity and according to the abilities and experiences of its designers. However, any subsystem will pass through most of these steps: 1. Specification. During this stage a rough idea of the purpose of the subsystem and the services it will provide is proposed. An estimate of the subsystem s complexity can be made. This estimate may include: a list of key classes (perhaps including their names and a brief description) and some measure of their complexity and projected general utility, and an estimate for the time required to complete an exploratory design. 2. Exploratory Design. During this stage key objects and their interactions are modeled. An initial pass is made at defining each key class role and responsibilities. Several additional layers of each subsystem design can be elaborated. Services available to objects outside the subsystem are specified in greater detail. Assumptions about services provided by other objects and subsystems are proposed. These assumptions will need review and refinement in context of the overall application architecture. 3. Detailed modeling. Elaboration of the initial exploratory design means extensive review and refinement of the initial model. Classes are scrutinized for appropriate factoring of responsibilities. A lot of time can be spent making slight readjustments of object roles and responsibilities to minimize inter-object dependencies and simplify the design. New supporting classes may be created to further reduce coupling between classes. And permissible patterns of collaboration between objects can be formalized through contracts that spell out services used by specific clients. Finally, class inheritance hierarchies can be developed. Common responsibilities can be found and superclasses created which generalize behavior common among several classes.
3 4. Implementation. Whether one calls finalizing internal details of each class the last step in detailed modeling or the first task of implementation isn t important. However, at this point, a number of design issues that quite reasonably have been deferred, must be decided. Decisions must be made about the representation of each class attributes or characteristic properties. The choices are to derive an attribute from other information or store it as an instance variable. New classes may be constructed to model attributes if existing class aren t appropriate. Operations must be decomposed into reasonable substeps and implemented. Careful attention must be paid to ensure consistent, clear message protocols. The fine details of abstract classes must be developed and will be proven by the ease with which their subclasses can be implemented. 5. Integration. Another crucial point in any large application comes when subsystems developed in relative isolation (after agreeing upon basic inter-subsystem interactions and publicly available services) are made to work together. Test stub methods and objects are replaced by their application stand-ins. It is at this stage that hidden assumptions about services provided and/or expected patterns of usage are uncovered, and once again might need readjusting. 6. Validation. Once parts of the application are functioning, the operation of classes and subsystems can undergo extensive validation. It is reasonable to test a class in isolation (by developing test methods, adjusting its encapsulated state, and testing how it responds). It is also necessary to validate the overall behavior of major subsystems in the actual working environment. 7. Cleanup. Once a subsystem has been implemented and validated, it oftentimes merits further attention. A relatively minor sweep through the classes and working code can often provide dramatic improvements in performance, code clarity and robustness. The goal of this phase is to provide for better use and improved maintenance. 8. Generalization for broader utility. Once a subsystem is implemented and works well, its general utility can sometimes be improved. This activity needs to be carefully planned. Not all subsystems are significant enough or have enough potential utility to merit this extra effort. There is a separate timeline for each subsystem under development. Several major integration points can add subsystem functionality in varying stages of maturity. Figure 1 shows a timeline for a hypothetical object-oriented application. Intentionally missing is the timeline for utility class development. In an ideal situation, utility classes would be developed along with the subsystems that used them. They would need refining throughout the project. In this hypothetical application, developers of one subsystem skipped over detailed modeling, and launched right in to implementation. This might have been due to an overeager implementation team, or the subsystem might have been simple enough to not warrant much detailing. Many subsystems were modeled in detail, and passed through most steps. However, only one subsystem is shown being generalized for even broader utility. Most subsystems (at least during this timeline) never were generalized. Where to Spend Time and Effort Obviously, all classes are not of equal value or worth. And many classes in object-oriented applications are developed for use, not reuse. But in order to be used (by anyone other than the original author) or enhanced in future maintenance releases, classes still need to be engineered and
4 implemented with care. If an inadequate amount of time is spent in detailed modeling, implementation and maintenance costs can skyrocket. One reasonable estimate I ve applied to scheduling, is that detailed modeling can take roughly twice as much time as initial exploration. This estimate was based on the assumption that the designers had a good working knowledge of the problem area and weren t trying to learn about the application requirements as well as object technology. If the team has been fairly disciplined about detailing the design model, then implementation time can be shortened. if the design team is relatively new to both the application and object technology, it may be tempting to move directly from an exploratory model right into implementation. This may be a reasonable strategy to get the team thinking and implementing in objects. But resist the urge to bolt directly to implementation. Spend some time reviewing the initial model. Try to assess high-leverage areas that are worth extra design time as well as areas where the design still seems unclear. Given an inexperienced team, the initial implementation may well turn out to be a prototype. The application will more than likely need to be redesigned and reimplemented following a more disciplined approach once the basic model and application objectives are understood. Clearly state goals for the overall quality level expected for each class and subsystem. Establish targets for each subsystem for how much refinement and generalization are warranted. Perhaps only twenty percent of the application classes are worth spending eighty percent of total time spent devoted to reuse improvements. As work progresses on each subsystem, stop and reassess progress shortly before and after each major milestone. Examine the flaws and issues that have been uncovered. Glossing over serious gaps in design or implementation will only delay consequences to later, when the cost of backtracking and fixing are higher. It requires discipline on part of management and the design team to pause to measure progress and quality, and to plan for the next phase. Object-oriented software development should not be an excuse for throwing out proven development practices, even if the tools and techniques are a big improvement. Here are some characteristics of a reasonably well thought out design: It has been factored into classes that each do one thing well. Each class has a singular, clearly stated purpose and the implementation follows the design intent. The alternative is fewer classes that do several more things adequately. Public interfaces to classes are straightforward and simple to understand. Messages, in general, don t have lots of arguments. It s even better if using an object doesn t require understanding complex modes, switches or a complicated internal state machine. Methods have been decomposed into several discrete steps. These steps are implemented by sending messages to the receiver (self) or delegating tasks to objects referenced through instance variables. The alternative is lengthy, long-winded methods. There are a number of classes having roles of manager, coordinator or information repository. They provide generally useful services that are straightforward and readily
5 understood. These classes provide useful mechanisms, infrastructures and glue for the rest of the system, reducing the overall complexity of many other classes. Class inheritance hierarchies may have been developed. There may be abstract classes at the root of these hierarchies. The purpose of developing class hierarchies with abstract classes, is to abstractly specify behavior common to a number of existing subclasses. The alternative is rather flat inheritance hierarchies, with little or no commonly shared behavior. Future additions, extensions and modifications will be easier to make if time has been spent building clean, understandable class hierarchies. Enhancing Reuse and Reducing Maintenance Costs Refining classes for reuse is analogous to optimizing code for improved performance. Neither happen by chance. But if well planned and executed, improvements can be quite dramatic. Here are some ways to improve existing classes and subsystems: Isolate replaceable features and decompose algorithms into subparts (that can be overridden by new subclasses). Encapsulate instance variables. Rewrite class code to call accessing methods. This allows subclasses to change and/or augment inherited instance variables without having to rewrite superclass code. Spend time streamlining collaborations between subsystems. Reduce the number of classes that are visible outside the subsystem. Augment classes that worked adequately for one application for increase their utility. Rework class hierarchies and create both abstract classes to represent useful generalizations, and new subclasses which represent useful specializations. Improve the legibility and understandability of existing classes. Simplify message protocols and make them more consistent. Augment class and subsystem documentation with discussions on intended usage, sample code and calling sequences. Add typical calling sequences to existing code as comments. No matter how great the Smalltalk development environment, it isn t a replacement for planning, designing and some amount of discipline. Developing an object-oriented application involves new ways of thinking and structuring solutions. The biggest payoff comes when sound engineering practices are added to the development picture. Further Reading J.M. Moore and S.C. Bailin, Domain Analysis: Framework for Reuse, in Domain Analysis and Software Systems Modeling, Ruben Prieto-Diaz and Guillermo Arango, editors, pp , 1991, IEEE Computer Society Press. Allen Wirfs-Brock and Brian Wilkerson, Variables Limit Reusability, Journal of Object- Oriented Programming, 2(1), pp , May/June 1990.
Engineering Process Software Qualities Software Architectural Design
Engineering Process We need to understand the steps that take us from an idea to a product. What do we do? In what order do we do it? How do we know when we re finished each step? Production process Typical
How Designs Differ By: Rebecca J. Wirfs-Brock
How Designs Differ By: Rebecca J. Wirfs-Brock Reprinted From: Report on Object Analysis and Design, Vol. 1, No. 4 Most design students are searching for the right set of techniques to rigidly follow in
Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 2 GoF Design Patterns Creational 1 GoF Design Patterns Principles Emphasis on flexibility and reuse through decoupling of classes. The underlying
Getting Started with Kanban Paul Klipp
Getting Started with Kanban Paul Klipp kanbanery 2 Contents 3/ Getting Started with Kanban 4/ What is Kanban? 7/ Using Kanban Does kanban apply to me? How can it help me? What will I have to change? 10/
Introduction to Software Paradigms & Procedural Programming Paradigm
Introduction & Procedural Programming Sample Courseware Introduction to Software Paradigms & Procedural Programming Paradigm This Lesson introduces main terminology to be used in the whole course. Thus,
The Rules 1. One level of indentation per method 2. Don t use the ELSE keyword 3. Wrap all primitives and Strings
Object Calisthenics 9 steps to better software design today, by Jeff Bay http://www.xpteam.com/jeff/writings/objectcalisthenics.rtf http://www.pragprog.com/titles/twa/thoughtworks-anthology We ve all seen
Ensuring Reliability in Lean New Product Development. John J. Paschkewitz, P.E., CRE
Ensuring Reliability in Lean New Product Development John J. Paschkewitz, P.E., CRE Overview Introduction and Definitions Part 1: Lean Product Development Lean vs. Traditional Product Development Key Elements
Chapter 13 BUILDING INFORMATION SYSTEMS. How does building new systems produce organizational change?
MANAGING THE DIGITAL FIRM, 12 TH EDITION Learning Objectives Chapter 13 BUILDING INFORMATION SYSTEMS VIDEO CASES Case 1: IBM: Business Process Management in a Service Oriented Architecture and Managing
Basic Trends of Modern Software Development
DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering
UML SUPPORTED SOFTWARE DESIGN
UML SUPPORTED SOFTWARE DESIGN Darko Gvozdanović, Saša Dešić, Darko Huljenić Ericsson Nikola Tesla d.d., Krapinska 45, HR-0000 Zagreb, Croatia, tel.: +385 365 3889, faks: +385 365 3548, e-mail: [email protected]
Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective
Orit Hazzan's Column Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective This column is coauthored with Jeff Kramer, Department of Computing, Imperial College, London ABSTRACT
Johannes Sametinger. C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria
OBJECT-ORIENTED DOCUMENTATION C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria Abstract Object-oriented programming improves the reusability of software
II. TYPES OF LEVEL A.
Study and Evaluation for Quality Improvement of Object Oriented System at Various Layers of Object Oriented Matrices N. A. Nemade 1, D. D. Patil 2, N. V. Ingale 3 Assist. Prof. SSGBCOET Bhusawal 1, H.O.D.
JOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2006 Vol. 5. No. 8, November-December 2006 Requirements Engineering Tasks Donald Firesmith,
the state of the practice Variations in Software Development Practices
focus the state of the practice invited article Variations in Software Development Practices Capers Jones, Software Productivity Research My colleagues and I at Software Productivity Research gathered
Object Oriented Design
Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and
Chapter 8 Approaches to System Development
Systems Analysis and Design in a Changing World, sixth edition 8-1 Chapter 8 Approaches to System Development Table of Contents Chapter Overview Learning Objectives Notes on Opening Case and EOC Cases
ENTERPRISE ARCHITECTUE OFFICE
ENTERPRISE ARCHITECTUE OFFICE Date: 12/8/2010 Enterprise Architecture Guiding Principles 1 Global Architecture Principles 1.1 GA1: Statewide Focus 1.1.1 Principle Architecture decisions will be made based
Improving Software Development Economics Part II: Reducing Software Product Complexity and Improving Software Processes
Improving Software Development Economics Part II: Reducing Software Product Complexity and Improving Software Processes by Walker Royce Vice President and General Manager Strategic Services Rational Software
Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur
Module 2 Software Life Cycle Model Lesson 4 Prototyping and Spiral Life Cycle Models Specific Instructional Objectives At the end of this lesson the student will be able to: Explain what a prototype is.
Software Life Cycle Processes
Software Life Cycle Processes Objective: Establish a work plan to coordinate effectively a set of tasks. Improves software quality. Allows us to manage projects more easily. Status of projects is more
CHAPTER 24 SOFTWARE PROJECT SCHEDULING. Overview
CHAPTER 24 SOFTWARE PROJECT SCHEDULING Overview The chapter describes the process of building and monitoring schedules for software development projects. To build complex software systems, many engineering
Foundations for Systems Development
Foundations for Systems Development ASSIGNMENT 1 Read this assignment introduction. Then, read Chapter 1, The Systems Development Environment, on pages 2 25 in your textbook. What Is Systems Analysis and
FIREWALL CLEANUP WHITE PAPER
FIREWALL CLEANUP WHITE PAPER Firewall Cleanup Recommendations Considerations for Improved Firewall Efficiency, Better Security, and Reduced Policy Complexity Table of Contents Executive Summary... 3 The
Requirements Management
REQUIREMENTS By Harold Halbleib Requirements Management Identify, Specify, Track and Control Requirements Using a Standard Process About the author... Harold Halbleib has a degree in Electrical Engineering
Software Engineering. What is a system?
What is a system? Software Engineering Software Processes A purposeful collection of inter-related components working together to achieve some common objective. A system may include software, mechanical,
GenericServ, a Generic Server for Web Application Development
EurAsia-ICT 2002, Shiraz-Iran, 29-31 Oct. GenericServ, a Generic Server for Web Application Development Samar TAWBI PHD student [email protected] Bilal CHEBARO Assistant professor [email protected] Abstract
1-04-10 Configuration Management: An Object-Based Method Barbara Dumas
1-04-10 Configuration Management: An Object-Based Method Barbara Dumas Payoff Configuration management (CM) helps an organization maintain an inventory of its software assets. In traditional CM systems,
To introduce software process models To describe three generic process models and when they may be used
Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software
RSA VIA LIFECYCLE AND GOVERNENCE: ROLE MANAGEMENT BEST PRACTICES
RSA VIA LIFECYCLE AND GOVERNENCE: ROLE MANAGEMENT BEST PRACTICES A practitioner s perspective on best practices for Role Management ABSTRACT This white paper provides an overview of the Role Management
Fourth generation techniques (4GT)
Fourth generation techniques (4GT) The term fourth generation techniques (4GT) encompasses a broad array of software tools that have one thing in common. Each enables the software engineer to specify some
The Project Matrix: A Model for Software Engineering Project Management
The Project Matrix: A Model for Software Engineering Project Management Sally Shlaer Diana Grand Stephen J. Mellor Project Technology, Inc. 10940 Bigge Street San Leandro, California 94577-1123 510 567-0255
Outline. Definitions. Course schedule
SENG480A/CSC576A Topics in Software Engineering Software Development, Architecture & Evolution Lectures, Sep 17, 20, 2001 Hausi A. Müller University of Victoria Outline Assignment 1 due Sep 27 Last week
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General
New criteria for assessing a technological design
New criteria for assessing a technological design Kees van Hee and Kees van Overveld April 2012 1. Introduction In 2010 we developed a set of criteria for the evaluation of technological design projects
Component Based Software Engineering: A Broad Based Model is Needed
Component Based Software Engineering: A Broad Based Model is Needed Allen Parrish ([email protected]) Brandon Dixon ([email protected]) David Hale ([email protected]) Department of Computer Science
Data Abstraction and Hierarchy
Data Abstraction and Hierarchy * This research was supported by the NEC Professorship of Software Science and Engineering. Barbara Liskov Affiliation: MIT Laboratory for Computer Science Cambridge, MA,
Why developers should use ODBC instead of native proprietary database interfaces
P RODUCT O VERVIEW Why developers should use ODBC instead of native proprietary database interfaces The financial and technical basis for using ODBC with wire protocol drivers instead of native database
Baseline Code Analysis Using McCabe IQ
White Paper Table of Contents What is Baseline Code Analysis?.....2 Importance of Baseline Code Analysis...2 The Objectives of Baseline Code Analysis...4 Best Practices for Baseline Code Analysis...4 Challenges
Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali
Software development life cycle Software life cycle: Software Engineering - II ITNP92 - Object Oriented Software Design Dr Andrea Bracciali Module Co-ordinator 4B86 [email protected] Spring 2014 (elicitation)
BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2
BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2 EXAMINERS REPORT Friday 2 nd October 2015 Answer any THREE
ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS
ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS Lech MADEYSKI *, Michał STOCHMIAŁEK Abstract. Architectural design is about decisions which influence characteristics of arising system e.g. maintainability
Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique
Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique Hyeon Soo Kim School of Comp. Eng. and Software Eng., Kum Oh National University
HOW TO USE THE DGI DATA GOVERNANCE FRAMEWORK TO CONFIGURE YOUR PROGRAM
HOW TO USE THE DGI DATA GOVERNANCE FRAMEWORK TO CONFIGURE YOUR PROGRAM Prepared by Gwen Thomas of the Data Governance Institute Contents Why Data Governance?... 3 Why the DGI Data Governance Framework
Software Process for QA
Software Process for QA Basic approaches & alternatives CIS 610, W98 / M Young 1/7/98 1 This introduction and overview is intended to provide some basic background on software process (sometimes called
Making the Right Choice
Tools & Automation Making the Right Choice The features you need in a GUI test automation tool by Elisabeth Hendrickson QUICK LOOK Factors to consider in choosing a GUI testing tool Treating GUI test automation
zen Platform technical white paper
zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant
Improve Your Process With Online Good Practices 1
Improve Your Process With Online Good Practices 1 Karl Wiegers Process Impact www.processimpact.com Most software developers are allergic to paper. As organizations improve their software development and
Algorithms, Flowcharts & Program Design. ComPro
Algorithms, Flowcharts & Program Design ComPro Definition Algorithm: o sequence of steps to be performed in order to solve a problem by the computer. Flowchart: o graphical or symbolic representation of
Software Paradigms (Lesson 1) Introduction & Procedural Programming Paradigm
Software Paradigms (Lesson 1) Introduction & Procedural Programming Paradigm Table of Contents 1 Introduction... 2 1.1 Programming Paradigm... 2 1.2 Software Design Paradigm... 3 1.2.1 Design Patterns...
Object-Oriented Design
Object-Oriented Design Peter Coad and Edward Yourdon Technische Hochschule Darmstadt FACHBKREICH INFORMATIK BIBLIOTHEK Inventar-Nr.:...A.Q.HA&. Sachg biete:.../??/.4, Standort: YOURQDN PRESS PRENTICE HALL
Maximizing the ROI Of Visual Rules
Table of Contents Introduction... 3 Decision Management... 3 Decision Discovery... 4 Decision Services... 6 Decision Analysis... 11 Conclusion... 12 About Decision Management Solutions... 12 Acknowledgements
Software Life Cycle. Management of what to do in what order
Software Life Cycle Management of what to do in what order Software Life Cycle (Definition) The sequence of activities that take place during software development. Examples: code development quality assurance
The 2014 Bottleneck Report on Enterprise Mobile
The 2014 Bottleneck Report on Enterprise Mobile What s the big bottleneck for enterprise mobile app development this year, and how do you get past it? 1 / 32 The 2014 Bottleneck Report on Enterprise Mobile
Answers to Top BRMS Questions
November 2009 Answers to Top BRMS Questions Answers to ten frequently asked questions about what business rule management systems are and how they are used Brett Stineman Product Marketing, Business Rules
Functional Decomposition Top-Down Development
Functional Decomposition Top-Down Development The top-down approach builds a system by stepwise refinement, starting with a definition of its abstract function. You start the process by expressing a topmost
SPECIFICATION BY EXAMPLE. Gojko Adzic. How successful teams deliver the right software. MANNING Shelter Island
SPECIFICATION BY EXAMPLE How successful teams deliver the right software Gojko Adzic MANNING Shelter Island Brief Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Preface xiii Acknowledgments xxii
Windchill Policy Administration within TEWI Administrative Domain
JOURNAL OF APPLIED COMPUTER SCIENCE Vol. 21 No. 2 (2013), pp. 153-163 Windchill Policy Administration within TEWI Administrative Domain Konrad Swirski, Urszula Zajkowska Technical University of Warszawa
ESTABLISHING A MEASUREMENT PROGRAM
ESTABLISHING A MEASUREMENT PROGRAM The most important rule is to Understand that software measurement is a means to an end, not an end in itself Three key reasons for Software Measurement Understanding
Building Lab as a Service (LaaS) Clouds with TestShell
Building Lab as a Service (LaaS) Clouds with TestShell Introduction Test labs represent a large ongoing investment and an opportunity for significant savings. Many technology organizations are seeking
When companies purchase an integrated learning
Feature 2. Project team members are required to perform their regular responsibilities in addition to committing their time to the implementation. Organizations can overcome these challenges if they find
EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS
EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS Umamaheswari E. 1, N. Bhalaji 2 and D. K. Ghosh 3 1 SCSE, VIT Chennai Campus, Chennai, India 2 SSN College of
Evaluating a new programming language
In G. Kadoda (Ed). Proc. PPIG 13 Pages 275-289 Evaluating a new programming language Steven Clarke Microsoft Corporation 1 Microsoft Way Redmond, WA 98052 USA +1 425 705 5978 [email protected] Keywords:
8. KNOWLEDGE BASED SYSTEMS IN MANUFACTURING SIMULATION
- 1-8. KNOWLEDGE BASED SYSTEMS IN MANUFACTURING SIMULATION 8.1 Introduction 8.1.1 Summary introduction The first part of this section gives a brief overview of some of the different uses of expert systems
Issue in Focus: Business Intelligence Extending PLM Value. PLM Maturity Enables New Value from Analytics
Issue in Focus: Business Intelligence Extending PLM Value PLM Maturity Enables New Value from Analytics Tech-Clarity, Inc. 2009 Table of Contents Table of Contents... 2 Introducing the Issue... 3 Mining
THE CERN/SL XDATAVIEWER: AN INTERACTIVE GRAPHICAL TOOL FOR DATA VISUALIZATION AND EDITING
THE CERN/SL XDATAVIEWER: AN INTERACTIVE GRAPHICAL TOOL FOR DATA VISUALIZATION AND EDITING Abstract G. Morpurgo, CERN As a result of many years of successive refinements, the CERN/SL Xdataviewer tool has
A Software Engineering Process for Operational Space Weather Systems. S. Dave Bouwer, W. Kent Tobiska Space Environment Technologies www.spacewx.
A Software Engineering Process for Operational Space Weather Systems S. Dave Bouwer, W. Kent Tobiska Space Environment Technologies www.spacewx.com Transitioning Research Models into Operations Software
Requirements engineering
Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and
How To Improve Software Quality
Software Quality and Standards Dr. James A. Bednar [email protected] http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson [email protected] http://www.inf.ed.ac.uk/ssp/members/dave.htm SEOC2 Spring
Technology management in warship acquisition
management in warship acquisition A J Shanks B.Eng(Hons) MIET BMT Defence Services Limited SYNOPSIS Today s warship designers and engineers look to technology to provide warships and systems better, cheaper
1 Introduction. 2 What is Cloud Computing?
1 Introduction Table of Contents 1 Introduction 2 What is Cloud Computing? 3 Why is Cloud Computing important? 4 Why Cloud deployments fail? 5 Holistic Approach to cloud computing implementation 6 Conclusion
TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW
Year 2014, Vol. 1, issue 1, pp. 49-56 Available online at: http://journal.iecuniversity.com TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Singh RANDEEP a*, Rathee AMIT b a* Department of
Orchestrated. Release Management. Gain insight and control, eliminate ineffective handoffs, and automate application deployments
Orchestrated Release Management Gain insight and control, eliminate ineffective handoffs, and automate application deployments Solution Brief Challenges Release management processes have been characterized
Software Design Document (SDD) Template
(SDD) Template Software design is a process by which the software requirements are translated into a representation of software components, interfaces, and data necessary for the implementation phase.
Improving database development. Recommendations for solving development problems using Red Gate tools
Improving database development Recommendations for solving development problems using Red Gate tools Introduction At Red Gate, we believe in creating simple, usable tools that address the problems of software
Instructional Design Framework CSE: Unit 1 Lesson 1
Instructional Design Framework Stage 1 Stage 2 Stage 3 If the desired end result is for learners to then you need evidence of the learners ability to then the learning events need to. Stage 1 Desired Results
Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville
Software Engineering Software Processes Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software process models To describe three generic process models and when
A Comparative Analysis of Structured and Object-Oriented Programming Methods ASAGBA, PRINCE OGHENEKARO; OGHENEOVO, EDWARD E. CPN, MNCS.
JASEM ISSN 1119-8362 All rights reserved Full-text Available Online at www.bioline.org.br/ja J. Appl. Sci. Environ. Manage. December, 2008 Vol. 12(4) 41-46 A Comparative Analysis of Structured and Object-Oriented
Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology
Peter Mileff PhD SOFTWARE ENGINEERING The Basics of Software Engineering University of Miskolc Department of Information Technology Introduction Péter Mileff - Department of Information Engineering Room
2. Analysis, Design and Implementation
2. Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Individual Programs to Complete Application Systems Software Development: Goals, Tasks, Actors,
Business Process Modeling with Structured Scenarios
Business Process Modeling with Structured Scenarios Doug Rosenberg ICONIX Software Engineering, Inc. In 2008, based on our experience with a number of business process engineering projects over the last
Three simple steps to effective service catalog and request management
Three simple steps to effective service catalog and request management Prepare for cloud initiatives and get incremental ROI with self service catalog and request management Business white paper Executive
