NSOE – PASSAM TECHNOLOGY DEPARTMENT Subject: Grade 12 STEM ICT Term: 2 Week: 7 Lesson Number: 13 GRADE 12 ST Class: 12.1 & 12.2 Date: 29/05/23 DOMAIN: ICT Module 12.2 – SOFTWARE DEVELOPMENT Topic 1: SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC) Subtopic 1: Overview & Introduction to SDLC. Resource/Reference: Grade 12 ST STUDENT Resources Book (pg.187 - 190) In this module, you will be introduced to the process of Software Development. It is important that you familiarize yourself with the different stages involved in developing a software. The modules cover knowledge around the stages of developing a software, types of software development and the possible application of software development to solve problems. Also, included are the two fundamental programming paradigms – Procedural Programming and Object-Oriented Programming. The SDLC is an acronym for Software Development Life Cycle. It is a sequence of scheduled actions for DEVELOPING or altering Software Products. This Module will provide you an understanding of the SDLC fundamentals, as well as the many SDLC models and their applications. In addition, other related techniques such as Agile, Rapid Application Development, and Prototyping will also be covered.5 Programming paradigms are a collection of different methods to programming. Different paradigms represent fundamentally different approaches to using programming to solve specific problems. The vast majority of programming languages are based on a single paradigm; however, others combine elements from many paradigms. Two of the most significant programming paradigms are procedural and object-oriented. The outline of the module is structured in the following manner: Topic 1: Software Development Life Cycle (SDLF) Software Development Life Cycle Waterfall Model Iterative Model Spiral Model V Model Big Bang Model Agile Model RAD Model Software Prototype Types of Software Development Software Development Platforms Topic 2: Procedural Programming vs Object-Oriented Programming Procedural Programming Object-Oriented Programming Overview Software development refers to the process of creating software for a variety of applications as well as system maintenance. All software professionals should be familiar with the fundamentals of software development in order to assist in the process. This tutorial covers the fundamentals of software development as well as why it's important to learn it. The software development process encompasses the entire software life cycle, from requirements to maintenance. Design and development involve the developers who code the programming languages well. Testing the software is done to know whether the software works according to the need of the client before making the product available. Why do we need to learn Software Development Basics? Coding is required in software development as it allows the programmer to do different computational tasks to solve a problem in a logical manner. Software technology is evolving at a rapid pace, and it has emerged as one of the most lucrative occupations. Learning software development can help you advance your profession and learn new skills. Every aspect of life is intertwined with the use of online services and software. Knowing how the system works is beneficial, and having a rudimentary understanding of the technology is not harmful. What's the harm in learning software if it may earn you money? Applications of Software Development Basics Online services such as banking, food delivery, and cab booking are commonplace activities that require software to perform efficiently and maintain. Software development is required for online payment systems. It is now possible to order tickets for any mode of transportation online. Professional software development is to thank for this. Social media makes it easier to stay in touch and stay informed. This is a software application as well. Hardware devices are controlled by software, which reduces the number of mechanical duties. This allows the technicians to focus on other activities while relying on the system's software. T2Wk2Gr12STlesson13 1|Page NSOE – PASSAM TECHNOLOGY DEPARTMENT GRADE 12 ST Example Software can assist in the development of applications. Apps like Amazon make it easier to purchase online rather than going to the store and purchasing products. This application creates an online store for all things, which are then delivered to the customer's doorstep. The application is well-maintained, and regular updates are provided to assist customers. 1.1 Introduction to Software Development Life Cycle (SDLC) The Software Development Life Cycle (SDLC) is a method for designing, developing, and testing high-quality software in the software industry. The SDLC is designed to deliver high-quality software that meets or exceeds customer expectations and is completed on time and on budget. The Software Development Life Cycle (SDLC) is also known as the Software Development Process. The Software Development Life Cycle (SDLC) is a framework that defines the tasks that must be completed at each stage of the software development process. The ISO/IEC 12207 standard for software life-cycle processes is an international standard. It aspires to be the industry standard for defining all software development and maintenance responsibilities. What is SDLC and what the Stages of SDLC? Within a software organization, the SDLC is a process that is followed for a software project. It is a detailed strategy that explains how to build, maintain, replace, and change or improve certain software. The life cycle is a mechanism for enhancing software quality and the development process as a whole. The many steps of a typical SDLC are depicted graphically in the diagram below. Stage 1: Planning and Requirement Analysis The most critical and fundamental level of the SDLC is requirement analysis. It is carried out by the team's top members, with input from the customer, the sales department, market surveys, and industry domain specialists. This data is then utilized to establish the main project approach and conduct product feasibility studies in the areas of economics, operations, and technology. The planning step also includes determining the project's quality assurance requirements and identifying the project's risks. The technical feasibility study's goal is to identify the many technical techniques that can be used to successfully implement the project with the least amount of risk. Stage 2: Defining Requirements Following the requirement analysis, the product needs must be properly defined and documented, and they must be approved by the client or market analysts. This is accomplished through the use of an SRS (Software Requirement Specification) document, which contains all of the product requirements that must be defined and developed throughout the project life cycle. Stage 3: Designing the Product Architecture For product architects wishing to design the best architecture for a new product, SRS is the way to go. Many product architectural design techniques are typically presented and documented in a DDS - Design Document Specification based on the SRS criteria. All key stakeholders examine the DDS, and the best design strategy for the product is chosen based on a variety of factors including risk assessment, product robustness, design modularity, budget, and time constraints. A design approach identifies all of the product's architectural modules, as well as the product's communication and data flow representation with external and third-party modules (if any). All of the modules of the proposed architecture's internal design should be thoroughly documented in DDS, down to the tiniest of details. Stage 4: Building or Developing the Product The actual development of the product begins at this stage of the SDLC. During this stage, the programming code is generated according to DDS. Code generation can be done quickly and easily if the design is done in a precise and organized manner. Developers must adhere to their organization's coding rules, and programming tools such as compilers, interpreters, and debuggers are used to develop code. Code is written in a variety of high-level programming languages, including C, C++, Pascal, Java, and PHP. The programming language is chosen based on the type of software that is being created. Stage 5: Testing the Product T2Wk2Gr12STlesson13 2|Page NSOE – PASSAM TECHNOLOGY DEPARTMENT GRADE 12 ST As testing operations are mainly included in all phases of SDLC in modern SDLC models, this stage is usually a subset of all stages. However, this stage only refers to the product's testing step, during which flaws are reported, monitored, repaired, and retested until the product meets the SRS's quality criteria. Stage 6: Deployment in the Market and Maintenance The product is formally released in the appropriate market once it has been thoroughly tested and is ready for deployment. Product rollout is sometimes done in stages, depending on the company's business strategy. The product could be introduced in a limited market and tested in a real-world setting first (UAT- User acceptance testing). The product may then be released as is or with proposed enhancements in the intended market segment based on the feedback. Following the product's release to the market, it is maintained for the current client base. EXERCISE SET 13 1. What is Software Development? 2. List the importance of Software Development. 3. State an application of software development. 4. What is Software Development Life Cycle? 5. State and briefly describe each of the stages of SDLC. Lesson Prepared by Mr. Membi: ______________________ Date: 29/05/23 (SM – STEM ICT) T2Wk2Gr12STlesson13 3|Page