25
LESSON 6 – PRINCIPLES OF SOFTWARE DESIGN Unit 6 - Software Design and Development

Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

LESSON 6 – PRINCIPLES OF

SOFTWARE DESIGN

Unit 6 - Software Design and Development

Page 2: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

PREVIOUSLY

The key features of programming languages.

The basics for any programming language.

Design models.

Page 3: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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.

Page 4: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

WHAT IS COVERED IN THIS

SESSION

Understanding requirements

Software design

Page 5: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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.

Page 6: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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.

Page 7: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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.

Page 8: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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.

Page 9: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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.

Page 10: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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.

Page 11: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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!

Page 12: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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.

Page 13: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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.

Page 14: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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.

Page 15: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

SOFTWARE DESIGN

Computer software

a complex process

requires a great deal of technical expertise.

Successful software deployment follows a sound

design process

Page 16: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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

Page 17: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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

Page 18: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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?”.

Page 19: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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.

Page 20: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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

Page 21: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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.

Page 22: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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.

Page 23: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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.

Page 24: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

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.

Page 25: Unit 6 - Software Design and Developmentwiki.computing.hct.ac.uk/_media/computing/btec/... · selected from drop down lists. ... applies to all types of program paradigm and ... enhanced

REQUIREMENTS TASK 13

Lab06 part B.