
All About Software Engineering
Description
Book Introduction
In a nutshell, "Everything About Software Engineering" contains everything that turns a programmer into a software engineer.
While programmers simply code, software engineers have the ability to understand and execute all aspects of development.
Creating complex, intangible, and ever-changing software collaboratively requires engineering, much like constructing a building.
Engineering means the ability to work without failure by understanding and applying principles such as procedures, methods, design, testing, and quality.
It is difficult to create a software system using only an individual's coding skills.
This book is designed to help third- and fourth-year college students learn the basics of software design, development, and operation.
It includes all the following fundamentals presented in the Software Engineering Body of Knowledge (SWEBOK):
While programmers simply code, software engineers have the ability to understand and execute all aspects of development.
Creating complex, intangible, and ever-changing software collaboratively requires engineering, much like constructing a building.
Engineering means the ability to work without failure by understanding and applying principles such as procedures, methods, design, testing, and quality.
It is difficult to create a software system using only an individual's coding skills.
This book is designed to help third- and fourth-year college students learn the basics of software design, development, and operation.
It includes all the following fundamentals presented in the Software Engineering Body of Knowledge (SWEBOK):
index
CHAPTER 01 Introduction
01 Software
1 Software Features
2 Programming
02 Software Development
1 Basic Activities
2. Characteristics of development work
03 Software Engineering Approaches
1 Definition of Software Engineering
2 Goals of Software Engineering
04 Topics in Software Engineering
1-step process
2 Quality Assurance
3 Project Management
05 Advances in Software Engineering
Practice problems
CHAPTER 02 Process and Methodology
01 Software Life Cycle
02 Process
1 Process Definition
2 Process and Quality
03 Traditional Model
1. Waterfall model
2 Prototyping Models
3 Incremental and evolutionary models
4 Spiral Model
5 Component-based model
6 Unified Process
04 Agile Model
1. Characteristics of the Agile Model
2 Extreme Programming
3 crystals
4 Scrum
05 Methodology
1 Structural Methodology
2 Information Engineering Methodology
3 Object-oriented methodologies
Practice problems
CHAPTER 03 PROJECT PLANNING AND MANAGEMENT
01 Project Start
1 Project Value
2 Project Risks
3 Validity Analysis
02 Project Planning and Scheduling
1. Setting goals
2 Project Scope
3 WBS
4 Scheduling
03 Cost Estimation Techniques
1 COCOMO-81
2 COCOMO II
3 function points
4 COSMIC function points
04 Project Team Organization
1 Team Role
2 Organization by function
3 Project-specific organization
4 Matrix Organization
5 Agile Organizations
05 Execution and Monitoring
1 Project Execution
2 Project Monitoring
3-down chart
06 Risk Management
1. Identifying Risks
2 Risk Assessment
3 Risk Management
Practice problems
CHAPTER 04 Requirements Analysis
01 Request
1 Feature Requirement
2 Non-functional requirements
3 Classification by request target
02 Requirements Extraction
1 Source of requested information
2 Customer Presentation
3 Literature style survey
4 Interviews
5 Surveys
6 Brainstorming
7 Prototyping
03 Requirements Analysis
1 Required quality
2 Domain Analysis
3 Scenario-based analysis
04 Use Case 173
1 Use Case Diagram
2 Use Case Specification
3 Relationships between use cases
05 Requirements Specification
1 How to write
06 Requirements Verification
Practice problems
CHAPTER 05 Requirements Modeling
01 Modeling
1. Perspectives and Levels of Abstraction
2 Software and Modeling
Relationship between the three models
02 UML
1 UML diagram
2 Modeling Process
03 Static Modeling
1 Object-oriented concepts
2 class diagrams
04 Dynamic Modeling
1 Sequence Diagram
2 Communication Diagram
3 State Diagram
05 Control Modeling
06 Model Verification
Practice problems
CHAPTER 06 DESIGN PRINCIPLES
01 Basic Design Concepts
1 Subsystem, Module
2 Design Perspectives
3 Design Process
02 Quality Goals
03 Traditional design principles
1 Abstraction
2 Encapsulation
3 Modularization
4 combinations
5 Cohesion
04 Object-Oriented Design Principles
1. Principle of Single Responsibility
2. Principle of open closure
3. The Liskov Substitution Principle
4. Principle of interface separation
5 Principle of Dependency Reversal
05 Component Composition Principles
1 Control inversion
2 Package Design Principles
Practice problems
CHAPTER 07 Architectural Design and Patterns
01 Architecture Basics
1 What is architecture?
2 The Role of Architecture
3. Representation of architecture
02 Architectural Style
1 Client server type
2-tiered
3 Event-driven architecture
4 MVC
5 pipe filter
6 Data-Centric Architecture
7 Peer-to-Peer Style
8 Microkernel Styles
03 Design Patterns
1 Benefits of Design Patterns
2 Format of design patterns
3 Singleton Pattern
4 Iterator Patterns
5 Adapter Patterns
6 Decorator Patterns
7 Factory Method Pattern
8 Abstract Factory Pattern
9 state patterns
10 Observer Pattern
04 Architecture Evaluation
Practice problems
CHAPTER 08 UI Design
01 UI Basic Concepts
1 Usability
2 Mental Models
3 Feedback
4 constraints
02 UI Design Principles
03 UI Design Process
1 User Analysis
2 Task Analysis
3 UI Design and Implementation
4 Usability Testing
04 UI Elements
05 Screen and Output Design
1 screen design
2 Output Design
Practice problems
CHAPTER 09 Coding
01 Coding Task
1. Work process
2 Frequently occurring errors
02 Coding Standards
1 Naming conventions
2 formats
3 sentences and formulas
4 Error Handling
5 Comments
03 Generating code from design
1 Coding of associations
2 Coding of sequence diagrams
3 Coding the state diagram
04 Refactoring
1 Refactoring Concepts
2 Refactoring Process
3 Code Smell
4 Refactoring Cases
05 Code Quality Improvement Techniques
1 Code Inspection
2 Static analysis
3 Test-Driven Development
4 Pair Programming
Practice problems
CHAPTER 10 TEST
01 Test Basics
1 Bug, error, defect, malfunction
2 Testing Principles
3 Testing Work Process
4 Testing Phases
5 test cases
02 Black Box Test
1 Equivalent partitioning technique
2. Boundary value analysis
3 Cause and Effect Graph
03 White Box Testing
1. Representation of logical flow
2 Verification criteria
04 State-based testing
1 state machine
2 Select test cases
05 Integration Testing
1 Big Bang Integration
2 Top-down integration
3 Bottom-up integration
4 chain integration
06 System and Acceptance Testing
1 Function Test
2 Performance Tests
3 Security Tests
4 UI Testing
5 factor test
Practice problems
CHAPTER 11 MAINTENANCE
01 Maintenance Introduction
1 Reasons for change and types of maintenance
2 Lehman's Law
02 Maintenance Work Process
1 Maintenance work
2 Maintenance Process Model
3 Understanding the Program
4. Change Identification and Analysis
03 Shape Management
1. Purpose of Shape Management
2. Configuration Management Procedures
04 Reverse Engineering and Reengineering
1 Reverse engineering
2 Reengineering
05 Continuous Integration and Deployment
1 CI/CD
2 CI/CD pipelines
Practice problems
CHAPTER 12 QUALITY
01 Introduction
1 Quality Activity Level
2 Quality Concept
3 Software Quality
02 Quality Model
03 Quality Control
1 Quality Management Organization
2. Definition of Processes and Standards
3 Quality Control Activities
4 Inspection
04 Quality Measurement
1 Basic Measurement Concepts
2 Quality Metrics
05 Process Improvement
1 CMMI
2 SPICE
Practice problems
01 Software
1 Software Features
2 Programming
02 Software Development
1 Basic Activities
2. Characteristics of development work
03 Software Engineering Approaches
1 Definition of Software Engineering
2 Goals of Software Engineering
04 Topics in Software Engineering
1-step process
2 Quality Assurance
3 Project Management
05 Advances in Software Engineering
Practice problems
CHAPTER 02 Process and Methodology
01 Software Life Cycle
02 Process
1 Process Definition
2 Process and Quality
03 Traditional Model
1. Waterfall model
2 Prototyping Models
3 Incremental and evolutionary models
4 Spiral Model
5 Component-based model
6 Unified Process
04 Agile Model
1. Characteristics of the Agile Model
2 Extreme Programming
3 crystals
4 Scrum
05 Methodology
1 Structural Methodology
2 Information Engineering Methodology
3 Object-oriented methodologies
Practice problems
CHAPTER 03 PROJECT PLANNING AND MANAGEMENT
01 Project Start
1 Project Value
2 Project Risks
3 Validity Analysis
02 Project Planning and Scheduling
1. Setting goals
2 Project Scope
3 WBS
4 Scheduling
03 Cost Estimation Techniques
1 COCOMO-81
2 COCOMO II
3 function points
4 COSMIC function points
04 Project Team Organization
1 Team Role
2 Organization by function
3 Project-specific organization
4 Matrix Organization
5 Agile Organizations
05 Execution and Monitoring
1 Project Execution
2 Project Monitoring
3-down chart
06 Risk Management
1. Identifying Risks
2 Risk Assessment
3 Risk Management
Practice problems
CHAPTER 04 Requirements Analysis
01 Request
1 Feature Requirement
2 Non-functional requirements
3 Classification by request target
02 Requirements Extraction
1 Source of requested information
2 Customer Presentation
3 Literature style survey
4 Interviews
5 Surveys
6 Brainstorming
7 Prototyping
03 Requirements Analysis
1 Required quality
2 Domain Analysis
3 Scenario-based analysis
04 Use Case 173
1 Use Case Diagram
2 Use Case Specification
3 Relationships between use cases
05 Requirements Specification
1 How to write
06 Requirements Verification
Practice problems
CHAPTER 05 Requirements Modeling
01 Modeling
1. Perspectives and Levels of Abstraction
2 Software and Modeling
Relationship between the three models
02 UML
1 UML diagram
2 Modeling Process
03 Static Modeling
1 Object-oriented concepts
2 class diagrams
04 Dynamic Modeling
1 Sequence Diagram
2 Communication Diagram
3 State Diagram
05 Control Modeling
06 Model Verification
Practice problems
CHAPTER 06 DESIGN PRINCIPLES
01 Basic Design Concepts
1 Subsystem, Module
2 Design Perspectives
3 Design Process
02 Quality Goals
03 Traditional design principles
1 Abstraction
2 Encapsulation
3 Modularization
4 combinations
5 Cohesion
04 Object-Oriented Design Principles
1. Principle of Single Responsibility
2. Principle of open closure
3. The Liskov Substitution Principle
4. Principle of interface separation
5 Principle of Dependency Reversal
05 Component Composition Principles
1 Control inversion
2 Package Design Principles
Practice problems
CHAPTER 07 Architectural Design and Patterns
01 Architecture Basics
1 What is architecture?
2 The Role of Architecture
3. Representation of architecture
02 Architectural Style
1 Client server type
2-tiered
3 Event-driven architecture
4 MVC
5 pipe filter
6 Data-Centric Architecture
7 Peer-to-Peer Style
8 Microkernel Styles
03 Design Patterns
1 Benefits of Design Patterns
2 Format of design patterns
3 Singleton Pattern
4 Iterator Patterns
5 Adapter Patterns
6 Decorator Patterns
7 Factory Method Pattern
8 Abstract Factory Pattern
9 state patterns
10 Observer Pattern
04 Architecture Evaluation
Practice problems
CHAPTER 08 UI Design
01 UI Basic Concepts
1 Usability
2 Mental Models
3 Feedback
4 constraints
02 UI Design Principles
03 UI Design Process
1 User Analysis
2 Task Analysis
3 UI Design and Implementation
4 Usability Testing
04 UI Elements
05 Screen and Output Design
1 screen design
2 Output Design
Practice problems
CHAPTER 09 Coding
01 Coding Task
1. Work process
2 Frequently occurring errors
02 Coding Standards
1 Naming conventions
2 formats
3 sentences and formulas
4 Error Handling
5 Comments
03 Generating code from design
1 Coding of associations
2 Coding of sequence diagrams
3 Coding the state diagram
04 Refactoring
1 Refactoring Concepts
2 Refactoring Process
3 Code Smell
4 Refactoring Cases
05 Code Quality Improvement Techniques
1 Code Inspection
2 Static analysis
3 Test-Driven Development
4 Pair Programming
Practice problems
CHAPTER 10 TEST
01 Test Basics
1 Bug, error, defect, malfunction
2 Testing Principles
3 Testing Work Process
4 Testing Phases
5 test cases
02 Black Box Test
1 Equivalent partitioning technique
2. Boundary value analysis
3 Cause and Effect Graph
03 White Box Testing
1. Representation of logical flow
2 Verification criteria
04 State-based testing
1 state machine
2 Select test cases
05 Integration Testing
1 Big Bang Integration
2 Top-down integration
3 Bottom-up integration
4 chain integration
06 System and Acceptance Testing
1 Function Test
2 Performance Tests
3 Security Tests
4 UI Testing
5 factor test
Practice problems
CHAPTER 11 MAINTENANCE
01 Maintenance Introduction
1 Reasons for change and types of maintenance
2 Lehman's Law
02 Maintenance Work Process
1 Maintenance work
2 Maintenance Process Model
3 Understanding the Program
4. Change Identification and Analysis
03 Shape Management
1. Purpose of Shape Management
2. Configuration Management Procedures
04 Reverse Engineering and Reengineering
1 Reverse engineering
2 Reengineering
05 Continuous Integration and Deployment
1 CI/CD
2 CI/CD pipelines
Practice problems
CHAPTER 12 QUALITY
01 Introduction
1 Quality Activity Level
2 Quality Concept
3 Software Quality
02 Quality Model
03 Quality Control
1 Quality Management Organization
2. Definition of Processes and Standards
3 Quality Control Activities
4 Inspection
04 Quality Measurement
1 Basic Measurement Concepts
2 Quality Metrics
05 Process Improvement
1 CMMI
2 SPICE
Practice problems
Publisher's Review
In short, this book contains everything that turns a programmer into a software engineer.
While programmers simply code, software engineers have the ability to understand and execute all aspects of development.
Creating complex, intangible, and ever-changing software collaboratively requires engineering, much like constructing a building.
Engineering means the ability to work without failure by understanding and applying principles such as procedures, methods, design, testing, and quality.
It is difficult to create a software system using only an individual's coding skills.
This book is designed to help third- and fourth-year college students learn the basics of software design, development, and operation.
It includes all the following fundamentals presented in the Software Engineering Body of Knowledge (SWEBOK):
- Life cycle and development process to understand the overall picture of software design, development, and operation.
- Project management to understand and control software development plans and development processes.
- A technique for identifying, analyzing, and specifying user needs
- Techniques for modeling software from various perspectives
- Basic software design principles and concepts
- Architecture design, the skeleton of software, and design patterns of object-oriented programs
- Coding methods and various testing and verification techniques to improve quality
- Software quality concept and quality assurance activities to improve quality, product measurement, and process improvement.
To master the diverse and extensive range of software engineering techniques, you must have a good understanding of the basic concepts.
Starting from programming, difficult concepts such as design, modeling, process, and management are explained in an easy and systematic way with illustrations.
This book explains the procedures, methods, and tools for developing software using modern programming languages.
In particular, it introduces UML as a design and modeling representation method, design patterns that can be usefully applied to the programming process, and an agile process that reduces burdensome documentation work and focuses on coding and testing to develop software.
The expected readers include not only students taking major courses at university, but also engineers working in industry who want to improve their job skills.
From concepts and basic theories to practical applications, methods, tools, procedures, report formats, tests, etc. are explained using specific examples.
For the past 30 years, this book has served as a benchmark not only for students studying software engineering in Korea, but also for engineers in industrial settings, public institutions that commission and manage projects, and various tests that verify developers.
Therefore, among the various theories, methods, and tools covered in software engineering, we have continuously added and supplemented the latest technologies that developers need to know.
This book has tried to cover everything about software engineering, from understanding basic concepts to acquiring world-class software engineering skills and preparing for various qualification and employment exams.
What's added or changed in the revised edition
- The agile methods and processes that are increasingly being applied recently are described in more detail in Chapter 2 to reflect the trend.
- The technology for building servers is constantly and rapidly developing, and its design theory is also rapidly evolving.
It is developed in the form of a component-based assembly based on object-oriented design principles.
Therefore, component composition principles including clean architecture were added to Chapter 6.
- UX/UI is also being greatly influenced by the emergence of various interfaces and terminals and the advancement of client coding techniques.
This is reflected in Chapter 8.
- Continuous deployment and operation are required in a cloud operating environment.
Therefore, DevOps concepts, ranging from test automation to automated build and deployment, were added to Chapter 11.
- We have supplemented the content and introduced the latest past exam questions so that you can prepare for not only the Information Processing Engineer Exam and Civil Service Exam, which have been changed based on the NCS (National Competency Standards), but also the Information System Supervisor and Technical Engineer Exams.
While programmers simply code, software engineers have the ability to understand and execute all aspects of development.
Creating complex, intangible, and ever-changing software collaboratively requires engineering, much like constructing a building.
Engineering means the ability to work without failure by understanding and applying principles such as procedures, methods, design, testing, and quality.
It is difficult to create a software system using only an individual's coding skills.
This book is designed to help third- and fourth-year college students learn the basics of software design, development, and operation.
It includes all the following fundamentals presented in the Software Engineering Body of Knowledge (SWEBOK):
- Life cycle and development process to understand the overall picture of software design, development, and operation.
- Project management to understand and control software development plans and development processes.
- A technique for identifying, analyzing, and specifying user needs
- Techniques for modeling software from various perspectives
- Basic software design principles and concepts
- Architecture design, the skeleton of software, and design patterns of object-oriented programs
- Coding methods and various testing and verification techniques to improve quality
- Software quality concept and quality assurance activities to improve quality, product measurement, and process improvement.
To master the diverse and extensive range of software engineering techniques, you must have a good understanding of the basic concepts.
Starting from programming, difficult concepts such as design, modeling, process, and management are explained in an easy and systematic way with illustrations.
This book explains the procedures, methods, and tools for developing software using modern programming languages.
In particular, it introduces UML as a design and modeling representation method, design patterns that can be usefully applied to the programming process, and an agile process that reduces burdensome documentation work and focuses on coding and testing to develop software.
The expected readers include not only students taking major courses at university, but also engineers working in industry who want to improve their job skills.
From concepts and basic theories to practical applications, methods, tools, procedures, report formats, tests, etc. are explained using specific examples.
For the past 30 years, this book has served as a benchmark not only for students studying software engineering in Korea, but also for engineers in industrial settings, public institutions that commission and manage projects, and various tests that verify developers.
Therefore, among the various theories, methods, and tools covered in software engineering, we have continuously added and supplemented the latest technologies that developers need to know.
This book has tried to cover everything about software engineering, from understanding basic concepts to acquiring world-class software engineering skills and preparing for various qualification and employment exams.
What's added or changed in the revised edition
- The agile methods and processes that are increasingly being applied recently are described in more detail in Chapter 2 to reflect the trend.
- The technology for building servers is constantly and rapidly developing, and its design theory is also rapidly evolving.
It is developed in the form of a component-based assembly based on object-oriented design principles.
Therefore, component composition principles including clean architecture were added to Chapter 6.
- UX/UI is also being greatly influenced by the emergence of various interfaces and terminals and the advancement of client coding techniques.
This is reflected in Chapter 8.
- Continuous deployment and operation are required in a cloud operating environment.
Therefore, DevOps concepts, ranging from test automation to automated build and deployment, were added to Chapter 11.
- We have supplemented the content and introduced the latest past exam questions so that you can prepare for not only the Information Processing Engineer Exam and Civil Service Exam, which have been changed based on the NCS (National Competency Standards), but also the Information System Supervisor and Technical Engineer Exams.
GOODS SPECIFICS
- Date of issue: December 27, 2024
- Page count, weight, size: 608 pages | 190*240*35mm
- ISBN13: 9791192932965
- ISBN10: 119293296X
You may also like
카테고리
korean
korean