In this Lecture you will Learn: Implementation. Software Implementation Tools. Software Implementation Tools



Similar documents
Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Chapter 11, Testing, Part 2: Integration and System Testing

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

SOFTWARE TESTING TRAINING COURSES CONTENTS

How To Understand Programming Languages And Programming Languages

Chapter 11: Integrationand System Testing

Introduction to Automated Testing

Windchill PDMLink Curriculum Guide

Getting started with API testing

Chapter 11: Integration- and System Testing

Chapter 13: Program Development and Programming Languages

Modeling Web Applications Using Java And XML Related Technologies

Software Engineering I: Software Technology WS 2008/09. Integration Testing and System Testing

A Database Re-engineering Workbench

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Manage Software Development in LabVIEW with Professional Tools

Object Oriented Programming. Risk Management

What is Enterprise Architect? Enterprise Architect is a visual platform for designing and constructing software systems, for business process

Business Application Services Testing

Information Systems Development Process (Software Development Life Cycle)

Power Tools for Pivotal Tracker

Programming and Software Development CTAG Alignments

Oracle SQL Developer for Database Developers. An Oracle White Paper June 2007

Java Application Developer Certificate Program Competencies

Time Monitoring Tool Software Development Plan. Version <1.1>

Spreadsheet Programming:

Job Description. Job title Database Administrator: Microsoft SQL. Department Support and Overheads: Information Technology and Systems

Implementation Workflow

SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package Data Federation Administration Tool Guide

HPE PC120 ALM Performance Center 12.0 Essentials

zen Platform technical white paper

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules

Event Manager. LANDesk Service Desk

Fundamentals of LoadRunner 9.0 (2 Days)

Application Development for Mobile and Ubiquitous Computing

28 What s New in IGSS V9. Speaker Notes INSIGHT AND OVERVIEW

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

Oracle SQL Developer for Database Developers. An Oracle White Paper September 2008

Achieving business benefits through automated software testing. By Dr. Mike Bartley, Founder and CEO, TVS

FreeForm Designer. Phone: Fax: POB 8792, Natanya, Israel Document2

Data processing goes big

Data Movement Modeling PowerDesigner 16.1

COMPANIES REGISTRY. Third Party Software Interface Specification. (Part 1 Overview)

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Appendix M INFORMATION TECHNOLOGY (IT) YOUTH APPRENTICESHIP

Getting Things Done: Practical Web/e-Commerce Application Stress Testing

Software testing. Objectives

Quality Assurance: Early Work Items

1. Overview of the Java Language

A system is a set of integrated components interacting with each other to serve a common purpose.

Windchill ProjectLink Curriculum Guide

Latest Trends in Testing. Ajay K Chhokra

Upping the game. Improving your software development process

Client Overview. Engagement Situation. Key Requirements

Waspmote IDE. User Guide

How To Write An Slcm Project Plan

Taboret Management Application Builder

Asta Powerproject Enterprise

Windchill Service Information Manager Curriculum Guide

Automate Your BI Administration to Save Millions with Command Manager and System Manager

Enterprise Service Bus

Levels of Software Testing. Functional Testing

Schematron Validation and Guidance

Classical Software Life Cycle Models

Information Systems Analysis and Design CSC340. XXIV. Other Phases

Development Best Practices

Two new DB2 Web Query options expand Microsoft integration As printed in the September 2009 edition of the IBM Systems Magazine

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS

Net Developer Role Description Responsibilities Qualifications

Building Applications Using Micro Focus COBOL

FileMaker 11. ODBC and JDBC Guide

Settlers of Catan Phase 1

Improvement of Software Quality and Productivity Using Development Tools

Getting Started with the Ed-Fi ODS and Ed-Fi ODS API

Analytics case study

To introduce software process models To describe three generic process models and when they may be used

LR120 LoadRunner 12.0 Essentials

Shorten your 11i Upgrade and Patching Cycles with Automated Testing. Rod Lehman Senior Director of Product Marketing

2. Analysis, Design and Implementation

Database Application Developer Tools Using Static Analysis and Dynamic Profiling

HAHTsite IDE and IP Installation Guide

Creating Value through Innovation MAGENTO 1.X TO MAGENTO 2.0 MIGRATION

Applying Agile Methods in Rapidly Changing Environments

from Microsoft Office

Example of Standard API

CHAPTER 6: TECHNOLOGY

Lesson 1 Introduction to Rapid Application Development using Visual Basic

ARIZONA CTE CAREER PREPARATION STANDARDS & MEASUREMENT CRITERIA SOFTWARE DEVELOPMENT,

Sports Management Information Systems. Camilo Rostoker November 22, 2002

Visual Studio.NET Database Projects

SOFTWARE PROCESS MODELS

Ansur Test Executive. Users Manual

InstallAware for Windows Installer, Native Code, and DRM

Chapter 13: Program Development and Programming Languages

Product Overview. Dream Report. OCEAN DATA SYSTEMS The Art of Industrial Intelligence. User Friendly & Programming Free Reporting.

Testhouse Training Portfolio

PIE. Internal Structure

SQA Labs Value Assured

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

Transcription:

In this Lecture you will Learn: Implementation Chapter 19 About tools used in software implementation How to draw component diagrams How to draw deployment diagrams The tasks involved in testing a system How to plan for data conversion from an old system Ways of introducing a new system into an organization Tasks in review and maintenance M8748 Peter Lo 2007 1 M8748 Peter Lo 2007 2 Software Implementation Tools Software Implementation Tools In an iterative project, planning for implementation will begin in the inception phase The implementation workflow includes tasks to set up the environment for implementation Some tools, particularly CASE tools and configuration management systems will carry through from analysis and design activities A wide range of types of software tools will be used M8748 Peter Lo 2007 3 Different categories of software that may be used in developing: CASE Tools Compilers, Interpreters and Run-times Visual Editors IDE (Integrated Development Environment) Configuration Management Tools Class Browsers Component Managers DBMS (Database Management Systems) CORBA Testing Tools Installation Tools Conversion Tools Documentation Generators M8748 Peter Lo 2007 4

CASE Tools Many tools now support UML Make it possible to generate code from the models May make reverse engineering of code possible, to provide round-trip engineering May map classes to a relational database Link to configuration management tools Compilers, Interpreters and Run-times Different languages require different tools C++ requires a compiler and a linker to build executables Java requires a compiler and a run-time program and libraries to run the byte-code produced by the compiler C# is like Java and is compiled into MSIL (Microsoft Intermediate Language) M8748 Peter Lo 2007 5 M8748 Peter Lo 2007 6 Visual Editors Provide a way of designing GUI interfaces by dragging and dropping buttons, text fields etc. onto a window Can often also handle controls or objects that represent non-visual components such as links to a database or communications processes IDE (Integrated Development Environment) Manage the many files in a project and the dependencies among them Link to configuration management tools Use compilers to build the project, only recompiling what has changed Provide debugging facilities May include a visual editor Can be configured to link in third party tools M8748 Peter Lo 2007 7 M8748 Peter Lo 2007 8

Configuration Management Tools Also called Version Control Tools, although configuration management is more than just version control Maintain a record of file versions and the changes from one version to the next Record all the versions of software and tools that are required to produce a repeatable software build Class Browsers May be part of IDE or visual editors Originally provided as the way of browsing through available classes in Smalltalk Java API documentation is provided in a browseable hypertext format generated by Javadoc M8748 Peter Lo 2007 9 M8748 Peter Lo 2007 10 Component Managers New kind of tool to manage components Provide mechanisms to Add components Search for components Browse for components Maintain versions of components DBMS (Database Management Systems) Server system Client software (administration interfaces, ODBC and JDBC drivers) Tools to manage the database and carry out performance tuning Large DBMS, such as Oracle, come with many tools, even their own application server M8748 Peter Lo 2007 11 M8748 Peter Lo 2007 12

CORBA CORBA ORB to handle the marshalling and unmarshalling of requests and objects IDL compiler Registry service Testing Tools Tools written by developers as test harnesses Automated test tools to run repeated or multiple simultaneous tests May allow user to run through test once manually, then generate a script that can be edited to provide variations M8748 Peter Lo 2007 13 M8748 Peter Lo 2007 14 Installation Tools Automate the extraction of files from an archive and the setting up of configuration files and registry entries Some maintain information about dependencies on other pieces of software and will install all necessary packages (e.g. Redhat RPM) Uninstall software, removing files, directories and registry entries Conversion Tools Extract data from existing systems Reformat the data for the new system Insert it into the database for the new system May require manual intervention to clean up the data removing duplication or invalid values in fields M8748 Peter Lo 2007 15 M8748 Peter Lo 2007 16

Documentation Generators Document models and code Extract standard information or user-defined information into document templates Produce HTML to document the API of classes in the application Coding and Documentation Standards: Object-oriented Standard Naming standards are agreed early in a project A typical object-oriented standard: Classes with capital letters: Campaign Attributes and operations with initial lower case letters: title, recordpayment() Words are concatenated together with capital letters to show where they are joined: InternationalCampaign, campaignfinishdate, getnotes() M8748 Peter Lo 2007 17 M8748 Peter Lo 2007 18 Coding and Documentation Standards: Names Prefix Hungarian Notation Used in C and C++ Names prefixed by an abbreviation to show the type of the member variable b for boolean: borderclosed i for integer: iorderlinenumber btn for button: btncloseorder Coding and Documentation Standards: Underscores Using underscores to separate parts of a name instead of capital letters Order_Closed Often used for column names in databases, as it is easier to replace the underscores with spaces to produce meaningful column headings in reports than trying to find the word breaks in concatenated names M8748 Peter Lo 2007 19 M8748 Peter Lo 2007 20

Coding and Documentation Standards: Document code Think of the people who will maintain your code Others may be able to use your code to learn good practice, but only if it is clearly documented No language is self-documenting; conventions and standards help Comply with Java documentation standards, if coding in Java (Javadoc) You can take advantage of tools that automate the production of documentation from comments Implementation Diagrams Component Diagrams Used to document dependencies between components, typically files, either compilation dependencies or run-time dependencies Deployment Diagrams Used to show the configuration of run-time processing elements and the software components and processes that are located on them M8748 Peter Lo 2007 21 M8748 Peter Lo 2007 22 Notation of Component Diagrams Example of Component Diagrams Rectangles with two small rectangles superimposed at one end May implement interfaces, shown as circles connected by a line Can be stereotyped, for example to represent files Dependency of a component on the interface of another component Dependency between high-level components M8748 Peter Lo 2007 23 M8748 Peter Lo 2007 24

Components Components should be physical components of a system Packages can be used to manage the grouping of physical components into sub-systems Components can be shown on deployment diagrams to document their deployment on different processors? Production Scheduler Scheduler.hlp Notation of Deployment Diagrams Nodes Rectangular prisms Represent processors, devices or other resources Communication Associations Lines between nodes Represent communication between nodes Can be stereotyped Stereotyped Components Example M8748 Peter Lo 2007 25 Scheduler.ini M8748 Peter Lo 2007 26 Notation of Deployment Diagrams Can be shown with active objects or components located on the nodes In a component diagram, components are component types, in a deployment diagram, they are component instances Package Diagram vs. Component Diagram Package diagrams show the logical grouping of classes in a system, whereas component diagrams show the physical components of a system. During implementation, package diagrams can be used to show the grouping of physical components into sub-systems; component diagrams can be combined with deployment diagrams to show the physical location of components of the system. M8748 Peter Lo 2007 27 M8748 Peter Lo 2007 28

Use of Implementation Diagrams Can be used architecturally to show how elements of system will work together Typically used for simple diagrams Full documentation of dependencies and location of all components may be better handled by configuration management software or in a spreadsheet or database Software Testing Who tests? Ideally specialist test teams with access to software to build and execute test scripts Often the analysts who have carried out the initial requirements gathering and analysis In extreme Programming (XP) programmers are expected to write test harnesses for classes before they write the code Users of the system, who will test against requirements and do user acceptance testing M8748 Peter Lo 2007 29 M8748 Peter Lo 2007 30 Software Testing What kinds of tests? Black box testing Does it do what it s meant to do? Does it do it as fast as it should? White box testing Is it not just a solution to the problem, but a good solution? Purpose of Testing The purpose of testing is to try find errors, not to prove the software is correct Test data should test the software at its limits and test business rules Extreme values (very large numbers, long strings) Borderline values (0, -1, 0.999) Invalid combinations of values (age = 3, marital status = married) Nonsensical values (negative order line quantities) Heavy loads (are performance requirements met?) M8748 Peter Lo 2007 31 M8748 Peter Lo 2007 32

Levels of Testing Unit Testing (Individual classes) Integration Testing (Classes work correctly together) Sub-system Testing (Sub-system works correctly and delivers required functionality) System Testing (Whole system works together with no unwanted interaction between subsystems) Acceptance Testing (System works as required by the users and according to specification) Outside-in or Inside-out? Test Harnesses Write programs that create instances of classes and send them messages to test operations execute correctly Mock objects (Endo-testing) Write mock objects that implement the interface of real objects and check the signature of messages sent to them and the state of the objects M8748 Peter Lo 2007 33 M8748 Peter Lo 2007 34 Levels of Testing Level 1 Test modules (classes), then programs (use cases) then suites (application) Level 2 (Alpha Testing or Verification) Execute programs in a simulated environment and test inputs and outputs Level 3 (Beta Testing or Validation) Test in a live user environment and test for response times, performance under load and recovery from failure Test Documentation: Test Plans Written before the tests are carried out! Written, in fact, before the code is written Contains Test Cases Description of test Test environment and configuration Test data Expected outcomes M8748 Peter Lo 2007 35 M8748 Peter Lo 2007 36

Test Documentation: Test Results Ideally in a spreadsheet or database Record when tests are failed or passed Allow reporting of percentage passed Ideally should be linked to requirements Error results should be recorded in a fault reporting package with enough details for developers to reproduce them with a view to fixing the bugs Data Conversion for Manual System Data from manual systems needs collating and putting into a standard format Incomplete data may need to be chased up There is a cost associated with keying data into a new system There may be a requirement for data entry screens that will only be used to get data into the system to start it up M8748 Peter Lo 2007 37 M8748 Peter Lo 2007 38 Data Conversion for Existing System Existing data must be checked for correctness Specially written programs may be required to check and convert the data Data may be loaded into a staging area to be cleaned up Data is imported into the new system Data must be verified after being imported User Documentation Training manuals organized around the tasks the users carry out On-line Computer-based Training (CBT) that can be delivered when the users need it Reference manuals to provide complete description of the system in terms the users can understand On-line help replicating the manuals M8748 Peter Lo 2007 39 M8748 Peter Lo 2007 40

User Training Implementation Strategies Set clear learning objectives for trainees Training should be practical and geared to the tasks the users will carry out Training should be delivered just in time not weeks before the users need it CBT can deliver just in time training Follow up after the introduction of the system to make sure users haven t got into bad habits through lack of training or having forgotten what they had been told M8748 Peter Lo 2007 41 M8748 Peter Lo 2007 42 Implementation Strategies: Direct Changeover On a date the old system stops and the new system starts + brings immediate benefits + forces users to use the new system + simple to plan no fallback if problems occur contingency plans required for the unexpected the plan must work without difficulties Suitable for small-scale, low-risk systems Implementation Strategies: Parallel Running Old system runs alongside the new system for a period of time + provides fallback if there are problems + outputs of the two systems can be compared, so testing continues into the live environment high running cost including staff for dual data entry cost associated with comparing outputs of two systems users may not be committed to the new system Suitable for business-critical, high-risk systems M8748 Peter Lo 2007 43 M8748 Peter Lo 2007 44

Implementation Strategies: Phased Changeover The new system is introduced in stages, department by department or geographically + attention can be paid to each sub-system in turn + sub-systems with a high return on investment can be introduced first + thorough testing of each stage as it is introduced if there are problems rumours can spread ahead of the implementation there can be a long wait for benefits from later stages Suitable for large systems with independent sub-systems Implementation Strategies: Pilot Project Complete system is tried out in one department or at one site + can be used as a learning experience + can feed back into design before system is launched organization-wide + decision on whether to go ahead across the whole organization can depend on the pilot outcome + reduces risk there is an initial cost without benefits across the whole organization Suitable for smaller systems and packaged software M8748 Peter Lo 2007 45 M8748 Peter Lo 2007 46 Review Post-implementation review Review the system whether it is delivering the benefits expected whether it meets the requirements Review the development project record lessons learned use actual time spent on project to improve estimating process Plan actions for any maintenance or enhancements Evaluation Report Cost Benefit Analysis Has it delivered? Compare actual with projections Functional Requirements Have they been met? Any further work needed? Non-functional Requirements Assess whether measurable objectives have been met User Satisfaction Quantitative and qualitative assessments of satisfaction with the product Problems and Issues Problems during the project and solutions so lessons can be learned M8748 Peter Lo 2007 47 M8748 Peter Lo 2007 48

Evaluation Report (cont ) Maintenance Activities Positive Experiences What went well? Who deserves credit? Quantitative Data for Planning How close were time estimates to actual? How can we use this data? Candidate Components for Reuse Are there components that could be reused in other projects in the future? Future Developments Were requirements left out of the project due to time pressure? When should they be developed? Actions Summary list of actions, responsibilities and deadlines Systems need maintaining after they have gone live Bugs will appear and need fixing Enhancements to the system may be requested Maintenance needs to be controlled so that bugs are not introduced and unnecessary changes are not made Helpdesk, operations and support staff need training to take on these tasks A Change Control System is required to manage requests for bug fixes and enhancements Changes need to be evaluated for their cost and their impact on other parts of the system, and then planned M8748 Peter Lo 2007 49 M8748 Peter Lo 2007 50 Maintenance Documentation Bug reporting database Requests for enhancements Feedback to users Implementation plans for changes Updated technical and user documentation Records of changes made M8748 Peter Lo 2007 51