Lesson video

In progress...

Loading...

Hello, my name's Mrs. Jones, and I'm really pleased you decided to join this lesson today.

In this lesson, we will look at the software development cycle and the different stages as well as the importance of planning before trying to code.

So let's get started.

Welcome to today's lesson.

Today's lesson is called Approaching a Programming Project from the unit Python Programming Project, and by the end of this lesson, you'll be able to outline the key stages of a programming project and identify the importance of planning.

There is one key word to today's lesson, SDLC.

SDLC is software development life cycle, a structured process that is used by developers to design, develop, and test software.

There are two sections to today's lesson.

The first is describe the stages of the SDLC, and the second is identify the importance of planning before coding.

So, let's start with describe the stages of the SDLC.

The software development life cycle, SDLC, is a structured process that is used by developers to design, develop, and test software.

The SDLC defines main stages of software development.

There are many different approaches to software development.

Most development teams use an iterative approach where stages are combined and revisited throughout the project.

The term life cycle is used to illustrate that, eventually, changes in technology or business requirements will render a system obsolete and the cycle will begin again.

These are the stages here.

Analysis, design, build, testing, evaluation, and as it is iterative, it cycles back around and starts again.

Analysis, design, build, testing, evaluation.

The first stage of the SDLC is the analysis stage.

This stage of a project focuses on understanding and defining the user requirements.

It is usually carried out by a systems analyst.

The systems analyst works very closely with the client to make sure that their requirements are fully understood.

Let's have a quick check.

What is the first stage of the SDLC? Is it A, design, B, analysis, C, testing? Pause the video to consider your answer and then we'll check it.

Let's check your answer.

The answer was B, analysis.

Well done if you've got that correct.

The outputs of the analysis stage include problem definition, a clear definition of the problem, system requirements and objectives, a clear description of what the system needs to do.

These should be SMART targets.

SMART is a way to set goals that are clear and achievable.

It stands for specific, measurable, achievable, relevant and time-bound.

The second stage of the SDLC is the design stage.

This stage of a project is where you map out how the system will look and work.

It is usually carried out by system architects, who may utilise the skills of user interface designers, database designers and security experts.

Outputs of this stage may include designs for the following, a user interface, system outputs, like reports, graphs, emails, et cetera, algorithms, data structures, and security features.

The next stage of the SDLC is the build stage.

Most development projects are tackled by teams made up of programmers with a wide range of experience and skills.

Modular design allows different parts of the project to be worked on concurrently.

Developers may use shared repositories to collaborate and develop code.

These tools offer version control, where changes can be tracked and revoked if necessary.

A project manager or management team may oversee the development of a software project.

In addition to the system software itself, outputs of this stage include the system documentation.

Technical documentation explains how the system works and will be needed for those who have to maintain the system in the future.

User documentation may be required for parts of the system that are complex, or if the client has a number of inexperienced users.

The next stage of the SDLC is the testing stage.

Testing is usually carried out throughout the development process.

An overall strategy or approach to testing should be agreed.

The overall approach will specify which of the many different types of testing will be used, and at what stage of the project.

The final stage of the SDLC is the evaluation stage.

Evaluation can be carried out throughout a development project to inform later stages.

However, there is usually a formal evaluation when the project is complete.

The system may be evaluated in terms of functionality.

Does it do what it's supposed to do? Effectiveness.

How well does it perform? Usability.

Is it intuitive to use and appropriate for its intended users? Reliability.

How robust does the system? Maintainability.

How easy is it to fix problems? Extendability.

How easy would it be to add new functionality? Let's have a quick check.

A student has written some objectives for her software project.

Which of the objectives below would be considered SMART? A, be easy to use, B, calculate the amount due, C, save the customer data in a database, D, format the invoice so that it is suitable for A4 printing.

Pause the video to consider your answer, and then we'll check it.

Let's check your answer.

The answer was D, format the invoice so that it is suitable for A4 printing.

This is SMART.

It is specific, measurable, and it also seems achievable.

Well done if you've got that correct.

Let's do the activity.

Write a short description of each stage of the SDLC.

Pause the video, go back through the slides, use your worksheet, and then we'll go through the answers.

Let's check your answers.

The first stage is the analysis stage.

This is where you discover what the software needs to do.

You talk to users or stakeholders about the requirements, and consider project scope and feasibility.

The main goal is to create a problem definition and set some clear objectives.

After you know the requirements, you can map out how the software will work in the design stage.

This stage may involve designing user interfaces, database design, or algorithm design.

The next stage is to build the software using the design as a guide.

Developers may work in teams to write code and may have a project manager who oversees the progress of the project.

As well as the software, technical or user documentation may be developed at this stage.

After the software has been built, it needs to be tested.

Testing is usually carried out throughout the development of software, but there may also be final testing to ensure that everything works as expected before release.

The final stage of the SDLC is evaluation.

There is usually a formal evaluation when a project is complete.

At this point, the software is in terms of functionality, reliability, usability, and effectiveness.

This evaluation may inform any further development of the software, which is why the SDLC is a cyclical process.

Well done if you've got that correct.

Let's move to the second part of today's lesson, identify the importance of planning before coding.

Jun says, "I don't enjoy planning.

I prefer to just start coding." Sofia says, "I think the planning stage may be important though, June." Planning is important in any project.

Planning sets a clear vision, scope, and objectives for the software project.

This ensures developers and stakeholders share the same understanding.

Planning minimises project risks like missed deadlines and budget overruns.

The main benefits of planning include clear vision and scope.

Defining goals, deliverables, and project scope clearly ensures that everyone knows what must be built.

Risk awareness and mitigation.

Identifying risks early and putting mitigation plans in place can prevent failure.

Efficient resource use.

Efficient allocation of time, budget, and personnel can ensure the project is a success and time is not wasted.

Effective team collaboration.

Defining roles, responsibilities, and how team members will work together ensures effective communication and improved productivity.

Scalability and maintainability.

Planning for future developments and maintenance will ensure software is easier to adapt and improve later.

Let's have a quick check.

Match the planning benefit to why it matters.

You have the planning benefits on the left, and why they matter on the right, and you need to match which one goes with which.

Pause the video to consider your answers, and then we'll go through them.

Let's check your answers.

Clear vision and scope.

Everyone understands what must be built.

Risk awareness and mitigation.

Challenges are planned for and tackled proactively, not reactively.

Efficient resource use.

Avoid wasted coding time and misallocated effort.

Effective team collaboration.

Defined roles, fewer misunderstandings, better communication.

Scalability and maintainability.

Software is easier to adapt and develop later.

Well done if you've got those correct.

Sofia says, "Planning sounds like it may make things easier.

Maybe I'll have fewer bugs in my code." If you plan out your algorithm first in human language, you can ensure each part is correct before writing any actual code.

This reduces the likelihood of logic errors which could stop your code working as expected.

Let's have a quick check.

Fill in the gaps to complete the sentences.

If you plan out your blank first in human language, you can ensure each part is correct before writing any actual blank.

This reduces the likelihood of logic blank which could stop your code working as expected.

Pause the video and look at those three options, errors, code, and algorithm, to decide where they fit in those sentences, and then we'll go through the answer.

Let's check your answer.

If you plan out your algorithm first in human language, you can ensure each part is correct before writing any actual code.

This reduces the likelihood of logic errors which could stop your code working as expected.

Well done if you've got that correct.

Let's do the activity.

Name two benefits of planning before coding.

Pause the video, go back through the slides, use your worksheet, and then we'll go through some answers.

Let's have a look at some answers.

Having clear vision and scope ensures everyone understands what must be built.

This shared understanding minimises miscommunication and ensures the final solution meets the requirements.

Risk awareness and mitigation allows teams to tackle challenges proactively, not reactively, by identifying potential risks early.

Planning enables creation of mitigation strategies and reduces the chances of failure.

Well done if you've got those correct.

In summary, the software development life cycle, SDLC, defines the main stages of software development.

Planning is a vital stage because it helps developers organise their ideas, avoid mistakes, and work more efficiently.

Real-world programming projects are rarely perfect the first time, so planning for changes and improvements is essential.

Well done for completing this lesson, Approaching a Programming Project.