Introduction to Software Engineering
8 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Who is Dr. Rajib Mall?

Professor in the Department of Computer Science & Engineering at IIT Kharagpur.

What does software engineering apply to?

Development, operation, and maintenance of software.

Which of these is a factor contributing to the software crisis?

  • Larger problems (correct)
  • Low productivity improvements (correct)
  • Poor project management (correct)
  • High hardware costs
  • Software is difficult to change but relatively easy to develop.

    <p>True</p> Signup and view all the answers

    What does the Standish Group Report indicate about project success?

    <p>28% successful, 49% delayed or with cost overrun, and 23% cancelled.</p> Signup and view all the answers

    The IEEE definition describes software engineering as the application of a systematic, disciplined, __________ approach.

    <p>quantifiable</p> Signup and view all the answers

    What is the exploratory style of programming?

    <p>A style where a 'dirty' program is quickly developed and bugs are fixed as they are noticed.</p> Signup and view all the answers

    What is a key virtue of software as opposed to hardware?

    <p>Consumes no space</p> 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.

    Quiz Team

    Related Documents

    week 1.pdf

    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.

    More Like This

    Use Quizgecko on...
    Browser
    Browser