Lecture 07 - SEN 309 PDF
Document Details
Uploaded by UnbiasedJacksonville
Nile University of Nigeria
Abdulsalam Shettima Nur
Tags
Summary
This document contains lecture slides for a course on System Analysis and Design at Nile University of Nigeria. It covers topics such as system development, software selection, testing types and techniques, quality assurance, and challenges in testing. The course code is SEN309.
Full Transcript
Course Code: SEN309 Course Name: System Analysis and Design Lecture Slides, Compiled & Presented By Abdulsalam Shettima Nur Lecturer, Software Engineering Department, Nile University of Nigeria, A...
Course Code: SEN309 Course Name: System Analysis and Design Lecture Slides, Compiled & Presented By Abdulsalam Shettima Nur Lecturer, Software Engineering Department, Nile University of Nigeria, Abuja. [email protected] Teams code for this course: Section-1: 2e7cj2g Section-2: carndws 1 Objectives: ❑After completing this section, you should be able to: 1) Understand system development and its key tasks. 2) Learn software selection criteria. 3) Explore testing types and techniques. 4) Grasp the fundamentals of quality assurance (QA). 5) Compare testing and QA, highlighting their importance. 6) Identify challenges in testing and quality management. 2 INTRODUCTION ❑The Development Phase, which is the fifth stage in the System Development Life Cycle (SDLC). This phase involves building or coding the actual software or system based on the design specifications created in the previous phase (the Design Phase). ❑The goal is to convert the design into a functional, computer-based system that meets the organization's needs. ❑During the Development Phase, the software is built or programmed to match the blueprint created during the Design Phase. 3 Tasks of System Development Major tasks of system development have been summarized below: 1. Implementation Planning 2. Software development phase 3. User Review 4. Equipment acquisition and installation 5. Coding, debugging and testing of computer program. 6. System testing 7. Reference manual preparation 8. Personnel training 9. User acceptance review 4 1. Implementation Planning ❑After the initiation of development phase is approved, implementation planning starts. Essential parts of implementation plan are: i. A plan for testing the computer program components, both as the integrated assembly of its individual programs and as an element of the overall business system. ii. A plan for training the personnel associated with the development of software on the new system. This includes persons who will provide inputs to, receive output from, operate or maintain the new system. iii. A conversion plan, is a detailed strategy for transition from an old system to a new one. The purpose is to ensure that all necessary components, such as procedures, programs, and data files, are updated or transformed to align with the requirements of the new system. 5 2. Software development phase ❑Software development phase can work along with the implementation planning efforts. This phase is a critical time where detailed design elements, like flowcharts and database structures, are developed to guide both the programming process and the implementation of the new system. 6 3. User Review ❑Regular reviews with principal users during the development phase are crucial. Users' feedback on test plans, training plans, and conversion plans ensures the system meets their needs and supports smooth implementation. Their agreement with the implementation plan is vital for efficient development and successful system adoption. 7 4. Equipment acquisition and installation ❑In the design phase, special hardware required to support the system may have identified. If the hardware is not ordered during the design phase, it is proper time to go for it. ❑It is also true that all hardware components are not required at a particular time because the needs vary depending upon the type of software being developed. It is, therefore, necessary that a proper schedule should be prepared for acquisition of hardware components. 8 5. Coding, debugging and testing of computer program ❑Each of the computer programs that make up the entire system is coded and debugged. This means that each computer program is complied error free and successfully executed using the test data prepared by the programmer. 9 6. System testing ❑ System tests are performed to verify that the computer-based business system has met its design objectives. 7. Reference manual preparation ❑ Proper reference manual for the various individuals who will be associated with the new computer-based information system must be prepared. 10 8. Personnel training ❑Operating, programming and user personnel are trained using the reference manuals, forms and procedures as training assistances. All sorts of training activities must be completed prior to the user acceptance review which occurs at the end of the development phase. 11 9. User acceptance review ❑At the end of development phase, the computer-based system is reviewed by the management of the user organization. Representatives of the information service organizations and other affected organizations take part in this review. ❑Design phase report, development phase report and test reports are some of the important documents which are responsible for the acceptance review. 12 Prototype Installation ❑ A prototype installation is the process of creating, developing and refining a working model of a final system. Rather, it includes large number of elements to enable individuals to use the proposed system to determine what they like and do not like and to identify features to be added or changed. 13 PrototyPe InstallatIon cont’d… ❑Application prototyping, the process of developing and using the prototype, has the following characteristics. i. The prototype is a live, working application. ii. Its main purpose is to test out the assumption made by the analysts and users about the features of required system. iii. Prototypes can be quickly created. iv. They follow an iterative process. v. They are relatively cheap. 14 Software Selection ❑Software selection is a critical aspect of system development. There are two ways of acquiring software: custom-made or off-the-shelf package. There is a high demand for off-the-shelf software because it is more affordable and faster to implement. These packages are already developed, tested, and optimized, making them a popular choice ❑It can be observed that price alone cannot determine the quality of software. A systematic review is crucial for selecting the desired software. Prior to selecting the software, the project team set up criteria for selection. 15 The criteria for software selection are: 1) Functionality 2) Efficiency 3) Scalability 4) Flexibility 5) Reliability 6) Usability 7) Security 8) Maintainability 9) Portability 10) Costs 16 Testing and Quality Assurance 17 Testing and Quality Assurance ❑Testing and Quality Assurance (QA) are critical components of software development, ensuring that products meet requirements, function as intended, and are reliable and user- friendly. Overview of Testing: ❑Testing is the process of evaluating a system or its components with the intent to find whether it satisfies the specified requirements or not. 18 testIng cont’d… There are various types of testing, including: 1. Unit Testing: Testing individual units or components of the software independently. 2. Integration Testing: Testing how well the components work together. 3. System Testing: Testing the entire system as a whole. 4. Acceptance Testing: Testing to verify if the system meets the requirements and can be accepted by users. 5. Regression Testing: Re-testing software after changes to ensure that existing functionalities are not affected. 6. Performance Testing: Evaluating the performance characteristics of the system, such as responsiveness and stability under different conditions. 7. Security Testing: Assessing the system's resistance to unauthorized access or attacks. 19 THE TESTING TECHNIQUES ❑To perform these types of testing, there are two widely used testing techniques. Black Box Testing is a software testing method where the tester evaluates the functionality of a system or component without knowledge of its internal code, structure, or implementation. The focus is purely on inputs and outputs, rather than how the system processes them internally. ✓White Box Testing: The internal structure of the software program is tested, and errors are detected during white box testing. It involves testing of all logic of the program, testing of loops, conditional testing and data flow-based testing. 20 Quality Assurance (QA): Quality Assurance is a set of activities designed to ensure that the development and maintenance processes are adequate to ensure a system will meet its objectives. QA focuses on preventing defects and identifying gaps in the process. Key aspects of QA include: 1. Process Definition and Compliance: Establishing processes and standards for development and ensuring adherence to them throughout the project lifecycle. 2. Quality Control: Evaluating deliverables against predefined quality criteria to ensure they meet standards. 21 QualIty assurance (Qa) cont’d… 3. Continuous Improvement: Identifying areas for improvement in processes, tools, and methodologies to enhance overall quality. 4. Training and Skill Development: Providing training to team members to enhance their skills and knowledge. 5. Risk Management: Identifying and mitigating risks that could impact the quality or success of the project. 22 23 Importance of Testing and QA: 1. Early Issue Identification: Testing and QA help catch defects early in the development lifecycle, reducing the cost and effort required to fix them. 2. Customer Satisfaction: Ensuring that the software meets user requirements and expectations improves customer satisfaction and reduces support and maintenance costs. 3. Brand Reputation: High-quality software enhances the reputation of the organization and builds trust with customers. 4. Compliance and Security: Testing and QA help ensure that software complies with regulatory requirements and is secure against potential threats. 5. Cost Reduction: By identifying and fixing defects early, testing and QA help reduce the overall cost of software development and maintenance. 24 Challenges in Testing and QA: 1. Complexity: Testing complex systems with numerous interdependencies can be challenging. 2. Resource Constraints: Limited time, budget, and skilled personnel can impact the effectiveness of testing and QA efforts. 3. Changing Requirements: Rapidly changing requirements can make it difficult to keep testing efforts aligned with project goals. 4. Tool and Technology Selection: Choosing the right tools and technologies for testing can be daunting due to the wide array of options available. 5. Communication and Collaboration: Effective communication and collaboration among cross-functional teams are essential for successful testing and QA. 25 Summary of the Lecture In this section, we have learned: 1) System Development: Understand the system development process and its key tasks. 2) Software Selection: Learn the criteria for selecting appropriate software. 3) Testing Types and Techniques: Explore various testing methods and techniques. 4) Quality Assurance (QA): Grasp the basics of QA and its role in ensuring quality. 5) Testing vs. QA: Compare testing and QA, emphasizing their importance. 6) Challenges: Identify challenges in testing and quality management. 26 Thank You! 27