1 / 18

What is Software Design?

What is Software Design?. Systems Development Life-Cycle. Planning Analysis Design Implementation. Design. Software Design. The main aim of design is to develop a solution to a problem. Each problem is specified in the form of a description of the requirements.

chaeli
Download Presentation

What is Software Design?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. What is Software Design?

  2. Systems Development Life-Cycle • Planning • Analysis • Design • Implementation Design

  3. Software Design • The main aim of design is to develop a solution to a problem. • Each problem is specified in the form of a description of the requirements. • The designer solves the problem by determining how to meet the requirements. • Rather than focussing on writing a program the designer needs to view the system in terms of events and objects.

  4. The Process • The design process usually consists of a number of iterations with backtracking between iterations. • Backtracking is necessary to make revisions to the system to ensure that it meets the requirements. • In designing re-use of previous partial solutions need to be taken into consideration.

  5. The Process • On each iteration of the design process the designer must consider the impact of decisions made in the iteration on future iterations. • The environment places constraints on the design process, e.g. available resources. • This constraints need to be considered throughout the design process. • The software designer needs to have an in-depth knowledge the application domain.

  6. Input and Output of the Design Process • Input • Requirements specification • Designer’s input • Environmental constraints, e.g. existing software that can be reused, available resources. • The output of the process is a program description. • Black-box vs. white-box

  7. Why is software design difficult? • It is difficult to specify the needs of a software system. • Lack of measures to determine whether the system developed is the best system. • There are no correct or incorrect solutions to the problem. • No immediate method to test the solution. • No opportunity to learn by trial and error. • Each problem is unique. • Can lead to additional problems.

  8. Factors that contribute to the success of a design • The designer’s familiarity with the application domain - May have to do additional research. • Communication skills in interacting with other members. • Identifying project progress • The programming language should be chosen based on the features of the design rather than environmental issues such as the programmers’ knowledge.

  9. Teamwork • Projects usually involve team work. • Project must be divided amongst team members and the components integrated. • Modular approach • Two types of teams

  10. Factors Influencing Team Behaviour • The size of the team. • Knowledge of the application domain that team members have in comparison to each other. • Organizational issues within a company.

  11. Software Design Process Models • Waterfall model – linear processing • Prototyping • Spiral model – incremental processing

  12. Waterfall Model • Feasibility study • Requirements elicitation and analyses • Analysis • Architectural design • Detailed design • Coding • Unit testing • Integration testing • Operation and maintenance

  13. Prototyping • Evolutionary - The system is developed incrementally by changing the requirements iteratively • Experimental - A possible solution to the problem is created to define the characteristics of a solution • Exploratory - The main aim of the prototype is to identify the user requirements of the problem.

  14. The Spiral Model • The spiral model combines the waterfall model and prototyping so as to overcome the limitations of the waterfall model. • This model is comprised of four phases: • Identify the objectives and constraints of the problem • Evaluate the alternatives and risks • Develop to meet the identified objectives • Review the results and repeat the process if necessary

  15. Spiral Model

  16. In Summary • Identify requirements and constraints • Designers need a comprehensive knowledge of the application domain • It is best to design the system incrementally taking the requirements and future extensions of the system into consideration • Re-use – making use of existing partial solutions • Team work and communication skills

  17. Assessing Design Quality • Factors that are taken into consideration with assessing the quality of the product produced by the design include: • Reliability - The final system must be complete, consistent and robust. • Efficiency - This refers to efficient use of system facilities such as memory, processor time. • Maintainability - The design should allow for future modification. • Usability - Design of the user interface.

  18. Task 1 • For each of the following systems: • Define the objects/entities in the domain, the requirements of the system (or how you would obtain these, the constraints of the domain, maintenance that will be needed and which process model you would use to design the system. • A rough draft of what you would consider to be a design for the system (1) An interactive word-processor (2) A web-based E-commerce site dedicated to selling sheet music of all types (3) A bank auto-teller network for dispensing cash and providing receipts (4) A computerised version of the game tic-tac-toe

More Related