software engineering chapter 1 introduction ku-yaw chang [email protected] assistant professor...

34
Software Engineering Software Engineering Chapter 1 Chapter 1 Introduction Introduction Ku-Yaw Chang Ku-Yaw Chang [email protected] [email protected] Assistant Professor Assistant Professor Department of Computer Science and Information Department of Computer Science and Information Engineering Engineering Da-Yeh University Da-Yeh University

Upload: ilene-dorsey

Post on 28-Dec-2015

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

Software EngineeringSoftware Engineering

Chapter 1 IntroductionChapter 1 IntroductionKu-Yaw ChangKu-Yaw Chang

[email protected]@mail.dyu.edu.tw

Assistant ProfessorAssistant ProfessorDepartment of Computer Science and Information EngineeringDepartment of Computer Science and Information Engineering

Da-Yeh UniversityDa-Yeh University

Page 2: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

22Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

ObjectivesObjectives

Understand what software engineering is and Understand what software engineering is and why it is importantwhy it is important

Know the answers to key questions that provide Know the answers to key questions that provide an introduction to software engineeringan introduction to software engineering

Understand some ethical and professional Understand some ethical and professional issues that are important for software engineersissues that are important for software engineers

Page 3: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

33Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

PreamblePreamble

Software engineeringSoftware engineering The economies of all developed nations are The economies of all developed nations are

dependent on softwaredependent on software More and more systems are software controlledMore and more systems are software controlled Software engineering is concerned with theories, Software engineering is concerned with theories,

methods and tools for professional software methods and tools for professional software developmentdevelopment

Expenditure on software represents a Expenditure on software represents a significant fraction of GNP in all developed countriessignificant fraction of GNP in all developed countries

Page 4: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

44Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

PreamblePreamble

Software costSoftware cost Often dominate computer system costsOften dominate computer system costs

The costs of software on a PC are often greater than the The costs of software on a PC are often greater than the hardware costhardware cost

Software costs more to maintain than it does to Software costs more to maintain than it does to developdevelop

For systems with a long life, maintenance costs may be For systems with a long life, maintenance costs may be several times development costsseveral times development costs

Software engineering is concerned with cost-Software engineering is concerned with cost-effective software development.effective software development.

Page 5: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

55Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

ContentsContents

1.1 FAQs about software engineering1.1 FAQs about software engineering

1.2 Professional and ethical responsibility1.2 Professional and ethical responsibility

1.3 Exercises1.3 Exercises

Page 6: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

66Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

1.1 FAQs about software engineering1.1 FAQs about software engineering

1.1. What is software?What is software?

2.2. What is software engineering?What is software engineering?

3.3. What is the difference between software enginWhat is the difference between software engineering and computer science?eering and computer science?

4.4. What is the difference between software enginWhat is the difference between software engineering and system engineering?eering and system engineering?

5.5. What is a software process?What is a software process?

6.6. What is a software process model?What is a software process model?

Page 7: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

77Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

1.1 FAQs about software engineering1.1 FAQs about software engineering

7.7. What are the costs of software engineering?What are the costs of software engineering?

8.8. What are software engineering methods?What are software engineering methods?

9.9. What is CASE (Computer-Aided Software What is CASE (Computer-Aided Software Engineering)?Engineering)?

10.10. What are the attributes of good software?What are the attributes of good software?

11.11. What are the key challenges facing software What are the key challenges facing software engineering?engineering?

Page 8: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

88Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

1.1.1 What is software?1.1.1 What is software?

Computer programsComputer programs and and associated documentationassociated documentation such such as requirements, design models and user manuals.as requirements, design models and user manuals.Software products may be developed for a particular Software products may be developed for a particular customer or may be developed for a general market.customer or may be developed for a general market.Software products may beSoftware products may be

GenericGeneric - developed to be sold to a range of different customers - developed to be sold to a range of different customers e.g. PC software such as Excel or Word.e.g. PC software such as Excel or Word.

Customized (Bespoke)Customized (Bespoke) - developed for a single customer - developed for a single customer according to their specification.according to their specification.

New software can be created by developing new New software can be created by developing new programs, configuring generic software systems or programs, configuring generic software systems or reusing existing software.reusing existing software.

FAQs

Page 9: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

99Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

1.1.2 What is software 1.1.2 What is software engineering? engineering?

An engineering discipline that is concerned with An engineering discipline that is concerned with all aspects of software production from the early all aspects of software production from the early stages of system specification to maintaining the stages of system specification to maintaining the system after it has gone into use.system after it has gone into use. Engineering disciplineEngineering discipline

Apply theories, methods and tools to discover solutionsApply theories, methods and tools to discover solutionsWork to organizational and financial constraintsWork to organizational and financial constraints

All aspects of software productionAll aspects of software productionTechnical processesTechnical processesProject managementProject managementDevelopments of tools, methods and theoriesDevelopments of tools, methods and theories

FAQs

Page 10: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

1010Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

1.1.3 What is the difference between 1.1.3 What is the difference between software engineering and computer software engineering and computer

science?science?Computer scienceComputer science Be concerned with theories and methods that underlie Be concerned with theories and methods that underlie

computers and software systemscomputers and software systems

Software engineeringSoftware engineering Be concerned with the practical problems of Be concerned with the practical problems of

producing softwareproducing software

Computer science theories are still insufficient to act as a Computer science theories are still insufficient to act as a complete underpinning for software engineering (unlike complete underpinning for software engineering (unlike e.g. physics and electrical engineering).e.g. physics and electrical engineering).

FAQs

Page 11: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

1111Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

1.1.4 What is the difference between software 1.1.4 What is the difference between software engineering and system engineering?engineering and system engineering?

System engineeringSystem engineering Be concerned with all aspects of computer-based Be concerned with all aspects of computer-based

systems developmentsystems development including hardware, software and process engineeringincluding hardware, software and process engineering

Software engineeringSoftware engineering Be concerned with developing the software Be concerned with developing the software

infrastructure, control, applications and databases in infrastructure, control, applications and databases in the system.the system.

part of system engineeringpart of system engineering

System engineers are involved in system specification, System engineers are involved in system specification, architectural design, integration and deployment.architectural design, integration and deployment.

FAQs

Page 12: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

1212Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

1.1.5 What is a software process?1.1.5 What is a software process?

A set of activities and associated results that A set of activities and associated results that produce a software productproduce a software product

Generic activities in all software processes are:Generic activities in all software processes are: SpecificationSpecification - what the system should do and its - what the system should do and its

development constraintsdevelopment constraints DevelopmentDevelopment - production of the software system - production of the software system ValidationValidation - checking that the software is what the - checking that the software is what the

customer wantscustomer wants EvolutionEvolution - changing the software in response to - changing the software in response to

changing demandschanging demandsFAQs

Page 13: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

1313Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

1.1.6 What is1.1.6 What isa software process model?a software process model?

A simplified representation of a software process, A simplified representation of a software process, presented from a specific perspectivepresented from a specific perspectiveExamples of process perspectives areExamples of process perspectives are

WorkflowWorkflow perspective perspectiveSequence of activities; human actionsSequence of activities; human actions

DataflowDataflow perspective perspectiveA set of activities carrying out data transformationA set of activities carrying out data transformationBy people or computersBy people or computers

Role/actionRole/action perspective perspectiveWho does whatWho does what

Generic process modelsGeneric process models Waterfall approachWaterfall approach Iterative developmentIterative development Component-based software engineering (CBSE)Component-based software engineering (CBSE)

FAQs

Page 14: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

1414Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

1.1.7 What are the costs of1.1.7 What are the costs ofsoftware engineering?software engineering?

Roughly 60% of costs are development costs, 40% are Roughly 60% of costs are development costs, 40% are

testing costs.testing costs. For custom software, evolution costs often exceed development For custom software, evolution costs often exceed development

costs.costs.

Costs vary depending on the type of system being Costs vary depending on the type of system being

developed and the requirements of system attributes developed and the requirements of system attributes

such as performance and system reliability.such as performance and system reliability.

Distribution of costs depends on the development model Distribution of costs depends on the development model

that is used.that is used.

Page 15: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

1515Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

Activity cost distributionActivity cost distributionWaterfall model

Iterative development

Component-based software engineering

Development and evolution costs for long-lifetime systems

System evolution

10 200 30 4000

System development

Specification Design Development Integration and testing

25 50 75 1000

Specification Development Integration and testing

25 50 75 1000

Specification Iterative development System testing

25 50 75 1000

Page 16: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

1616Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

Product development costsProduct development costs

Specification Development System testing

25 50 75 1000

FAQs

Page 17: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

1717Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

1.1.8 What are1.1.8 What aresoftware engineering methods?software engineering methods?

Structured approaches to software development Structured approaches to software development To facilitate the production of high-quality software in a cost-To facilitate the production of high-quality software in a cost-

effective wayeffective way

ExamplesExamples Function-OrientedFunction-Oriented

Structured Analysis (DeMarco, 1978)Structured Analysis (DeMarco, 1978)JSD (Jackson, 1983)JSD (Jackson, 1983)

Object-OrientedObject-OrientedUnified ApproachUnified Approach built around the built around the Unified Modeling Language Unified Modeling Language (UML)(UML)

Integrating Booch (Booch, 1994) and Rmbaugh (Rambaugh, 1991)Integrating Booch (Booch, 1994) and Rmbaugh (Rambaugh, 1991)

No ideal methodNo ideal method Different methods are applicable to different areasDifferent methods are applicable to different areas

OO methods are not suitable for real-time requirementsOO methods are not suitable for real-time requirements

Page 18: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

1818Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

1.1.8 What are1.1.8 What aresoftware engineering methods?software engineering methods?

Method componentsMethod components Model descriptionsModel descriptions

Descriptions of graphical models which should be producedDescriptions of graphical models which should be producede.g. object models, data-flow modelse.g. object models, data-flow models

RulesRulesConstraints applied to system modelsConstraints applied to system modelse.g. Entity must have a unique name.e.g. Entity must have a unique name.

RecommendationsRecommendationsAdvice on good design practiceAdvice on good design practicee.g. No more than seven sub-objects associated with it.e.g. No more than seven sub-objects associated with it.

Process guidanceProcess guidanceWhat activities to followWhat activities to followe.g. Document attributes before defining the operations.e.g. Document attributes before defining the operations.

FAQs

Page 19: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

1919Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

1.1.9 What is CASE?1.1.9 What is CASE?

CASE: CASE: Computer Aided Software EngineeringComputer Aided Software Engineering Software systems that are intended to provide Software systems that are intended to provide

automated support for software process activitiesautomated support for software process activities Often used for method supportOften used for method support

Upper-CASEUpper-CASE Tools to support the early process activities of Tools to support the early process activities of

requirements and designrequirements and design

Lower-CASELower-CASE Tools to support later activities such as programming, Tools to support later activities such as programming,

debugging and testingdebugging and testingFAQs

Page 20: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

2020Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

1.1.10 What are1.1.10 What arethe attributes of good software?the attributes of good software?

Software productsSoftware products Services (functional)Services (functional) Other attributes reflecting its quality (non-functional)Other attributes reflecting its quality (non-functional)

e.g. response time, understandability of the codee.g. response time, understandability of the code

A special set of attributes depends on its A special set of attributes depends on its applicationapplication

A banking system must be secureA banking system must be secure

An interactive game must be responsiveAn interactive game must be responsive

A telephone switching system must be reliableA telephone switching system must be reliable

Page 21: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

2121Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

Essential attributes of good softwareEssential attributes of good software

MaintainabilityMaintainability Evolve to meet changing needsEvolve to meet changing needs

DependabilityDependability Be trustworthyBe trustworthy

Reliability, security, and safetyReliability, security, and safety

EfficiencyEfficiency Make no wasteful use of system resourcesMake no wasteful use of system resources

Responsiveness, processing time, memory utilization, etc.Responsiveness, processing time, memory utilization, etc.

UsabilityUsability Be usableBe usable

Appropriate user interface and adequate documentationAppropriate user interface and adequate documentation

FAQs

Page 22: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

2222Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

1.1.11 What are the key challenges 1.1.11 What are the key challenges facing software engineering?facing software engineering?

HeterogeneityHeterogeneity Developing techniques for building software that can cope with Developing techniques for building software that can cope with

heterogeneous platforms and execution environmentsheterogeneous platforms and execution environments

DeliveryDelivery Developing techniques that lead to faster delivery of softwareDeveloping techniques that lead to faster delivery of software

TrustTrust Developing techniques that demonstrate that software can be Developing techniques that demonstrate that software can be

trusted by its userstrusted by its users

FAQs

Page 23: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

2323Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

ContentsContents

1.1 FAQs about software engineering1.1 FAQs about software engineering

1.2 Professional and ethical responsibility1.2 Professional and ethical responsibility

1.3 Exercises1.3 Exercises

Page 24: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

2424Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

1.2 Professional and ethical 1.2 Professional and ethical responsibilityresponsibility

Software engineering involves wider Software engineering involves wider responsibilities than simply the application of responsibilities than simply the application of technical skills.technical skills.

Software engineers must behave in an honest Software engineers must behave in an honest and ethically responsible way if they are to be and ethically responsible way if they are to be respected as professionals.respected as professionals.

Ethical behavior is more than simply upholding Ethical behavior is more than simply upholding the law.the law.

Page 25: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

2525Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

Issues of professional responsibility (I)Issues of professional responsibility (I)

ConfidentialityConfidentiality Engineers should normally respect the confidentiality Engineers should normally respect the confidentiality

of their employers or clients irrespective of whether or of their employers or clients irrespective of whether or not a formal confidentiality agreement has been not a formal confidentiality agreement has been signed.signed.

CompetenceCompetence Engineers should not misrepresent their level of Engineers should not misrepresent their level of

competence. They should not knowingly accept work competence. They should not knowingly accept work which is outside their competence.which is outside their competence.

Page 26: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

2626Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

Issues of professional responsibility (II)Issues of professional responsibility (II)

Intellectual property rightsIntellectual property rights Engineers should be aware of local laws governing Engineers should be aware of local laws governing

the use of intellectual property such as patents, the use of intellectual property such as patents, copyright, etc. They should be careful to ensure that copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is the intellectual property of employers and clients is protected.protected.

Computer misuseComputer misuse Software engineers should not use their technical Software engineers should not use their technical

skills to misuse other people’s computers. Computer skills to misuse other people’s computers. Computer misuse ranges from relatively trivial (game playing on misuse ranges from relatively trivial (game playing on an employer’s machine, say) to extremely serious an employer’s machine, say) to extremely serious (dissemination of viruses). (dissemination of viruses).

Page 27: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

2727Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

Code of EthicsCode of Ethics

The professional societies have cooperated to produce a The professional societies have cooperated to produce a code of ethical practice.code of ethical practice.

ACMACM IEEE (Institute of Electrical and Electronic Engineers)IEEE (Institute of Electrical and Electronic Engineers) British Computer SocietyBritish Computer Society

Members of these organizations sign up to the code of Members of these organizations sign up to the code of practice when they join.practice when they join.The Code contains eight Principles related to the The Code contains eight Principles related to the behavior of and decisions made by professional software behavior of and decisions made by professional software engineers, including practitioners, educators, managers, engineers, including practitioners, educators, managers, supervisors and policy makers, as well as trainees and supervisors and policy makers, as well as trainees and students of the profession. students of the profession.

Page 28: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

2828Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

Eight principles (I)Eight principles (I)

PUBLICPUBLIC Software engineers shall act consistently with the Software engineers shall act consistently with the

public interest.public interest.

CLIENT AND EMPLOYERCLIENT AND EMPLOYER Software engineers shall act in a manner that is in the Software engineers shall act in a manner that is in the

best interests of their client and employer consistent best interests of their client and employer consistent with the public interest.with the public interest.

PRODUCTPRODUCT Software engineers shall ensure that their products Software engineers shall ensure that their products

and related modifications meet the highest and related modifications meet the highest professional standards possible.professional standards possible.

Page 29: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

2929Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

Eight principles (II)Eight principles (II)

JUDGMENT JUDGMENT Software engineers shall maintain integrity and Software engineers shall maintain integrity and

independence in their professional judgment.independence in their professional judgment.

MANAGEMENTMANAGEMENT Software engineering managers and leaders shall Software engineering managers and leaders shall

subscribe to and promote an ethical approach to the subscribe to and promote an ethical approach to the management of software development and management of software development and maintenance.maintenance.

PROFESSIONPROFESSION Software engineers shall advance the integrity and Software engineers shall advance the integrity and

reputation of the profession consistent with the public reputation of the profession consistent with the public interest.interest.

Page 30: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

3030Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

Eight principles (III)Eight principles (III)

COLLEAGUESCOLLEAGUES Software engineers shall be fair to and supportive of Software engineers shall be fair to and supportive of

their colleagues.their colleagues.

SELFSELF Software engineers shall participate in lifelong Software engineers shall participate in lifelong

learning regarding the practice of their profession and learning regarding the practice of their profession and shall promote an ethical approach to the practice of shall promote an ethical approach to the practice of the profession.the profession.

Page 31: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

3131Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

Ethical dilemmasEthical dilemmas

Disagreement in principle with the policies of Disagreement in principle with the policies of senior management.senior management.

Your employer acts in an unethical way and Your employer acts in an unethical way and releases a safety-critical system without finishing releases a safety-critical system without finishing the testing of the system.the testing of the system.

Participation in the development of military Participation in the development of military weapons systems or nuclear systems.weapons systems or nuclear systems.

Page 32: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

3232Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

ContentsContents

1.1 FAQs about software engineering1.1 FAQs about software engineering

1.2 Professional and ethical responsibility1.2 Professional and ethical responsibility

1.3 Exercises1.3 Exercises

Page 33: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

3333Ku-Yaw ChangKu-Yaw Chang Software EngineeringSoftware Engineering

1.3 Exercises1.3 Exercises

1.61.6

1.71.7

1.81.8

Page 34: Software Engineering Chapter 1 Introduction Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor Department of Computer Science and Information Engineering

The EndThe End