30
CS 732 CS 732 Software Software Engineering Engineering Semester 1/2545 Semester 1/2545 Dr.Choonhapong Dr.Choonhapong Thaiupathump Thaiupathump

CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Embed Size (px)

Citation preview

Page 1: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

CS 732CS 732Software Software

EngineeringEngineeringSemester 1/2545Semester 1/2545

Dr.Choonhapong Dr.Choonhapong ThaiupathumpThaiupathump

Page 2: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

GradingGrading

MidtermMidtermExam.Exam. 50%50% Final Exam.Final Exam. 30%30%

Sun Sept 29 8:00-11:00Sun Sept 29 8:00-11:00 Project & PresentationProject & Presentation 10%10%

Team projectTeam project (20%)(20%) Individual research & presentation (10%)Individual research & presentation (10%)

Homework & Other AssignmentsHomework & Other Assignments 10%10%

Page 3: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

TextbookTextbook

Pressman, Roger S. Pressman, Roger S. Software Engin Software Engin eering: A Practitioner’s Approach eering: A Practitioner’s Approach . 5 . 5

- th Edition. McGraw Hill Companies, - th Edition. McGraw Hill Companies, Inc. New York, NY 1 0 0 2 0 , 2 0 Inc. New York, NY 1 0 0 2 0 , 2 0

01.01.

Page 4: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Course OutlineCourse Outline

Part One – The Product and ProcessPart One – The Product and Process CHAPTER 1CHAPTER 1 The ProductThe Product CHAPTER 2CHAPTER 2 The ProcessThe Process

Part Two – Managing Software ProjectPart Two – Managing Software Project CHAPTER 3CHAPTER 3 Project Management Project Management

ConceptsConcepts CHAPTERCHAPTER 44 Software Process and Software Process and

Project Project MetricsMetrics CHAPTERCHAPTER 55 Software Project PlanningSoftware Project Planning

Page 5: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Course Outline (Cont’d)Course Outline (Cont’d)

CHAPTER 6CHAPTER 6 Risk Analysis and ManagementRisk Analysis and Management CHAPTER 7CHAPTER 7 Project Scheduling and Project Scheduling and

TrackingTracking CHAPTER 8CHAPTER 8 Software Quality AssuranceSoftware Quality Assurance CHAPTER 9CHAPTER 9 Software Configuration Software Configuration

ManagementManagement

Part Three Part Three – – Conventional Methods for Conventional Methods for Software EngineeringSoftware Engineering

CHAPTER 10CHAPTER 10 System EngineeringSystem Engineering CHAPTER 11 Analysis Concepts and CHAPTER 11 Analysis Concepts and

PrinciplesPrinciples

Page 6: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Course Outline (Cont’d)Course Outline (Cont’d)

CHAPTER 12CHAPTER 12 Analysis ModelingAnalysis Modeling CHAPTER 13CHAPTER 13 Design Concepts and Design Concepts and

PrinciplesPrinciples CHAPTER 14CHAPTER 14 Architectural DesignArchitectural Design CHAPTER 15CHAPTER 15 User Interface DesignUser Interface Design CHAPTER 16CHAPTER 16 Component-Level DesignComponent-Level Design CHAPTER 17CHAPTER 17 Software Testing Software Testing

TechniquesTechniques CHAPTER 18CHAPTER 18 Software Testing StrategiesSoftware Testing Strategies CHAPTER 19CHAPTER 19 Technical Metrics for Technical Metrics for

SoftwareSoftware

Page 7: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Sample Topics for Sample Topics for Individual ResearchIndividual Research

Business Process EngineeringBusiness Process Engineering COCOMO and COCOMO II ModelCOCOMO and COCOMO II Model Alternative Analysis MethodsAlternative Analysis Methods

DSSD DSSD ((Data Structured Systems Data Structured Systems Development Development ))

JSD JSD ((Jackson System DevelopmentJackson System Development)) SADT SADT ((Structured analysis and design Structured analysis and design

techniquetechnique)) Interface Design GuidelinesInterface Design Guidelines

Page 8: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Sample Topics for Sample Topics for Individual ResearchIndividual Research

(Cont’d)(Cont’d) ISO 9000 for SoftwareISO 9000 for Software CASE ToolsCASE Tools Reviewing OOA and OOD ModelsReviewing OOA and OOD Models ComponentComponent--based Software based Software

EngineeringEngineering Process Improvement and SEI Process Improvement and SEI

Capability Maturity Model Capability Maturity Model ((CMMCMM)) PSP PSP ((Personal Software ProcessPersonal Software Process)) TSM TSM ((Team Software ProcessTeam Software Process))

Page 9: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Sample Topics for Sample Topics for Individual ResearchIndividual Research

(Cont’d)(Cont’d) ObjectObject--Oriented TestingOriented Testing Assessing Quality of Web Assessing Quality of Web

ApplicationsApplications Model-Based (MBASE) Architecture Model-Based (MBASE) Architecture

& Software Engineering& Software Engineering Object-oriented Software Object-oriented Software

Development with UMLDevelopment with UML Adaptable Process Model (APM)Adaptable Process Model (APM)

Page 10: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Guidelines for Individual Guidelines for Individual ResearchResearch

Topic submission date on Thurs Topic submission date on Thurs 13/6.13/6.

Final Report must contain a Final Report must contain a minimum of 3 references.minimum of 3 references.

Presentation dates will be arranged Presentation dates will be arranged after midterm exam.after midterm exam.

Page 11: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Guidelines for Team Guidelines for Team ProjectProject

2 members per team2 members per team Project Topic Submission Date on Thurs Project Topic Submission Date on Thurs

13/6.13/6. Project Proposal Submission Date on Tue Project Proposal Submission Date on Tue

18/6.18/6. Progress report required (will notify ahead of Progress report required (will notify ahead of

time).time). Final Report must be submitted prior to Final Report must be submitted prior to

Final Exam date.Final Exam date. Presentation date will be arranged after Presentation date will be arranged after

midterm exam.midterm exam.

Page 12: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Chapter 1Chapter 1ProductProduct

Page 13: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Software EngineeringSoftware Engineering

The technology encompasses a The technology encompasses a process, a set of methods, and an process, a set of methods, and an array of tools that we call array of tools that we call software software engineeringengineering..

Page 14: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Roles of SoftwareRoles of Software

A ProductA Product The vehicle for delivering a product, The vehicle for delivering a product,

such assuch as Control computer (OS)Control computer (OS) CommunicationCommunication ToolsTools

Software delivers “Software delivers “informationinformation””

Page 15: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Questions from an Industry Questions from an Industry PerspectivePerspective

Why does it take so long to get Why does it take so long to get software finished?software finished?

Why are development costs so high?Why are development costs so high? Why can’t we find all the errors Why can’t we find all the errors

before we give the software to before we give the software to customers?customers?

Why do we continue to have difficulty Why do we continue to have difficulty in measuring progress as software in measuring progress as software being developed?being developed?

Page 16: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

An Aging Software PlantAn Aging Software Plant

Software, produced over 20 years Software, produced over 20 years ago and modified over 40 times, was ago and modified over 40 times, was barely maintainable.barely maintainable.

No one could understand the No one could understand the internal structure of old programs.internal structure of old programs.

Embedded system (traffic, power Embedded system (traffic, power plants, factories) was unable to plants, factories) was unable to removed or replaced despite removed or replaced despite malfunctions. malfunctions.

Page 17: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Software Software CompetitivenessCompetitiveness

CostCost TimelinessTimeliness Quality Quality Why India? Why India?

Page 18: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

What is Software?What is Software?

Instructions (computer programs) Instructions (computer programs) that when executed provide desired that when executed provide desired function and performance.function and performance.

Data structures that enable the Data structures that enable the programs to adequately manipulate programs to adequately manipulate information, andinformation, and

Documents that describe the Documents that describe the operation and use of programs.operation and use of programs.

Page 19: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Software CharacteristicsSoftware Characteristics

Software is developed or Software is developed or engineered, it is not manufactured engineered, it is not manufactured in the classical sense.in the classical sense.

Software does not “wear out”.Software does not “wear out”. Although the industry is moving Although the industry is moving

toward component-based assembly, toward component-based assembly, most software continues to be most software continues to be custom built.custom built.

Page 20: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Wear vs. DeteriorationWear vs. Deterioration

idealized curve

change

actual curve

Failurerate

Time

increased failurerate due to side effects

Page 21: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Software ApplicationsSoftware Applications

Information content refers to the Information content refers to the meaning and form of incoming and meaning and form of incoming and outgoing information.outgoing information. For example, use highly structured For example, use highly structured

input data (input data (a databasea database) and produce ) and produce formatted formatted reportsreports..

Page 22: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Software ApplicationsSoftware Applications

System SoftwareSystem Software: a collection of : a collection of programs written to service other programs written to service other programs.programs. Compilers, editors, and file Compilers, editors, and file

management utilities.management utilities. Operating system components, drivers, Operating system components, drivers,

telecommunications processors.telecommunications processors.

Page 23: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Software ApplicationsSoftware Applications

Real-Time SoftwareReal-Time Software: Software that : Software that monitors/analyzes/control real world monitors/analyzes/control real world events as they occur. Elements events as they occur. Elements include:include: Data gathering components Data gathering components Analysis componentAnalysis component Control/output componentControl/output component Monitoring componentMonitoring component

Page 24: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Software ApplicationsSoftware Applications

Business SoftwareBusiness Software: : PayrollPayroll Accounts receivable/payableAccounts receivable/payable InventoryInventory

Facilitate business operations or Facilitate business operations or management decision makingmanagement decision making

Interactive client/server computing (point-Interactive client/server computing (point-of-sale transaction processingof-sale transaction processing

MIS

Page 25: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Software ApplicationsSoftware Applications

Engineering and Scientific SoftwareEngineering and Scientific Software:: CADCAD System simulationSystem simulation Interactive applicationsInteractive applications

Embedded SoftwareEmbedded Software:: Embedded software resided in ROMEmbedded software resided in ROM

Page 26: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Software ApplicationsSoftware Applications

Personal Computer SoftwarePersonal Computer Software Web-based SoftwareWeb-based Software AI Software:AI Software:

Expert SystemsExpert Systems Knowledge-base SystemsKnowledge-base Systems Pattern recognition (image and voice)Pattern recognition (image and voice) Artificial neural networksArtificial neural networks

Page 27: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Software MythsSoftware Myths

Management MythsManagement Myths Customer MythsCustomer Myths Practitioner’s MythsPractitioner’s Myths

Page 28: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

SoftwareSoftware

In brief, software is composed ofIn brief, software is composed of ProgramsPrograms DataData DocumentsDocuments

The intent of software engineering is The intent of software engineering is to provide a framework for building to provide a framework for building software with software with higher qualityhigher quality..

Page 29: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

The Cost of The Cost of ChangeChange

Definition Development After release

1x

1.5-6x

60-100x

Page 30: CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump

Software Poses Software Poses ChallengesChallengesHow do we ensure the quality of the software that

we produce? How do we meet growing demand and still maintain budget control? How do we upgrade an aging "software plant?" How do we avoid disastrous time delays? How do we successfully institute new software technologies?