Software Engineering PDF
Document Details
Uploaded by Deleted User
Tags
Summary
This document provides an overview of software engineering concepts. It describes different software types and the software development lifecycle. Various development methodologies are also discussed. This document is useful for understanding the basic principles of software engineering.
Full Transcript
What is Software Engineering? Software: it is a collection of executable programming code, associated libraries and documentations. Software engineering: it is an engineering branch associated with the development of software products using well-defined scientific principles, methods, and...
What is Software Engineering? Software: it is a collection of executable programming code, associated libraries and documentations. Software engineering: it is an engineering branch associated with the development of software products using well-defined scientific principles, methods, and procedures. The outcome of software engineering is an efficient software product. It is the Process of designing, developing, testing and maintaining software. It involves various stages like planning, analysis, design, implementation, and testing. It also involves the use of various tools, techniques, and methodologies to ensure quality and efficiency in software development. Software Evolution It is the process of developing a software product using software engineering principles and methods. This includes the initial development of software and its maintenance and updates. Evolution starts from the requirement gathering process. Developers create a prototype of the software and show it to the users to get their feedback at the early stage of the software product development. The users suggest changes by several updates and maintenance. This process changes to the Original Software, till the desired software is accomplished. Software divided into three different categories 1. Static-type (S-type) 2. Practical-type (P-type) 3. Embedded-type (E-type) 1- Static-type (S-type): This is Software works according to defined specifications and solutions. The solution and the method to achieve it, both are immediately understood before coding. The s-type software is least subjected to changes and the simplest of all. For ex, Calculator Program. 2. Practical-type (P-type): This is Software with a collection of procedures , what procedures can be done. In this Software, the specifications can be described but the solution is obviously not instant. For example, Gaming Software. 3- Embedded-type (E-type): This Software has a high degree of evolution as there are various changes in laws, taxes etc. In real-world situations. For example, Online Trading Software Software Development Life Cycle (SDLC) It is a Process used by software development teams to design, develop, test, and maintain software applications. The SDLC consists of a series of phases in a specific order (Software Engineering Stages) to ensure that the software development process is efficient, effective, and meets the needs of the end-users The Software Development Process typically involves several stages, including: 1. Requirements Analysis: This stage involves identifying the needs and requirements of the software users and stakeholders. 2. Design: This stage involves creating a detailed plan for the software, including its user interface, and other key features. 3. Implementation: This stage involves writing the code for the software and integrating it into a functional system. 4. Testing: This stage involves testing the software to ensure that it is free of defects and meets the requirements of its users. 5. Maintenance: This stage involves making changes to the software as needed to fix defects, add new features or adapt to changing user needs. Software Development Paradigm A Software Development Paradigm (Software Process Models), also known as a Software Development Methodology, is a Framework that provides approach to the software development process. The following are some of the most popular software development paradigms: 1. Waterfall Model. 2. Iterative Model (Agile). 3. Spiral Model. 4. V – Model. 5. Prototype. 6. Rapid Application Development (RAD). 7. Lean Model. 8. Devops. 1. Waterfall Model: It is the simplest model of Software Development Paradigm. All the phases of SDLC function one after another in a linear manner, where each phase of the development cycle is completed before moving on to the next. 2. Iterative Model (Agile): This model leads the Software Development Process in iterations [repeating every step]. 3. Spiral Model: This model Considers risk (Risk-driven model). It is an iterative model. 4. V – Model: It provides means of testing software at each stage in reverse way. At every stage, test plans and test cases are created to verify and validate the product according to the requirement. 5. Prototype: This is a software development paradigm that involves building quick, low-fidelity versions. The focus is on rapid prototyping and constant feedback from stakeholders. 6. Rapid Application Development (RAD): This is a software development paradigm That it uses of prototypes, iterative development and user feedback to quickly develop. 7. Lean Model: It is a software development paradigm that emphasizes the elimination of waste, the maximization of customer value and delivering software quickly, with minimal defects. 8. Devops: This is a software development paradigm that combines development and operations teams to streamline the software development process and to ensure that software can be delivered quickly, reliably, and with high quality. How to become a software engineer 1. Determine your software engineering career path. 2. Learn skills through degrees and/or certificates. 3. Take on programming projects and build your portfolio. 4. Create your resume and apply to your first software engineering job. 5. Advance your career by earning certifications and continuing your education. What is the difference between Software Developer Software Engineer 1. Builds software and writes 1. Applies the principles of software programs. engineering to different stages of the 2. Develops application by using tools software development life cycle. that already exist. 2. Create tools from scratch to write 3. Can work alone and in a team. software. 4. Carries out engineer's functions on a 3. Mostly works in a team. small scale. 4. Operates on a bigger scale. 5. job functions.