Podcast
Questions and Answers
What is the primary concern of software engineering?
What is the primary concern of software engineering?
Which type of software is developed for a single customer according to their specification?
Which type of software is developed for a single customer according to their specification?
What does computer science primarily focus on?
What does computer science primarily focus on?
Which discipline is concerned with all aspects of software production?
Which discipline is concerned with all aspects of software production?
Signup and view all the answers
How can new software be created?
How can new software be created?
Signup and view all the answers
What is the primary difference between software engineering and system engineering?
What is the primary difference between software engineering and system engineering?
Signup and view all the answers
What is a software process model?
What is a software process model?
Signup and view all the answers
What are the attributes of good software according to the text?
What are the attributes of good software according to the text?
Signup and view all the answers
What are the generic activities in all software processes according to the text?
What are the generic activities in all software processes according to the text?
Signup and view all the answers
What is CASE (Computer-Aided Software Engineering) according to the text?
What is CASE (Computer-Aided Software Engineering) according to the text?
Signup and view all the answers
Study Notes
- Software: A collection of computer programs and associated documentation, including requirements, design models, and user manuals. Software can be developed for specific customers or for a general market. Types of software include generic software like Excel or Word, and bespoke (custom) software developed for a single customer. New software can be created through developing new programs, configuring existing software, or reusing existing software.
- Software Engineering: An engineering discipline focused on producing software. Software engineers should adopt a systematic approach, using appropriate tools and techniques. Differences between software engineering and computer science: Computer science deals with theory and fundamentals while software engineering focuses on practical software development. Theories of computer science do not fully underpin software engineering.
- Software Engineering vs System Engineering: System engineering deals with all aspects of computer-based systems development, including hardware, software, and processes. Software engineering is a part of this process, responsible for developing software infrastructure, control, applications, and databases within the system. System engineers handle system specification, architectural design, integration, and deployment.
- Software Process: A set of activities aimed at developing or evolving software. Activities include specification, development, validation, and evolution.
- Software Process Model: A simplified representation of a software process, presented from a specific perspective. Common process perspectives include workflow, data-flow, and role/action. Generic process models include Waterfall, Iterative Development, and Component-Based Software Engineering.
- Computer-Aided Software Engineering (CASE): Systems designed to support software process activities. Upper-CASE tools focus on early process activities, such as requirements and design, while Lower-CASE tools support later activities, like programming, debugging, and testing.
- Good Software Attributes: Software should meet user requirements, offer desired performance, maintainability, dependability, efficiency, and acceptability. Maintainability refers to adapting software to changing needs; dependability ensures trustworthiness; efficiency reduces wasteful resource use; and acceptability means software must be understood, usable, and compatible with other systems.
- Challenges in Software Engineering: Heterogeneity, delivery, and trust. Heterogeneity requires techniques to build software for diverse platforms and execution environments; delivery focuses on faster software delivery; trust involves demonstrating software trustworthiness.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Learn about the fundamentals of software engineering, including the definition of software, types of software products, and associated documentation. Explore the differences between generic and bespoke software development.