LIMITED OFFER
Save 50% on book bundles
Immediately download your ebook while waiting for your print delivery. No promo code needed.
Software Engineering: Architecture-driven Software Development is the first comprehensive guide to the underlying skills embodied in the IEEE's Software Engineering Body of Knowle… Read more
LIMITED OFFER
Immediately download your ebook while waiting for your print delivery. No promo code needed.
Software Engineering: Architecture-driven Software Development is the first comprehensive guide to the underlying skills embodied in the IEEE's Software Engineering Body of Knowledge (SWEBOK) standard. Standards expert Richard Schmidt explains the traditional software engineering practices recognized for developing projects for government or corporate systems.
Software engineering education often lacks standardization, with many institutions focusing on implementation rather than design as it impacts product architecture. Many graduates join the workforce with incomplete skills, leading to software projects that either fail outright or run woefully over budget and behind schedule.
Additionally, software engineers need to understand system engineering and architecture—the hardware and peripherals their programs will run on. This issue will only grow in importance as more programs leverage parallel computing, requiring an understanding of the parallel capabilities of processors and hardware. This book gives both software developers and system engineers key insights into how their skillsets support and complement each other. With a focus on these key knowledge areas, Software Engineering offers a set of best practices that can be applied to any industry or domain involved in developing software products.
Software developers, project managers, systems engineers, and students studying these disciplines
A Note from the Author
Preface
Book outline and subject matter
Section 1: Software Engineering Fundamentals
Section 1. Software Engineering Fundamentals
Systems engineering principles and practices
Summary
Chapter 1. Introduction to Software Engineering
1.1 Specifying software requirements
1.2 Software architecture
1.3 Integrated product and process development
1.4 Integrated product teams
1.5 Work breakdown structure
1.6 Software breakdown structure
1.7 Specification and documentation trees
1.8 Integrated master plan and schedule
1.9 Reviews and audits
1.10 Configuration management and change control
1.11 Trade-off analysis
1.12 Risk management
1.13 Modeling and simulation
Chapter 2. Generic Software Development Framework
2.1 Software breakdown structure
2.2 Software development process
2.3 Summary
Chapter 3. Software Architecture
3.1 Stakeholder needs relationships and dependencies
3.2 Software requirements baseline relationships and dependencies
3.3 Computing environment relationships and dependencies
3.4 Test and evaluation relationships and dependencies
3.5 Functional architecture relationships and dependencies
3.6 Physical architecture relationships and dependencies
3.7 Post-development process relationships and dependencies
3.8 Motivation for the software architecture
Chapter 4. Understanding the Software Project Environment
4.1 Integrated product teams
4.2 Software architecture
4.3 Complexity control mechanisms
4.4 Software nomenclature registry
4.5 Software integration strategy
4.6 Project and technical planning
Chapter 5. Software Integrated Product and Process Development
5.1 Application of IPPD to software
5.2 Software engineering and development
Chapter 6. Impediments to Software Design
6.1 Software as a raw material
6.2 Evolution of software technologies
6.3 Architecture-driven software development
Section 2: Software Engineering Practices
Section 2. Software Engineering Practices
Developing the software product architecture
Chapter 7. Understanding Software Requirements
7.1 Step 1: Soliciting stakeholder needs and expectations
7.2 Step 2: Requirement analysis and specification
7.3 Step 3: Task definition and scheduling
7.4 Step 4: Resource identification, estimation, and allocation
7.5 Step 5: Establish organizational work packages
7.6 Step 6: Technical planning
7.7 Step 7: Project planning
7.8 Exploring stakeholder needs
Chapter 8. Software Requirements Analysis Practice
8.1 Project analysis tasks
8.2 Operational analysis tasks
8.3 Product analysis tasks
8.4 Sustainment analysis tasks
8.5 Project assessment tasks
8.6 Establish the requirements baseline
Chapter 9. Software Requirements Management
9.1 Embracing change
9.2 Specifying requirements
9.3 Requirement decomposition and allocation
9.4 Requirement traceability
Chapter 10. Formulating the Functional Architecture
10.1 Motivation for the functional architecture
10.2 Functional architecture ontology
10.3 Conceiving the functional architecture
10.4 Documenting the functional architecture
Chapter 11. Functional Analysis and Allocation Practice
11.1 Assess functional complexity
11.2 Behavioral analysis
11.3 Performance allocation
11.4 Architectural assessment
11.5 Establish the functional architecture
Chapter 12. Configuring the Physical Architecture
12.1 Structural design solution
12.2 Structural design considerations
Chapter 13. Software Design Synthesis Practice
13.1 Design conceptualization
13.2 Design resolution
13.3 Design correlation
13.4 Design manifestation
13.5 Prepare the software technical data package
Chapter 14. Software Analysis Practice
14.1 Defining the trade study
14.2 Establish the trade-study environment
14.3 Conduct the analysis
14.4 Assess project repercussions
14.5 Evaluate trade-study results
Chapter 15. Software Verification and Validation Practice
15.1 Define the V&V strategy
15.2 Verify the software architecture
15.3 Validate the physical architecture
15.4 Document V&V results
Chapter 16. Software Control Practice
16.1 Configuration administration
16.2 Process engineering change packages
16.3 Change evaluation
16.4 Change assimilation
16.5 Software repository control
Section 3: Stages of Software Engineering Application
Section 3. Stages of Software Engineering Application
Chapter 17. Software Requirements Definition
17.1 Products of software requirements definition
17.2 Software engineering integrated product team (software requirements definition stage)
17.3 Software implementation (software requirements definition stage)
17.4 Computing environment preparation (software requirements definition stage)
17.5 Post-development process implementation (software requirements definition stage)
17.6 Software test and evaluation (software requirements definition stage)
17.7 Reviews, milestones, and baselines (software requirements definition stage)
Chapter 18. Software Architecture Definition
18.1 Preliminary architecture definition
18.2 Detailed architecture definition
Chapter 19. Software Implementation
19.1 Products of software implementation
19.2 Software engineering tasks (software implementation stage)
19.3 Software implementation tasks (software implementation stage)
19.4 Computing environment tasks (software implementation stage)
19.5 Post-development process tasks (software implementation stage)
19.6 Software test and evaluation tasks (software implementation stage)
19.7 Reviews and milestones (software implementation stage)
Chapter 20. Software Acceptance Testing
20.1 Products of software acceptance testing
20.2 Software engineering (software acceptance testing stage)
20.3 Software implementation organization (software acceptance testing stage)
20.4 Computing environment implementation organization (software acceptance testing stage)
20.5 Post-development process organization (software acceptance testing stage)
20.6 Software test and evaluation (software acceptance testing stage)
20.7 Reviews and milestones (software acceptance testing stage)
20.8 Establish the software product baseline
Index
RS