210 likes | 403 Views
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
E N D
Lecture 1: Introduction to Software Design Anita S. Malik anitamalik@umt.edu.pk Adapted fromBudgen (2003) Chapters 1 and 2 Lecture 1
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
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
Garden Shed Case Study – Model 1 Lecture 1
Garden Shed Case Study – Model 2 Lecture 1
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
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
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
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
Design Quality - Summary • A Good Design should be: • Well structured • Simple • Efficient • Adequate • Flexible • Practical • Implementable Lecture 1
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
Good Designer Skills • Communication Skills • Domain Knowledge • Technical Skills • Managerial Skills Lecture 1
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
Inherent Problems of Software Production • Software has some inherent problems • Complexity • Conformity • Changeability • Invisibility Lecture 1
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
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
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
Software Invisibility • Software is invisible and unvisualizable • Complete views are incomprehensible • Partial views are misleading • However, all views can be helpful Lecture 1
Other Problems • Delivered late • Over budget • Faults • Do not satisfy user needs Lecture 1
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