System Analysis and Design System Implementation - Mr. Ahmad Al-Ghoul learning Objectives Explain object-oriented application development Explain the coding process and how code is generated Explain unit testing, integration testing, and system testing Avicenna System Analysis and Design System Implemantation 2 Object-Oriented Application Development Object-Oriented Application Development Compared to Structured Development In O-O analysis you can translate an object model into an object-oriented programming language when implementing an object-oriented design, relationships between objects already exist The application's structure is represented by the object model itself Objects contain both data and program logic, called methods. Individual object instances belong to classes of objects with similar characteristics The relationship and interaction among classes are described using a class diagram, which include attributes, and methods In addition to class diagrams, programmers get an overview of object interaction by using object relationship diagrams that were developed during the analysis process Avicenna System Analysis and Design System Implemantation 3 Object-Oriented Application Development Implementation of Object-Oriented Design Avicenna When a programmer translates an object-oriented design into an application, he/she analyzes the classes, attributes, methods, and messages that are documented in the object model Programmer makes necessary revisions and updates to class diagrams, sequence diagrams, state transition diagrams, and activity diagrams Main objective is to translate object methods into program code modules and determine what event or message will trigger the execution of each module Transition diagrams show the events and messages that trigger changes to an object O-O applications are called event-driven, because each event, transaction, or message triggers a corresponding action Programmer can use pseudocode, or CASE tools to create object-oriented codes. System Analysis and Design System Implemantation 4 Coding Coding Physical design specifications are turned into working computer code Coding is the process of turning program logic into specific instructions that the computer system can execute using programming language Larger programs are divided into modules that several programmers can work on simultaneously Programming Environments Each IT departments has its own programming environment and standards and can use various programming languages Integrated development environments (IDEs) An integrated development environment (IDE) uses a built-in CASE tool that a software vendor has included to make it easier to plan, construct, and maintain a specific software product. An IDE is designed to allow the easy integration of system components with less time being spent on developing code for interactive modules. Avicenna System Analysis and Design System Implemantation 5 Coding Generating Code Avicenna Systems analysts can use application generators, report writers, screen generators, fourth generation languages, and 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 Analysis and Design System Implemantation 6 Testing the System A test plan is developed during the analysis phase During the design phase, a unit test plan and a system test plan are developed The actual testing is done during implementation Test plans provide improved communication among all parties involved in testing Avicenna System Analysis and Design System Implemantation 7 Testing the System After coding, a programmer must test each program to make sure that it functions correctly Later, programs are tested in groups, and finally the development team must test the entire program First step is to compile the program to detect syntax errors Syntax errors: are language grammar errors. Second step, the programmer desk checks the program. Desk checking: A testing technique in which the program code is sequentially executed manually by the reviewer Avicenna System Analysis and Design System Implemantation 8 Testing the System More formal type of desk checking called a structured walkthrough, or code review Structured walkthrough, or code review: is a review of a project team member's work by other members of the team. Generally, systems analysts review the work of other systems analysts, and programmers review the work of other programmers, as a form of peer review. Third step, the project team holds a session with users called a design walkthrough, to review interface and assure that all features have been included. Avicenna System Analysis and Design System Implemantation 9 Testing the System Unit Testing Each module is tested alone in an attempt to discover any errors in its code, also called module testing Avicenna Test data should contain both correct data and erroneous data and should test all possible situations that could occur. Programmers must test programs that interact with other programs and files individually Stub testing, the programmer simulates each program outcome or result and displays a message to indicate whether or not the program executed successfully. Each stub represents an entry or exit point that will be linked later to another program or data file. Regardless of who creates the test plan, the project manager or a designated analyst also reviews the final test results System Analysis and Design System Implemantation 10 Testing the System Integration Testing, or link testing Avicenna The process of bringing together all of the modules that a program comprises for testing purposes. Modules are typically integrated in a top-down, incremental fashion Testing the programs independently does not guarantee that the data passed between them is correct A testing sequence should not move to the integration stage unless it has performed properly in all unit tests System Analysis and Design System Implemantation 11 Testing the System System Testing The bringing together of all the programs that a system comprises for testing purposes. Major objectives: Perform a final test of all programs Verify that the system will handle all input data properly, both valid and invalid 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 Avicenna System Analysis and Design System Implemantation 12 Testing the System System Testing Major objectives: 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 Confirm that the information system can handle predicted volumes of data in a timely and efficient manner Avicenna System Analysis and Design System Implemantation 13 Testing the System System Testing Avicenna Acceptance testing involves the entire information system. An acceptance test includes all typical processing situations. During an acceptance 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. Some users want a system that is a completely finished product, while others realize that minor changes can be treated as maintenance items after the system is operational If conflicting views exist, management will decide whether or not to install the system after a full discussion of the options System Analysis and Design System Implemantation 14 Sequence Summary when implementing an object-oriented design, relationships between objects already exist The application's structure is represented by the object model itself When a programmer translates an object-oriented design into an application, he/she analyzes the classes, attributes, methods, and messages that are documented in the object model Coding is the process of turning program logic into specific instructions that the computer system can execute using programming language Programmers perform desk checking, code review, and unit testing tasks during application development Systems analysts design the initial test plans, which include test steps and test data for integration testing and system testing Integration testing is necessary for programs that interact The final step is system testing for the completed system System testing includes users in the testing process Avicenna System Analysis and Design System Implemantation 15 Sequence Summary In this Sequence we have Avicenna Distinguished between object-oriented application development and structured development Explained object-oriented application development Explained the coding process and how code is generated Explained testing process including unit testing, integration testing, and system testing System Analysis and Design System Implemantation 16 Reference [1] System Analysis and Design, Sixth Edition Authors: Gary B. Shelly, Thomas J. Cashman and Harry J. Rosenblatt Publisher: SHELLY CASHMAN SEWIES. Avicenna System Analysis and Design System Implemantation 17