Podcast
Questions and Answers
Who is Dr. Rajib Mall?
Who is Dr. Rajib Mall?
Professor in the Department of Computer Science & Engineering at IIT Kharagpur.
What does software engineering apply to?
What does software engineering apply to?
Development, operation, and maintenance of software.
Which of these is a factor contributing to the software crisis?
Which of these is a factor contributing to the software crisis?
Software is difficult to change but relatively easy to develop.
Software is difficult to change but relatively easy to develop.
Signup and view all the answers
What does the Standish Group Report indicate about project success?
What does the Standish Group Report indicate about project success?
Signup and view all the answers
The IEEE definition describes software engineering as the application of a systematic, disciplined, __________ approach.
The IEEE definition describes software engineering as the application of a systematic, disciplined, __________ approach.
Signup and view all the answers
What is the exploratory style of programming?
What is the exploratory style of programming?
Signup and view all the answers
What is a key virtue of software as opposed to hardware?
What is a key virtue of software as opposed to hardware?
Signup and view all the answers
Study Notes
About the Author
- Dr. Rajib Mall is a Professor of Computer Science and Engineering at the Indian Institute of Technology (IIT) Kharagpur
- He earned his B.E., M.E., and Ph.D. from the Indian Institute of Science, Bangalore
- He worked with Motorola (India) before joining IIT Kharagpur in 1994
What is Software Engineering?
- Software engineering is an engineering approach to developing software
- It involves systematically gathering, using, and applying past experience in the form of:
- Techniques
- Methodologies
- Guidelines
- The IEEE defines it as the application of a systematic, disciplined, and quantifiable approach for developing, operating, and maintaining software
Software Crisis
- Software projects often fail to meet user requirements and can be expensive to fix, enhance, and debug
- They are delivered late and may use resources ineffectively
- The cost of software has risen significantly compared to hardware costs
- In 1960, hardware cost was much higher than software. In 2018, the situation reversed, with the cost of software far exceeding the cost of hardware
The Virtue of Software
- Software is relatively easy and fast to develop and change
- It does not consume physical space, weight, or power
- The complexity of software makes it harder to change over time
- As changes are made, the program's complexity increases
Standish Group Report
- The Standish Group found that only 28% of software projects were successful
- 49% were delayed or cost overrun, and 23% were cancelled entirely
Factors Contributing to the Software Crisis
- Larger problems in software projects
- Poor project management
- Lack of adequate training in software engineering
- Increasing skill shortages
- Low productivity improvements
Programming: Art or Engineering?
- Programming is an art because it involves heavy use of past experience
- Software development is an engineering field as it relies on systematically arranged past experience, theoretical basis, quantitative techniques, and tradeoffs between alternatives
- The shift from craft to engineering involves using past experience systematically and applying scientific principles
- The approach is pragmatic, focusing on cost-effectiveness
What is Software Development?
- Early programmers often used exploratory (build and fix) style
- This involves quickly developing a "dirty" program, then fixing bugs as they arise
- Although suitable for small programs (toy programs), this is not effective for larger projects
Exploratory Style
- Exploratory style is a quick fix approach that is not sustainable for developing large programs
- The program size plays a major role in the approach used
- Exploratory style is suitable for smaller programs
- Software engineering principles are required for developing and managing complex and larger software projects
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Explore the fundamentals of Software Engineering, including its definition, methodologies, and the issues surrounding the software crisis. This quiz will test your understanding of software development practices and the historical context of software projects.