Software Engineering Overview Flashcards
Difference Between
Computer Science
and
Software Engineering
Computer Science is concerned with
Theory and Fundamentals.
Software Engineering is concerned with USING the concepts of CS to implement solutions to real world problems.
What is
Software?
An executable Computer Program
AND
The associated Documentation that describes operation and use of the program
What is
Software Engineering?
The application of specific
Theories, Methods and Tools
for the development of high quality software
“Layers”
of
Software Engineering
- “Quality” Focus
- Process Model
- Methods
- Tools
- Methods
- Process Model
ACM/IEEE-CS
8 Ethical Principles of Software Engineers:
Who/What to Respect
(Corresponding to each rule)
- Public
- Client/Employer
- Product
- Personal Judgement/Conscience
- Managers/Leaders
- The Profession of Software Engineering
- Colleagues
- Your Self
Attributes of
Good Software
- Provides all required functionality
- Meets required performance
- Maintainable
- Dependable
- Usable
Fundamental Ideas
of Software Engineering (4)
Process
Dependability
Requirements
Reuse
Fundamental Ideas
of Software Engineering:
Process
Process
Use a managed and understood development process
Fundamental Ideas
of Software Engineering:
Dependability
Dependability
Software should behave as expected,
be safe, secure, efficient and rarely fail
Fundamental Ideas
of Software Engineering:
Requirements
Requirements
Software should meet the requirements/specifications it is designed for.
(Unreasonable requirements should be a no-go)
Fundamental Ideas
of Software Engineering:
Reuse
Reuse
Software should make effective use of existing resources and reuse existing software when possible
Essential Steps of
Software Engineering Practice
Understand the Problem
- Communication and Analysis
- Requirements and Specification
Plan a Solution
- Modeling and Software Design
Carry Out the Plan
- Implement Code
Examine Results for Accuracy
- Testing and QA
Types of Applications (8)
- Stand-alone
- Run on a local computer
- Interactive Transaction-Based Applications
- On a remote computer, like a server
- Embedded Control Systems
- Batch Processing Systems
- Process data in large batches
- Entertainment
- Modeling/Simulation
- Data Collection Systems
- Systems of Systems
Two kinds of Software Products
Generic
Designed for general use, sold on the open market
Custom (bespoke)
Systems/software developed for a particular client, or in-house use