SlideShare uma empresa Scribd logo
1 de 30
CSC230 Software Design (Engineering)
• Dr. Ben Choi
• Ph.D. in EE (Computer Engineering),
The Ohio State University
• System Performance Engineer,
Lucent Technologies - Bell Labs Innovations
• Pilot, FAA certified pilot for
airplanes and helicopters
TECH
Computer Science
CH01: What is Software Engineering
• Software Engineers build software systems
• Building a software system requires
(1) Planning,
(2) Understand what needed to be built,
(3) Designing the system,
(4) Writing the programs,
(5) Testing, and
(6) Maintaining the system.
What is CS 230
• Class Syllabus
Software Engineers use knowledge of
Computer Science to Solve problems
COMPUTER SCIENCE
SOFTWARE
ENGINEERING
CUSTOMER
Theories
Tools and
Techniques to
Solve Problem
Problem
Computer
Functions
Problem Solving: Analysis
PROBLEM
Subproblem 1
Subproblem 3
Subproblem 2
Subproblem 4
Problem Solving: Synthesis
SOLUTION
Solution 1
Solution 3
Solution 2
Solution 4
How successful have we been?
• Writing software is an art as well as a science.
• Software engineering is about designing high-quality
software.
• System Crash!!!
• Seeking wrong target!!!
• However, we have come a long way!!!
(Can’t leave home without a computer.)
What is Good software?
• Context helps to determine the answer
Games and Safety-critical systems have different
standard
• Evaluate software by evaluating
quality of the product
quality of the process
quality in the context of the business environment
Quality of the product
• Correctness
• Reliability
• Usability
• Testability
• Maintainability
Quality of the Process
• Many (development) activities will affect the ultimate
product quality, e.g.
• Talking to customers and users to understand what
they want
• Code reviews
• When to conduct testing
Quality in Context of the Business
Environment
• Return on investment
• Express in dollars
• Express in effort
schedule
productivity
customer
Who does software engineering?
CUSTOMER Sponsors system
development
USER
Uses
system
DEVELOPER
Builds
system
Contractual
obligation
$$$,
needs
Software system
Needs
Understanding software systems:
A Systems Approach
• A system is a collection of entities and activities, plus
a description of the relationships that tie the entities
and activities together.
An activity is something that happens in a system.
The elements involved in the activities are called
entities.
Once entities and activities are defined, we match the
entities with their activities.
System Boundary: Input and Output
System boundary
Mail room
Date
validation
Calculation
Pay information
Pay checks
Printing
Building software systems:
An Engineering Approach
• Software projects progress in a way similar to the
house-building process.
Asking customers what house they want to build
Drawing floor plans (rooms) ((Model house))
Designing interior (e.g. where the light switch should be)
Testing each subsystem (e.g. testing each light switch,
electrical subsystem)
Testing everything work together
Maintaining the house
Software development process
requirements analysis and definition
system design
program design
writing the programs (program implementation)
unit testing
integration testing
system testing
system delivery
maintenance
Members of the development team
MAINTENANCE
SYSTEM
DESIGN
REQUIREMENTS
ANALYSIS AND DEFINITION
PROGRAM
DESIGN
PROGRAM
IMPLEMENTATION
UNIT
TESTING
INTEGRATION
TESTING
SYSTEM
TESTING
SYSTEM
DELIVERY
SOFTWARE
DEVELOPMENT
STEPS
DEVELOPER
ROLES
ANALYST
DESIGNER
PROGRAMMER
TESTER
TRAINER
How has software engineering changed? //
Time to market
Shifts in economics
Desktop computing
Networking
Object technology Problems with waterfall
User interfaces
CHANGES IN
SOFTWARE
ENGINEERING
Fundamental notions in software engineering
Abstraction
Analysis and design methods and notations
User interface prototyping
Software Architecture
Software Process
Reuse
Measurement
Tools and Integrated Environments
Abstraction
Electrical device
Sensor
Water sensor Air sensor
• is a description of the problem at some level of
generalization that allows us to concentrate on the
key aspects of the problem without getting mired in
the details.
• Identifying classes of objects that allow us to group
items together
• Forming hierarchies
Analysis and Design Methods and Notations
• build models and check them for completeness and
consistency
• use standard notation to help us communicate and to
document decisions
User interface prototyping
• Prototyping means building a small version of a
system to
help the user and customer identify the key
requirements of a system
demonstrate feasibility of a design or approach
• Does the user like the “looks and feels”?
Software Architecture
• A system’s architecture describes the system in terms
of a set of architectural units, and a map of how the
units relate to one another.
Software Architecture: Units
• Ways to partition the system into units:
modular decomposition: based on assigning functions to
modules
data-oriented decomposition: based on external data
structures
event-oriented decomposition: based on events that the
system must handle
outside-in design: based on user inputs to the system
object-oriented design: based on identifying classes of
objects and their interrelationships
Software Process
• Process of developing software (organization and
discipline in the activities)
• contribute to the quality of the software and the
speed with which it is developed
Reuse
• Take advantage of the commonalities across
applications by reusing items from previous
development
• Reusable components as business asset
Measurement
• By quantifying where we can and what we can, we
describe our actions and their outcomes in a common
mathematical language that allows us to evaluate our
progress.
Tools and Integrated Environments
• Use tools to enhance software development
tools to help tracking the progress of the development
tools to help debugging programs
tools to help testing the programs
Examples and What the chapter means for
you
• Information system example
• Real-Time example
• What this chapter means for you
• What this chapter means for your development team
• What this chapter means for your researchers
• Key References and Exercises
Ch01

Mais conteúdo relacionado

Mais procurados

Software testing methods, levels and types
Software testing methods, levels and typesSoftware testing methods, levels and types
Software testing methods, levels and types
Confiz
 
Testing Types And Models
Testing Types And ModelsTesting Types And Models
Testing Types And Models
nazeer pasha
 
Testing (System Analysis and Design)
Testing (System Analysis and Design)Testing (System Analysis and Design)
Testing (System Analysis and Design)
Areeb Khan
 

Mais procurados (20)

Software testing methods, levels and types
Software testing methods, levels and typesSoftware testing methods, levels and types
Software testing methods, levels and types
 
Software reliability
Software reliabilitySoftware reliability
Software reliability
 
Testing Types And Models
Testing Types And ModelsTesting Types And Models
Testing Types And Models
 
Software Reliability
Software ReliabilitySoftware Reliability
Software Reliability
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
Software quality
Software qualitySoftware quality
Software quality
 
What is Software Quality and how to measure it?
What is Software Quality and how to measure it?What is Software Quality and how to measure it?
What is Software Quality and how to measure it?
 
Software Verification & Validation
Software Verification & ValidationSoftware Verification & Validation
Software Verification & Validation
 
Sdlc 4
Sdlc 4Sdlc 4
Sdlc 4
 
Software testing strategies
Software testing strategiesSoftware testing strategies
Software testing strategies
 
Software Testing Life Cycle Unit-3
Software Testing Life Cycle Unit-3Software Testing Life Cycle Unit-3
Software Testing Life Cycle Unit-3
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
A Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer TestingA Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer Testing
 
Testing in multiplatform environment
Testing in multiplatform environmentTesting in multiplatform environment
Testing in multiplatform environment
 
Testing strategies part -1
Testing strategies part -1Testing strategies part -1
Testing strategies part -1
 
Fundamentals of Testing Section 1/6
Fundamentals of Testing   Section 1/6Fundamentals of Testing   Section 1/6
Fundamentals of Testing Section 1/6
 
Concept of Failure, error, fault and defect
Concept of Failure, error, fault and defectConcept of Failure, error, fault and defect
Concept of Failure, error, fault and defect
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tactics
 
STLC– software testing life cycle
STLC– software testing life cycleSTLC– software testing life cycle
STLC– software testing life cycle
 
Testing (System Analysis and Design)
Testing (System Analysis and Design)Testing (System Analysis and Design)
Testing (System Analysis and Design)
 

Semelhante a Ch01

Software project management requirements analysis
Software project management requirements analysisSoftware project management requirements analysis
Software project management requirements analysis
Antony Alex
 
System Analysis and Design Project documentation
System Analysis and Design Project documentationSystem Analysis and Design Project documentation
System Analysis and Design Project documentation
MAHERMOHAMED27
 
1 sad-01-introduction-june2015-rev
1 sad-01-introduction-june2015-rev1 sad-01-introduction-june2015-rev
1 sad-01-introduction-june2015-rev
Fajar Baskoro
 
7 designing the system
7 designing the system7 designing the system
7 designing the system
ricardovigan
 

Semelhante a Ch01 (20)

Introduction Software engineering
Introduction   Software engineeringIntroduction   Software engineering
Introduction Software engineering
 
Software project management requirements analysis
Software project management requirements analysisSoftware project management requirements analysis
Software project management requirements analysis
 
Unit 1.pdf
Unit 1.pdfUnit 1.pdf
Unit 1.pdf
 
Lecture 2 (Software Processes)
Lecture 2 (Software Processes)Lecture 2 (Software Processes)
Lecture 2 (Software Processes)
 
Processes of website application development
Processes of website application developmentProcesses of website application development
Processes of website application development
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Architecture Design
Architecture DesignArchitecture Design
Architecture Design
 
System Analysis and Design Project documentation
System Analysis and Design Project documentationSystem Analysis and Design Project documentation
System Analysis and Design Project documentation
 
1 sad-01-introduction-june2015-rev
1 sad-01-introduction-june2015-rev1 sad-01-introduction-june2015-rev
1 sad-01-introduction-june2015-rev
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introduction
 
Presentation on software construction
Presentation on software constructionPresentation on software construction
Presentation on software construction
 
Software Metrics - Software Engineering
Software Metrics - Software EngineeringSoftware Metrics - Software Engineering
Software Metrics - Software Engineering
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbsh
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 
Presentation of se
Presentation of sePresentation of se
Presentation of se
 
Cse3 March2009cwd35with Crane
Cse3 March2009cwd35with CraneCse3 March2009cwd35with Crane
Cse3 March2009cwd35with Crane
 
Lecture 01
Lecture 01Lecture 01
Lecture 01
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
7 designing the system
7 designing the system7 designing the system
7 designing the system
 

Último

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
mphochane1998
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
Kamal Acharya
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
AldoGarca30
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Kandungan 087776558899
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 

Último (20)

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptx
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal load
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 

Ch01

  • 1. CSC230 Software Design (Engineering) • Dr. Ben Choi • Ph.D. in EE (Computer Engineering), The Ohio State University • System Performance Engineer, Lucent Technologies - Bell Labs Innovations • Pilot, FAA certified pilot for airplanes and helicopters TECH Computer Science
  • 2. CH01: What is Software Engineering • Software Engineers build software systems • Building a software system requires (1) Planning, (2) Understand what needed to be built, (3) Designing the system, (4) Writing the programs, (5) Testing, and (6) Maintaining the system.
  • 3. What is CS 230 • Class Syllabus
  • 4. Software Engineers use knowledge of Computer Science to Solve problems COMPUTER SCIENCE SOFTWARE ENGINEERING CUSTOMER Theories Tools and Techniques to Solve Problem Problem Computer Functions
  • 5. Problem Solving: Analysis PROBLEM Subproblem 1 Subproblem 3 Subproblem 2 Subproblem 4
  • 6. Problem Solving: Synthesis SOLUTION Solution 1 Solution 3 Solution 2 Solution 4
  • 7. How successful have we been? • Writing software is an art as well as a science. • Software engineering is about designing high-quality software. • System Crash!!! • Seeking wrong target!!! • However, we have come a long way!!! (Can’t leave home without a computer.)
  • 8. What is Good software? • Context helps to determine the answer Games and Safety-critical systems have different standard • Evaluate software by evaluating quality of the product quality of the process quality in the context of the business environment
  • 9. Quality of the product • Correctness • Reliability • Usability • Testability • Maintainability
  • 10. Quality of the Process • Many (development) activities will affect the ultimate product quality, e.g. • Talking to customers and users to understand what they want • Code reviews • When to conduct testing
  • 11. Quality in Context of the Business Environment • Return on investment • Express in dollars • Express in effort schedule productivity customer
  • 12. Who does software engineering? CUSTOMER Sponsors system development USER Uses system DEVELOPER Builds system Contractual obligation $$$, needs Software system Needs
  • 13. Understanding software systems: A Systems Approach • A system is a collection of entities and activities, plus a description of the relationships that tie the entities and activities together. An activity is something that happens in a system. The elements involved in the activities are called entities. Once entities and activities are defined, we match the entities with their activities.
  • 14. System Boundary: Input and Output System boundary Mail room Date validation Calculation Pay information Pay checks Printing
  • 15. Building software systems: An Engineering Approach • Software projects progress in a way similar to the house-building process. Asking customers what house they want to build Drawing floor plans (rooms) ((Model house)) Designing interior (e.g. where the light switch should be) Testing each subsystem (e.g. testing each light switch, electrical subsystem) Testing everything work together Maintaining the house
  • 16. Software development process requirements analysis and definition system design program design writing the programs (program implementation) unit testing integration testing system testing system delivery maintenance
  • 17. Members of the development team MAINTENANCE SYSTEM DESIGN REQUIREMENTS ANALYSIS AND DEFINITION PROGRAM DESIGN PROGRAM IMPLEMENTATION UNIT TESTING INTEGRATION TESTING SYSTEM TESTING SYSTEM DELIVERY SOFTWARE DEVELOPMENT STEPS DEVELOPER ROLES ANALYST DESIGNER PROGRAMMER TESTER TRAINER
  • 18. How has software engineering changed? // Time to market Shifts in economics Desktop computing Networking Object technology Problems with waterfall User interfaces CHANGES IN SOFTWARE ENGINEERING
  • 19. Fundamental notions in software engineering Abstraction Analysis and design methods and notations User interface prototyping Software Architecture Software Process Reuse Measurement Tools and Integrated Environments
  • 20. Abstraction Electrical device Sensor Water sensor Air sensor • is a description of the problem at some level of generalization that allows us to concentrate on the key aspects of the problem without getting mired in the details. • Identifying classes of objects that allow us to group items together • Forming hierarchies
  • 21. Analysis and Design Methods and Notations • build models and check them for completeness and consistency • use standard notation to help us communicate and to document decisions
  • 22. User interface prototyping • Prototyping means building a small version of a system to help the user and customer identify the key requirements of a system demonstrate feasibility of a design or approach • Does the user like the “looks and feels”?
  • 23. Software Architecture • A system’s architecture describes the system in terms of a set of architectural units, and a map of how the units relate to one another.
  • 24. Software Architecture: Units • Ways to partition the system into units: modular decomposition: based on assigning functions to modules data-oriented decomposition: based on external data structures event-oriented decomposition: based on events that the system must handle outside-in design: based on user inputs to the system object-oriented design: based on identifying classes of objects and their interrelationships
  • 25. Software Process • Process of developing software (organization and discipline in the activities) • contribute to the quality of the software and the speed with which it is developed
  • 26. Reuse • Take advantage of the commonalities across applications by reusing items from previous development • Reusable components as business asset
  • 27. Measurement • By quantifying where we can and what we can, we describe our actions and their outcomes in a common mathematical language that allows us to evaluate our progress.
  • 28. Tools and Integrated Environments • Use tools to enhance software development tools to help tracking the progress of the development tools to help debugging programs tools to help testing the programs
  • 29. Examples and What the chapter means for you • Information system example • Real-Time example • What this chapter means for you • What this chapter means for your development team • What this chapter means for your researchers • Key References and Exercises