-
Notifications
You must be signed in to change notification settings - Fork 0
Understanding the SDLC
Part A of the Module Two Assignment uses a simplified Software Development Life Cycle (SDLC):
Analyze → Design → Construct → Test
The purpose of this sequence is to help you separate four different kinds of programming work: understanding the problem, planning a solution, writing the program, and checking the result.
Follow the Part A README and phase READMEs for the required steps. This page explains the ideas behind those steps.
Part A instructions:
https://github.com/GC-STEM/it140-m2-assignment/blob/main/Part-A/README.md
A software development life cycle is an organized way to move from a problem or need to working software.
Different organizations and projects use different development processes. For this introductory assignment, you use four phases that are easy to see in a small Python program:
- Analyze
- Design
- Construct
- Test
Each phase answers a different question.
| Phase | Main Question |
|---|---|
| Analyze | What must the program do? |
| Design | How is the program planned to do it? |
| Construct | How do I translate the plan into Python? |
| Test | Does the completed program behave as required? |
The repository separates the phases into folders and documents so you can see how software-development artifacts connect.
Part-A/
├── name_age_sdw.md
├── analysis/
├── design/
├── src/
└── tests/
The folders do not mean that software development always moves in only one direction. They provide a clear learning sequence for this assignment.
If testing reveals a problem, you may return to your code. If coding reveals that you misunderstood the design, you may return to the design. If the design seems unclear, you may return to the requirements.
The Analyze phase focuses on what the program must do.
Your primary source is the provided Software Requirements Specification (SRS):
https://github.com/GC-STEM/it140-m2-assignment/blob/main/Part-A/analysis/name_age_srs.md
During Analyze, you identify ideas such as:
- The program's purpose
- Inputs
- Processing
- Outputs
- Functional requirements
- Constraints
- Expected results
- Edge cases
- Acceptance test cases
You record brief working notes in the Software Development Worksheet (SDW).
Analyze-phase instructions:
https://github.com/GC-STEM/it140-m2-assignment/blob/main/Part-A/analysis/README.md
A requirement describes a result or behavior the software must provide.
It usually does not tell you the exact Python statement to write.
That distinction matters because the Analyze phase is about understanding the problem before deciding how to implement it.
The Design phase focuses on how the program is planned to meet the requirements.
The design has already been provided for this assignment. You review:
- The Software Design Document (SDD)
- The flowchart
- The pseudocode
Design-phase instructions:
https://github.com/GC-STEM/it140-m2-assignment/blob/main/Part-A/design/README.md
The design artifacts present related information in different forms:
- The SDD explains the planned solution in technical documentation.
- The flowchart represents the sequence visually.
- The pseudocode represents the sequence as written steps without requiring Python syntax.
You should be able to move among these views and recognize the same basic Input → Processing → Output plan.
A useful distinction is:
SRS = what the program must do
SDD, flowchart, and pseudocode = how the program is planned to do it
If the design and requirements appear to disagree, return to the SRS and the assignment instructions rather than inventing a new requirement.
The Construct phase is where you write the Python program.
For this assignment, you do not begin with an empty file. You complete the provided starter file:
Part-A/src/name_age.py
Construct-phase instructions:
https://github.com/GC-STEM/it140-m2-assignment/blob/main/Part-A/src/README.md
The starter file contains course-provided structure. Some of it uses Python concepts that appear later in IT 140.
You are not expected to rewrite or fully understand all of that structure during Module Two.
Pseudocode describes the algorithm without requiring valid Python syntax.
During Construct, your job is to translate the planned steps into the Python concepts identified by the assignment instructions and zyBooks references.
A useful approach is:
- Read the next planned step.
- Write the corresponding Python statement.
- Run the program.
- Correct any immediate error.
- Continue to the next step.
This is called incremental development. You change a small amount at a time so a new problem is easier to locate.
The Test phase asks:
Does the program behave as required?
Test-phase instructions:
https://github.com/GC-STEM/it140-m2-assignment/blob/main/Part-A/tests/README.md
Testing in this assignment includes several forms:
- Running the program yourself
- Comparing actual behavior with requirements and expected results
- Using the course Instant Feedback Tool when available
- Optionally running the provided local automated acceptance tests
The test file is provided. You do not need to understand or modify its internal testing code.
See Testing and Debugging for more explanation.
The phase sequence gives you an organized path, but correcting software often requires moving backward.
For example:
Test → problem found → return to Construct → correct code → Test again
You may also discover during Construct that you need to reread the pseudocode, or during Design that you need to reread a requirement.
Returning to an earlier artifact is not starting over. It is using the development information to find where your understanding or implementation needs correction.
A useful software-development habit is being able to connect a result back to the information that required it.
For this assignment, you can trace ideas through artifacts:
Requirement → Design → Code → Test
For example, when a test result is wrong:
- Identify which expected behavior failed.
- Find that behavior in the SRS.
- Review the related design step.
- Inspect the code that implements that step.
- Correct the code.
- Test again.
You do not need to use the word traceability to complete the assignment. The important skill is learning to connect what the software should do with how it was planned, written, and checked.
The Software Development Worksheet (SDW) gives you one place to record your understanding while you Analyze and Design.
It is intentionally a working document rather than a polished report.
Use it to:
- Put requirements into your own words
- Record Input → Processing → Output
- Identify constraints and edge cases
- Connect requirements to the provided design
- Trace a test case through the plan
- Record questions before you begin coding
The SDW is not a grading deliverable for this assignment.
See Understanding the Assignment Documents for the role of each file.
- Required Part A steps: https://github.com/GC-STEM/it140-m2-assignment/blob/main/Part-A/README.md
- Analyze instructions: https://github.com/GC-STEM/it140-m2-assignment/blob/main/Part-A/analysis/README.md
- Design instructions: https://github.com/GC-STEM/it140-m2-assignment/blob/main/Part-A/design/README.md
- Construct instructions: https://github.com/GC-STEM/it140-m2-assignment/blob/main/Part-A/src/README.md
- Test instructions: https://github.com/GC-STEM/it140-m2-assignment/blob/main/Part-A/tests/README.md
- Assignment documents: Understanding the Assignment Documents
- Testing help: Testing and Debugging