Software Engineering CSC2101 Quiz
34 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

What is one of the main focuses of the course CSC2101?

  • Software engineering theory and SDLC (correct)
  • Database management systems
  • Web development frameworks
  • Network security protocols
  • Which methodology is applied in the team project within CSC2101?

  • Waterfall model
  • Agile/Scrum framework (correct)
  • Spiral model
  • V-Model
  • What is a key characteristic of good software related to its ability to be enhanced or reused?

  • Dependability
  • Maintainability (correct)
  • Usability
  • Efficiency
  • Which characteristic of software ensures that it does not cause harm during system failures?

    <p>Dependability and security</p> Signup and view all the answers

    Which of the following best describes the relationship between software and computer programs?

    <p>Software is the combination of programs and all associated documentation.</p> Signup and view all the answers

    What is typically the most expensive aspect of software over time?

    <p>Maintenance costs</p> Signup and view all the answers

    What does the efficiency of software depend on?

    <p>Processing time and resource utilization</p> Signup and view all the answers

    In what phase of the software development life cycle does requirement specification occur?

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

    Reliability in the context of software refers to what aspect?

    <p>How often the software fails to perform as expected</p> Signup and view all the answers

    What does 'full life-cycle of activities' in software development refer to?

    <p>Development, maintenance, and retirement stages</p> Signup and view all the answers

    Which process model is most suitable for projects with well-defined requirements and good team expertise?

    <p>Waterfall Model</p> Signup and view all the answers

    What characteristic is NOT a requirement for using the Waterfall Model?

    <p>Urgent need for project parts</p> Signup and view all the answers

    In the Incremental Model, what is emphasized in each increment?

    <p>Prioritized user requirements</p> Signup and view all the answers

    Which of the following is NOT a process model mentioned in the content?

    <p>Spiral Model</p> Signup and view all the answers

    Why might a project manager choose to combine different process models within a project?

    <p>To meet changing project requirements</p> Signup and view all the answers

    What is a primary focus of the Agile Process Model?

    <p>Flexibility and customer feedback</p> Signup and view all the answers

    What is the core product of the Incremental Model intended to address?

    <p>Basic requirements</p> Signup and view all the answers

    Which factor is least likely to influence the choice of a software process model?

    <p>Market trends</p> Signup and view all the answers

    What is the primary focus of the first week in the course schedule?

    <p>Introduction of Software Engineering and Process</p> Signup and view all the answers

    Which assessment contributes the most weight towards the final grade?

    <p>PSD Quiz 2</p> Signup and view all the answers

    In which weeks are PSD Tutorials scheduled?

    <p>Week 2, 4, 5, 6, 9, 10, 11</p> Signup and view all the answers

    What is the purpose of self-learning on GitHub during the first six weeks?

    <p>To complete a series of instructional videos</p> Signup and view all the answers

    Which topic is scheduled for the ninth week of the PSD course?

    <p>Software Architecture</p> Signup and view all the answers

    When is the first pop quiz expected to take place?

    <p>Week 1</p> Signup and view all the answers

    Which of the following topics follows the Agile Estimation and Planning session?

    <p>Software Process Improvement and Retrospectives</p> Signup and view all the answers

    What type of learning method is planned for initial weeks of the course?

    <p>Self-directed learning through online videos</p> Signup and view all the answers

    In which scenario is the incremental model most suitable?

    <p>There is a compelling need to provide software functionality quickly.</p> Signup and view all the answers

    What characterizes the evolutionary process models?

    <p>They accommodate evolving software products over time.</p> Signup and view all the answers

    Which project type is the prototyping model best suited for?

    <p>Small or low-cost systems with unclear or incomplete requirements.</p> Signup and view all the answers

    What type of projects is the spiral model suitable for?

    <p>High-risk, complex systems with frequent releases.</p> Signup and view all the answers

    For the proposed large system, which process model can be effectively combined with the incremental model?

    <p>Waterfall model for each increment.</p> Signup and view all the answers

    What is a key benefit of using iterative and incremental development?

    <p>It allows for gradual delivery and refinement based on user feedback.</p> Signup and view all the answers

    In what scenario is it least appropriate to use the prototyping model?

    <p>When customer involvement is minimal.</p> Signup and view all the answers

    Which statement about the incremental model is true?

    <p>Each increment adds additional features based on user feedback.</p> Signup and view all the answers

    Study Notes

    Course Objectives

    • The CSC2101 module aims to provide students with theoretical knowledge of software engineering and the software development life cycle (SDLC), with a focus on agile/scrum processes, UML modelling, software architecture, refactoring, version control, continuous integration, and continuous development.

    • The course also emphasizes practicing SDLC knowledge in a team project, conducting software development for industry customers within the team project utilizing the Agile Scrum framework.

    PSD & TP 1 and PSD & TP 2 Structure

    • CSC2101 – PSD & TP1 is taught over trimester 1, module lead is Dr. Cao Qi.
    • CSC2102 – PSD & TP2 is taught over trimester 2, module lead is Dr Peter Yau.
    • Each module carries six credits.
    • Theory and practical aspects of the modules are closely intertwined, students will work on software development projects as a team.

    Course Schedule

    • Lectures are held every Friday, 9:00 – 11:00 am, via Zoom.
    • Tutorials are conducted in person (F2F) on Fridays, 2:00 – 3:00 pm in weeks 2, 4, 5, 6, 9, 10, 11, and are optional.
    • Weeks 1 – 6 will involve self-learning on GitHub which will consist of seven videos.
    • Team project activities will be held with customer companies (F2F) on various days and times specified in the TP materials.

    Assessment Breakdown

    • PSD Quiz 1 accounts for 25% of the final grade and will be held in week 6.
    • PSD Quiz 2 accounts for 30% of the final grade and will be held in week 13.
    • Weekly pop quizzes and class participation contribute 5% of the final grade and will be assessed throughout weeks 1-12.
    • Team project activities account for 40% of the final grade and will be broken down and scheduled according to the TP materials.

    Good Software Attributes

    • Maintainability: The ability to expand, reuse, and adapt software without becoming obsolete.
    • Dependability and Security: Software functions reliably without causing damage in case of failure, preventing malicious users from compromising system integrity or data.
    • Efficiency: Optimal use of resources such as processing time, memory, responsiveness, and power consumption.
    • Reliability: Indicates the frequency of software functioning as expected.

    Software Development Life Cycle

    • Software is more than just computer programs, it includes associated documentation, libraries, support websites, and configuration data.
    • Software development involves distinct phases:
      • Software Specification: Defining the purpose, functionality, and constraints of the software.
      • Software Development: Actual coding and implementation of the software based on specifications.
      • Software Validation: Thorough testing and verification to ensure software meets requirements, quality standards, and security protocols.
      • Software Evolution: Continuous adaptation, enhancements, and bug fixing throughout the product lifecycle.

    Software Cost

    • Software frequently constitutes the majority of costs in computer systems projects.
    • Software costs for personal computers (PCs) often exceed hardware costs.
    • Software maintenance typically becomes more expensive than development over time.
    • For systems with an extended lifespan, maintenance costs can significantly surpass initial development costs.

    Software Development Life Cycle (SDLC) Cost Estimation

    • The different stages of the SDLC contribute varying percentages to the overall cost.
    • Requirement Specification Phase: 3%
    • Analysis & Design Phase: 8%
    • Implementation Phase: 7%
    • Testing Phase: 15%
    • Maintenance Phase: 67%

    Software Process Models

    • Software development strategies aim to streamline and optimize the software creation process.
    • The chosen strategy depends on project constraints, available resources, and team expertise.
    • Several models can be combined within a single software project to address various needs.

    Waterfall Model

    • This model follows a linear, sequential approach to software development.
    • Each phase must be completed before moving to the next, with minimal feedback loops.
    • Suitable projects:
      • Well-defined and stable requirements.
      • Adequate resources and team expertise.
      • Projects of moderate size and complexity.
      • No urgent need for specific project components.

    Incremental Model

    • This model breaks down the software into increments, delivered to users in a staged manner.
    • Each increment builds upon the previous one, adding features and functionality.
    • Suitable projects:
      • Requirements reasonably well-defined but subject to change.
      • Rapid delivery of basic software functionality.
      • Projects involving new technologies or with team members lacking extensive experience.

    Evolutionary Process Models

    • These models are designed for situations where software requirements evolve over time.
    • They emphasize flexibility and iterative development, adapting to user needs through continual improvements.
    • Common examples:
      • Prototyping Model
      • Spiral Model

    Prototyping Model

    • This model focuses on creating a working prototype quickly to gather user feedback and refine requirements.
    • Suitable projects:
      • Small or low-cost systems.
      • Unclear or incomplete requirements.
      • Projects with active customer involvement.
      • Teams lacking significant expertise.

    Spiral Model

    • This model combines elements of iterative and incremental development with risk analysis, allowing for early identification and mitigation of potential problems.
    • Suitable projects:
      • High-risk projects with frequent releases.
      • Large or complex systems with ambiguous requirements.

    Model Selection Example

    • A large system with reasonably well-defined requirements, except for a small, low-cost component.
    • The team possesses sufficient expertise for most aspects, but lacks experience for the small component.
    • Active customer involvement is required for the small component, and adequate resources are available.
    • The system is not considered highly complex.
    • Possible Proposal:
      • Develop the system using an incremental model, adding features incrementally.
      • The small component lacking team expertise will be treated as a separate increment.
      • The waterfall model will be utilized within each increment.
      • The small, specialized component will be developed using a prototyping model.

    Studying That Suits You

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

    Quiz Team

    Description

    This quiz tests your understanding of software engineering principles and the software development life cycle (SDLC), focusing on agile/scrum methodologies, UML modeling, and version control. Prepare to apply theoretical knowledge in practical scenarios as it pertains to the team project component of the course.

    More Like This

    Use Quizgecko on...
    Browser
    Browser