Buy The Engineering of Software by Dick Hamlet at Bookstore UAE
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Home > Computing and Information Technology > Computer programming / software engineering > Software Engineering > The Engineering of Software: A Technical Guide for the Individual
The Engineering of Software: A Technical Guide for the Individual

The Engineering of Software: A Technical Guide for the Individual


     0     
5
4
3
2
1



Out of Stock


Notify me when this book is in stock
X
About the Book

Focuses on actual code development and teaches technical skills in requirements, analysis, design and testing. *Helps students make the transition from lower-level courses in which assignments are program oriented to final year level courses that are project oriented. *Covers fundamental software techniques - practical requirements analysis, design methods and notations, test planning, and testing. *Introduces the important aspects of formalism as well as the pragmatics of implementing just the right amount of formalism. *Includes discussion of basic management issues and their impact on technical software development. *Provides coverage of contemporary topics like Capability Maturity Model, and Java, as well as practical issues surrounding automated and Regression testing, and Safety for mission critical projects. *Includes detailed presentations of alternative design methods, with an example of each carried through implementation. The methods are: pseudocode, SA/SD (Dataflow diagrams), Object-oriented design (CRC), abstract datatypes, and finite state machines. *Emphasizes the social responsibilities of software professionals. *Contains exercises at the end of each chapter (with selected solutions to exercises) to allow the reader to test understanding of the material. *Each chapter has an annotated set of bibliographic citations for further reading.

Table of Contents:
I. ENGINEERING AND SOFTWARE. 1. Concepts of Software Development. Separation of Concerns. Management vs. Technical. Teamwork vs. Individual effort. Different Tasks—Development Phases. Phases of the Software Life Cycle. Information Exchange Between Developer and End User. Complete Problem Description (Developer Only). Break Down into Detailed Assignments for Programming. Programming. Testing. Changing the Program. Naming the Development Phases. The Business of Developing Software. Time to Market. Perceived Software Quality. The Software Development Team. Managing Development. How Does It Fit? Review Questions. Further Reading. References. 2. Some Principles of Software Development. Intellectual Control. Complexity and Control. Language Betrays Us. Divide and Conquer. Independent Parts. 7+-2 Rule. Hierarchies. Know When to Stop. Identify the "Customers". Fuzzy into Focus. Document it! Record It or It's Lost. Know What You've Assumed. Traceability. A (Document) Place for Everything and Everything in Its Place. Documentation Isn't a Novel. Input/Output is the Essence of Software. Too Much Engineering Is Not a Good Thing. If It Ain't Broke Don't Fix It. The "Creeping Feature Creature". Expect to deal with change. Plan for it. Fix it now. Reuse past work. Previous work well done is golden. Create software so that reuse is possible. Don't reinvent the wheel. Take responsibility. Summary of software engineering principles. How Does It Fit? Review Questions. Further Reading. References. 3. Is it Really Engineering? What's Different about Software? Artificial Science. The Analogy to Other Professions. Civil Engineering. Architecture. Mechanical/Aeronautical Engineering. Computer (Hardware) Engineering. Medicine. Responsibility of Software Developers. Engineering Institutions. Market forces. The legal system. Warranties. Professional organizations. Government regulation. Professional engineers and accreditation. "Software engineers" are legal only in Texas. How Does It Fit? Review Questions. Further Reading. References. 4. Management and Process. The Controversy over "Process". Fred Taylor's Scientific Management. Program Development as a Formal Process. Capability Maturity Model (CMM). Process management isn't for every organization. Engineering Management. Metrics. Estimation models. Feedback from metrics. How Does It Fit? Review Questions. Further Reading. References. 5. The "Life Cycle" of Software. Alternatives to the Waterfall Model. The spiral model. Exploratory programming. Opportunistic development. The Phases of Development. Requirements. Specification. Design. Code. Testing. Software inspection. Inspection works. The participants and the procedure. Inspection is expensive. What can an individual do? Maintenance Throughout the Lifecycle. Debugging. Configuration management. Managing a Development Lifecycle. Progress reports. Dividing effort among the phases. How Does It Fit? Review Questions. Further Reading. References. 6. The Test Plan. Functional testing. System-level functional testing. Functional unit testing. Normal vs. exception test cases. Broken-box testing. Fault-based testing. An example. Interface testing. Boundary-value tests. Test plan throughout the lifecycle. Adding systematic testing to the plan. After testing. How Does It Fit? Review Questions. Further Reading. References. II. REQUIREMENTS AND SPECIFICATION. 7. Requirements. Exploring Requirements. Requirements describe a software transform. Identification of system inputs and output. Partitioning inputs and outputs. Exploring relationships between inputs and outputs. From requirements to the test plan. Example: Printing Trees. Pinning down the output format. The input format. Specifications that are not of concern to the user. Commentary on the example. Software "modes". Rapid Prototyping. Managing the Requirements Phase. How Does It Fit? Review Questions. Further Reading. References. 8. Properties of Good Requirements. Understandable by end users. Non-prescriptive. Correct. Complete. Concise (succinct). Precise. Clear. Unambiguous. Consistent. Traceable. Modifiable. Testable (verifiable). Feasible. Summary: how to write requirements? How Does It Fit? Review Questions. Further Reading. References. 9. Specification. Customers and Their Needs. Sharpening Requirements into Specifications. When the end user "doesn't care". Internal ("system") errors. Using a specification as a test oracle. Writing a specification only to discard it. The Uses of Formalism. Informal formalism. The opportunity to verify. Formal Specification and Design Methods. Finite-state-machine design. Object-oriented design. Design with data-flow diagrams. How Does It Fit? Review Questions. Further Reading. References. 10. Formal Methods. Specification Languages. Enabling human talent. Hard-to-use mathematics. First-order Predicate Logic. Example: sorting. A first try. Restricting the input. Second try. "Programming" a Specification. Prolog: a quick introduction. Prolog as a specification language. Prolog and first-order logic-correct specifications. The Controversy Over "Formal Methods". Dangerous software. Can formal methods make software safe? Mathematical precision for its own sake. Mathematical precision for proof. The Formal Methodists' dream. The "agnostic" position. Formal specifications as automatic oracles. How Does It Fit? Review Questions. Further Reading. References. III. DESIGN AND CODING. 11. Software Design. Purposes of Design. What Is a Design? General Design Ideas. Iterative Enhancement. Step-wise Refinement. Information Hiding. Adding to the Test Plan in Design. The Designer's Art. By Engineers for Engineers. From Requirements to Design. Common, Needed Functions. Major Data Structures. Major Algorithms. High-level ("Architectural") Design. Designing Major Subsystems. Traceability Matrices. Subsystem Interfaces. Environment Interface. Detailed Design. Decomposition of Subsystems into Modules. Designing Major Modules of a Subsystem. Defining Module Interfaces. Specifying the Module Functions. Module Documentation. Formal Notations for Design. Architectural Diagrams. Design Formalisms. How Does It Fit? Review Questions. Further Reading. References. 12. Coding. Programming Languages. Strong Typing. User-defined Types. Encapsulation for Data Abstractions. Run-time Checking. Program Redundancy Checking. Assertions. And When a Problem is Caught-What Then? Macro Capability. Programming-language Libraries. Error-prone Programming Language Constructions. Choosing a Programming Language. Languages for Rapid Prototyping. Support Tools for Programming. Language Analyzers-LCLint. File Utilities. Shell Command Scripts. grep Searches. Programmed Searches and Edits. Comparing Files. The make Utility. Version-control Tools. Adding to the Test Plan while Coding. How Does It Fit? Review Questions. Further Reading. References. 13. Pseudocode. Designing with Pseudocode. Example of Pseudocode: Zipf's Law. Test Plan for the Zipf's Law Software. Implementing Pseudocode. C Implementation of Zipf's Law. Implementing Zipf's Law in a Shell Script. How Does It Fit? Review Questions. Further Reading. References. 14. Finite-state Machines. Designing with FSMs. Formal Finite-state Automata. Example FSM: the C scanf() Conversion. Designing a Simple GUI as an FSM. Test Plan for the GUI. Model Checking. Coding an FSM Design. Implementation Techniques. Implementing Transgressions of FSM Formalism. How Does It Fit? Further Reading. References. 15. Abstract Data Types (ADTs). Hiding Design Decisions. ADT Signatures and Axioms-Boolean Example. Signature Diagram. Algebraic Axioms. Encapsulation and C. Example: the ADT "IntSet". Signature for IntSet. English Specification. Design of IntSet. Testing IntSet. Implementing an ADT. Implementing a Boolean ADT. Encapsulation: Header Files. Correctness of ADT implementations. Implementing the IntSet ADTinC. Instrumenting the ADT's Memory Allocation. Local Variables of the ADT Type. How Does It Fit? Review Questions. Further Reading. References. 16. Object-oriented Design. Real Objects and Software Objects. What is a Software Object? The Object Paradigm. Object-oriented requirements. Modeling the physical world. The role of requirements. Booch method. Shlaer-Mellor method. Class-Responsibilities-Collaboration (CRC) Method. Example: A checkbook system. Identification of classes and patterns. Identification of Responsibilities. Identification of collaborators. Polymorphism and Inheritance. Identification and Use of Persistent Data. Checking an Object Design for Implementation. Object-oriented languages. Smalltalk. C++. Java. A brief introduction to Java. Objects and Classes. Methods and parameters. Inheritance and polymorphism. Implementation of the Checkbook. Implementation of the Account class. Implementation of the Transaction and Check classes. How Does It Fit? Review Questions. Further Reading. References. 17. Data-flow Diagrams. Elements of data-flow diagrams. Data transforms. Information flows. Information sources and sinks. Information stores. Example DFDs: a payroll system. Refining DFDs. Heritage numbers. DFD terminology. The data dictionary. Checking DFDs - CASE tools. Structure charts. The Central Transform. Constructing Structure Charts. Example Construction. Implementing a DFD. How Does It Fit? Review Questions. Further Reading. References. 18. Wrapping up Design and Coding. Additional Design Ideas. The Universal Modeling Language (UML). Client-server Design. Choosing Design Techniques. Recognizing a Design. Which Formal Technique(s) Should I Use? Wrapping Up the Code. Documenting Choices. Defensive Coding. Managing the Design and Coding Phases. How Does It Fit? Review Questions. Further Reading. References. IV. TESTING. 19. Software Testing. Get Out the Test Plan. What Should Testing Accomplish? The Testing Process: Unit Testing Versus System Testing. Unit testing. Test harness and stubs. Subsystem testing. System testing. Inspection vs. testing. Managing the Testing Phase. How Does It Fit? Review Questions. Further Reading. References. 20. Coverage - "Systematic" Testing. Dividing the input space for failure search. Functional (specification-based, blackbox) testing. Structural (code-based) testing. Generating Code-Based Tests. Misleading the tester. Test oracles. Structural Test Adequacy and Marick's Recommendation. Variations on Coverage Testing. Control-flow graphs and their coverage. Path coverage. Branch coverage. Testing "tools". Tools to manage the testing process. Structural-coverage measuring tools. More Complex Structural Coverage Criteria. Dataflow Coverage. Mutation Coverage. Which Coverage Is Best? The "Subsumes" Relationship. Choosing a Testing Method in Practice. How Does It Fit? Review Questions. Further Reading. References. 21. The Future of Testing. Random testing. User profile. Random input values. An ideal example of random testing. Predicting Software Quality. Reliability. Dependability. Automated Testing. Regression Testing. State of the Software Testing Art. How Does It Fit? Review Questions. Further Reading. References. Answers and Hints for Selected Exercises. Index.


Best Sellers


Product Details
  • ISBN-13: 9780201701036
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Pearson
  • Height: 242 mm
  • No of Pages: 494
  • Sub Title: A Technical Guide for the Individual
  • Width: 185 mm
  • ISBN-10: 0201701030
  • Publisher Date: 31 Oct 2000
  • Binding: Hardback
  • Language: English
  • Spine Width: 29 mm
  • Weight: 915 gr


Similar Products

Add Photo
Add Photo

Customer Reviews

REVIEWS      0     
Click Here To Be The First to Review this Product
The Engineering of Software: A Technical Guide for the Individual
Pearson Education (US) -
The Engineering of Software: A Technical Guide for the Individual
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

The Engineering of Software: A Technical Guide for the Individual

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    Fresh on the Shelf


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!