Software Engineering CSC2101 Quiz

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 (A)</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. (B)</p> Signup and view all the answers

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

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

What does the efficiency of software depend on?

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

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

<p>Analysis (A)</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 (C)</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 (A)</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 (B)</p> Signup and view all the answers

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

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

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

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

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

<p>Spiral Model (B)</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 (A)</p> Signup and view all the answers

What is a primary focus of the Agile Process Model?

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

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

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

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

<p>Market trends (C)</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 (D)</p> Signup and view all the answers

Which assessment contributes the most weight towards the final grade?

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

In which weeks are PSD Tutorials scheduled?

<p>Week 2, 4, 5, 6, 9, 10, 11 (B)</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 (B)</p> Signup and view all the answers

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

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

When is the first pop quiz expected to take place?

<p>Week 1 (B)</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 (D)</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 (B)</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. (B)</p> Signup and view all the answers

What characterizes the evolutionary process models?

<p>They accommodate evolving software products over time. (B)</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. (D)</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. (A)</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. (D)</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. (C)</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. (A)</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. (D)</p> Signup and view all the answers

Flashcards are hidden until you start studying

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

More Like This

Scrum Framework in Software Engineering
3 questions
Scrum and Agile Methodologies Quiz
10 questions
Agile Software Engineering Overview
24 questions
Use Quizgecko on...
Browser
Browser