Podcast
Questions and Answers
Which activity involves writing detailed instructions on how the software should behave?
Which activity involves writing detailed instructions on how the software should behave?
What is the purpose of Domain analysis in software projects?
What is the purpose of Domain analysis in software projects?
What is the main purpose of separating 'what from how' in software activities?
What is the main purpose of separating 'what from how' in software activities?
Which phase involves narrowing down the scope of the problem in software projects?
Which phase involves narrowing down the scope of the problem in software projects?
Signup and view all the answers
What is the key function of Unified Modeling Language (UML) in software projects?
What is the key function of Unified Modeling Language (UML) in software projects?
Signup and view all the answers
What is the process of creating a representation of the domain or the software?
What is the process of creating a representation of the domain or the software?
Signup and view all the answers
Which activity involves creating representations of the domain or the software?
Which activity involves creating representations of the domain or the software?
Signup and view all the answers
What is the method used for creating representations during requirements analysis and design?
What is the method used for creating representations during requirements analysis and design?
Signup and view all the answers
Which activity involves deciding what should be in hardware and what in software?
Which activity involves deciding what should be in hardware and what in software?
Signup and view all the answers
What is the process of dividing the system into subsystems and deciding how they will interact?
What is the process of dividing the system into subsystems and deciding how they will interact?
Signup and view all the answers
Which activity focuses on estimating the cost of the system and planning?
Which activity focuses on estimating the cost of the system and planning?
Signup and view all the answers
What is one of the characteristics of software mentioned in the text?
What is one of the characteristics of software mentioned in the text?
Signup and view all the answers
In software development, why is the industry considered labor-intensive according to the text?
In software development, why is the industry considered labor-intensive according to the text?
Signup and view all the answers
What does the text suggest about modifying software?
What does the text suggest about modifying software?
Signup and view all the answers
How does software differ from tangible products in terms of 'wearing out'?
How does software differ from tangible products in terms of 'wearing out'?
Signup and view all the answers
What analogy does the text draw about 'software'?
What analogy does the text draw about 'software'?
Signup and view all the answers
Which characteristic of software makes it challenging to notice quality problems according to the text?
Which characteristic of software makes it challenging to notice quality problems according to the text?
Signup and view all the answers
Study Notes
Software Engineering
- Software is intangible, making it hard to understand development effort.
- Software is easy to reproduce, but the cost is in its development, unlike other engineering products where manufacturing is the costly stage.
- The software industry is labor-intensive, making it hard to automate.
Characteristics of Software
- Untrained people can hack something together, but quality problems are hard to notice.
- Software is easy to modify, but people make changes without fully understanding it.
- Software does not 'wear out', but deteriorates by having its design changed, making it complex.
Software Terminology
- "Software" is a mass noun, like "water" and "sand".
- Examples: "I will create some software to update the database", "a piece of software to update the database", or "a software system to update the database".
Activities Common to Software Projects
- Requirements and specification, which involves:
- Domain analysis: understanding the background needed.
- Defining the problem: narrowing down the scope of the problem.
- Requirements gathering: obtaining input from as many sources as possible.
- Requirements analysis: organizing the information.
- Requirements specification: writing detailed instructions about how the software should behave, separating what from how.
Design
- Deciding how the requirements should be implemented using available technology.
- Includes:
- Systems engineering: deciding what should be in hardware and what in software.
- Software architecture: dividing the system into subsystems and deciding how they interact.
- Detailed design of the internals of a subsystem.
- User interface design.
- Design of databases.
Other Activities
- Modeling: creating a representation of the domain or the software.
- Programming.
- Quality assurance, which includes reviews, inspections, and testing.
- Deployment.
- Managing software configuration.
- Managing the process, which includes estimating the cost of the system and planning.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Learn about the nature of software activities common to software projects, best practices in modeling with Unified Modeling Language, and the key activities involved in requirements and specification.