Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... ·...
Transcript of Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... ·...
LESSON 6 – PRINCIPLES OF
SOFTWARE DESIGN
Unit 6 - Software Design and Development
PREVIOUSLY
The key features of programming languages.
The basics for any programming language.
Design models.
LEARNING OUTCOMES
1. Know the features of programming languages
2. Understand the principles of software design
3. Be able to use tools to demonstrate software
designs.
WHAT IS COVERED IN THIS
SESSION
Understanding requirements
Software design
SYSTEMS ANALYSIS
In order to properly understand what it is we need to design and
develop a computer program all information must be used at the
design phase.
This is what systems analysis is.
The study of an activity or procedure to determine the desired
end and the most efficient method of obtaining this end.
Systems analysis is a step by step approach to understanding
requirements and identifying components.
REQUIREMENTS
Being able to interpret what the user wants and be able to
identify what it is you need to develop –
Use of English can really help here.
CONSIDER THE FOLLOWING
A new costume hire company needs a program to
manage the hiring of costumes to clients. They need
to take bookings from new customers with start and
return dates and the costume(s) needed. Stock
must be checked to ensure the booking can be
taken. The cost of the hire must be calculated
based upon the cost per day * by the number of
hire days. The bookings must be saved into a file.
Previous bookings also need to be viewed within a
specified range of dates. The costumes must be
selected from drop down lists.
WHAT DOES THIS MEAN?
This is a simple user specification.
But what should the screen look like?
Is there a logical flow the user must follow?
What about validation?
What are the data requirements?
What actions need to be done?
What code constructs would I need?
All valid questions.
ANALYSIS OF REQUIREMENTS.
Each of the questions on the preceding slide needs to be
thought about and designed.
For each question there is a specific type of diagram that you
would use, and, we shall cover these later in the unit.
As a heads up - for program flow there are diagrams that you
can use and a special language called pseudo code.
Now we shall look at each of the questions and how we use
English to understand what we need to do.
ANALYSE USER REQUIREMENTS
But what should the screen look like?
What are the data requirements? Or information needs?
To help us here we need to identify various components specified in the user requirements.
But first a little English will help us focus on the things we want.
Adjectives - a word naming an attribute of a noun, such as sweet, red.
Nouns - a word used to identify any of a class of people, places, or things.
Verbs - a word used to describe an action, state, or occurrence, and forming the main part of the predicate of a sentence, such as hear, become, happen.
ANALYSE USER REQUIREMENTS
Adjectives - a word naming an attribute of a noun, such
as sweet, red.
In computing, an attribute is a specification that defines a property of an object, element, or file For
clarity, attributes should more correctly be considered
metadata.
Metadata is data about data!
EXAMPLE - What are the nouns, adjectives and verbs you can see (if any)
in this partial requirement ?
A new costume hire company needs a program to manage
the hiring of costumes to clients. They need to take bookings
from new customers with start and return dates and the
costume(s) needed.
TASK Download the requirements from the wiki for the costume hire
given above. This is the LAB05 exercise.
Complete the table with the names of Nouns, Verbs,
Adjectives.
How many did you find?
Extension –
Thinking of the Graphical user interface – answer these questions.
1. What do you think actions relate to on the GUI.
2. What do you think Nouns might relate to on the GUI.
3. Sane for adjectives.
REVIEW LAB05 EXERCISE
A new costume hire company needs a program to manage the hiring of costumes to clients. They need to take bookings from new customers with start and return dates and the costume(s) needed. Stock must be checked to ensure the booking can be taken. The cost of the hire must be calculated based upon the cost per day * by the number of hire days. The bookings must be saved into a file. Previous bookings also need to be viewed within a specified range of dates. The costumes must be selected from drop down lists.
SOFTWARE DESIGN
Computer software
a complex process
requires a great deal of technical expertise.
Successful software deployment follows a sound
design process
SOFTWARE DEVELOPMENT
LIFECYCLE
number of steps required to produce an effective workable solution for a computer program.
applies to all types of program paradigm and platform e.g. form based, web based, app based.
In general a program is never finished, it continues to evolve along with the business.
once written it has to be supported and enhanced to meet current business needs.
a cycle
SDLC – 6 STEPS
1. Determination of scope
2. Requirements &Specification
3. Design
4. Write
5. Test
6. Support
Create a diagram to show
these in a continuous
cycle
PROJECT SCOPE
the part of project planning that involves
determining and documenting:
a list of specific project goals,
deliverables,
tasks,
costs
deadlines.
“what will the system do, and what it will not do?”.
PROJECT SCOPE/REQUIREMENTS
cannot include everything possible in any solution,
constrained by:
time,
money,
technology
resources.
It is common to adopt a need to have philosophy and try to leave out the nice to have.
more cost and time effective.
common to use a phased approach, breaking a large project down into smaller manageable chunks to make sub – projects.
PROJECT SCOPE/REQUIREMENTS
TASK 12
Create a 5 column table
complete the table using the information provided in Lab06 part a
Requirement Need to
have
Nice to
have
Include Exclude
USER REQUIREMENTS
The previous task is a typical business brief but there are
gaps which may have to be filled in order for this project to
proceed.
You may have made assumptions during the task.
Note any assumptions you made.
Assumption can kill a project.
GAP ANALYSIS
need to identify gaps in the requirements as early as possible.
Assumptions or gaps.
There is a database of members?
There is a court management system?
Number of courts etc.
REQUIREMENTS
The user may not clearly understand what is
required or may not be able to give enough
information.
The user requirements are stated in terms which
relate to the business; developers/analysts may
not understand these.
The user may not understand what is and what is
not possible.
Need to discuss the requirements with the user for clarification.
REQUIREMENTS
Key questions about the proposed system.
What are the primary aims of the system?
How does the current system work (business process)?
This may be a manual (paper) system or an older legacy
system.
Are there any other systems we need to interface with?
It is quite likely that the new system is just part of a much
bigger system. Isolated (or silo) systems are not so
common today.
REQUIREMENTS TASK 13
Lab06 part B.