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

Slides:



Advertisements
Similar presentations
Lecture # 2 : Process Models
Advertisements

Object-Oriented Software Development CS 3331 Fall 2009.
CS487 Software Engineering Omar Aldawud
What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
Approaches to Systems Development
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
© 2005 Prentice Hall6-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Ch 4 The Process page 1CS 368 Building Software is Difficult often delivered late often over budget always with errors must be a custom solution complexity.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Notion of a Project Notes from OOSE Slides - modified.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Introduction to Systems Analysis and Design
Essence and Accident in Software Engineering By: Mike Hastings.
Software Project Management Fifth Edition
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
Managing Software Quality
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
Nature of Software Design
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
Software System Engineering: A tutorial
CSE 303 – Software Design and Architecture
Architecture Business Cycle
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Software Design: An Introduction by David Budgen Presented by Shane Marcus EEL 6883 – Spring 2007 Presented by Shane Marcus EEL 6883 – Spring 2007.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,
111 Notion of a Project Notes from OOSE Slides – a different textbook used in the past Read/review carefully and understand.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Chapter 1: Introduction Omar Meqdadi SE 2730 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Slide 1V&V 10/2002 Software Quality Assurance Dr. Linda H. Rosenberg Assistant Director For Information Sciences Goddard Space Flight Center, NASA
An Introduction to Software Engineering. Communication Systems.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Slide 2.1 CHAPTER 2 THE SOFTWARE PROCESS. Slide 2.2 Overview l Client, Developer, and User l Requirements Phase l Specification Phase l Design Phase l.
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Software Production ( ) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD)
1 EE29B Feisal Mohammed EE29B: Introduction to Software Engineering Feisal Mohammed Ph: x3156.
Introduction to Design. What is Design? 2 minutes Pairs.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Chapter 13: Software Quality Project Management Afnan Albahli.
CSE 303 – Software Design and Architecture
CS 1120: Computer Science II Software Life Cycle Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by by.
Advanced S/w Eng - s/w productivity issues 1 Software Productivity Issues Why do software projects fail? Advanced Software Engineering COM360 University.
Definitions of GIS Works with geographic information Performs data input, management, manipulation/analysis, and output functions Composed of hardware,
Smart Home Technologies
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
It is the fuel of modern life Business are run Government rule Scientists Industries Education However, building and maintaining software is hard and getting.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
The Systems Engineering Context
Software Engineering (CSI 321)
FOUNDATIONAL CONCEPTS
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Software life cycle models
CS 1120: Computer Science II Software Life Cycle
Introduction To software engineering
Project Management Process Groups
CS310 Software Engineering Lecturer Dr.Doaa Sami
CS 1120: Computer Science II Software Life Cycle
Presented by KARRI GOVINDA RAO ,
Presentation transcript:

CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1 and 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

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

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

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

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

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

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

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

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

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 ( is probably an upper limit for productive working) Team size ( 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

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

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

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

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

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

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)

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

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

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.