Software engineering : (Record no. 6797)

MARC details
000 -LEADER
fixed length control field 09905cam a22002054a 4500
020 ## - INTERNATIONAL STANDARD BOOK NUMBER
ISBN 0201648563
Terms of availability TZS 26,500/=
040 ## - CATALOGING SOURCE
Original cataloging agency MUL
Language of cataloging eng
Description conventions AACR
082 00 - DEWEY DECIMAL CLASSIFICATION NUMBER
Classification number 005.1 BEL
100 1# - MAIN ENTRY--AUTHOR NAME
Personal name Bell, Douglas,
245 10 - TITLE STATEMENT
Title Software engineering :
Sub Title a programming approach /
Statement of responsibility, etc Douglas Bell.
250 ## - Edition Statement
Edition statement 3rd ed.
260 ## - PUBLICATION, DISTRIBUTION, ETC. (IMPRINT)
Place of publication Harlow :
Name of publisher Addison Wesley,
Year of publication c2000.
300 ## - PHYSICAL DESCRIPTION
Number of Pages xvi, 470 p. :
Other physical details ill. ;
Dimensions 23 cm.
504 ## - BIBLIOGRAPHY, ETC. NOTE
Bibliography, etc Includes bibliographical references and index.
505 ## - Formatted Contents
Formatted contents note <br/>Preface xv <br/>Part A Introduction <br/>Software -- problems and prospects<br/>3 (18)<br/>Introduction<br/>3 (1)<br/>Meeting users' needs<br/>4 (1)<br/>The cost of software production<br/>5 (5)<br/>Meeting deadlines<br/>10 (1)<br/>Software performance<br/>10 (1)<br/>Portability<br/>11 (1)<br/>Maintenance<br/>12 (1)<br/>Reliability<br/>13 (3)<br/>Human--computer interaction<br/>16 (1)<br/>A software crisis?<br/>16 (1)<br/>A remedy -- software engineering?<br/>17 (1)<br/>Summary<br/>18 (3)<br/>Exercises<br/>19 (1)<br/>Answers to self test questions<br/>20 (1)<br/>Further reading<br/>20 (1)<br/>Process models<br/>21 (24)<br/>Introduction<br/>21 (1)<br/>The components of software development<br/>22 (2)<br/>Validation and verification<br/>24 (1)<br/>The waterfall model<br/>25 (3)<br/>Prototyping<br/>28 (8)<br/>Formal methods -- the transform model<br/>36 (1)<br/>The spiral model<br/>37 (3)<br/>Discussion<br/>40 (1)<br/>Summary<br/>41 (4)<br/>Exercises<br/>41 (1)<br/>Answers to self test questions<br/>42 (1)<br/>Further reading<br/>42 (3)<br/>Part B Requirements engineering <br/>Requirements analysis<br/>45 (10)<br/>Introduction<br/>45 (1)<br/>The notion of a requirement<br/>46 (1)<br/>The process of eliciting requirements<br/>47 (2)<br/>The requirements specification<br/>49 (3)<br/>Summary<br/>52 (3)<br/>Exercises<br/>53 (1)<br/>Further reading<br/>54 (1)<br/>Formal specification<br/>55 (16)<br/>Introduction<br/>55 (2)<br/>Formal specification in Z: an example<br/>57 (7)<br/>The role of formal specification<br/>64 (1)<br/>Summary<br/>65 (6)<br/>Exercises<br/>66 (1)<br/>Answers to self test questions<br/>67 (1)<br/>Further reading<br/>67 (4)<br/>Part C Design <br/>Structured programming<br/>71 (14)<br/>Introduction<br/>71 (1)<br/>Arguments against goto<br/>72 (4)<br/>Arguments in favor of goto<br/>76 (1)<br/>Selecting control structures<br/>77 (2)<br/>What is structured programming?<br/>79 (3)<br/>Summary<br/>82 (3)<br/>Exercises<br/>83 (1)<br/>Further reading<br/>84 (1)<br/>Modularity<br/>85 (21)<br/>Introduction<br/>85 (1)<br/>Why modularity?<br/>86 (2)<br/>Module size<br/>88 (2)<br/>Complexity<br/>90 (1)<br/>Global data is harmful<br/>91 (1)<br/>Information hiding and abstract data types<br/>92 (2)<br/>Coupling and cohesion<br/>94 (1)<br/>Coupling<br/>95 (3)<br/>Cohesion<br/>98 (2)<br/>Shaw and Garlan's classification<br/>100 (2)<br/>Object-oriented programming<br/>102 (1)<br/>Summary<br/>103 (3)<br/>Exercises<br/>104 (1)<br/>Answer to self test question<br/>105 (1)<br/>Further reading<br/>105 (1)<br/>Functional decomposition<br/>106 (10)<br/>Introduction<br/>106 (1)<br/>An example -- a video game<br/>107 (3)<br/>More about the method<br/>110 (1)<br/>What about data?<br/>111 (1)<br/>Alternative solutions<br/>112 (1)<br/>The place of functional decomposition<br/>113 (1)<br/>Discussion<br/>113 (1)<br/>Summary<br/>114 (2)<br/>Exercises<br/>114 (1)<br/>Further reading<br/>115 (1)<br/>Data structure design: The Michael Jackson program design method (JSP)<br/>116 (25)<br/>Introduction<br/>116 (1)<br/>A simple example<br/>117 (5)<br/>Processing input files<br/>122 (2)<br/>Physical and logical structures<br/>124 (2)<br/>Processing several input and output streams<br/>126 (5)<br/>Structure clashes<br/>131 (4)<br/>Discussion and evaluation<br/>135 (2)<br/>Summary<br/>137 (4)<br/>Exercises<br/>138 (1)<br/>Answer to self test question<br/>139 (1)<br/>Further reading<br/>140 (1)<br/>Data flow design<br/>141 (16)<br/>Introduction<br/>141 (1)<br/>An analogy<br/>142 (1)<br/>First examples<br/>143 (3)<br/>Case study -- point-of-sale terminal<br/>146 (4)<br/>Case study -- monitoring a plant<br/>150 (1)<br/>Rationale for the method<br/>151 (2)<br/>Discussion<br/>153 (2)<br/>Summary<br/>155 (2)<br/>Exercises<br/>155 (1)<br/>Further reading<br/>156 (1)<br/>Object-oriented desing<br/>157 (26)<br/>Introduction<br/>157 (1)<br/>The features of OOP<br/>158 (5)<br/>The aims of OO design<br/>163 (2)<br/>Finding the classes<br/>165 (2)<br/>Specifying the responsibilities of the classes<br/>167 (1)<br/>Specifying the collaborators<br/>168 (1)<br/>Other design techniques and notations<br/>169 (1)<br/>Using the class library<br/>169 (1)<br/>Class--responsibility--collaborator (CRC) cards<br/>170 (1)<br/>Use-case analysis<br/>171 (1)<br/>Creating good class hierarchies<br/>172 (3)<br/>Is-a and has-a analysis<br/>175 (1)<br/>Design guidelines<br/>176 (1)<br/>Re-usable design patterns (frameworks)<br/>176 (1)<br/>Object-oriented design methodologies<br/>177 (1)<br/>Discussion<br/>177 (2)<br/>Summary<br/>179 (4)<br/>Exercises<br/>179 (2)<br/>Answers to self test questions<br/>181 (1)<br/>Further reading<br/>181 (2)<br/>User interface design<br/>183 (16)<br/>Introduction<br/>183 (1)<br/>An interdisciplinary field<br/>184 (1)<br/>Styles of human--computer interface<br/>184 (2)<br/>Different perspectives on HCI<br/>186 (1)<br/>Design principles and guidelines<br/>187 (3)<br/>Human--computer interface design<br/>190 (1)<br/>Task analysis<br/>191 (2)<br/>Design evaluation<br/>193 (1)<br/>Help systems<br/>194 (1)<br/>Implementation tools<br/>195 (1)<br/>Summary<br/>196 (3)<br/>Exercises<br/>196 (1)<br/>Answers to self test questions<br/>197 (1)<br/>Further reading<br/>197 (2)<br/>Formal development<br/>199 (16)<br/>Introduction<br/>199 (1)<br/>What is a formal method?<br/>200 (1)<br/>Formal development: a case study<br/>201 (7)<br/>The role of formal development<br/>208 (1)<br/>Summary<br/>209 (6)<br/>Exercises<br/>210 (1)<br/>Answers to self test questions<br/>211 (1)<br/>Further reading<br/>211 (4)<br/>Part D Programming paradigms <br/>The programming language<br/>215 (50)<br/>Introduction<br/>215 (1)<br/>Design principles<br/>216 (2)<br/>Language syntax<br/>218 (3)<br/>Control abstractions<br/>221 (6)<br/>Data types and strong typing<br/>227 (11)<br/>Procedural abstraction<br/>238 (5)<br/>Abstract data types<br/>243 (6)<br/>Programming in the large<br/>249 (7)<br/>The role of programming languages<br/>256 (2)<br/>Summary<br/>258 (7)<br/>Exercises<br/>258 (2)<br/>Answers to self test questions<br/>260 (4)<br/>Further reading<br/>264 (1)<br/>Object-oriented programming (OOP)<br/>265 (21)<br/>Introduction<br/>265 (1)<br/>Encapsulation<br/>265 (2)<br/>Classes<br/>267 (1)<br/>Creating objects<br/>268 (1)<br/>Constructor methods<br/>269 (1)<br/>Destructor methods<br/>270 (1)<br/>Class or static methods<br/>270 (1)<br/>Inheritance<br/>271 (3)<br/>Single versus multiple inheritance<br/>274 (1)<br/>Polymorphism<br/>274 (1)<br/>Event-driven programming<br/>275 (1)<br/>Case study -- a complete Java program<br/>276 (4)<br/>The role of OOP<br/>280 (1)<br/>Summary<br/>281 (5)<br/>Exercises<br/>282 (2)<br/>Answers to self test questions<br/>284 (1)<br/>Further reading<br/>285 (1)<br/>Concurrent programming<br/>286 (35)<br/>Introduction<br/>286 (2)<br/>Independent threads<br/>288 (3)<br/>Dying and killing<br/>291 (1)<br/>The state of a thread<br/>292 (1)<br/>Scheduling and thread priorities<br/>293 (1)<br/>Mutual exclusion<br/>293 (3)<br/>Thread interaction<br/>296 (5)<br/>The producer--consumer problem<br/>301 (11)<br/>Interruptions<br/>312 (1)<br/>Deadlock<br/>313 (1)<br/>Conclusions<br/>314 (2)<br/>Summary<br/>316 (5)<br/>Exercises<br/>316 (2)<br/>Answers to self test questions<br/>318 (2)<br/>Further reading<br/>320 (1)<br/>Functional programming<br/>321 (17)<br/>Introduction<br/>321 (1)<br/>Procedural languages<br/>322 (2)<br/>Characteristics of functional programming<br/>324 (7)<br/>Other functional languages<br/>331 (2)<br/>The role of functional programming<br/>333 (2)<br/>Summary<br/>335 (3)<br/>Exercises<br/>336 (1)<br/>Answers to self test questions<br/>337 (1)<br/>Further reading<br/>337 (1)<br/>Logic programming<br/>338 (17)<br/>Introduction<br/>338 (2)<br/>Facts and rules<br/>340 (2)<br/>Execution mechanisms<br/>342 (6)<br/>Prolog in use<br/>348 (2)<br/>Conclusions<br/>350 (1)<br/>Summary<br/>351 (4)<br/>Exercises<br/>352 (1)<br/>Further reading<br/>352 (3)<br/>Part E Implementation <br/>Software tools<br/>355 (17)<br/>Introduction<br/>355 (1)<br/>Tools for programming<br/>356 (1)<br/>Not programming tools<br/>357 (1)<br/>Examples of tools<br/>357 (8)<br/>Discussion<br/>365 (1)<br/>Application development tools<br/>365 (4)<br/>The physical environment<br/>369 (1)<br/>Summary<br/>370 (2)<br/>Exercises<br/>371 (1)<br/>Answers to self test questions<br/>371 (1)<br/>Further reading<br/>371 (1)<br/>Verification<br/>372 (24)<br/>Introduction<br/>372 (1)<br/>The nature of errors<br/>373 (1)<br/>The problem of testing<br/>374 (1)<br/>Black box (functional) testing<br/>375 (2)<br/>White box (structural) testing<br/>377 (2)<br/>Walkthroughs and inspections<br/>379 (3)<br/>Other testing strategies<br/>382 (1)<br/>Discussion<br/>383 (2)<br/>System (integration) testing<br/>385 (1)<br/>Bottom-up testing<br/>386 (1)<br/>Top-down development<br/>387 (3)<br/>Summary<br/>390 (6)<br/>Exercises<br/>391 (2)<br/>Answers to self test questions<br/>393 (2)<br/>Further reading<br/>395 (1)<br/>Softwar fault tolerance and exceptions<br/>396 (22)<br/>Introduction<br/>396 (3)<br/>Fault detection by software<br/>399 (3)<br/>Fault detection by hardware<br/>402 (3)<br/>Dealing with damage<br/>405 (2)<br/>Exceptions and exception handlers<br/>407 (3)<br/>Recovery blocks<br/>410 (3)<br/>N-version programming<br/>413 (1)<br/>The role of fault tolerance<br/>414 (1)<br/>Summary<br/>414 (4)<br/>Exercises<br/>415 (2)<br/>Answers to self test questions<br/>417 (1)<br/>Further reading<br/>417 (1)<br/>Software metrics and quality assurance<br/>418 (12)<br/>Introduction<br/>418 (1)<br/>Complexity metrics<br/>419 (3)<br/>Faults and reliability -- estimating bugs<br/>422 (1)<br/>Software quality<br/>423 (2)<br/>Quality assurance<br/>425 (1)<br/>Process improvement<br/>426 (1)<br/>The capability maturity model (CMM)<br/>426 (1)<br/>Summary<br/>427 (3)<br/>Exercises<br/>428 (1)<br/>Answers to self test questions<br/>429 (1)<br/>Further reading<br/>429 (1)<br/>Project management<br/>430 (19)<br/>Introduction<br/>430 (1)<br/>The challenge of project management<br/>431 (1)<br/>The ingredients of project management<br/>431 (1)<br/>Cost estimation<br/>432 (2)<br/>Team organization<br/>434 (7)<br/>Selecting tools and methods<br/>441 (1)<br/>Introducing new methods<br/>442 (1)<br/>The project plan<br/>442 (1)<br/>Peopleware<br/>443 (1)<br/>Summary<br/>444 (5)<br/>Exercises<br/>444 (1)<br/>Further reading<br/>445 (4)<br/>Part F Review <br/>Review<br/>449 (14)<br/>Introduction<br/>449 (1)<br/>Assessing and comparing development methods<br/>450 (2)<br/>Software tools<br/>452 (1)<br/>Software re-usability<br/>452 (1)<br/>The current state of methods<br/>452 (1)<br/>A single development method?<br/>453 (1)<br/>The real world of software engineering<br/>454 (3)<br/>The question of skill<br/>457 (1)<br/>The future of software engineering<br/>457 (1)<br/>Summary<br/>458 (5)<br/>Exercises<br/>459 (1)<br/>Further reading<br/>460 (3)<br/>Appendix: An introduction to Java 463 (4)<br/>A.1 Variables and assignment<br/>463 (1)<br/>A.2 Control structures<br/>464 (1)<br/>A.3 Methods<br/>464 (1)<br/>A.4 Summary<br/>465 (2)<br/>Index 467 <br/>
546 ## - LANGUAGE NOTE
Language note eng
650 #0 - SUBJECT ADDED ENTRY--TOPICAL TERM
Topical Term Software engineering.
650 #0 - SUBJECT ADDED ENTRY--TOPICAL TERM
Topical Term Computer programming
942 ## - ADDED ENTRY ELEMENTS
Item type Book
Holdings
Withdrawn status Lost status Damaged status Not for loan Permanent Location Current Location Date acquired Source of acquisition Full call number Accession Number Copy number Price effective from Koha item type
        Mzumbe University Main Campus Library Mzumbe University Main Campus Library 03/10/2015 FST MU 005.1 BEL 0079464 1 12/12/2022 Book

Mzumbe University Library
©2022