object-oriented development could potentially reduce the time and cost of writing software because:
Overview of Systems Development
Systems development refers to all the activities that go into producing an information systems solution to an organizational problem or opportunity. Systems development is a structured kind of problem solving with distinct activities consisting of systems analysis , systems design , programming , testing , conversion , and production and maintenance . [Figure 14-5]
FIGURE 14-5 The systems development process
Building a system can be broken down into six core activities.
Systems analysis involves defining the problem, identifying its causes, specifying the solution, and identifying the information requirements that must be met by a system solution. System analysis also involves a feasibility study used to determine whether the proposed solution is achievable from a financial, technical, and organizational standpoint given the organization's resources and constraints.
One of the most challenging task of the systems analyst is to define the specific information requirements that must be met by the system solution selected. Information requirements of a new system involve identifying who needs what information, where, when, and how.
The systems design is the overall plan or model that shows how the system will meet its information requirements. Like a blueprint of a building or house, a system design consists of all the specifications that give the system its form and structure. The system designer details the systems specifications that should address all of the managerial, organizational, and technical components of the system solution. User information requirements drive the entire system building effort, so information system design often demands a very high level of end-user participation.
Thorough testing must be conducted to confirm that the system produces the right results. Testing an information system involves three types of activities: unit or program testing, system testing, and acceptance testing. Unit testing tests each program separately in the system, and system testing checks the information system as a whole to determine if it works as intended. Acceptance testing results in user and management final certification that the system is ready to be used in a production setting. To ensure that all aspects of testing are as comprehensive as possible, the development team works with users to devise a systematic test plan . [Figure 14-6]
|
FIGURE 14-6 A sample test plan to test a record change |
Conversion is the process of changing from the old system to the new one. A parallel strategy calls for both the new and old systems to be run together until everyone is assured that the new system functions correctly. The direct cutover strategy replaces the old system with the new one on a specific date. The pilot study introduces the new system first to a limited area of the organization, and when the pilot version is working correctly it is, then installed throughout the rest of the organization. The phased approach strategy introduces the new system in stages, either by functions or by organizational units.
Moving from an old system to a new one requires that end users be trained to use the new system. Detailed documentation showing how the system works from both a technical and end-user standpoint is finalized during conversion time for use in training and everyday operations.
A formal conversion plan provides a schedule of all the activities required to install the new system. The most time consuming activity is the conversion of data. After the new system is installed and conversion is complete, the system is said to be in production. Maintenance involves any further changes in hardware, software, documentation, or procedures to correct errors, meet new requirements, or improve processing efficiency. Maintenance is significantly reduced through better system analysis and design practices.
Structured methodologies and object-oriented development are the most prominent methodologies for modeling and designing systems.
Structured methodologies have been used since the 1970s to document, analyze, and design information systems. Structured development methods are process-oriented, focusing primarily on modeling the processes, or actions that capture, store, manipulate, and distribute data as the data flow through a system. These methods separate data from processes. A separate programming procedure must be written every time someone wants to take an action on a particular piece of data.
Tools used in structured development include data flow diagrams, data dictionaries, process specifications, and structure charts. A data flow diagram (DFD) offers a logical graphic model of information flow, partitioning a system into modules that show manageable levels of detail. It specifies the processes or transformations that occur within each module and the interfaces that exist between them. Leveled data flow diagrams break systems into high-level data flows and additional diagrams for subsystems at lower levels. [Figure 14-7]
|
FIGURE 14-7 Data flow diagram for mail-in university registration system |
A data dictionary defines the contents of data flows and data stores so that systems builders understand exactly what pieces of data they contain. Process specifications describe the transformation occurring within the lowest level of the data flow diagrams. The structure chart is a top-down chart, showing each level of design, its relationship to other levels, and its place in the overall design structure. The design first considers the main function of a program or system, then breaks this function into subfunctions. [Figure 14-8]
|
FIGURE 14-8 High-level structure chart for a payroll system This structure chart shows the highest or most abstract level of design for a payroll system, providing an overview of the entire system. |
Object-oriented development uses the object as the basic unit of systems analysis and design. An object combines data and the specific processes that operate on those data. Data encapsulated in an object can be accessed and modified only by the operations, or methods, associated with that object. Instead of passing data to procedures, programs send a message for an object to perform an operation that is already embedded in it. The system is modeled as a collection of objects and the relationships among them.
Object-oriented modeling is based on the concepts of class and inheritance. Objects belonging to a certain class, or general categories of similar objects, have the features of that class. Classes of objects in turn can inherit all the structure and behaviors of a more general class and then add variables and behaviors unique to each object. [Figure 14-9]
|
FIGURE 14-9 Class and inheritance This figure illustrates how classes inherit the common features of their superclass. |
The phases of object-oriented development are similar to those of conventional systems development, consisting of analysis, design, and implementation. However, object-oriented development is more iterative and incremental than traditional structured development.
In object-oriented development, a system is implemented by translating the design into program code, reusing classes that are already available in a library of reusable software objects and adding new ones created during the object-oriented design phase. Implementation may also involve the creation of an object-oriented database. Because objects are reusable, object-oriented development could potentially reduce the time and cost of writing software because organizations can reuse software objects that have already been created as building blocks for other applications.
Unified Modeling Language (UML) has become the industry standard methodology for analysis and design of an object-oriented software system. UML uses two principal types of diagrams: Structural diagrams, which describe relationships between classes, and behavioral diagrams, which describe interactions in an object-oriented system. [Figure 14- 10]
|
FIGURE 14-10 A UML use case diagram |
Computer-aided software engineering (CASE)--sometimes called computer--aided systems engineering-- is the automation of step-by-step methodologies for software and systems development to reduce repetitive work. CASE tools attempt to increase productivity and quality by facilitating the creation and revision of design specifications and program code. CASE tools provide automated facilities for producing charts and diagrams, screen and report generators, data dictionaries, analysis and checking tools, code generators, and document generators. The best CASE tools enforce common methods and standards, improve communication between users and technical specialists, organize and correlate design elements, automate tedious and error-prone portions of analysis and design, and automate code generation, testing, and control rollout.
Resource allocation determines the way the costs, time, and personnel are assigned to different phases of a systems project. Over the years, system builders have learned to shift project resources to earlier in the project cycle. More time is spent on specifications and systems analysis, decreasing the proportion of programming time and reducing the need for so much maintenance time.
Software metrics play a vital role in increasing the quality of a project, measuring input, output, capacity, performance/quality, and value. A widely used output metric is function points, which helps measure the productivity of software developers.
object-oriented development could potentially reduce the time and cost of writing software because:
Source: https://paginas.fe.up.pt/~acbrito/laudon/ch14/chpt14-3bullettext.htm
Posted by: rosssoombeark.blogspot.com
0 Response to "object-oriented development could potentially reduce the time and cost of writing software because:"
Post a Comment