Skip to content

Software Engineering Design Theory and Practice

Best in textbook rentals since 2012!

ISBN-10: 1439851689

ISBN-13: 9781439851685

Edition: 2012

Authors: Carlos Otero

List price: $80.00
Shipping box This item qualifies for FREE shipping.
Blue ribbon 30 day, 100% satisfaction guarantee!
Rent eBooks
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Description:

Taking a learn-by-doing approach to software design, this text offers a blend of theory and practice to provide students and practitioners key concepts relevant to today’s software designers. The book contains examples, review questions, lab exercises, and case studies in order to illustrate real-world problems. Each topic begins with the exploration of the issue, the step-by-step execution of the design solution using a modern design tool, and the evaluation, discussion, and justification for using a particular solution. Also included are course notes, exercises with answers, an online course, and instructor’s manual.
Customers also bought

Book details

List price: $80.00
Copyright year: 2012
Publisher: Taylor & Francis Group
Publication date: 10/22/2012
Binding: Hardcover
Pages: 368
Size: 7.00" wide x 10.00" long x 0.75" tall
Weight: 1.782
Language: English

Introduction to Software Engineering Design
Chapter Objectives
Conceptual Overview
Engineering Design
Engineering Problem Solving
Initial State
Operational State
Thinking about the Problem
Problem Solution
Goal State
Software Engineering Design
Why Study Software Engineering Design?
Reasons for Studying Software Design in Product Development
Reasons for Studying Software Design in Project Management
Software Design Challenges
Design Challenge
Requirements Volatility
Design Challenge
Process
Design Challenge
Technology
Design Challenge
Ethical and Professional Practices
Design Challenge
Managing Design Influences
Stakeholders
Development Organization's Structure
Context of Software Design
Software Design Process
Software Architecture
Detailed Design
Interface Design
Component Design
Construction Design
Human-Computer Interface Design
Software Design Documentation
Software Design Management
Roles of the Software Designer
Systems Engineer
Software Architect
Component Designer
Software Design Fundamentals
General Software Design Principles
Modularization
Abstraction
Encapsulation
Coupling
Cohesion
Separation of Interface and Implementation
Completeness and Sufficiency
Practical Software Design Considerations
Design for Minimizing Complexity
Design for Change
Software Design Strategies
Structured Design
Object-Oriented Design
Chapter Summary
Review Questions
References
Software Design with Unified Modeling Language
Chapter Objectives
Conceptual Overview
What Is UML?
Why Study UML?
The UML's Fundamentals
Structural Modeling
Component Diagrams
Logical versus Physical Components
Class Diagrams
Classes
Name Compartment
Attribute Compartment
Operation Compartment
Relationships
Dependency
Association
Aggregation
Composition
Generalization
Realization
Deployment Diagrams
Behavioral Modeling
Use Case Diagrams
Interaction Diagrams
Communication Diagrams
Sequence Diagrams
Concurrency in Interaction Diagrams
Chapter Summary
Review Questions
Chapter Exercises
References
Principles of Software Architecture
Chapter Objectives
Conceptual Overview
What Is Software Architecture?
Why Study Software Architecture?
Key Tasks in Architectural Design
Identifying Stakeholders' Concerns
Identifying Appropriate Architectural Views
Identifying Architectural Styles and Patterns
Identifying System Interfaces
Identifying Impact of Architectural Decisions in Organization
Impact on Customer Base
Impact on Budget and Schedule
Impact from Resource Availability
Identifying the System's Major Components and Interfaces
Evaluating and Validating the Architecture
Introducing Policies for Design Synchronicity
Problem Solving in Software Architecture
Inputs
Constraints
Outputs
Software Architecture Process
Understand and Evaluate Requirements
Elicitation
Requirement Sources
Elicitation Techniques
Analysis
Specification and Validation
Specific
Correct
Complete
Consistent
Attainable
Verifiable
Designing the Architecture
The 4 + 1 View Model
User View
Process View
Physical View
Development View
Logical View
Components and Connectors
Designing Logical Architectural Elements Using Data Flows
Designing Logical Architectural Elements Using Styles and Patterns
Designing the Process Architecture
Processes
Threads
Evaluating the Architecture
Chapter Summary
Review Questions
Chapter Exercises
References
Patterns and Styles in Software Architecture
Chapter Objectives
Conceptual Overview
Architectural Styles and Patterns
History of Architectural Styles and Patterns
Architectural Pattern Classification
Data-Centered Systems
Blackboard Pattern
Data Flow Systems
Pipe and Filter Pattern
Distributed Systems
Client-Server Pattern
Broker Pattern
Interactive Systems
Model-View-Controller Pattern
Hierarchical Systems
Main Program and Subroutine
Layered Pattern
Chapter Summary
Review Questions
Chapter Exercises
References
Principles of Detailed Design
Chapter Objectives
Conceptual Overview
What Is Detailed Design?
Key Tasks in Detailed Design
Detailed Design Process
Understanding the Architecture and Requirements
Creating Detailed Designs
Interface Design
External Interface Design
Internal Interface Design
Graphical User Interface Design
Designing Internal Structure of Components
Classes
Interfaces, Types, Subtypes, Dynamic Binding, and Polymorphism
Objects
Design Principles for Internal Component Design
Open-Closed Principle
Liskov Substitution Principle
Interface Segregation Principle
Programming Styles in Detailed Design
Function Names
Variable Names
Modeling Internal Behavior of Components
Design Components Using Design Patterns
Architectural versus Design Patterns
Classification of Design Patterns
Documenting Design Patterns
Document the Software Design
Interface Control Document
Software Version Document
Monitor and Control Implementation
Chapter Summary
Review Questions
Chapter Exercises
References
Creational Design Patterns in Detailed Design
Chapter Objectives
Conceptual Overview
Creational Design Patterns
Abstract Factory
Problem
Structure
Implementation
Benefits
Factory Method
Problem
Structure
Implementation
Benefits
Builder
Problem
Structure
Implementation
Benefits
Prototype
Problem
Structure
Implementation
Benefits
Singleton
Problem
Structure
Implementation
Benefits
Chapter Summary
Review Questions
Chapter Exercises
Reference
Structural and Behavioral Patterns in Detailed Design
Chapter Objectives
Conceptual Overview
Structural Design Patterns
Adapter
Problem
Structure
Implementation
Benefits
Composite
Problem
Structure
Implementation
Benefits
Facade
Problem
Structure
Implementation
Benefits
Behavioral Design Patterns
Iterator
Problem
Structure
Implementation
Benefits
Observer
Problem
Structure
Implementation
Benefits
Chapter Summary
Review Questions
Chapter Exercises
Reference
Principles of Construction Design
Chapter Objectives
Conceptual Overview
What Is Construction Design?
Why Study Construction Design?
Behavioral Construction Design
Flow-Based Designs
State-Based Designs
Table-Based Designs
Limited-Entry Decision Table
Extended-Entry Decision Table
Mixed-Entry Decision Table
Table-Based Construction
Programming Design Language
Software Construction Using Styles
Formatting Conventions
Indentation
Brace Placement
Naming Conventions
Documentation Conventions
Documenting Files
Documenting Functions
Minimizing Complexity in Construction Design
Quality Evaluation of Construction Design
Peer Reviews
Unit Testing
Cyclomatic Complexity
Chapter Summary
Review Questions
Chapter Exercises
References
Human-Computer Interface Design; Jacob Somervell
Chapter Objectives
Conceptual Overview
What Is Human-Computer Interface Design?
Why Study Human-Computer Interface Design?
General HCI Design Principles
Human-Computer Interface Design Methods
Getting Started
Fidelity in Prototypes
Metaphors
Gestalt Principles
Reusing Earlier Designs
Evaluation of HCI Quality
Usability Testing
Analytic Testing
Empirical Testing
Chapter Summary
Review Questions
Chapter Exercises
References
Software Design Management, Leadership, and Ethics; Luis Daniel Otero
Chapter Objectives
Conceptual Overview
What Is Software Design Management?
Why Study Design Management?
The Concept of Quality
Design Management Framework
Planning Design Efforts
Scoping
Work Breakdown Structure
Budgeting
Organizing
Linear Responsibility Chart
Scheduling with Gantt Charts and Network Diagrams
Probability of Time to Completion
Establish Change Control Policy
Implementation Phase
Earned Value Management
Termination Stage
Leading the Design Effort
Personality Traits and Leadership
Personality Dimensions
Traits of Effective Leaders
Ethical Leadership
Power
Key Leadership Skills
Communication Skills
Networking Skills
Motivation Skills
Negotiation Skills
Ethics in Software Design
Public and Product Principles
Judgment Principle
Management Principle
Chapter Summary
Review Questions
Chapter Exercises
References
Index