1 / 20

Lecture 1: Introduction to Software Design

Lecture 1: Introduction to Software Design. Anita S. Malik anitamalik@umt.edu.pk Adapted from Budgen (2003) Chapters 1 and 2. What is Design?. Role of design in every day life Good design and poor design Design and fabrication of final product Good design but poor fabrication

savea
Download Presentation

Lecture 1: Introduction to 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. Lecture 1: Introduction to Software Design Anita S. Malik anitamalik@umt.edu.pk Adapted fromBudgen (2003) Chapters 1 and 2 Lecture 1

  2. What is Design? • Role of design in every day life • Good design and poor design • Design and fabrication of final product • Good design but poor fabrication • Poor design but good fabrication • Safety concerns and reliability issues Lecture 1

  3. The Garden Shed Case Study Ref: Chapter 1 Budgen (2003) • Input to designer: requirements specifications, constraints and domain knowledge • Time factor: easy to fabricate, less time sawing • Cost factor: keep the overall cost of sawing timber and fabricating parts low • How is this achieved: reuse and standardization Lecture 1

  4. Garden Shed Case Study – Model 1 Lecture 1

  5. Garden Shed Case Study – Model 2 Lecture 1

  6. Design as Problem Solving Process • Purpose of design is to produce a solution to a problem • Design is not an analytical process • Design process requires evaluating different options and trade-offs such as size, speed, ease of use, cost etc. • Design methods, patterns, representations and abstraction play an important part in the design process Lecture 1

  7. Design as a ‘Wicked’ Problem • Chapter 1 of Budgen (2003) discusses ten distinguishing properties of design as a ‘wicked problems’ of which the more relevant to software design are: • Not analytical • Can have a number of acceptable solutions (more of an art than science) • Providing design solutions for one aspect of a problem may put constraints on another aspect of the problem or create a new problem Lecture 1

  8. Design Constraints • Constraints limit the overall solution space by limiting the choices a designer has • Problem-specific constraints • Solution-specific constraints • Influence of constraints needs to be considered through out the design phase • Design reviews is the best way to make sure constraints are considered through out the design process Lecture 1

  9. Design Quality • What is quality? Generally construction quality of a product comes in mind…. • Quality of the final product among other things depends on good design • If the product is badly assembled, no matter how good the design is the final product will be considered bad quality • If the design is poor, no amount of good craftsmanship will be able to disguise its fundamental failings. • We can only measure the ultimate success of a design through its implementation Lecture 1

  10. Design Quality - Summary • A Good Design should be: • Well structured • Simple • Efficient • Adequate • Flexible • Practical • Implementable Lecture 1

  11. Designing in a Team • How to split the design tasks? • How to integrate the individual contributions? • Team size (10 -12 is probably an upper limit for productive working) • Varying degree of domain knowledge in the design team Lecture 1

  12. Good Designer Skills • Communication Skills • Domain Knowledge • Technical Skills • Managerial Skills Lecture 1

  13. Software Design • Software design is a phase in the software life cycle • Input: requirements specification, constraints, designer’s decisions • Output: detailed specifications • Design objectives: • Reliability • Efficiency • Maintainability • Usability • Simplicity Lecture 1

  14. Inherent Problems of Software Production • Software has some inherent problems • Complexity • Conformity • Changeability • Invisibility Lecture 1

  15. Software Complexity • Software is ‘inherently’ complex because of a number of reasons, for example, it goes through a number of states during execution, it has a number of interconnected components etc • No one person may know a large scale software product in its entirety • Management is difficult • Maintenance is a nightmare (documentation, too) – difficult to modify Lecture 1

  16. Software Conformity • Type 1 (Existing Business): The software has to conform to the existing business, the business can not conform to software • Type 2 (New Business): In case of new business, there is a misconception that software is the most conformable component Lecture 1

  17. Software Changeability • Pressure to change • Reality • If software is useful its functionality may be extended • Software has a long lifetime (~15 yrs) compared to hardware (~4 yrs) Lecture 1

  18. Software Invisibility • Software is invisible and unvisualizable • Complete views are incomprehensible • Partial views are misleading • However, all views can be helpful Lecture 1

  19. Other Problems • Delivered late • Over budget • Faults • Do not satisfy user needs Lecture 1

  20. Software Design Phase in Software Engineering • Software Engineering is an attempt to solve the problems that we have just reviewed • Software Design is a phase in the software life cycle • It is easier to correct a fault at or before the design phase because the design is ‘on-paper’. Once the implementation phase begins any change is very costly. Lecture 1

More Related