Ch.11 - Managing Systems Implementation
The 2 post implementation tasks
(1)Prepare a post-implementation evaluation (2)deliver a final report to management.
the final report to management during the systems implementation phase of SDLC should include:
- Final versions of all system documentation - Planned modifications and enhancements to the system that have been identified - Recap of all systems development costs and schedules - Comparison of actual costs and schedules to the original estimates - Post-implementation evaluation, if it has been performed
syntax errors
- Programming language grammar errors. - CASE tools and language compilers can help detect and fix these - The programmer corrects the errors until the program executes properly.
the 4 steps to draw a structure chart
1. review the DFDs 2. ID modules and relationships 3. add symbols for couples, loops, and conditions 4. analyze the structure chart and data dictionary
system documentation
A description of a system's functions and how they are implemented - Includes data dictionary entries, data flow diagrams, object models, screen layouts, source documents, and the systems request that initiated the project - necessary reference material for the programmers and analysts who must support and maintain the system. - most of this is prepared during the systems analysis and systems design phases. - During the systems implementation phase, an analyst must review prior documentation to verify that it is complete, accurate, and up to date
system testing
A form of testing involving an entire information system and includes all typical processing situations. - performing a final test of all programs - verify the sys will handle valid and invalid data properly - Ensure that the IT staff has the documentation and instructions needed to operate the system properly and that backup and restart capabilities of the system are adequate - Demonstrate that users can interact with the system successfully - Verify that all system components are integrated properly and that actual processing situations will be handled correctly - ensure sys can handle predicted volumes efficiently - During a system test, users enter data, including samples of actual, or live data, perform queries, and produce reports to simulate actual operating conditions. - All processing options and outputs are verified by users and the IT project development team to ensure that the system functions correctly. - this is the key to user and management approval - sometimes called acceptance tests - slide 33
subordinate module
A lower-level module in a structure chart. - rectangle
cohesion
A measure of a module's scope and processing characteristics. - A module that performs a single function or task has a high degree of cohesion, which is desirable. - Because it focuses on a single task, a cohesive module is much easier to code and reuse. - For example, a module named Verify Customer Number is more cohesive than a module named Calculate and Print Statements. - If the word and is found in a module name, this implies that more than one task is involved. - If a module must perform multiple tasks, more complex coding is required and the module will be more difficult to create and maintain - To make a module more cohesive, split it into separate units, each with a single function. - It is better to have subordinate modules handle processing tasks as independently as possible, to avoid a cascade effect of logic errors in the control module.
pair/parallel programming
A practice in Extreme Programming in which two programmers work on the same task on the same computer; one drives (programs) while the other navigates (watches). - the onlooker has strategic view to see the forest (big picture) while the driver is concerned with individual trees immediately in front of him/her (small picture)
software quality assurance
A process or procedure for minimizing errors and ensuring quality in products. - Poor quality can result from inaccurate requirements, design problems, coding errors, faulty documentation, and ineffective testing. - A quality assurance (QA) team reviews and tests all applications and systems changes to verify specifications and software quality standards.
ISO 9000-3:2014
A set of guidelines established and updated by the International Organization for Standardization (ISO) to provide a quality assurance framework for developing and maintaining software.
software engineering
A software development process that stresses solid design, effective structure, accurate documentation, and careful testing. - includes five technical activity areas: requirements, design, construction, testing, and maintenance and evolution.
condition line
A specified action or state in a structure chart. - A line with a diamond on one end - indicates that a control module determines which subordinate modules will be invoked, depending on a specific condition. - part of a structure chart
training plan
A successful information system requires training for users, managers, and IT staff members. - The entire systems development effort can depend on whether or not people understand the system and know how to use it effectively. - The training plan is a document that details these requirements. - When the system is implemented, it is essential to provide the right training for the right people at the right time. - The first step is to identify who should receive training and what training is needed.
Integrated Development Environment (IDE)
A suite of integrated tools to make it easier to plan, construct, and maintain a specific software product. - is designed to allow the easy integration of system components with less time being spent on developing code for interactive modules. - makes it easier to program interactive software products by providing built-in tools and advanced features, such as real-time error detection, syntax hints, highlighted code, class browsers, and version control - ex. IBM WebSphere and Microsoft .NET, Eclipse (Java)
International Organization for Standardization (ISO)
A worldwide body that establishes quality standards for products and services - has standards for software as well - standards include everything from internationally recognized symbols to the ISBN numbering system that identifies this textbook
tightly coupled modules
If modules are tightly coupled, one module refers to internal logic contained in another module.
a typical system post-implementation evaluation includes the following feedback areas:
Accuracy, completeness, and timeliness of information system output User satisfaction System reliability and maintainability Adequacy of system controls and security measures Hardware efficiency and platform performance Effectiveness of database implementation Performance of the IT team - Completeness and quality of documentation
Capability Maturity Model Integration (CMMI)
An SEI-developed process to improve quality, reduce development time, and cut costs. - New model integrates software and systems development into a much larger framework called process improvement - A CMM tracks an organization's software development goals and practices, using five maturity levels, from Level 1 (relatively unstable, ineffective software) to Level 5 (software that is refined, efficient, and reliable).
iteration cycle
An agile development cycle that includes planning, designing, coding, and testing one or more features based on user stories
post-implementation evaluation
An assessment of the overall quality of the information system. - The evaluation verifies that the new system meets specified requirements, complies with user objectives, and achieves the anticipated benefits. - In addition, by providing feedback to the development team, the evaluation also helps improve IT development practices for future projects.
operations documentation
Contains all the information needed for processing and distributing online and printed output. - Program, systems analyst, programmer, and system identification - Scheduling information for printed output, such as report run frequency and deadlines - Input files and where they originate; and output files and destinations - Special forms required, including online forms - Error and informational messages to operators and restart procedures - If the IT department has an operations group, the documentation should be reviewed with them, early and often, to identify any problems.
Software Engineering Institute (SEI) at Carnegie Mellon University
Designed software development standards used successfully by thousands of organizations around the globe - a leader in software engineering and provides quality standards and suggested procedures for software developers and systems analysts. - primary objective is to find better, faster, and less-expensive methods of software development - created the Capability Maturity Model (CMM) to improve software quality, reduce development time, and cut costs
data conversion
Existing data is loaded into the new system, transformed as needed. - Depending on the system, can be done before, during, or after the operational environment is complete. - a plan for this should be developed as early as possible, and the conversion process should be tested when the test environment is developed.
vendor training
If the system includes the purchase of software or hardware, then vendor-supplied training is one of the features that should be included in the RFPs (requests for proposal) and RFQs (requests for quotation) that are sent to potential vendors.
methods
In a class diagram, methods represent program logic.
library module
In a structure chart, a library module is a module that is reusable and can be invoked from more than one point in the chart. - rectangle with vertical lines at edges - part of a structure chart
loop
In a structure chart, indicates that one or more modules are repeated - a curved arrow
release plan
In agile development, a plan that specifies when user stories will be implemented and the timing of the releases. Releases are relatively frequent, and each release is treated as a system prototype that can be tested and modified as needed.
user story
In agile development, a short, simple requirements definition provided by the customer. - Programmers use user stories to determine a project's requirements, priorities, and scope. - do not deal with technical details and are so short that they are often written on index cards - Projects are often composed of many user stories, which taken together form epics, from which programmers can estimate the scope, time requirements, and difficulty of the project
user documentation
Instructions and information to users who will interact with the system. - Includes user manuals, help screens, and tutorials. - Systems analysts usually are responsible for preparing documentation to help users learn the system. In larger companies, a technical support team that includes technical writers might assist in the preparation of user documentation and training materials. - A system overview that clearly describes all major system features, capabilities, and limitations - Description of source document content, preparation, processing, and samples - Overview of menu and data entry screen options, contents, and processing instructions - Examples of reports that are produced regularly or available at the user's request, including samples - Explanation of responsibility for specific input, output, or processing requirements - Procedures for requesting changes and reporting problems - explanation of how to get help and procedures for updating the user manual - FAQs
documentation
Material that explains a system, helps people interact with it, and includes: - program documentation - system documentation - operations documentation - user documentation. - can reduce system downtime, cut costs, and speed up maintenance tasks
coupling
Measures relationships and interdependence among modules. - The opposite of cohesion. - Modules that are independent are loosely coupled , which is desirable - Loosely coupled modules are easier to maintain and modify, because the logic in one module does not affect other modules.
object of application development
to translate the design into program and code modules that will function properly
online documentation
Provides immediate help when users have questions or encounter problems. - Many users are accustomed to context-sensitive help screens, hints and tips, hypertext, on-screen demos, and other user-friendly features commonly found in popular software packages; they expect the same kind of support for in-house developed software. - if this is included, it needs to be ID'd as one of sys requirements - is an important productivity tool because it empowers users and reduces the time that IT staff members must spend in providing telephone, email, or face-to-face assistance. - Interactive tutorials are especially popular with users who like to learn by doing, and visual impact is very important.
Data Conversion Security and Controls
Strict input controls should be maintained during the conversion process, when data is extremely vulnerable - Ensure that all system control measures are in place and operational to protect data from unauthorized access and to help prevent erroneous input - Most organizations require that users verify all data, correct all errors, and supply every missing data item during conversion.
operational environment
The environment for the actual system operation. It includes hardware and software configurations, system utilities, and communications resources. - Also called the production environment. - limited to users and must strictly be controlled - Systems analysts and programmers should not have access to this except to correct a system problem or to make authorized modifications or enhancements.
test environment
The environment that analysts and programmers use to develop and maintain programs. - A separate test environment is necessary to maintain system security and integrity and protect the operational environment - Before making any changes to an operational system, the analyst must verify them here and obtain user approval. - is limited to IT staff only
application development
The process of constructing the programs and code modules that are the building blocks of an information system. - Structured analysis, object-oriented (O-O) analysis, and agile methods are three popular development options - objective is to translate the design into program and code modules that will function properly
system changeover
The process of putting the new information system online and retiring the old system. - Changeover can be rapid or slow, depending on the method. - the four changeover methods are: 1. direct cutover 2. parallel operation 3. pilot operation 4. phased operation
desk checking
The process of reviewing the program code to spot logic errors, which produce incorrect results. - logic errors are mistakes in the underlying logic that produce incorrect results.
object oriented application development (OOD)
The process of translating an object model directly into an object-oriented programming language. - characteristics: - Individual object instances belong to classes of objects with similar characteristics - The relationship and interaction among classes are described using a class diagram - Class diagrams describe the characteristics of objects in the class, and the methods, which represent program logic - A class diagram includes the class attributes, which describe the characteristics of objects in the class, and methods, which represent program logic (ex. place order) - In addition to class diagrams, programmers get an overview of object interaction by using object relationship diagrams (shows the objects and how they interact to perform business functions and transactions.) - Classes should be as loosely coupled (independent of other classes) as possible. - In addition, an object's methods should also be loosely coupled (independent of other methods) and highly cohesive (perform closely related actions) - loosely coupled, highly cohesive still applies
coding
The process of turning program logic into specific instructions that a computer system can execute. - Working from a specific design, a programmer uses a programming language to transform program logic into code statements.
unit testing
The testing of an individual program or module. - The objective is to identify and eliminate execution errors that could cause the program to terminate abnormally, and logic errors that could have been missed during desk checking. - uses test data (data used in unit testing), and should contain both correct data and erroneous data and should test all possible situations that could occur - Programs that interact with other programs and files are tested individually, before they are integrated into the system - Someone other than the programmer who wrote the program usually creates the test data and reviews the results - Systems analysts frequently create test data during the systems design phase as part of an overall test plan. A test plan consists of detailed procedures that specify how and when the testing will be performed, who will participate, and what test data will be used. - slide 21-32
integration testing
The testing two or more programs that depend on each other to make sure that the programs work together properly - testing two or more unit test programs to make sure they work together so that the overall system works as intended - must be done to make sure programs work together properly - Systems analysts usually develop the data they use in integration testing. - As is the case with all forms of testing, integration test data must consider both normal and unusual situations. - Test data that simulates actual conditions should be used because the interface that links the programs is being tested
commonly used programing languages
Visual Basic, Java, and Python - for internet-based and mobile applications: HTML/XML, Java, Swift
code review (structured walkthrough)
a group of 3 to 5 IT staff members conducting a more formal version of desk checking code - The group usually consists of project team members and might include other programmers and analysts who did not work on the project - Objective is to have a peer group identify errors, apply quality standards, and verify that the program meets the requirements of the system design specification - Errors found during this are easier to fix while coding is still in the developmental stages.
extreme programming (XP)
an agile development method where a team of users and developers immerse themselves in systems development - emphasize values such as: - simplicity - communication - feedback - respect - courage - Success requires strong commitment to the process, corporate support, and dedicated team members. - uses a concept called pair programming: two programmers work on same task on same computer, wit one driving (programming) and one navigating (watching) - Programming team regularly meets with the customer, who tests prototype releases as they become available
ODBC (Open Database Connectivity)
an industry-standard protocol that allows DBMSs from various vendors to interact and exchange data - is a form of middleware, connecting dissimilar applications and allowing them to communicate - if a standard format is not available, a program to extract the data and convert it to an acceptable format must be developed.
the first task in systems implementation phase of SDLC
application development, which requires systems analysts and programmers to work together to construct the necessary programs and code modules.
critics of agile development
boast that it speeds up software development and delivers precisely what the customer wants, when the customer wants it, while fostering teamwork and empowering employees
supporters of agile development
boast that it speeds up software development and delivers precisely what the customer wants, when the customer wants it, while fostering teamwork and empowering employees
structure charts
charts show the program modules and the relationships among them - a part of structured application development 3 parts: 1. modules - rectangle - Vertical lines at the edges of a rectangle indicate that a module is a library module - reusable code and can be invoked from more than one point in the chart 2. data couple - An arrow with an empty circle represents a data couple which shows data that one module passes to another 3. control couple - arrow with a filled circle represents a control couple which shows a message, also called a status flag, which one module sends to another - subordinate module: A lower-level module in a structure chart that is directed by a control module - condition line: A line with a diamond on one end, indicates that a control module determines which subordinate modules will be invoked, depending on a specific condition - loop: curved arrow, indicates that one or more modules are repeated - you want modules to be highly cohesive and loosely correlated
The first step in an agile process, like any other development method, would be to:
define the system requirements
traditional method of application development
develop an overall strategy, design code, and test and document individual modules - A module consists of related program code organized into small units that are easy to understand and maintain 1. plan 2. develop 3. test
program documentation
documentation that describes the inputs, outputs, and processing logic for all program modules in an info sys - starts in the systems analysis phase and continues during systems implementation. - Systems analysts prepare overall documentation, such as process descriptions and report layouts, early in the SDLC - This documentation guides programmers, who construct modules that are well supported by internal and external comments and descriptions that can be understood and maintained easily - A systems analyst usually verifies that program documentation is complete and accurate.
O-O applications are called _____ _____ because each event, transaction, or message triggers a corresponding action
event driven
it is desirable to have modules that are:
highly cohesive and loosely coupled - Otherwise, system maintenance becomes more costly due to difficulties in making changes to the system's structure.
the aspects of systems implementation
involves application development, testing, documentation, training, data conversion, system changeover, and post-implementation evaluation of the results.
control module
is a higher-level module that directs lower-level modules, called subordinate modules, in a structure chart
Because object interaction is defined during the O-O analysis process, the ______ ______ itself represents the application's structure.
object model
data couple
shows DATA that one module passes to another. - An arrow with an EMPTY circle - part of a structure chart
control couple
shows a MESSAGE, also called a flag (status flag), which one module sends to another. - status flag: In structured application development, an indicator that allows one module to send a message to another module - An arrow with a FILLED circle - A module uses a flag to signal a specific condition or action to another module. - part of a structure chart
When implementing a structured design, a ______ _______ is used to describe the interaction between program modules
structure chart
phased operation
system changeover approach that allows a new system to be implemented in stages, or modules. ◦Combines direct cutover and parallel operation to reduce risks and costs ◦Give a part of the system to all users, while pilot operation provides the entire system, but to only some users ◦Risk of errors or failures is limited to the implemented module only ◦Less expensive than full parallel operation because you have to work with only one part of the system at a time - is not possible, however, if the system cannot be separated easily into logical modules or segments.
direct cutover
system changeover approach that causes the changeover from the old system to the new system to occur immediately when the new system becomes operational. - causes the changeover from the old system to the new system to occur immediately when the new system becomes operational. - also the fastest changeover method - often chosen for purchased software packages - For systems developed in-house, most organizations use this only for noncritical situations - timing of implementation very important
pilot operation
system changeover approach that involves implementing the complete new system at a selected location of the company. - The old system continues to operate for the entire organization, including the pilot site - Restricting the implementation to a pilot site reduces the risk of system failure - Less expensive than a parallel operation for the entire company - pilot site = the group that uses the new system first
parallel operation
system changeover approach that requires that both the old and the new information systems operate fully for a specified period. - Data is input into both systems, and output generated by the new system is compared with the equivalent output from the old system. - most obvious advantage is lower risk during implementation - Company can use the old system as a backup - is the most costly changeover method. - not practical if the old and new systems are incompatible technically, or if the operating environment cannot support both systems - is the slowest changeover method
the main goal of quality assurance
to avoid problems or to identify them as soon as possible.
structured application development
usually involves a top-down approach, which proceeds from a general design to a detailed structure. - A design approach, also called modular design, where the systems analyst defines the overall objectives of the system, and then breaks them down into subsystems and modules. This breaking-down process also is called partitioning
management approval
•After system testing is complete, you present the results to management •You should describe the test results, update the status of all required documentation, and summarize input from users who participated in system testing •You also must provide detailed time schedules, cost estimates, and staffing requirements for making the system fully operational
agile method of application development
•Agile Method creates a system through an iterative process of planning, designing, coding, and testing •Examples include the Spiral model and the Extreme Programming(XP) model - objective is to create the system through an iterative process of planning, designing, coding, and testing - large emphasis on iteration and testing
generating code
•Application generators, report writers, screen generators, and fourth-generation languages exist - other CASE tools that produce code directly from program design specifications - Some commercial applications can generate editable program code directly from macros, keystrokes, or mouse actions.
System Installation and Evaluation
•Prepare a separate operational and test environment •Provide training for users, managers, and IT staff •Perform data conversion and system changeover •Carry out a post-implementation evaluation of the system Present a final report to management
agile application development
•Uses a highly iterative process •Development team is in constant communication with the primary user, shaping and forming the system to match specifications •is aptly named because it is based on a quick and nimble development process that easily adapts to change •focuses on small teams, intense communication, and rapid development iterations - primary user of the system is the customer - focus on shaping system to match customer specifications - 4 key values: 1. individuals and interactions 2. working software 3. customer collaboration 4. responding to change - popular languages: Python, Ruby
Data Conversion Strategies
•When a new system replaces an existing system, you should automate the data conversion process •The old system might be capable of exporting data in an acceptable format for the new system or in a standard format, such as ASCII or ODBC •ODBC (Open Database Connectivity) is an industry-standard protocol that allows DBMSs from various vendors to interact and exchange data •Middleware connects dissimilar applications and enables them to communicate -
main objective in implemented object oriented designs
•to translate object methods into program code modules and determine what event or message will trigger the execution of each module - Programmers analyze sequence diagrams and state transition diagrams that show the events and messages that trigger changes to an object