B06L622 Software Design & Development

Introduction

In order to build a programme that will achieve some task, we, as developers, must understand exactly:

  1. what data is needed, and how to get it
  2. how that data will be processed
  3. the expected output, or result

To understand these things requires detailed analysis and planning – this is software design

 

INTRODUCTIONCONTENTOBJECTIVES

To develop a programmed software solution, which meets business and user needs, it is necessary to understand the problem and be very clear in terms of the user requirements. Issues are often caused by poor understanding of user need as well as poor planning. The unit examines the business context within which solutions can be developed and explores the tools that can be used to demonstrate software designs.

A wide range of different development programming languages and paradigms is available to developers with quite different characteristics and features. Learners will build an appreciation of why different high-level languages are available and why they are chosen in particular situations.
This unit focuses on the design and development process, for learners to start incorporating the systems development lifecycle, and would be an appropriate place to start looking at programming concepts before they undertake more focused programming language units.

A major part of learners’ time will be spent on familiarising themselves with fundamental software development processes and concepts. This will give learners a firm foundation to move onto the more focused programming units.

 

Unit specification (pdf)

These Learning Outcomes are what you will be expected to know at the end of your course, and will be part of your assessment

1 Features of programming languages

  1. Programming paradigms: procedural; object oriented; event driven; supporting tools and environments
    eg CASE tools, IDE ()
  2. Types of language: visual languages; other eg script and markup languages; simple overviews and uses ()
  3. Reasons for choice of language: organisational policy; suitability in terms of available features and tools;
    availability of trained staff; reliability; development and maintenance costs; expandability ()
  4. Features: sequence; selection eg case, if … then … else; iteration eg repeat – until, while … do; variables
    eg naming conventions, local and global variables, logical operators; assignment statements; input
    statements; output statements ()
  5. Data types: text; integer; floating point; byte; date; Boolean; other eg char, smallint; benefits of
    appropriate choice of data type eg additional validation, efficiency of storage ()

2 Understand the principles of software design

  1. Software development lifecycle ()
    • stages eg determination of scope, requirements gathering and specification, design, code, test, maintain
  2. Software structures
    1. functions, procedures, classes and objects; abstraction of data; pre-defined code;
    2. readability eg comments, appropriate names for variables, indentation; quality of code eg efficiency ()
    3. reliability, robustness, usability, portability, maintainability ()

3 Be able to use tools to demonstrate software designs

  1. Requirements specification: inputs, outputs, processing, user interface; constraints eg hardware platforms, up to date developments, timescales for development ()
  2. Design: structure eg functions, procedures, objects; data; file ()
  3. Tools: eg structure diagrams, DFDs, ERM; algorithms eg using pseudo code ()
  4. Review: against specifications requirements ()

P1 describe the application and limits of procedural, object oriented and event driven programming paradigms
P2 describe the factors influencing the choice of programming language
P3 explain sequence, selection and iteration as used in computer programming
P4 outline the benefits of having a variety of data types available to the programmer
P5 explain the role of software design principles and software structures in the IT systems development lifecycle
P6 use appropriate tools to design a solution to a defined requirement.

M1 explain the importance of the quality of code
M2 justify the choice of data types and software structures used in a design solution

D1 discuss the factors that can improve the readability of code
D2 develop algorithms to represent a design solution.

You need to be logged in to view the rest of the content. Please . Not a Member? Join Us