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
| 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
• effectively communicate with users regarding a proposed software solution |
