The document outlines the course details for the Software Engineering & Testing Methodologies course, including the course code, name, outcomes, syllabus, and an overview of software engineering principles like the software development life cycle and different process models. Specifically, it provides details about the waterfall model and prototype model, explaining the phases and advantages/disadvantages of each.
The document discusses engineering minors offered by the School of Computer Science and Engineering. It defines engineering minors as a set of six courses in an engineering discipline that allows students to develop competency in an area outside their major. It provides details on the data science engineering minor, including the courses offered and their descriptions and learning outcomes. The minor aims to provide students with interdisciplinary experience and skills in data analytics, visualization, programming, and big data processing to enhance their career opportunities.
Software Engineering Thesis Topics In Oxford.pptxDaisy Jones
The discipline of software engineering is extremely dynamic and constantly changing, necessitating the development of fresh methods and concepts. As a result, there is a growing demand for creative solutions that may assist in addressing the shifting requirements of the sector. Graduate students interested in pursuing a thesis in software engineering at Oxford will have the chance to make a difference in the industry by doing original research and creating cutting-edge solutions. The following list includes some possible software engineering thesis topics at Oxford.
This document provides an introduction to software engineering. It discusses the objectives of software engineering which include producing high quality software products on time and within budget. Software engineering is defined as applying engineering principles to software development through the use of methods, tools, and techniques. The document then discusses why software engineering principles are needed, especially for large, complex software projects. It provides examples of software engineering failures that occurred when principles were not followed. The rest of the document outlines the software development process, including requirements, design, implementation, testing, and maintenance. It also discusses different process models like waterfall and spiral.
1. Process patterns are abstractions of recurring processes and components that help develop object-oriented software. They range from general techniques to specific tasks and activities, ordered from least to most abstract. Examples include creational, structural, and behavioral patterns.
2. Software estimation models and techniques help achieve reliable cost and effort estimates during project planning. Estimation models include algorithmic and non-algorithmic models. Techniques include expert judgment, analogy, and parametric modeling.
3. An empirical software solutions company faced challenges like a lack of standardized development processes and documentation. Suggestions included introducing a reuse framework, gaining management support, and setting up a reuse program with associated costs and risks. Software reuse classifications and
This document provides an overview of software quality assurance. It begins with the course outcomes, which focus on explaining software quality standards and models, applying various project management techniques like configuration management and quality assurance practices. It then discusses the uniqueness of software quality assurance compared to other products. Key differences include software's invisibility and complex nature. The document emphasizes that software quality assurance is an ongoing challenge due to these differences. It provides definitions of software quality and outlines the goals of software quality assurance activities.
The document discusses engineering minors offered by the School of Computer Science and Engineering. It defines engineering minors as a set of six courses in an engineering discipline that allows students to develop competency in an area outside their major. It provides details on the data science engineering minor, including the courses offered and their descriptions and learning outcomes. The minor aims to provide students with interdisciplinary experience and skills in data analytics, visualization, programming, and big data processing to enhance their career opportunities.
Software Engineering Thesis Topics In Oxford.pptxDaisy Jones
The discipline of software engineering is extremely dynamic and constantly changing, necessitating the development of fresh methods and concepts. As a result, there is a growing demand for creative solutions that may assist in addressing the shifting requirements of the sector. Graduate students interested in pursuing a thesis in software engineering at Oxford will have the chance to make a difference in the industry by doing original research and creating cutting-edge solutions. The following list includes some possible software engineering thesis topics at Oxford.
This document provides an introduction to software engineering. It discusses the objectives of software engineering which include producing high quality software products on time and within budget. Software engineering is defined as applying engineering principles to software development through the use of methods, tools, and techniques. The document then discusses why software engineering principles are needed, especially for large, complex software projects. It provides examples of software engineering failures that occurred when principles were not followed. The rest of the document outlines the software development process, including requirements, design, implementation, testing, and maintenance. It also discusses different process models like waterfall and spiral.
1. Process patterns are abstractions of recurring processes and components that help develop object-oriented software. They range from general techniques to specific tasks and activities, ordered from least to most abstract. Examples include creational, structural, and behavioral patterns.
2. Software estimation models and techniques help achieve reliable cost and effort estimates during project planning. Estimation models include algorithmic and non-algorithmic models. Techniques include expert judgment, analogy, and parametric modeling.
3. An empirical software solutions company faced challenges like a lack of standardized development processes and documentation. Suggestions included introducing a reuse framework, gaining management support, and setting up a reuse program with associated costs and risks. Software reuse classifications and
This document provides an overview of software quality assurance. It begins with the course outcomes, which focus on explaining software quality standards and models, applying various project management techniques like configuration management and quality assurance practices. It then discusses the uniqueness of software quality assurance compared to other products. Key differences include software's invisibility and complex nature. The document emphasizes that software quality assurance is an ongoing challenge due to these differences. It provides definitions of software quality and outlines the goals of software quality assurance activities.
This document discusses software engineering and software quality assurance. It begins by defining software and describing a case study on the Therac-25 radiation therapy machine which suffered from a software failure disaster. It then covers classification of causes of software errors, definitions of software quality from IEEE and Pressman, and objectives of SQA activities. Key causes of errors listed include faulty requirements, client-developer communication failures, deliberate deviations from requirements, logical design errors, coding errors, non-compliance with documentation, shortcomings in testing, procedure errors, and documentation errors. The document also discusses definitions of quality assurance and quality control and the goals of SQA in software development and maintenance.
Career Opportunities after M. Tech. in Computer Science and EngineeringREVA University
M. Tech in Computer Science and Engineering is a 2-year postgraduate program that provides in-depth knowledge of hardware and software concepts and applications. Eligible candidates include those with a B.E./B.Tech or M.Sc in relevant fields with a minimum 50% marks. Career options for graduates include application developer, data analyst, database administrator, software architect, and video game developer. These roles involve tasks like coding, data analysis, database management, software design, and game creation. The document encourages pursuing an M.Tech at REVA University to gain strong practical skills in computer science concepts and applications.
Software Engineering is the course with code 21CS47 taught over 3 hours per week for a total of 40 contact hours. It has both CIE and SEE components worth 50 marks each. The course aims to teach students about software engineering principles, processes, requirements engineering, system models, agile development, project management, and risks in software development. Key topics covered include the software development lifecycle, software quality metrics, software processes and process models, testing strategies, and project scheduling.
This document provides lecture notes on software engineering topics including software processes, process models, requirements engineering, system modeling, architectural design, design and implementation, software validation, software evolution, and coping with change. The waterfall model and incremental development are described as examples of software process models. Requirements engineering, software design and implementation, and validation are discussed as key process activities. Approaches to coping with change such as prototyping and incremental delivery are also summarized.
This document provides an overview of the CSE320 Software Engineering course. It includes details about the course such as it being a 3 credit hour course, the textbook, and the assessment model which includes assignments, tests, and exams worth various percentages of the total grade. It outlines the academic tasks including assignments and tests. It also covers topics that will be discussed like software development lifecycles, Unified Modeling Language, testing techniques, and software quality standards. Program and course outcomes are listed. The document concludes with an outline of course contents that will be covered in each unit and information about online educational resources for each unit.
An initial work on coming out with specialized postgraduate programme focusing on software testing and quality, both for full-time and part-time studies. Presented at Malaysian Software Engineering Conference 2014 (MySEC14) in Langkawi, Malaysia.
1. The document provides an introduction to software engineering, defining it as the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost estimates.
2. It discusses the need for software engineering due to increasing complex applications in the 1960s that resulted in cost overruns, late deliveries, and lack of reliability. Workshops defined "software engineering" to address technical and managerial processes.
3. Software engineering relies on computer science, management science, economics, communication skills, and engineering approaches. It aims to improve quality and productivity through a systematic approach.
This document provides an overview of the Software Engineering course 21AMMAT5030. It introduces software engineering as the application of engineering principles to the design, development, and maintenance of software. The document outlines the course objectives, which include exploring fundamental concepts, developing requirements analysis skills, understanding software design principles, learning testing strategies, and principles of software project management. It also lists several career opportunities in software engineering and references textbooks and additional resources for the course.
This document outlines the course details for SE423 Software Process Improvement, a 3-credit course offered at CMU. The course objectives are to explain, apply, and define methods to document and improve software engineering processes using standards like ISO/IEC 29110, ISO/IEC 15504, and CMMI. Course content will cover software development standards, process assessment, definition, and improvement. Grading is based on attendance, quizzes, assignments, midterm, and final exam. Students must attend at least 80% of classes and take the final exam to pass.
This document provides an introduction to software engineering. It defines software engineering as the application of systematic and quantifiable approaches to software development, in line with other engineering disciplines. The document outlines some of the key challenges in software engineering, such as evolving requirements and schedule pressures. It also describes common software development processes and practices, including requirements engineering, design, coding, testing and project management. Both plan-driven and agile software processes are discussed.
This document provides an introduction to software engineering. It begins with the course outcomes, which are to apply the software engineering lifecycle, gain knowledge of software and UI design, and apply testing guidelines. It then covers topics like the definition of software engineering, its objectives like maintainability and portability, and the software development lifecycle which includes stages like requirements analysis, design, development, testing, and deployment. The importance of software engineering is discussed as helping to reduce complexity, minimize costs, decrease time, and handle large projects. References are provided at the end.
A PROJECT REPORT ON DOCUMENT MANAGEMENT SYSTEM MASTER OF COMPUTER APPLICATION...Karla Long
The document is a project report submitted by Greeshma P to the Cochin University of Science and Technology for their Master of Computer Applications program. It outlines a project to develop a Document Management System (DMS) web application using ASP.NET. The DMS will allow users to check documents in and out, view different versions, and search for documents by filename or metadata. The report describes the existing manual system, proposed new system, modules of the new system including administration, version control, registration, user functions, and searching. It also provides details on hardware, software, and database requirements.
This document contains Pratik Aggarwal's resume. It summarizes his skills and experience in IT project management, software development, and engineering. He has over 5 years of experience managing projects from requirement gathering to deployment. His experience includes developing applications for clients in various industries using technologies like ASP.NET, C#, SQL, and SmartPlant Foundation. He is currently pursuing an MBA and has a bachelor's degree in computer science.
This document provides an overview of software engineering. It discusses key topics like software evolution, paradigms, characteristics, and the software development life cycle (SDLC). The SDLC is described as a structured sequence of stages to develop software, including communication, requirements gathering, feasibility study, system analysis, design, coding, testing, integration, implementation, and operation and maintenance. Software engineering aims to develop high-quality software using well-defined principles and methods, addressing issues like exceeding timelines and budgets seen in traditional software development.
Monty Jackson has over 15 years of experience as a software developer and program manager. He has successfully led large software teams and projects through their full lifecycles. Currently he is a Program Manager at General Atomics Aeronautical, where he oversees development of new capabilities for the MQ-9 Reaper unmanned aerial system, including managing budgets, schedules, and ensuring quality standards are met. Previously he held roles as a Software Development Manager and Software Integration Manager at BAE Systems, where he delivered projects on time and within budget constraints.
The document discusses software engineering and provides an overview of key concepts. It defines software engineering and discusses its need. It describes characteristics of good software and lists factors like operational, transitional, and maintenance characteristics. It also covers software development life cycles and models like the classical waterfall model. The classical waterfall model divides the life cycle into phases like feasibility study, requirements analysis, design, coding/unit testing, and integration/system testing.
The document discusses the goals and challenges of software engineering. It notes that the goals of producing software that is correct, with minimal effort and cost, and in the least time are difficult to fully achieve. Large software involves many people and millions of dollars over many years. Real-life examples like Eclipse have over 1.35 million lines of code and cost over $54 million to develop. The document outlines why software engineering is important to avoid costly failures and ensure efficient development. It also discusses myths and the need for different approaches like formal processes for large software.
This document provides information about the Engineering Minor in Data Science offered by the School of Computer Science and Engineering. It describes what engineering minors are, lists the courses offered in the Data Science minor, and provides brief descriptions and outcomes of each course. The minor consists of six courses spanning four semesters that cover topics like data management, visualization, programming in R, predictive analytics, big data fundamentals, and cluster computing. The document also discusses career opportunities, industrial applications, special requirements, and contacts for additional information about the minor.
This document discusses software engineering and software quality assurance. It begins by defining software and describing a case study on the Therac-25 radiation therapy machine which suffered from a software failure disaster. It then covers classification of causes of software errors, definitions of software quality from IEEE and Pressman, and objectives of SQA activities. Key causes of errors listed include faulty requirements, client-developer communication failures, deliberate deviations from requirements, logical design errors, coding errors, non-compliance with documentation, shortcomings in testing, procedure errors, and documentation errors. The document also discusses definitions of quality assurance and quality control and the goals of SQA in software development and maintenance.
Career Opportunities after M. Tech. in Computer Science and EngineeringREVA University
M. Tech in Computer Science and Engineering is a 2-year postgraduate program that provides in-depth knowledge of hardware and software concepts and applications. Eligible candidates include those with a B.E./B.Tech or M.Sc in relevant fields with a minimum 50% marks. Career options for graduates include application developer, data analyst, database administrator, software architect, and video game developer. These roles involve tasks like coding, data analysis, database management, software design, and game creation. The document encourages pursuing an M.Tech at REVA University to gain strong practical skills in computer science concepts and applications.
Software Engineering is the course with code 21CS47 taught over 3 hours per week for a total of 40 contact hours. It has both CIE and SEE components worth 50 marks each. The course aims to teach students about software engineering principles, processes, requirements engineering, system models, agile development, project management, and risks in software development. Key topics covered include the software development lifecycle, software quality metrics, software processes and process models, testing strategies, and project scheduling.
This document provides lecture notes on software engineering topics including software processes, process models, requirements engineering, system modeling, architectural design, design and implementation, software validation, software evolution, and coping with change. The waterfall model and incremental development are described as examples of software process models. Requirements engineering, software design and implementation, and validation are discussed as key process activities. Approaches to coping with change such as prototyping and incremental delivery are also summarized.
This document provides an overview of the CSE320 Software Engineering course. It includes details about the course such as it being a 3 credit hour course, the textbook, and the assessment model which includes assignments, tests, and exams worth various percentages of the total grade. It outlines the academic tasks including assignments and tests. It also covers topics that will be discussed like software development lifecycles, Unified Modeling Language, testing techniques, and software quality standards. Program and course outcomes are listed. The document concludes with an outline of course contents that will be covered in each unit and information about online educational resources for each unit.
An initial work on coming out with specialized postgraduate programme focusing on software testing and quality, both for full-time and part-time studies. Presented at Malaysian Software Engineering Conference 2014 (MySEC14) in Langkawi, Malaysia.
1. The document provides an introduction to software engineering, defining it as the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost estimates.
2. It discusses the need for software engineering due to increasing complex applications in the 1960s that resulted in cost overruns, late deliveries, and lack of reliability. Workshops defined "software engineering" to address technical and managerial processes.
3. Software engineering relies on computer science, management science, economics, communication skills, and engineering approaches. It aims to improve quality and productivity through a systematic approach.
This document provides an overview of the Software Engineering course 21AMMAT5030. It introduces software engineering as the application of engineering principles to the design, development, and maintenance of software. The document outlines the course objectives, which include exploring fundamental concepts, developing requirements analysis skills, understanding software design principles, learning testing strategies, and principles of software project management. It also lists several career opportunities in software engineering and references textbooks and additional resources for the course.
This document outlines the course details for SE423 Software Process Improvement, a 3-credit course offered at CMU. The course objectives are to explain, apply, and define methods to document and improve software engineering processes using standards like ISO/IEC 29110, ISO/IEC 15504, and CMMI. Course content will cover software development standards, process assessment, definition, and improvement. Grading is based on attendance, quizzes, assignments, midterm, and final exam. Students must attend at least 80% of classes and take the final exam to pass.
This document provides an introduction to software engineering. It defines software engineering as the application of systematic and quantifiable approaches to software development, in line with other engineering disciplines. The document outlines some of the key challenges in software engineering, such as evolving requirements and schedule pressures. It also describes common software development processes and practices, including requirements engineering, design, coding, testing and project management. Both plan-driven and agile software processes are discussed.
This document provides an introduction to software engineering. It begins with the course outcomes, which are to apply the software engineering lifecycle, gain knowledge of software and UI design, and apply testing guidelines. It then covers topics like the definition of software engineering, its objectives like maintainability and portability, and the software development lifecycle which includes stages like requirements analysis, design, development, testing, and deployment. The importance of software engineering is discussed as helping to reduce complexity, minimize costs, decrease time, and handle large projects. References are provided at the end.
A PROJECT REPORT ON DOCUMENT MANAGEMENT SYSTEM MASTER OF COMPUTER APPLICATION...Karla Long
The document is a project report submitted by Greeshma P to the Cochin University of Science and Technology for their Master of Computer Applications program. It outlines a project to develop a Document Management System (DMS) web application using ASP.NET. The DMS will allow users to check documents in and out, view different versions, and search for documents by filename or metadata. The report describes the existing manual system, proposed new system, modules of the new system including administration, version control, registration, user functions, and searching. It also provides details on hardware, software, and database requirements.
This document contains Pratik Aggarwal's resume. It summarizes his skills and experience in IT project management, software development, and engineering. He has over 5 years of experience managing projects from requirement gathering to deployment. His experience includes developing applications for clients in various industries using technologies like ASP.NET, C#, SQL, and SmartPlant Foundation. He is currently pursuing an MBA and has a bachelor's degree in computer science.
This document provides an overview of software engineering. It discusses key topics like software evolution, paradigms, characteristics, and the software development life cycle (SDLC). The SDLC is described as a structured sequence of stages to develop software, including communication, requirements gathering, feasibility study, system analysis, design, coding, testing, integration, implementation, and operation and maintenance. Software engineering aims to develop high-quality software using well-defined principles and methods, addressing issues like exceeding timelines and budgets seen in traditional software development.
Monty Jackson has over 15 years of experience as a software developer and program manager. He has successfully led large software teams and projects through their full lifecycles. Currently he is a Program Manager at General Atomics Aeronautical, where he oversees development of new capabilities for the MQ-9 Reaper unmanned aerial system, including managing budgets, schedules, and ensuring quality standards are met. Previously he held roles as a Software Development Manager and Software Integration Manager at BAE Systems, where he delivered projects on time and within budget constraints.
The document discusses software engineering and provides an overview of key concepts. It defines software engineering and discusses its need. It describes characteristics of good software and lists factors like operational, transitional, and maintenance characteristics. It also covers software development life cycles and models like the classical waterfall model. The classical waterfall model divides the life cycle into phases like feasibility study, requirements analysis, design, coding/unit testing, and integration/system testing.
The document discusses the goals and challenges of software engineering. It notes that the goals of producing software that is correct, with minimal effort and cost, and in the least time are difficult to fully achieve. Large software involves many people and millions of dollars over many years. Real-life examples like Eclipse have over 1.35 million lines of code and cost over $54 million to develop. The document outlines why software engineering is important to avoid costly failures and ensure efficient development. It also discusses myths and the need for different approaches like formal processes for large software.
This document provides information about the Engineering Minor in Data Science offered by the School of Computer Science and Engineering. It describes what engineering minors are, lists the courses offered in the Data Science minor, and provides brief descriptions and outcomes of each course. The minor consists of six courses spanning four semesters that cover topics like data management, visualization, programming in R, predictive analytics, big data fundamentals, and cluster computing. The document also discusses career opportunities, industrial applications, special requirements, and contacts for additional information about the minor.
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...IJECEIAES
Climate change's impact on the planet forced the United Nations and governments to promote green energies and electric transportation. The deployments of photovoltaic (PV) and electric vehicle (EV) systems gained stronger momentum due to their numerous advantages over fossil fuel types. The advantages go beyond sustainability to reach financial support and stability. The work in this paper introduces the hybrid system between PV and EV to support industrial and commercial plants. This paper covers the theoretical framework of the proposed hybrid system including the required equation to complete the cost analysis when PV and EV are present. In addition, the proposed design diagram which sets the priorities and requirements of the system is presented. The proposed approach allows setup to advance their power stability, especially during power outages. The presented information supports researchers and plant owners to complete the necessary analysis while promoting the deployment of clean energy. The result of a case study that represents a dairy milk farmer supports the theoretical works and highlights its advanced benefits to existing plants. The short return on investment of the proposed approach supports the paper's novelty approach for the sustainable electrical system. In addition, the proposed system allows for an isolated power setup without the need for a transmission line which enhances the safety of the electrical network
Discover the latest insights on Data Driven Maintenance with our comprehensive webinar presentation. Learn about traditional maintenance challenges, the right approach to utilizing data, and the benefits of adopting a Data Driven Maintenance strategy. Explore real-world examples, industry best practices, and innovative solutions like FMECA and the D3M model. This presentation, led by expert Jules Oudmans, is essential for asset owners looking to optimize their maintenance processes and leverage digital technologies for improved efficiency and performance. Download now to stay ahead in the evolving maintenance landscape.
An improved modulation technique suitable for a three level flying capacitor ...IJECEIAES
This research paper introduces an innovative modulation technique for controlling a 3-level flying capacitor multilevel inverter (FCMLI), aiming to streamline the modulation process in contrast to conventional methods. The proposed
simplified modulation technique paves the way for more straightforward and
efficient control of multilevel inverters, enabling their widespread adoption and
integration into modern power electronic systems. Through the amalgamation of
sinusoidal pulse width modulation (SPWM) with a high-frequency square wave
pulse, this controlling technique attains energy equilibrium across the coupling
capacitor. The modulation scheme incorporates a simplified switching pattern
and a decreased count of voltage references, thereby simplifying the control
algorithm.
Rainfall intensity duration frequency curve statistical analysis and modeling...bijceesjournal
Using data from 41 years in Patna’ India’ the study’s goal is to analyze the trends of how often it rains on a weekly, seasonal, and annual basis (1981−2020). First, utilizing the intensity-duration-frequency (IDF) curve and the relationship by statistically analyzing rainfall’ the historical rainfall data set for Patna’ India’ during a 41 year period (1981−2020), was evaluated for its quality. Changes in the hydrologic cycle as a result of increased greenhouse gas emissions are expected to induce variations in the intensity, length, and frequency of precipitation events. One strategy to lessen vulnerability is to quantify probable changes and adapt to them. Techniques such as log-normal, normal, and Gumbel are used (EV-I). Distributions were created with durations of 1, 2, 3, 6, and 24 h and return times of 2, 5, 10, 25, and 100 years. There were also mathematical correlations discovered between rainfall and recurrence interval.
Findings: Based on findings, the Gumbel approach produced the highest intensity values, whereas the other approaches produced values that were close to each other. The data indicates that 461.9 mm of rain fell during the monsoon season’s 301st week. However, it was found that the 29th week had the greatest average rainfall, 92.6 mm. With 952.6 mm on average, the monsoon season saw the highest rainfall. Calculations revealed that the yearly rainfall averaged 1171.1 mm. Using Weibull’s method, the study was subsequently expanded to examine rainfall distribution at different recurrence intervals of 2, 5, 10, and 25 years. Rainfall and recurrence interval mathematical correlations were also developed. Further regression analysis revealed that short wave irrigation, wind direction, wind speed, pressure, relative humidity, and temperature all had a substantial influence on rainfall.
Originality and value: The results of the rainfall IDF curves can provide useful information to policymakers in making appropriate decisions in managing and minimizing floods in the study area.
1. School of Computing
Science and Engineering
Program: B.Tech
Course Code: BCSE2355
Course Name: Software Engineering &
Testing Methodologies
Presented by,
Indervati
Assistant Professor,
SCSE
2. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
Course Outcomes
3. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
CO NUMBER TITLE
CO1 Understand the key concerns that are common to all
software development processes.
CO2 Select appropriate process models, approaches and
techniques to manage a given software development
process.
CO3 Able to elicit requirements for a software product
and translate these into a documented design.
CO4 Recognize the importance of software reliability and
how we can design dependable software, and what
measures are used.
CO5 Understand the principles and techniques underlying
the process of inspecting and testing software and
making it free of errors and tolerable.
CO6 Understand the Software Quality Assurance (SQA)
architecture and identify Software quality
management standards and procedures
4. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
Syllabus
Click Here
5. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
• Software Engineering = Software & Engineering.
• The software is a collection of integrated programs.
• Software subsists of carefully-organized instructions and code
written by developers on any of various particular computer
languages.
• Engineering is the application of Scientific and Practical
knowledge to invent, design, build, maintain, and improve
frameworks, processes, etc.
SOFTWARE & ENGINEERING
6. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
• Software Engineering is an engineering branch related to the
evolution of software product using well-defined scientific
principles, techniques, and procedures. The result of software
engineering is an effective and reliable software product.
SOFTWARE ENGINEERING
7. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
• Software Engineering is an engineering branch related to the
evolution of software product using well-defined scientific
principles, techniques, and procedures. The result of software
engineering is an effective and reliable software product.
• IEEE defines software engineering as: The application of a
systematic, disciplined, quantifiable approach to the
development, operation and maintenance of software
SOFTWARE ENGINEERING
8. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
SOFTWARE ENGINEERING
9. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
IMPORTANCE OF SOFTWARE ENGINEERING
10. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
• Produce reliable and trustworthy systems economically and
quickly
• It is usually cheaper, in the long run, to use software
engineering methods and techniques for professional
software systems
• Failure to use software engineering method leads to higher
costs for testing, quality assurance, and long-term
maintenance.
SOFTWARE ENGINEERING IS IMPORTANT FOR TWO
REASONS:
11. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
• Operational Characteristics
• Transition Characteristics
• Revision Characteristics
SOFTWARE CHARECTERSTICS
12. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
• Software crisis (Software Failure) refers to the difficulty of
writing correct, understandable, and verifiable computer
programs.
• The roots of the software crisis are complexity, expectations,
and change.
The crisis manifested itself in several ways:
Projects running over-budget, Projects running over-time,
Software was very inefficient, etc.
SOFTWARE CRISIS
13. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
1. From Programmers point Of View.
2. From User point Of View
SOFTWARE CRISIS CAN BE CLASSIFIED IN TWO WAYS
14. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
1. Problem of Compatibility
2. Problem of Portability
3. Problem of Documentation
4. Problem of Piracy Of Software
5. Problem In Coordination To Work With Other People
6. Problem That Arise During Actual Run Time in The
Organization
7. Problem of Maintenance In Proper Manner.
FROM PROGRAMMERS POINT OF VIEW
15. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
1. How To Choose Software From Total Market Availability
2. How To Ensure That Which Software Is Compatible With There
Hardware.
3. Problem Of Viruses.
4. Problems Of Software Bugs.
5. Certain Software Runs On Specific Os.
6. Problem Of Different Versions Of Software.
7. Security Problem For Protected Data In Software
FROM USER POINT OF VIEW
16. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
Software Process
• The process that deals with the technical and management
issues of software development is called software process.
• enables rational and timely development of computer
software.
SOFTWARE ENGINEERING PROCESSES
17. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
Software Process
• Identify new problems and solutions in software production.
• Study new systematic methods, principles, approaches for
system analysis, design, implementation, testing and
maintenance.
• Provide new ways to control, manage, and monitor software
process.
• Build new software tools and environment to support
software engineering.
WHY SOFTWARE ENGINEERING PROCESSES ?
18. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
• To increase software productivity and quality.
• To effectively control software schedule and planning.
• To reduce the cost of software development.
• To meet the customers’ needs and requirements.
• To enhance the conduction of software engineering process.
• To improve the current software engineering practice.
• To support the engineers’ activities in a systematic and
efficient manner.
MAJOR GOALS
19. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
Programming vs. Software Engineering
• Programming: The process of translating a problem from its
physical environment into a language that a computer can
understand and obey.
• Software Engineering: “The establishment and use of sound
engineering principles in order to obtain economically
software that is reliable and works efficiently on real
machines.”
SIMILARITIES AND DIFFERENCES FROM CONVENTIONAL
ENGINEERING PROCESSES
20. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
Computer Science
• Theory
• Fundamentals
Software Engineering
• The practicalities of developing
• Delivering useful software
SIMILARITIES AND DIFFERENCES FROM CONVENTIONAL
ENGINEERING PROCESSES
21. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
• Cost
• Schedule
• Quality
SOFTWARE QUALITY ATTRIBUTES
22. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
• Functionality: The Capability to provide functions which meet
stated and implied needs when the software is used.
• Reliability: The capability to maintain a specified level of
performance.
• Usability: The capability to be understood, learned, and used.
• Efficiency: The capability to provide appropriate performance
relative to the amount of resources used.
• Maintainability: The capability to be modified for the purpose
of making corrections, improvements etc.
• Portability: The capability of the software to be work properly
in different environment without applying any action
SOFTWARE QUALITY
23. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
SOFTWARE DEVELOPMENT LIFE CYCLE
• SDLC provides a series of
steps to be followed to
design and develop a
software product efficiently.
SDLC framework includes
the following steps:
24. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
COMMUNICATION & REQUIREMENT GATHERING
• Communication
– User initiates the request for a desired software product.
– He contacts the service provider and tries to negotiate the terms.
– He submits his request to the service providing organization in writing.
• Requirement Gathering
– Studying the existing or obsolete system and software.
– Conducting interviews of users and developers.
– Referring to the database or
– Collecting answers from the questionnaires.
25. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
FEASIBILITY STUDY & SYSTEM ANALYSIS
• Feasibility Study
– At this step the team analyzes if a software can be made to fulfill all
requirements of the user.
– The project is financially, practically and technologically feasible for
the organization to take up.
• System Analysis
– The developers decide a roadmap of their plan and try to bring up the
best software model suitable for the project.
– Understanding of software product limitations, learning system
related problems or changes.
– Analyzes the scope of the project and plans the schedule and
resources.
26. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
FEASIBILITY STUDY & SYSTEM ANALYSIS
• Feasibility Study
– At this step the team analyzes if a software can be made to fulfill all
requirements of the user.
– The project is financially, practically and technologically feasible for
the organization to take up.
• System Analysis
– The developers decide a roadmap of their plan and try to bring up the
best software model suitable for the project.
– Understanding of software product limitations, learning system
related problems or changes.
– Analyzes the scope of the project and plans the schedule and
resources.
27. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
SYSTEM DESIGN & CODING
• Software Design
– logical design and physical design.
– produce meta-data and data dictionaries, logical diagrams, data-flow
diagrams and in some cases pseudo codes.
• Coding
– Known as programming phase.
– Writing program code in the suitable programming language.
– Developing error-free executable programs efficiently.
28. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
TESTING & INTEGRATION
• Testing
– Testing is conducted by testing experts.
– Various levels of code such as module testing, program testing,
product testing, in-house testing and testing the product at user’s end.
– Early discovery of errors and their remedy is the key to reliable
software.
• Integration
– Software may need to be integrated with the libraries, databases and
other programs.
29. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
IMPLEMENTATION & OPERATION AND MAINTENANCE
• Implementation
– Installing the software on user machines.
– Software is tested for portability and adaptability and integration
related issues are solved during implementation.
• Operation and Maintenance
– Confirms the software operation in terms of more efficiency and less
errors.
– Users are trained on, or aided with the documentation on how to
operate the software.
– Software is maintained timely by updating the code according to the
changes taking place in user end environment or technology
– face challenges from hidden bugs and real-world unidentified
problems.
30. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
DISPOSITION
• Disposition
– May decline on the performance front.
– Go completely obsolete or may need intense upgradation.
– This plan will include a statement of why the application is no longer
supported, a description of replacement/upgrade, a list of
tasks/activities (transition plan) with estimated dates of completion
31. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
SDLC MODELS
• Waterfall Model
• Prototype Model
• Spiral Model
• Evolutionary Development Models
• Iterative Enhancement Models.
32. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
WATERFALL MODEL
• Referred to as a linear-sequential life cycle model.
• Each phase must be completed before the next phase can
begin and there is no overlapping in the phases.
33. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
WATERFALL MODEL
34. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
WATERFALL MODEL
Requirement Gathering and analysis
• All possible requirements of the system to be developed are
captured in this phase and documented in a requirement
specification document.
System Design
• Specifying hardware and system
• Defines the overall system architecture.
35. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
WATERFALL MODEL
• Implementation − With inputs from the system design, the
system is first developed in small programs called units, which
are integrated in the next phase. Each unit is developed and
tested for its functionality, which is referred to as Unit Testing.
• Integration and Testing − All the units developed in the
implementation phase are integrated into a system after
testing of each unit. Post integration the entire system is
tested for any faults and failures.
36. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
WATERFALL MODEL
• Deployment of system − Once the functional and non-
functional testing is done; the product is deployed in the
customer environment or released into the market.
• Maintenance − There are some issues which come up in the
client environment. To fix those issues, patches are released.
Also to enhance the product some better versions are
released. Maintenance is done to deliver these changes in the
customer environment.
37. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
WATERFALL MODEL
Advantages of waterfall model
• This model is simple and easy to understand and use.
• It is easy to manage due to the rigidity of the model – each
phase has specific deliverables and a review process.
• In this model phases are processed and completed one at a
time. Phases do not overlap.
• Waterfall model works well for smaller projects where
requirements are very well understood.
38. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
WATERFALL MODEL
Disadvantages of waterfall model
• Once an application is in the testing stage, it is very difficult to
go back and change
• something that was not well-thought out in the concept
stage.
• No working software is produced until late during the life
cycle.
• High amounts of risk and uncertainty.
• Not a good model for complex and object-oriented projects.
• Poor model for long and ongoing projects.
• Not suitable for the projects where requirements are at a
moderate to high risk of changing.
39. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
WATERFALL MODEL
When to use the waterfall model
• This model is used only when the requirements are very well
known, clear and fixed.
• Product definition is stable.
• Technology is understood.
• There are no ambiguous requirements
• Ample resources with required expertise are available freely
• The project is short.
40. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
PROTOTYPE MODEL
• A prototyping model suggest that before carrying out the
development of the actual software, a working prototype of
the system should be built.
• A prototype is a toy implementation of the system.
• Prototype is a working model of software with some limited
functionality.
• Prototyping is used to allow the users evaluate the developer
proposals and try them out before implementation.
• By using this prototype, customer can understand the
requirements of desired system and also the customer can get
an “actual feel” of the system. It is an attractive idea for
complex and bigger systems.
41. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
PROTOTYPE MODEL
42. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
PROTOTYPE MODEL
43. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
PROTOTYPE MODEL
Requirements gathering and Analysis
A prototype model begins with requirements analysis, and the
requirements of the system are define in detail. The user is
interviewed in order to know the requirements of the system.
Quick design
When requirements are known, a quick design for the system is
created. It is not a detailed design , it includes the important
aspects of the system, which gives an idea of the system to the
user.
44. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
PROTOTYPE MODEL
Build prototype:
Information gathering from quick design is modified to form a
prototype .It represents a ‘rough’ design of the required system.
Customer evaluation of prototype:
The build prototype is presented to the customer for his/her
evaluation.
45. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
PROTOTYPE MODEL
Prototype refinement:
Once the user evaluate the prototype, it is refined according to
the requirements . When the user is satisfied to the developed
prototype , a final system is developed based on the final
prototype , which is developed by the iterative method means
we design the system according to the final prototype , after that
implement , test the product to find the error and at last we
maintain the system.
46. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
PROTOTYPE MODEL
Advantages
• User early in the process , enabling early assessment and
increasing the user confidence
• Better implementation of the requirements.
• It helps in reducing the risk associated to the project.
• Improving communication between developer and user
47. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
PROTOTYPE MODEL
Dis-Advantages
• If the user is not satisfied with developed prototype, then a
new prototype is developed .
• The developer loses focus of the real purpose of the
prototype and compromises on the quality of the product.
48.
49. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
ITERATIVE MODEL
50. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
ITERATIVE MODEL
51. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
Low Level Design:
Modularization,
Design Structure Charts,
Pseudo Codes,
TOPICS TO BE COVERED
52. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
• Modularization is a technique to divide a software system into
multiple discrete and independent modules, which are
expected to be capable of carrying out task(s) independently.
• Designers tend to design modules such that they can be
executed and/or compiled separately and independently.
MODULARIZATION
53. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
• Smaller components are easier to maintain
• Program can be divided based on functional aspects
• Desired level of abstraction can be brought in the program
• Components with high cohesion can be re-used again
• Concurrent execution can be made possible
• Desired from security aspect
ADVANTAGE OF MODULARIZATION
54. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
• Structure Chart represent hierarchical structure of modules.
• It breaks down the entire system into lowest functional
modules, describe functions and sub-functions of each
module of a system to a greater detail.
STRUCTURE CHART
55. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
• Module
It represents the process or task of the system. It is of three
types.
– Control Module
A control module branches to more than one sub module.
– Sub Module
Sub Module is a module which is the part (Child) of
another module.
– Library Module
Library Module are reusable and invokable from any
module.
SYMBOLS USED IN CONSTRUCTION OF STRUCTURED CHART
56. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
MODULE
57. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
• It represents that control module can select any of the sub
module on the basis of some condition.
CONDITIONAL CALL
58. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
• It represents the repetitive execution of module by the sub
module.
• A curved arrow represents loop in the module.
LOOP (REPETITIVE CALL OF MODULE)
59. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
• It represents the flow of data between the modules. It is
represented by directed arrow with empty circle at the end.
DATA FLOW
60. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
• Physical Storage is that where all the information are to be
stored.
PHYSICAL STORAGE
61. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
STRUCTURE CHART FOR AN EMAIL SERVER
62. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
• It is a methodology that allows the programmer to represent
the implementation of an algorithm.
• cooked up representation of an algorithm.
• These include while, do, for, if, switch. Examples below will
illustrate this notion
PSEUDO CODE
63. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
If student's grade is greater than or equal to 60
Print "passed"
else
Print "failed"
PSEUDO CODE EXAMPLE 1
64. School of Computing Science and Engineering
Course Code : BCSE2355 Course Name: SE
Program Name: B.Tech
Pseudocode
While the power of 2 is not larger than 1000
keep on getting the values of the power of 2.
C++ statement
int product = 2;
while ( product <= 1000 )
product = 2 * product;
PSEUDO CODE EXAMPLE 2
65. School of Computing Science and Engineering
Course Code : BCSE3003 Course Name: SE & TM
Program Name: B.Tech
1. Software Engineering: A practitioner’s Approach,
Roger S Pressman, Sixth Edition. McGraw-Hill
International Edition, 2005.
2. Software Engineering: Ian Summerville, Seventh
Edition, Pearson Education, 2004.
3. Daniel Galin, “Software Quality Assurance”, Pearson
Publication, 2009.
REFERENCES