Podcast
Questions and Answers
What is one of the main focuses of the course CSC2101?
What is one of the main focuses of the course CSC2101?
Which methodology is applied in the team project within CSC2101?
Which methodology is applied in the team project within CSC2101?
What is a key characteristic of good software related to its ability to be enhanced or reused?
What is a key characteristic of good software related to its ability to be enhanced or reused?
Which characteristic of software ensures that it does not cause harm during system failures?
Which characteristic of software ensures that it does not cause harm during system failures?
Signup and view all the answers
Which of the following best describes the relationship between software and computer programs?
Which of the following best describes the relationship between software and computer programs?
Signup and view all the answers
What is typically the most expensive aspect of software over time?
What is typically the most expensive aspect of software over time?
Signup and view all the answers
What does the efficiency of software depend on?
What does the efficiency of software depend on?
Signup and view all the answers
In what phase of the software development life cycle does requirement specification occur?
In what phase of the software development life cycle does requirement specification occur?
Signup and view all the answers
Reliability in the context of software refers to what aspect?
Reliability in the context of software refers to what aspect?
Signup and view all the answers
What does 'full life-cycle of activities' in software development refer to?
What does 'full life-cycle of activities' in software development refer to?
Signup and view all the answers
Which process model is most suitable for projects with well-defined requirements and good team expertise?
Which process model is most suitable for projects with well-defined requirements and good team expertise?
Signup and view all the answers
What characteristic is NOT a requirement for using the Waterfall Model?
What characteristic is NOT a requirement for using the Waterfall Model?
Signup and view all the answers
In the Incremental Model, what is emphasized in each increment?
In the Incremental Model, what is emphasized in each increment?
Signup and view all the answers
Which of the following is NOT a process model mentioned in the content?
Which of the following is NOT a process model mentioned in the content?
Signup and view all the answers
Why might a project manager choose to combine different process models within a project?
Why might a project manager choose to combine different process models within a project?
Signup and view all the answers
What is a primary focus of the Agile Process Model?
What is a primary focus of the Agile Process Model?
Signup and view all the answers
What is the core product of the Incremental Model intended to address?
What is the core product of the Incremental Model intended to address?
Signup and view all the answers
Which factor is least likely to influence the choice of a software process model?
Which factor is least likely to influence the choice of a software process model?
Signup and view all the answers
What is the primary focus of the first week in the course schedule?
What is the primary focus of the first week in the course schedule?
Signup and view all the answers
Which assessment contributes the most weight towards the final grade?
Which assessment contributes the most weight towards the final grade?
Signup and view all the answers
In which weeks are PSD Tutorials scheduled?
In which weeks are PSD Tutorials scheduled?
Signup and view all the answers
What is the purpose of self-learning on GitHub during the first six weeks?
What is the purpose of self-learning on GitHub during the first six weeks?
Signup and view all the answers
Which topic is scheduled for the ninth week of the PSD course?
Which topic is scheduled for the ninth week of the PSD course?
Signup and view all the answers
When is the first pop quiz expected to take place?
When is the first pop quiz expected to take place?
Signup and view all the answers
Which of the following topics follows the Agile Estimation and Planning session?
Which of the following topics follows the Agile Estimation and Planning session?
Signup and view all the answers
What type of learning method is planned for initial weeks of the course?
What type of learning method is planned for initial weeks of the course?
Signup and view all the answers
In which scenario is the incremental model most suitable?
In which scenario is the incremental model most suitable?
Signup and view all the answers
What characterizes the evolutionary process models?
What characterizes the evolutionary process models?
Signup and view all the answers
Which project type is the prototyping model best suited for?
Which project type is the prototyping model best suited for?
Signup and view all the answers
What type of projects is the spiral model suitable for?
What type of projects is the spiral model suitable for?
Signup and view all the answers
For the proposed large system, which process model can be effectively combined with the incremental model?
For the proposed large system, which process model can be effectively combined with the incremental model?
Signup and view all the answers
What is a key benefit of using iterative and incremental development?
What is a key benefit of using iterative and incremental development?
Signup and view all the answers
In what scenario is it least appropriate to use the prototyping model?
In what scenario is it least appropriate to use the prototyping model?
Signup and view all the answers
Which statement about the incremental model is true?
Which statement about the incremental model is true?
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.
Related Documents
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.