Podcast
Questions and Answers
A program is an executable code that solves a particular ______.
A program is an executable code that solves a particular ______.
problem
Software Engineering is the application of a systematic, disciplined, and ______ approach.
Software Engineering is the application of a systematic, disciplined, and ______ approach.
quantifiable
Software is a collection of not just executable codes only, but also other ______.
Software is a collection of not just executable codes only, but also other ______.
components
Engineering is the creative application of Science, Mathematics, and other technological ______.
Engineering is the creative application of Science, Mathematics, and other technological ______.
A Software Product is defined as a Software made for a specific ______.
A Software Product is defined as a Software made for a specific ______.
Software Engineering is the establishment and use of sound engineering principles to obtain economically reliable ______.
Software Engineering is the establishment and use of sound engineering principles to obtain economically reliable ______.
Fritz Bauer described Software Engineering as the practical application of scientific knowledge to the creative ______ and building of computer programs.
Fritz Bauer described Software Engineering as the practical application of scientific knowledge to the creative ______ and building of computer programs.
Software Engineers utilize engineering techniques to build ______.
Software Engineers utilize engineering techniques to build ______.
A developer can bypass SE Principle when writing ______ Programs.
A developer can bypass SE Principle when writing ______ Programs.
It is not possible for developers to bypass SE Principle when writing ______ Programs.
It is not possible for developers to bypass SE Principle when writing ______ Programs.
The principle of ______ simplifies the solution of a problem by omitting irrelevant details.
The principle of ______ simplifies the solution of a problem by omitting irrelevant details.
Another approach to tackle problem complexity is ______.
Another approach to tackle problem complexity is ______.
In the 1960s, many software projects ______.
In the 1960s, many software projects ______.
Software Demand was much higher than the ______.
Software Demand was much higher than the ______.
Every improvement in hardware capability led to a corresponding increase in software ______.
Every improvement in hardware capability led to a corresponding increase in software ______.
Resulting software was unreliable and expensive to ______.
Resulting software was unreliable and expensive to ______.
The emphasis on Software Project Management and Quality Processes like ISO 9001 occurred in the ______.
The emphasis on Software Project Management and Quality Processes like ISO 9001 occurred in the ______.
The growth of Computer-Aided Software Engineering (CASE) began in the ______.
The growth of Computer-Aided Software Engineering (CASE) began in the ______.
Widespread uses of software engineering principles started in the ______.
Widespread uses of software engineering principles started in the ______.
One of the major goals of software engineering is to ensure products are ______.
One of the major goals of software engineering is to ensure products are ______.
Myth 2 states that if we get behind schedule, we shall add more ______ to catch up.
Myth 2 states that if we get behind schedule, we shall add more ______ to catch up.
The unique attributes of software include being easy to ______.
The unique attributes of software include being easy to ______.
Domain experts have core knowledge of the software ______ area.
Domain experts have core knowledge of the software ______ area.
Realities about myths suggest that the company book of standards may not be ______.
Realities about myths suggest that the company book of standards may not be ______.
Adding more people to a late project could make it _____.
Adding more people to a late project could make it _____.
Beginning a program without an unambiguous Statement of Objectives (SOO) will lead to _____.
Beginning a program without an unambiguous Statement of Objectives (SOO) will lead to _____.
The major work begins after the project is _____.
The major work begins after the project is _____.
One of the most effective software quality assurance mechanisms is through the use of Formal Technical _____.
One of the most effective software quality assurance mechanisms is through the use of Formal Technical _____.
Working program is only a part of the software product; other deliverables such as ____ are equally important.
Working program is only a part of the software product; other deliverables such as ____ are equally important.
Project requirements could change, but the impacts could grow _____.
Project requirements could change, but the impacts could grow _____.
It is when I get the program running that I can really assess its _____.
It is when I get the program running that I can really assess its _____.
If a third party did not understand the project, it will not succeed in handling ____.
If a third party did not understand the project, it will not succeed in handling ____.
Flashcards are hidden until you start studying
Study Notes
Program, Software & Products
- A program is an executable code that solves a specific problem.
- Software is not just program code; it includes associated libraries, documentation, and other components.
- A software product is a software made for a specific requirement.
Engineering
- Engineering involves the conception and development of products using well-defined scientific principles and methods.
- It encompasses the creative application of science, mathematics, and other technological disciplines for the design, construction, and maintenance of structures, devices, systems, and processes to solve problems.
Software Engineering
- Software engineering utilizes engineering techniques to build software.
- It is an engineering branch focusing on developing software products using well-defined scientific principles, methods, and procedures.
Importance of Software Engineering
- Large programs can be complex and difficult to develop without software engineering principles.
- Complexity increases exponentially with program size.
Reducing Complexity
- Software engineering uses two techniques: abstraction and decomposition.
Abstraction
- Simplifies problem solving by omitting irrelevant details.
- Considers only relevant aspects for a specific purpose.
Decomposition
- Divides complex problems into smaller, independently solvable components.
- Combines solutions from smaller problems to get the complete solution.
Software Crisis
- The Software Crisis of the 1960s was a catalyst for the evolution of software engineering.
Issues Leading to the Software Crisis
- Many software projects failed.
- Software became over budget.
- Software was unreliable and expensive to maintain.
- Most software could not satisfy customer requirements.
- Software demand was higher than supply.
- Every hardware improvement led to increased software complexity.
Evolution of Software Engineering
- Step 1 (1970s): Widespread use of software engineering principles.
- Step 2 (1980s): Automation of software engineering processes and growth of computer-aided software engineering (CASE).
- Step 3 (1990s): Emphasis on software project management and quality processes like ISO 9001.
- Step 4 (2000 and above): Object-oriented software methodology, AI-enabled software techniques and tools.
Software Stakeholders
- End-users: Users or their representatives
- Customers: Those who purchase the software
- Analysts: Specialize in software analysis during development
- Domain Experts: Have core knowledge of the software usage area
- Implementers: Experts in software implementation
- Managers: In charge of Human and Resource management
- Maintainers: In charge of software maintenance
- Others: Many other stakeholders exist.
Goals of Software Engineering
- Efficient
- Reliable
- Usable
- Modifiable
- Maintainable
- Re-usable
- Portable
- Testable
- Interoperable
- Correct
Unique Attributes of Software
- Easy to modify.
- No physical wear and tear like hardware.
- Unskilled people can create software.
- Development efforts can be difficult to visualize.
- Easy to replicate.
Myths about Software Engineering
- Management Myths:
- Having a book of standards and procedures is enough for efficient programming.
- Adding more programmers to a late project will speed it up.
- Customer Myths:
- Outsourced software projects automatically succeed.
- A general statement of objectives is enough to start programming.
- Project development should be flexible enough to accommodate new requirements during development.
- Practitioner Myths:
- Once a program is working, the job is done.
- The quality of a program can only be assessed after it's running.
- The only deliverable that matters is a working program.
Reality vs. Myth
- Companies' standard books may not be complete, adaptable, or reflect modern SE practices.
- Adding programmers to a late software project can make it later.
- Outsourcing software without a clear understanding of the project can lead to failure.
- Starting programming without a clear statement of objectives can result in disaster.
- While changes are inevitable, their impact can grow significantly over time.
- Maintaining software is a significant part of the software lifecycle.
- Formal technical reviews from the start are essential for quality assurance.
- Besides working programs, documentation and other components are essential.
Question 1
- The difference between a program and software is that a program is a single executable code, while software is a collection of programs, libraries, documentation, and other components.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.