Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1.

Similar presentations


Presentation on theme: "CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1."— Presentation transcript:

1 CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik anitamalik@umt.edu.pk Adapted from Budgen (2003) Chapters 1 and 2

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

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

4 CS540 Software Design 4Lecture 1 Garden Shed Case Study – Model 1

5 CS540 Software Design 5Lecture 1 Garden Shed Case Study – Model 2

6 CS540 Software Design 6Lecture 1 Design as Problem Solving Process Purpose of design is to produce a solution to a problem Purpose of design is to produce a solution to a problem Design is not an analytical process 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 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 Design methods, patterns, representations and abstraction play an important part in the design process

7 CS540 Software Design 7Lecture 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: 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 Not analytical Can have a number of acceptable solutions (more of an art than science) 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 Providing design solutions for one aspect of a problem may put constraints on another aspect of the problem or create a new problem

8 CS540 Software Design 8Lecture 1 Design Constraints Constraints limit the overall solution space by limiting the choices a designer has Constraints limit the overall solution space by limiting the choices a designer has Problem-specific constraints Problem-specific constraints Solution-specific constraints Solution-specific constraints Influence of constraints needs to be considered through out the design phase 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 Design reviews is the best way to make sure constraints are considered through out the design process

9 CS540 Software Design 9Lecture 1 Design Quality What is quality? Generally construction quality of a product comes in mind…. What is quality? Generally construction quality of a product comes in mind…. Quality of the final product among other things depends on good design 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 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. 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 We can only measure the ultimate success of a design through its implementation

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

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

12 CS540 Software Design 12Lecture 1 Good Designer Skills Communication Skills Communication Skills Domain Knowledge Domain Knowledge Technical Skills Technical Skills Managerial Skills Managerial Skills

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

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

15 CS540 Software Design 15Lecture 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 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 No one person may know a large scale software product in its entirety Management is difficult Management is difficult Maintenance is a nightmare (documentation, too) – difficult to modify Maintenance is a nightmare (documentation, too) – difficult to modify

16 CS540 Software Design 16Lecture 1 Software Conformity Type 1 (Existing Business): The software has to conform to the existing business, the business can not conform to software 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 Type 2 (New Business): In case of new business, there is a misconception that software is the most conformable component

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

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

19 CS540 Software Design 19Lecture 1 Other Problems Delivered late Delivered late Over budget Over budget Faults Faults Do not satisfy user needs Do not satisfy user needs

20 CS540 Software Design 20Lecture 1 Software Design Phase in Software Engineering Software Engineering is an attempt to solve the problems that we have just reviewed Software Engineering is an attempt to solve the problems that we have just reviewed Software Design is a phase in the software life cycle 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. 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.


Download ppt "CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1."

Similar presentations


Ads by Google