The document discusses various software development paradigms and models including object-oriented, imperative, functional, logical paradigms as well as waterfall, iterative, agile, spiral and V models. It also covers the software development life cycle and its benefits such as management control, improved quality, collaboration and risk management.
The document discusses various software development paradigms and models including object-oriented, imperative, functional, logical paradigms as well as waterfall, iterative, agile, spiral and V models. It also covers the software development life cycle and its benefits such as management control, improved quality, collaboration and risk management.
Software Design Lec: Programming languages such as Java, C#, and
Structures and Paradigm Python.
• Example: // Software Paradigm o Class: dog • Software paradigm refers to method o Attributes: height, weight, and steps, which are taken while food designing the software. o Objects: name • Software paradigm is a theoretical o Methods: run, play, eat framework that serves as a guide for // Functional Paradigm the development and structure of a software system. • This paradigm is based on the idea • Programming paradigm is a subset that a program is a set of of software design paradigm which mathematical functions that is future for other a subset of transform inputs into outputs. It is software development paradigm. often used in languages such as • Software is a collection of Haskell, Lisp, and ML. executable programming code, • No variables involved, no actions to associated libraries, and be described, pure calculations. documentation. // Logic Paradigm • Software development paradigm is also known as software • This paradigm is based on the idea engineering, all the engineering that a program is a set of logical concepts pertaining to statements that can be used to infer developments software applied. new information. It is often used in • It consists of the following parts as languages such as Prolog and Requirement Gathering, Software Mercury. design, Programming, etc. The • Integrates data and control software design paradigm is a part structures. of software development. • It includes design, maintenance, and programming. // Software Development Life Cycle (SDLC) // Imperative Paradigm • SDLC is a process that software • This is the most common paradigm developers use to plan, design, and is based on the idea that a develop, test, deploy, and maintain program is a set of instructions that software systems. tell a computer what to do. It is often • SDLC is the acronym for software used in languages such as C and development life cycle. C++. • It is also called the software • An imperative program is a development process. sequence of commands. • All the tasks required for // Object-Oriented Paradigm developing and maintaining software. • This paradigm is based on the idea • It consists of a plan describing how of objects, which are self-contained to develop, maintain, replace, and units that contain both data and alter specific software. behavior. It is often used in • It is a process for planning, creating, testing, and information systems. • It is a framework of describes the activity performed at each stage of software development. • It is a process used by a system analyst to develop an information system including requirements, validation, training, and ownership. // Waterfall Model • This model is based on the idea that software development is a linear process, with each phase building on the previous one. // Iterative Model • It is repetition incarnate. In short, it is breaking down the software development of large applications into smaller pieces.
// Agile Model
• This model is based on the idea that
software development is an iterative // Spiral Model process. • It helps the group to adopt elements of one or more process models. To develop strategies that solve uncertainty and risk. 1. It allowed the highest level of management control. 2. Everyone understands the cost and resources required. 3. To improve the application quality and monitor the application. 4. It performs at every stage of the software development life cycle. 5. Better communication: the software development life cycle provides a structured framework for communication between stakeholders, including developers, // V-Model project managers, and end-users. This helps to ensure that everyone is • It is known as the verification and on the same page and that validation model. It is characterized requirements are clearly defined. by a corresponding testing phase for 6. Improved Time Management: The the development stage. V model software development life cycle joins by coding phase. helps to improve time management by breaking down the development process into manageable stages. This allows developers to focus on one stage at a time and ensures that deadlines are met. 7. Enhanced Collaboration: The software development life cycle encourages collaboration between developers, testers, and other stakeholders. This helps to ensure // Big Bang Model that everyone is working towards • It focuses on all types of resources the same goal and that issues are in software development and identified and addressed early in the coding. Small project with smaller process. size development team which are 8. Better Risk Management: The working together. software development life cycle helps to identify potential risks and issues early in the process, allowing them to be addressed before they become major problems. This helps to reduce the risk of project failure and ensures that the final product meets quality standards. 9. Improved Testing: The software development life cycle includes // Benefits of SDLC multiple stages of testing, ensuring that the final product is thoroughly tested and meets quality standards. This helps to reduce the risk of bugs 3. Developing product: In this phase and errors, ensuring that the final of SDLC, you will see how the product is stable and reliable. product will be developed. It is one 10. Increased Customer Satisfaction: of the crucial parts of SDLC, it is The software development life also called the Implementation cycle ensures that the final product phase. meets customer requirements and 4. Product testing and integration: in expectations, leading to increased this phase, we will integrate the customer satisfaction. This can help modules and will test the overall to improve customer loyalty and product by using different testing increase revenue for the techniques. organization. 5. Deployment and maintenance: in this phase, the actual deployment of // Stages of SDLC Model the product, or you can say the final 1. Requirement gathering: The product will be deployed, and we feasibility report is positive towards will do maintenance of product for the project and the next phase starts any future update and release of with gathering requirements from new features. the user. Engineers communicate // Advantages of using paradigm with the client and end-users to know their idea, and which features • Provide a consistent structure for they want software to include. developing software systems. 2. Software design: It is a process to • Help developers understand the transform user requirements into a problem they are trying to solve. suitable form. It helps programmers • Help developers design and in software coding. There is a need implement solutions more for more specific and detailed effectively. requirements in software. The • Help developers organize and reuse output of the process can directly be code more efficiently. used in implementation in a • Help developers create more programming language. There are reliable and maintainable software. three design levels as follows. a. Architectural: it is the // Disadvantages of using a paradigm highest abstract version of the system. In a software • Can be difficult to learn and system, many components understand for new developers. interact with each other. • Can be limiting if a problem does b. High-level: it focuses on not fit well into a specific paradigm. how the system along with • Can make it difficult to integrate all its components and its systems developed using different can be implemented inform paradigms. of modules. • Can make it difficult to adapt to new c. Detailed: it defines the technologies or changing logical structure of each requirements. module and its interface to // Advantages of SDLC communicate with each module. • Provides a structured approach to software development, which helps to ensure that important steps are the changing needs of the customer not overlooked. or end-user. • Helps to identify and manage risks • Compliance: The SDLC can help early in the development process. organizations to comply with • Helps to deliver software on time regulatory requirements and and within budget. industry standards by ensuring that • Helps to ensure that software meets software is developed in a the needs of the customer or end- controlled and structured manner. user. // Disadvantages of SDLC • Helps to improve communication and collaboration among team • Can be inflexible, making it members. difficult to accommodate changes • Better Resource Management: The or unexpected events. SDLC helps to ensure that • Can be time-consuming and costly, resources, such as personnel, particularly in the early stages of equipment, and materials, are development. allocated effectively throughout the • Can lead to delays or increased development process. This helps to costs if requirements change during ensure that the project stays on development. schedule and within budget. • Can lead to a focus on • Quality Assurance: The SDLC documentation rather than working includes multiple stages of quality software. assurance, including testing, • Can lead to a lack of customer validation, and verification. This involvement during development, helps to ensure that the final product which can result in a product that is free of bugs and errors and meets does not meet the customer’s needs. quality standards. • Limited scope for creativity: The • Flexibility: The SDLC can be SDLC is a structured approach to adapted to suit the needs of different software development that can be types of projects and organizations. quite rigid in its processes and This flexibility allows organizations procedures. This can limit the to choose the SDLC methodology ability of developers to be creative that works best for them. and come up with innovative • Improved Documentation: The solutions. SDLC requires documentation at • Overemphasis on planning: The every stage of the development SDLC places a great deal of process. This helps to ensure that emphasis on planning and important information is captured documentation, which can and can be referred to later if sometimes result in too much time needed. and resources being spent on these • Continuous Improvement: The activities at the expense of SDLC encourages continuous developing the software. improvement by providing • Difficulty in handling complex or opportunities for feedback and large projects: The SDLC can be evaluation throughout the difficult to manage for complex or development process. This helps to large projects, as it involves a lot of ensure that the final product meets coordination and communication among team members and stakeholders. • Risk of waterfall model: The SDLC follows a sequential process, often referred to as the waterfall model. This means that each stage of the development process must be completed before moving on to the next stage. This can result in delays and increased costs if problems are encountered later in the development process. • Can be too rigid for agile projects: The SDLC is not well suited for agile development methodologies, which require a more flexible and iterative approach to software development. • May not be suitable for all types of software: The SDLC may not be suitable for all types of software, particularly those that require a rapid development cycle or frequent updates