Q1: What is Software Engineering?
Software engineering is the process of analyzing user needs and designing, developing, testing, and maintaining software applications using programming languages and engineering principles.
Second Definition:
Software engineering is not only concerned with technical processes of software development but also includes software project management and the development of tools, methods, and theories to support software production.
Q2: Why is Software Engineering Important?
Software engineering is important because software is required in almost every industry, business, and system. It helps in developing reliable and efficient software systems and ensures that errors can be fixed quickly and effectively.
Q3: Why Study Software Engineering?
Software engineering applies computer science knowledge to develop high-quality software systems. As software becomes a part of everyday life, studying software engineering helps create reliable and efficient software products.
Q4: What do Software Engineers Do?
Software engineers analyze user requirements and design, develop, test, and maintain software systems. They use computer science principles and mathematical analysis to build efficient software solutions for users
Q5: Why is Software Important?
Software is important because it controls computer operations and allows hardware to communicate with applications. Operating systems and applications help users perform different tasks efficiently.
Q6: What is Software Crisis?
Software crisis refers to the difficulties faced in developing large and complex software systems within the required time, budget, and quality. It occurred in the 1960s due to the rapid increase in computer power and software complexity.
Major Problems of Software Crisis:
• Software was often incomplete
• Projects were delivered late
• Projects exceeded budget
• Software systems were unreliable
The term software crisis was introduced in the 1968 NATO Software Engineering Conference in Germany.
Q7: What are Software Engineering Principles?
Software engineering principles ensure that software development processes run efficiently and produce high-quality software. These principles involve proper planning, design, development, and maintenance of software systems.
Q8: What is the Law of Diminishing Returns?
The law of diminishing returns states that after a certain level of investment or effort, the benefit gained from additional investment starts decreasing.
Example:
Improving software quality initially gives large benefits, but after reaching a certain quality level, additional investment produces smaller improvements.
Q9: What are the Major Activities in Software Development?
The major activities in the Software Development Life Cycle (SDLC) are:
- Planning: Preparing project plans and identifying goals.
- Analysis: Studying system requirements.
- Design: Creating the architecture of the system.
- Development & Implementation: Writing code and implementing the system.
- Testing: Checking the software for errors.
- Maintenance: Updating and improving the software after deployment.
Q10: What is Software Development as a Multi-Activity Process?
Software development is a multi-activity process that includes analysis, design, implementation, testing, and maintenance. Each activity contributes to building a complete and reliable software system.
Q11: What is a Software Development Process Model?
A software development process model divides software development into different phases to improve planning, design, and management of software projects. Examples include the waterfall model, spiral model, and incremental model.
Q12: What is Software Construction and Management?
Software construction mainly involves coding and debugging. It also includes construction planning, detailed design, unit testing, integration testing, and other development activities.
Q13: What is a Software Framework?
A software framework is a platform that provides reusable code, tools, and libraries to help developers build software applications more easily and efficiently.
Q14: What is Software Development Loop?
The software development loop consists of the following stages:
- Problem Definition: Identifying the problem and system requirements.
- Technical Development: Developing the technical solution.
- Solution Integration: Integrating the new system with existing systems.
- Status Quo: Deploying the system and maintaining it until new requirements appear.
Q15: What are the Software Development Phases?
The software development process has four main phases:
- Vision: Define the goals and purpose of the system.
- Definition: Identify system requirements.
- Development: Design and implement the system.
- Maintenance: Update and improve the system after deployment.
Q16: What is the Importance of Software Maintenance?
Software maintenance ensures that the system continues to work effectively and adapts to changes in business requirements. Around 60% of software cost is related to maintenance.
Lecture 03 – Requirement Engineering
Q17: What is Requirement Engineering?
Requirement Engineering (RE) is the process of identifying, analyzing, and documenting user requirements. It converts vague user needs into clear and precise system specifications.
Q18: What are the Phases of SDLC?
The Software Development Life Cycle consists of four phases:
- Vision Phase: Defines why the system is needed.
- Definition Phase: Determines what system features are required.
- Development Phase: Implements the system through design and coding.
- Maintenace Phase: Maintains and improves the system after deployment.
Q19: What are Software Requirements?
Software requirements describe the features, functions, and constraints of a software system.
According to IEEE:
- A condition or capability needed by a user to solve a problem.
- A condition or capability that must be met by a system to satisfy a contract or standard.