0% found this document useful (0 votes)
3 views36 pages

Lecture 9 Software Development Process

The lecture covers the software development process, including modeling, requirements gathering, and the software development life cycle (SDLC). It emphasizes the importance of understanding system requirements and the various stages involved in a software project, from planning to maintenance. Different models are used to communicate and visualize aspects of the system, ensuring clarity and efficiency in development.

Uploaded by

ispew31
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views36 pages

Lecture 9 Software Development Process

The lecture covers the software development process, including modeling, requirements gathering, and the software development life cycle (SDLC). It emphasizes the importance of understanding system requirements and the various stages involved in a software project, from planning to maintenance. Different models are used to communicate and visualize aspects of the system, ensuring clarity and efficiency in development.

Uploaded by

ispew31
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

CM1400 Introduction to Python

Programming
Lecture:9
Software Development Process
In this Lecture
1. Modelling
2. Models for Software Development
3. Requirements
4. Software Development Life Cycle

CM1400 Introduction to Python Programming 2


Modelling

CM1400 Introduction to Python Programming 3


Models for Software Development
We build models to:

• Communicate

• Visualise

• Understand

CM1400 Introduction to Python Programming 4


Why Build Models?
A Dog Kennel:
•Can be built by one person And requires
• Minimal modeling
• Simple process
• Simple tools

CM1400 Introduction to Python Programming 5


Why Build Models?
A House:
•Usually built by a team and Requires
• Modeling
• Well-defined process
• Power tools

CM1400 Introduction to Python Programming 6


Why Build Models?
A High Rise building:
Developed by a large group of people

Requires:
• Extensive planning
• Major investment

CM1400 Introduction to Python Programming 7


What has this to do with computer systems?
Dog kennel sized project:
Database for Music Library

House sized project:


Tracking forensic evidence
Grampian Police

High rise building project: Appointments

A computerised NHS Consultant

GP
Pharmacy

CM1400 Introduction to Python Programming 8


Chart Title
6 “Curiously, a lot of software
development organizations
5
start out wanting to build
4
high rises, but approach the
problem as if they were
3 knocking out a dog house”
UML User Guide
2

0
Category 1 Category 2 Category 3 Category 4
Series 1 Series 2 Series 3

CM1400 Introduction to Python Programming 9


A model is a • An abstraction which provides the blueprints of a system.
simplification • We build models so that we can better understand the system we are
of reality developing.
• Different aspects of a system can be described by using different
models.
<<include>>

<<include>> Member Customer


Maintain product list

: Assistant
Receptionist Find product
member details=findMembyMemCode

findDVD
Sell hairdressing product
Loan
<<extend>> Loan(startDate)

Payment
Make appointment
Payment(amount)
Handle customer payments

printReceipt

Maintain staff list


Manager

Use Case Sequence


Class diagram diagram
diagram

CM1400 Introduction to Python Programming 10


We focus on the aspects of a system that we want
to understand

CM1400 Introduction to Python Programming 11


2o Python Programming

We need to
examine different
When constructing a
aspects of a building
system; We need:
• Floor plans
so we use • Elevations
different • Electrical plans
• Heating plans
diagrams •Plumbing plans
etc
Views of an IT system
Databases,
Programmers exe files,
view libraries of code

Concurrency,
Hardware
performance,
components
scalability

[Link]

CM1400 Introduction to Python Programming 13


4o Python Programming

Object–Oriented Systems

That interact with each other


O-O systems give the illusion of simplicity to their
systems

CM1400 Introduction to Python Programming 15


Encapsulation

Objects encapsulate data


Object-oriented systems hide data and program code within an object.
This protects it so it cannot be accidentally corrupted.

CM1400 Introduction to Python Programming 16


Requirements Patrons
may not
A user can search for borrow
‘A feature or behaviour of more than
all jobs in a selected
geographical area
the system that is desired by three
any one affected by the books at a
system, such as users, time
clients, developers or
management.’
All train doors shall
always remain closed
while a train is moving The system must keep a record of all
customers and their past transactions

CM1400 Introduction to Python Programming 17


Requirements
It is important that systems developers
understand the requirements of a new
system as fully as possible.

Problems will occur if they don’t!

CM1400 Introduction to Python Programming 18


Requirements Engineering
The activities that capture and record client requirements
• Requirements engineering is crucial in systems development.
• Getting the requirements right is essential
• If we get the requirements wrong, the system will not do what the users want and
will be pretty much useless.

• We are, after all, developing the new system for them.

CM1400 Introduction to Python Programming 19


Functional Requirements
Describe what the system should do, i.e. the services provided for the users and for
other systems.
For example:
• What inputs the system should accept
• What outputs the system should produce
• What data the system will store
• What computations the system should perform.

• The user can change the margins, paper size and orientation on
the page
• The user can view a preview of the pages before printing
• The user can check for spelling mistakes
• The user can add words to the dictionary

CM1400 Introduction to Python Programming 20


Non-Functional Requirements
Refer to behavioural properties that the system must have
e.g.
Response time

• Throughput
• Response time Reliability
• Resource usage
• Reliability
• Availability Availability

• Recovery from failure


[Link]
qa

• Response times must be less than 3 seconds


• The system will operate in Windows and Macintosh environments
• All system data shall be backed up once per day and stored off-site
• All system users shall be identified using their password

CM1400 Introduction to Python Programming 21


Software
Development
Lifecycle (SDLC)

CM1400 Introduction to Python Programming 22


• Why build the system?
• Maintain the system • How should we go about building it?
• Enhance the system Chart Title • How long will it take?
• Support the users • How much will it cost?
SDLC
6

• Building the system • Who will use the


4 • Testing it system?
• Installing it • What will it do?
3
• Training users • Where will it be used?
• Conversion • When will it be used?

0
Category 1 Category 2 Category 3 Category 4
Series 1 Series 2 Series 3

How will the system work


CM1400 Introduction to Python Programming 23
Stages in a Software Development Project
There are several phases in a software development project’s lifespan:

Planning • Organizing and scheduling

Problem
domain
Requirements • What should it do?
Design • How will the solution be structured?

Implementation • Create the solution

Implementation
Testing • Debug, fix, improve the solution.

domain
Evaluation • Assess if the solution fulfils requirements

Documentation • Let users know how it works.

Maintenance • Fix, improve, enhance, update the software.


CM1400 Introduction to Python Programming 24
Stages in a Software Development Project

• What is the project all about - what is its purpose and what does it aim to accomplish?
• What are the objectives and scope of the project?
• How long will it take?
• How much will it cost? Planning
• What are the major risks involved?
• Is it possible? Should we proceed with the project?
▪ Feasibility study: economic, technical and operational considerations

CM1400 Introduction to Python Programming 25


Stages in a Software Development Project
Analysis
▪ Research the problem domain. Examine any existing solutions. Determine what the
new system will do
What are the User requirements?
Establishing Requirements
▪ Detailed list of what new system must do.
▪ Formulated in discussion with user/client
▪ Expressed using descriptions in natural language or diagrams to explain services(s)
that system will provide and any constraints
What are the System requirements?
▪ Descriptions of systems functions and operational constraints.
▪ Define clearly and unambiguously what needs to be implemented.
CM1400 Introduction to Python Programming 26
Stages in a Software Development Project
• What are the Functional requirements?
▪ i.e. what is the purpose of the software?
▪ What precisely should it do?
▪ How will the system respond to specific inputs or situations
• What are the Non-Functional requirements.
▪ i.e. how does the software work? Stating Requirements
▪ How does it behave?
▪ Constraints (timing, security, legal, cost) relevant to system and its development
• How will users use the system or product?
29
CM1400 Introduction to Python Programming 27
Stages in a Software Development Project
• What components will the system require? Design

How will those components interact? System architecture

• How will the users interact with the system? Interaction design

• What data will system work with? Data Structure

• What story will a Digital Media Product tell? Storyboard

• What objects need to be represented? Class/Component Design

• What will the user interfaces look like? GUI Design

• How will the system be tested/evaluated? Test and Evaluation plans

CM1400 Introduction to Python Programming 28


Stages in a Software Development Project
• Code the Classes
Implementation
• Create the Web-pages
• Create the Databases
• Code the GUI
• Create the Animation or Content
• Code the interactions between components
• Testing of correct functionality should be ongoing

CM1400 Introduction to Python Programming 29


Stages in a Software Development Project
• Making sure the code is error free
• Making sure the code does its intended task
• Making sure the code is robust against foreseeable misuse

Testing
• Checking links on a web page
• Reviewing Digital Media for completeness, aesthetics, quality, content

CM1400 Introduction to Python Programming 30


Stages in a Software Development Project
• Deliver and install the system
Deployment
• Train the users

• if replacing an existing system, there are


different ways to transition to the new
system (i.e. stop using the old system and
start using the new one)

CM1400 Introduction to Python Programming 31


Stages in a Software Development Project
• The objective is to keep the system running productively following initial
installation:
▪ Support users Maintenance

▪ Repair of defects discovered during use of the system


▪ Small upgrades or enhancements to expand system capabilities
▪ Identify aspects that can be improved, such as performance, security or
reliability and update system accordingly

CM1400 Introduction to Python Programming 32


Stages in a Software Development Project
• Software Development will usually require some documentation, which
might include:
▪ Feasibility study
Documentation
▪ Analysis and design documentation
▪ Support documentation
▪ User manual or in-application help system
▪ Marketing documentation (for a product that is to be sold)
▪ Training documentation
▪ Operations manual

CM1400 Introduction to Python Programming 33


There are many
variations on the SDLC
but they are really doing
the same set of things!

CM1400 Introduction to Python Programming 34


Wrap up
1. Model building
2. Requirement Gathering
3. Stages in a Software Development Project

CM1400 Introduction to Python Programming 35


Any Questions ?

Drop a message in Forum


Or
Drop an email at [Link]@[Link]

CM1400 Introduction to Python Programming 36

You might also like