 |
 |
|
 |
|
The design phase can be described as “working out how we are going to do it”. |
|
|
|
The analysis phase resulted in the data model and the specification of new requirements. This clearly describes what is required for the new product. |
|
|
|
Working out how to build the product poses a huge number of decisions such as: |
|
|
|
|
- Which technology should be used?
- What architecture should be selected?
- What database architecture should be used?
- How should the user interface be designed?
- What are the performance requirements and how can they be achieved?
- Which software design methodology best suits the requirement/ timescale/ budgetary parameters of the project (waterfall method/ agile development)
- Aesthetics
|
|
|
The preliminary stage of design is often a prototype of the user interface. This is quickly constructed to provide a tangible wire frame sample of the developer’s interpretation of requirements. |
|
|
|
Many small, fast mock ups will be made to the prototype, allowing the client to correct design discrepancies. This approach has the added benefit that the user can check the system inputs and outputs at the earliest stage. |
|
|
|
When the user is satisfied with the interface prototype, the job of designing the architecture of the application is undertaken. |
|
|
|
Software designers will adopt the most appropriate architecture, based on the number of users, the nature of the application, the geographical location of users, cost, performance and security. |
|
|
|
When the architecture has been specified, designers will determine an approach to implementing business logic. This is normally achieved through database programming or the creation of business objects. Both approaches have merits and drawbacks and careful consideration must be given to the correct approach. |
|
|
|
The security element must also be carefully considered at this stage. Systems are vulnerable to malicious attack, and inadvertent damage. Access control systems must be implemented to ensure that only the correct people have access to appropriate information and services. |
|
|
|
The design of successful and secure data backups must ensure that system uptime and performance are not compromised. Technical environment specifications must also be formalised to ensure that the user has the correct machines, server strategies (in house or outsourced via ISP’s), networks, connectivity, bandwidth and peripherals. |
|
|
|
Many other aspects of design must be considered before a team of programmers can start work. |
|
|
|
Software design is much more than just quantifying a few wish lists onto a piece of paper that is loosely labelled as a software specification and then getting a programmer to write a piece of code that loosely meets that requirement. |
|
|
|
It involves a level of prior business process re-engineering and understanding in order to define the optimum specification design for an application. |
|
|
|
It is ultimately at the design phase when the success of a project is defined and it is during this stage when any refinements or changes to requirements can be incorporated prior to the core development work occurring. |
|
|
|
Output at the end of the design phase is a final functional specification (containing the user interface prototype) and technical specification. |
|