3.1 Defining and understanding the problem

In order for students to be able to develop software to meet an identified need, they first need to be able to understand the specifications of a problem so that they can eventually translate these specifications into code.

As well as having good technical skills, it is necessary for students to have good communication skills so that the users’ requirements can be fully understood and implemented throughout the development process. The modelling tools used should conform to those specified in the Software and Course Specifications document and should provide documentation that can be interpreted by developers and maintainers. Students should develop and refine skills as an integrated part of developing their software solutions. It is important at this initial stage of the process that all relevant social and ethical issues are considered as an integral part of the design and development of the solution.

Outcomes

A student:

H1.2     differentiates between various methods used to construct software solutions

H3.1     identifies and evaluates legal, social and ethical issues in a number of contexts

H3.2     constructs software solutions that address legal, social and ethical issues

H4.1     identifies needs to which software solutions are appropriate

H4.2     applies appropriate development methods to solve software problems

H4.3     applies a modular approach to implement well structured software solutions and evaluates their effectiveness

H5.1     applies project management techniques to maximise the productivity of the software development

H5.2     creates and justifies the need for the various types of documentation required for a software solution

H5.3     selects and applies appropriate software to facilitate the design and development of software solutions

H6.1     assesses the skills required in the software development cycle

H6.2     communicates the processes involved in a software solution to an inexperienced user

H6.3     uses and describes a collaborative approach during the software development cycle

H6.4    develops and evaluates effective user interfaces, in consultation with appropriate people

Students Learn About:

Defining the problem

       identifying the problem

      needs of the client

-        functionality requirements

-        compatibility issues

-        performance issues

      boundaries of the problem

 

Issues relevant to a proposed solution

       determining if an existing solution can be used

      social and ethical considerations

      consideration of existing software products

      customisation of existing software solutions

      cost effectiveness

      licensing considerations

 

       selecting an appropriate development approach if there is no appropriate existing solution

 

Design specifications

       specifications of the proposed system

       developer’s perspective in consideration of:

      data types

      data structures

      algorithms

       user’s perspective

      interface design

      social and ethical issues

      relevance to the user’s environment and computer configuration

 

System documentation

       representing a system using systems modeling tools, including:

      IPO diagrams

      context diagrams

      data flow diagrams (DFDs)

      storyboards

      structure charts

      system flowcharts

      data dictionaries

       algorithms used to document the logic in modules and subroutines

       test data and expected output

 

Communication issues between client and developer

  • the need  to consult with the client
  • the need to incorporate  the client’s  perspective
  • the need for the developer to enable and  consider feedback  
  • the need to involve and empower the client during the development process

Students Learn To:










evaluate the extent to which a proposed system will meet user needs

evaluate the effectiveness of using existing software





identify the parts of the proposed system that require software to be designed and developed

identify a relevant approach for a given problem







develop and interpret design specifications from a user’s perspective

recognise the difference between the user’s and developer’s perspectives and the communication issues that may arise 




  • differentiate between forms of systems documentation and the purposes for which each is used
  • describe a system by interpreting its diagrammatic representation
  • create a diagrammatic representation for a system using appropriate modeling tools









effectively communicate with users regarding a proposed software solution