Muutke küpsiste eelistusi

E-raamat: Introduction to Software Engineering

(Howard University, Washington, DC, USA)
Teised raamatud teemal:
  • Formaat - PDF+DRM
  • Hind: 58,49 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
Teised raamatud teemal:

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

Practical Guidance on the Efficient Development of High-Quality Software

Introduction to Software Engineering, Second Edition equips students with the fundamentals to prepare them for satisfying careers as software engineers regardless of future changes in the field, even if the changes are unpredictable or disruptive in nature. Retaining the same organization as its predecessor, this second edition adds considerable material on open source and agile development models.

The text helps students understand software development techniques and processes at a reasonably sophisticated level. Students acquire practical experience through team software projects. Throughout much of the book, a relatively large project is used to teach about the requirements, design, and coding of software. In addition, a continuing case study of an agile software development project offers a complete picture of how a successful agile project can work.

The book covers each major phase of the software development life cycle, from developing software requirements to software maintenance. It also discusses project management and explains how to read software engineering literature. Three appendices describe software patents, command-line arguments, and flowcharts.

Arvustused

Praise for the First Edition:"The approach is practical throughout, with heavy emphasis on team projects, using the Internet as a resource, with discussion of tools in common use." Software Quality Professional, Vol. 3, Issue 4, September 2001

"In its second edition, Leach's work can best be described as a traditional text on software engineering. The book is conventionally organized in its presentation of the phases of software engineering. However, it is quite modern in its treatment of those phases with the author's early introduction of eight different approaches to the software life cycle. Nine chapters address various aspects of software engineering. The introductory chapter provides an overview of software engineering and different approaches to the software life cycle: the classical waterfall, rapid prototyping, the spiral model, agile programming, and others. Further chapters discuss project management tools, techniques and metrics associated with performing requirements analysis, and the software development process. However, the discussion of the development process is generically covered and does not provide significant details associated with specific programming languages or software systems. The following chapters explain how to uniformly and completely document the software system and emphasize the role of quality documentation. Each chapter offers further readings and contains suggested exercises. There are extended references and an excellent index. Summing Up: Recommended. Upper-division undergraduates through professionals and practitioners." J. Beidler, University of Scranton, Choice, November 2016 Praise for the First Edition:"The approach is practical throughout, with heavy emphasis on team projects, using the Internet as a resource, with discussion of tools in common use." Software Quality Professional, Vol. 3, Issue 4, September 2001

"In its second edition, Leach's work can best be described as a traditional text on software engineering. The book is conventionally organized in its presentation of the phases of software engineering. However, it is quite modern in its treatment of those phases with the author's early introduction of eight different approaches to the software life cycle. Nine chapters address various aspects of software engineering. The introductory chapter provides an overview of software engineering and different approaches to the software life cycle: the classical waterfall, rapid prototyping, the spiral model, agile programming, and others. Further chapters discuss project management tools, techniques and metrics associated with performing requirements analysis, and the software development process. However, the discussion of the development process is generically covered and does not provide significant details associated with specific programming languages or software systems. The following chapters explain how to uniformly and completely document the software system and emphasize the role of quality documentation. Each chapter offers further readings and contains suggested exercises. There are extended references and an excellent index. Summing Up: Recommended. Upper-division undergraduates through professionals and practitioners." J. Beidler, University of Scranton, Choice, November 2016

Preface to the Second Edition xiii
Preface to the First Edition xxi
To the Instructor and the Reader xxv
Chapter 1 Introduction 1(54)
1.1 The Need For Software Engineering
1(6)
1.2 Are Software Teams Really Necessary?
7(3)
1.3 Goals Of Software Engineering
10(1)
1.4 Typical Software Engineering Tasks
11(2)
1.5 Software Life Cycles
13(16)
1.5.1 Classical Waterfall Model
14(2)
1.5.2 Rapid Prototyping Model
16(5)
1.5.3 Spiral Model
21(3)
1.5.4 Market-Driven Model Of Software Development
24(1)
1.5.5 Open Source Model Of Software Development
25(2)
1.5.6 Agile Programming Model Of Software Development
27(1)
1.5.7 Common Features Of All Models Of Software Development
28(1)
1.5.8 Software Evolution And The Decision To Buy Versus Build Versus Reuse Versus Reengineer
28(1)
1.6 Different Views Of Software Engineering Activities
29(1)
1.7 Software Engineering As An Engineering Discipline
30(5)
1.8 Some Techniques Of Software Engineering
35(12)
1.8.1 Reuse
36(3)
1.8.2 Metrics
39(2)
1.8.3 Computer-Aided Software Engineering (Case)
41(4)
1.8.4 Cost Estimation
45(1)
1.8.5 Reviews And Inspections
46(1)
1.9 Standards Commonly Used For Software Development Processes
47(2)
1.10 Organization Of The Book
49(1)
Summary
50(1)
Key Words And Phrases
51(1)
Further Reading
52(3)
Chapter 2 Project Management 55(34)
2.1 Subteams Needed In Software Engineering Projects
57(4)
2.2 Nature Of Project Teams
61(2)
2.3 Project Management
63(2)
2.4 Software Project Estimation
65(9)
2.5 Project Scheduling
74(3)
2.6 Project Measurement
77(1)
2.7 Project Management Tools
78(1)
2.8 Role Of Networks In Project Management
79(2)
2.9 Groupware
81(1)
2.10 Case Study In Project Management For Agile Processes
82(3)
Summary
85(1)
Key Words And Phrases
86(1)
Further Reading
86(3)
Chapter 3 Requirements 89(68)
3.1 Some Problems With Requirements Determination
89(3)
3.2 Requirements Elicitation
92(5)
3.3 Requirements Traceability
97(2)
3.4 Software Architectures And Requirements
99(6)
3.4.1 Use Of Data Abstraction And Information Hiding In Requirements Engineering
100(2)
3.4.2 Regrouping Requirements In Requirements Engineering
102(2)
3.4.3 Reuse Of Requirements In Requirements Engineering
104(1)
3.4.4 Automation Of The Requirements Engineering Process
104(1)
3.5 Use Cases In Requirements Engineering
105(1)
3.6 Reengineering System Requirements
106(2)
3.7 Assessment Of Feasibility Of System Requirements
108(1)
3.8 Usability Requirements
109(6)
3.9 Specifying Requirements Using State Diagrams And Decision Tables
115(4)
3.10 Specifying Requirements Using Petri Nets
119(1)
3.11 Ethical Issues
119(5)
3.12 Some Metrics For Requirements
124(4)
3.13 The Requirements Review
128(6)
3.14 A Management Viewpoint
134(2)
3.15 Case Study Of A Management Perspective On Requirements In Agile Development
136(3)
3.16 The Major Project: Problem Statement
139(1)
3.17 The Major Project: Requirements Elicitation
140(6)
3.18 The Major Software Project: Requirements Analysis
146(4)
Summary
150(1)
Key Words And Phrases
151(1)
Further Reading
151(6)
Chapter 4 Software Design 157(70)
4.1 Introduction
157(2)
4.2 Software Design Patterns
159(4)
4.3 Introduction To Software Design Representations
163(6)
4.4 Procedurally Oriented Design Representations
169(5)
4.5 Software Architectures
174(3)
4.6 Software Design Principles For Procedurally Oriented Programs
177(3)
4.7 What Is An Object?
180(3)
4.8 Object-Oriented Design Representations
183(2)
4.9 Software Design Principles For Object-Oriented Programs
185(4)
4.10 Class Design Issues
189(2)
4.11 User Interfaces
191(5)
4.12 Software Interfaces
196(2)
4.13 Some Metrics For Design
198(1)
4.14 Design Reviews
199(1)
4.15 A Manager's Viewpoint Of Design
200(1)
4.16 Case Study Of Design In Agile Development
201(1)
4.17 Architecture Of The Major Software Engineering Project
202(4)
4.18 Preliminary Design Of The Major Software Project
206(6)
4.19 Subsystem Design For The Major Software Project
212(5)
4.20 Detailed Design For The Major Software Project
217(1)
Summary
218(3)
Key Words And Phrases
221(1)
Further Reading
221(6)
Chapter 5 Coding 227(40)
5.1 Choice Of Programming Language
227(3)
5.2 Coding Styles
230(7)
5.3 Coding Standards
237(2)
5.4 Coding, Design, Requirements, And Change
239(1)
5.5 Coupling Can Be Dangerous
240(5)
5.6 Some Coding Metrics
245(4)
5.7 Coding Reviews And Inspections
249(1)
5.8 Configuration Management
249(5)
5.9 A Management Perspective On Coding
254(1)
5.10 Case Study In Coding In Agile Development
255(1)
5.11 Coding Of The Major Software Project
255(5)
Summary
260(1)
Key Words And Phrases
260(1)
Further Reading
260(7)
Chapter 6 Testing And Integration 267(48)
6.1 Types Of Software Testing
269(2)
6.2 Black-Box Module Testing
271(3)
6.3 White-Box Module Testing
274(4)
6.4 Reducing The Number Of Test Cases By Effective Test Strategies
278(3)
6.5 Testing Objects For Encapsulation And Completeness
281(3)
6.6 Testing Objects With Inheritance
284(2)
6.7 General Testing Issues For Object-Oriented Software
286(2)
6.8 Test Scripts, Test Harnesses, And Test Plans
288(2)
6.9 Software Integration
290(7)
6.10 Cloud Computing And Software Integration: Software As A Service
297(1)
6.11 Managing Change In The Integration Process
298(2)
6.12 Performance And Stress Testing
300(1)
6.13 Quality Assurance
301(1)
6.14 Software Reliability
302(3)
6.15 A Manager's Viewpoint On Testing And Integration
305(2)
6.16 Case Study In Testing And Integration In Agile Development
307(1)
6.17 Testing The Major Software Project
308(1)
6.18 Integrating The Major Software Project
309(2)
Summary
311(1)
Key Words And Phrases
312(1)
Further Reading
312(3)
Chapter 7 Delivery, Installation, And Documentation 315(20)
7.1 Delivery
315(6)
7.2 Installation
321(2)
7.3 Documentation
323(1)
7.4 Internal Documentation
324(1)
7.5 External Documentation
325(1)
7.6 Design Rationales
326(1)
7.7 Installation, User, Training, And Operations Manuals
327(1)
7.8 Online Documentation
327(1)
7.9 Reading Levels
328(1)
7.10 A Manager's View Of Delivery, Installation, And Documentation
329(1)
7.11 Case Study Of Delivery In Agile Development
329(1)
7.12 Delivery, Installation, And Documentation Of The Major Software Project
330(1)
Summary
331(1)
Key Words And Phrases
332(1)
Further Reading
332(3)
Chapter 8 Maintenance And Software Evolution 335(18)
8.1 Introduction
335(3)
8.2 Corrective Software Maintenance
338(5)
8.3 Adaptive Software Maintenance
343(3)
8.4 How To Read Requirements, Designs, And Source Code
346(1)
8.5 A Manager's Perspective On Software Maintenance
347(1)
8.6 Maintenance Costs, Software Evolution, And The Decision To Buy Versus Build Versus Reuse Versus Reengineer
347(3)
8.7 Maintenance In Agile Development And The Total Life Cycle Costs
350(1)
8.8 Maintenance Of The Major Software Project
350(1)
Summary 350
Key Words And Phrases
351(1)
Further Reading
351(2)
Chapter 9 Research Issues In Software Engineering 353(14)
9.1 Some Important Research Problems In Software Engineering
354(8)
9.1.1 The Fundamental Question
354(1)
9.1.2 Requirements
354(1)
9.1.3 Design
355(1)
9.1.4 Coding
355(1)
9.1.5 Testing
355(1)
9.1.6 Integration
356(1)
9.1.7 Maintenance
356(1)
9.1.8 Cost Estimation
357(1)
9.1.9 Software Reuse
357(1)
9.1.10 Fault Tolerance
358(1)
9.1.11 Metrics
359(1)
9.1.12 Languages And Efficiency
359(1)
9.1.13 Language Generators
360(1)
9.1.14 Inspections And Reviews
360(1)
9.1.15 Distributed Systems
361(1)
9.1.16 Software Project Management
361(1)
9.1.17 Formal Methods
361(1)
9.1.18 Processes
361(1)
9.1.19 Risk Management
362(1)
9.1.20 Quality Assurance
362(1)
9.1.21 Configuration Management
362(1)
9.1.22 Crystal Ball
362(1)
9.2 How To Read The Software Engineering Research Literature
362(3)
Further Reading
365(2)
Appendix A: An Interesting Software Patent 367(2)
Appendix B: Command-Line Arguments 369(4)
Appendix C: Flowcharts 373(2)
References 375(14)
Trademarks And Service Marks 389(2)
Index 391
Ronald J. Leach is an independent consultant and professor and department chair emeritus of computer science at Howard University. His research interests include software reuse, software measurement and metrics, and software fault-tolerance. He earned a BS, an MS, and a PhD in mathematics from the University of Maryland as well as an MS in computer science from Johns Hopkins University.