CP317D: Software Engineering Overview
24 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

During the implementation phase of software engineering, what are the common challenges encountered when fixing bugs?

  • Incorrect bug fixes leading to new issues. (correct)
  • Fixes breaking other code that relied on the buggy behavior. (correct)
  • Implementation teams lacking the necessary testing expertise.
  • Fixes altering the intended system behavior. (correct)
  • All of the above.
  • None of the above.
  • What is the primary purpose of software maintenance in the software engineering process?

  • To ensure the software meets initial requirements after deployment.
  • To optimize the software for performance and security.
  • To rectify defects, enhance performance, or improve other software attributes after deployment. (correct)
  • To add new features and functionalities to the existing software.
  • Which of the following is NOT a key aspect of software engineering's deployment phase?

  • Introducing new or updated computer systems.
  • Conducting thorough code reviews to identify potential issues. (correct)
  • Conducting comprehensive user training programs.
  • Providing on-site support to users during the familiarization period.
  • What is the primary function of Unified Modeling Language (UML) in software engineering?

    <p>To facilitate communication and understanding between developers and stakeholders. (B)</p> Signup and view all the answers

    What is the main difference between Software Engineering (SE) and Computer Engineering (CE)?

    <p>CE focuses on designing and developing computer systems whereas SE focuses on the development and operation of only software systems. (C)</p> Signup and view all the answers

    What is the core idea behind software engineering according to Fritz Bauer?

    <p>Harnessing engineering principles to create software that is affordable, reliable, and works well on actual computers. (C)</p> Signup and view all the answers

    Which of the following is NOT a core skill required for a software engineer?

    <p>Expertise in financial management and investment strategies. (A)</p> Signup and view all the answers

    What is the main distinction between "software engineering" and "software development"?

    <p>Software engineering emphasizes a structured, disciplined approach, while software development focuses on coding. (D)</p> Signup and view all the answers

    Which characteristic(s) distinguish software engineering from other types of engineering?

    <p>The product is non-physical, has a short history, and lacks standardized procedures. (C)</p> Signup and view all the answers

    Which category DOES NOT belong to the types of software products?

    <p>Systems Software (B)</p> Signup and view all the answers

    Which of the following is a key characteristic of requirements in software engineering?

    <p>They are subject to change, even after the development process begins. (D)</p> Signup and view all the answers

    What is the main difference between a software system product and a software product?

    <p>A software system product includes hardware and software, while a software product only contains software. (C)</p> Signup and view all the answers

    What is the primary role of "requirements decomposition" in software engineering?

    <p>Breaking down complex requirements into smaller, manageable components. (D)</p> Signup and view all the answers

    Which of the following is NOT a basic task of software engineering?

    <p>Quality Assurance (C)</p> Signup and view all the answers

    Which of the following examples is NOT a typical application of real-time embedded software?

    <p>Desktop operating systems (D)</p> Signup and view all the answers

    What is a requirement in the context of software engineering?

    <p>A specific feature or capability that is required by the user to satisfy a need or goal. (C)</p> Signup and view all the answers

    What is the primary focus of software engineering, according to the IEEE definition?

    <p>Developing, operating, and maintaining software in a systematic and quantifiable way. (D)</p> Signup and view all the answers

    Which of the following is NOT a stage in the software engineering process as outlined in the provided text?

    <p>Code optimization (D)</p> Signup and view all the answers

    What is the main difference between high-level design and low-level design in the software engineering process?

    <p>High-level design deals with the overall architecture and structure of the software, while low-level design focuses on implementation details. (D)</p> Signup and view all the answers

    What is the evaluation scheme for the CP317D Software Engineering course?

    <p>30% for group project, 30% for tests, and 40% for a final exam. (A)</p> Signup and view all the answers

    What is the purpose of the Think-Pair-Share (TPS) activity mentioned in the provided text?

    <p>To encourage group discussions and collaborative problem-solving. (D)</p> Signup and view all the answers

    Which of the following is NOT a key difference between engineering and science, as suggested by the provided text?

    <p>Engineering is primarily concerned with the creation of new technologies, while science focuses on advancing theoretical knowledge. (B)</p> Signup and view all the answers

    In the context of the provided syllabus, what is the focus of week 2?

    <p>Requirement gathering and analysis. (C)</p> Signup and view all the answers

    What are two of the key characteristics of software engineering, as implied by the provided text?

    <p>Systematic approach and quantifiable rigor. (A), Collaboration and communication skills. (D)</p> Signup and view all the answers

    Study Notes

    Course Information

    • Course name: CP317D: Software Engineering

    • Instructor: Lunshan (Shaun) Gao, Ph.D., P.Eng.

    • Email: [email protected]

    • Textbook (reference): Beginning software engineering by Rod Stephens; Publisher: John Wiley & Sons, 2015, Software Engineering: A Practitioner's Approach by R.S. Pressman, 2010

    • Evaluation: Group project (2x15%): 30% (presentation + project report), Test 2x15%: 30% close book, Final exam: 40% close book

    • Rule 1: Academic plagiarism is prohibited. Project reports and materials for presentation must be delivered to MyLearningSpace.

    • Rule 2: Do not ask for increasing marks. Grades are earned, not given.

    Course Schedule

    • Week 1: Introduction to software engineering and project management
    • Week 2: Requirement gathering
    • Week 3: High-level design – architecture design
    • Week 4: Low-level design-1
    • Week 5: Low-level design-2 - Test 1
    • Week 6: Development
    • Week 7: Testing and metrics
    • Week 8: Deployment and waterfall model - Test 2
    • Week 9: Iterative models-1
    • Week 10: Iterative models-2 and RAD
    • Week 11-12: Project presentation

    Introduction to Software Engineering

    • Software Engineering Definition 1: The study using scientific principles to design and build software products for computer systems.
    • Software Engineering Definition 2: The branch of engineering associated with designing and building software products using scientific principles, methods, and procedures.
    • Software engineering yields efficient and reliable software products.
    • Software engineering is an engineering branch concerned with real world problems.

    Introduction - cont.

    • Types of Software Products: Application software, Middle ware, Embedded software, Real-time embedded software.

    Relationship to Other Engineering

    • Software engineering draws upon other engineering disciplines such as electrical, mechanical, and civil engineering.

    The Process of Software Engineering - cont.

    • Requirement gathering: Identifying and documenting the needs of a software system.
    • High-level Design: Defines the overall architecture of the software system.
    • Low level Design: Defines the internal details of the modules.
    • Implementation: Coding and debugging the software
    • Testing: Verify requirements and standards match the code and functionality, bug fixing
    • Deployment: Installing and configuring the software in a production environment.
    • Maintenance: Modifying the software to fix bugs, add new features, or adapt to changes in the environment after the delivery.
    • Requirements: A requirement is a singular documented physical or functional need that aims to satisfy a design, product, or process. Includes Understanding, Feasibility research, Negotiation, System design, Requirements decomposition, Specification, and Tool selection.

    Software Design Document - cont.

    • Data flow
    • Object-oriented design - UML

    The deployment process

    • Deployment = resources brought into effective action.
      • New or new version computer systems
      • User training
      • On-site support while the users get familiar with the software system
      • Bug fix

    Maintenance involves

    • Modification after delivery
    • Correcting faults
    • Improving performance or other attributes,
      • Customer support
      • Bug fixes

    Software Engineer vs. Developer and Programmer

    • Software Engineers are licensed professionals.
    • Software Engineers have a specific degree and broad knowledge of design systems
    • Developers/Analysts are super type programmers who gather requirements, design systems, and implement applications
    • Programmers write code and follow specifications.

    Skills for Software Engineers

    • Computer systems (hardware & software)
    • Computer languages
    • Object-Oriented Design
    • Software testing and debugging
    • Problem solving and logical thinking
    • Communication skills (written and verbal)
    • Team player - Management

    Announcements

    • 3-4 Students to form a group or the group project.
    • 2 Students will focus on project presentation.
    • 2 Students will focus on project report.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Description

    Explore the fundamental concepts of software engineering in this quiz based on the CP317D course. Cover topics such as project management, requirement gathering, software design, development, and testing. This quiz helps reinforce key principles from the textbooks by Rod Stephens and R.S. Pressman.

    More Like This

    Use Quizgecko on...
    Browser
    Browser