Podcast
Questions and Answers
What percentage of application development costs is considered wasted due to projects getting abandoned or reworked?
What percentage of application development costs is considered wasted due to projects getting abandoned or reworked?
What is the average cost overrun percentage documented?
What is the average cost overrun percentage documented?
Which of the following is NOT mentioned as an observed problem in software products?
Which of the following is NOT mentioned as an observed problem in software products?
What percentage of client/server applications are stated to be abandoned or restarted from scratch?
What percentage of client/server applications are stated to be abandoned or restarted from scratch?
Signup and view all the answers
What is identified as a major misconception in software development?
What is identified as a major misconception in software development?
Signup and view all the answers
What is a reason stated for poor software statistics?
What is a reason stated for poor software statistics?
Signup and view all the answers
Which of the following is a common outcome for apps, according to the provided information?
Which of the following is a common outcome for apps, according to the provided information?
Signup and view all the answers
What aspect of software complexity increases exponentially with size?
What aspect of software complexity increases exponentially with size?
Signup and view all the answers
What was the primary focus of the SABRE project?
What was the primary focus of the SABRE project?
Signup and view all the answers
Which company developed Flowchart Software known as Autoflow?
Which company developed Flowchart Software known as Autoflow?
Signup and view all the answers
What was a significant characteristic of the software era that began in 1981?
What was a significant characteristic of the software era that began in 1981?
Signup and view all the answers
Which of the following companies was associated with systems, applications, and products in the software industry?
Which of the following companies was associated with systems, applications, and products in the software industry?
Signup and view all the answers
What was the significance of unbundling software from hardware?
What was the significance of unbundling software from hardware?
Signup and view all the answers
Which product is considered one of the first packaged software products for the masses?
Which product is considered one of the first packaged software products for the masses?
Signup and view all the answers
What was the primary product that Microsoft bought from Seattle Computer Products in 1981?
What was the primary product that Microsoft bought from Seattle Computer Products in 1981?
Signup and view all the answers
In which era did internet software and value-added services begin to emerge?
In which era did internet software and value-added services begin to emerge?
Signup and view all the answers
What is a misconception about the stability of application requirements?
What is a misconception about the stability of application requirements?
Signup and view all the answers
Which statement reflects a common belief among developers about software demonstration?
Which statement reflects a common belief among developers about software demonstration?
Signup and view all the answers
What is incorrectly assumed about the deliverables in a software development project?
What is incorrectly assumed about the deliverables in a software development project?
Signup and view all the answers
According to management myths, what is believed to ensure software quality?
According to management myths, what is believed to ensure software quality?
Signup and view all the answers
What is a misconception regarding software engineers and their tools?
What is a misconception regarding software engineers and their tools?
Signup and view all the answers
What is a flawed approach to handling schedule delays in software projects?
What is a flawed approach to handling schedule delays in software projects?
Signup and view all the answers
Which of the following misconceptions is related to assessing software quality?
Which of the following misconceptions is related to assessing software quality?
Signup and view all the answers
What aspect is often underestimated in the software development process?
What aspect is often underestimated in the software development process?
Signup and view all the answers
Which of the following is NOT categorized as a software service?
Which of the following is NOT categorized as a software service?
Signup and view all the answers
What is a common issue faced by organizations in software engineering today?
What is a common issue faced by organizations in software engineering today?
Signup and view all the answers
Which company is primarily recognized for providing packaged mass-market software?
Which company is primarily recognized for providing packaged mass-market software?
Signup and view all the answers
The statement 'Organizations go with what has worked in the past' describes which aspect of software development?
The statement 'Organizations go with what has worked in the past' describes which aspect of software development?
Signup and view all the answers
Which of these companies is NOT associated with professional software services?
Which of these companies is NOT associated with professional software services?
Signup and view all the answers
What challenge is noted regarding the integration of best practices in software engineering?
What challenge is noted regarding the integration of best practices in software engineering?
Signup and view all the answers
Which software type focuses on solutions for individual businesses rather than packaged offerings?
Which software type focuses on solutions for individual businesses rather than packaged offerings?
Signup and view all the answers
What is one result of the rapidly evolving nature of the software industry?
What is one result of the rapidly evolving nature of the software industry?
Signup and view all the answers
What is a primary difference between software programming and software engineering?
What is a primary difference between software programming and software engineering?
Signup and view all the answers
Which item is NOT a characteristic of software products as compared to programs?
Which item is NOT a characteristic of software products as compared to programs?
Signup and view all the answers
Which assumption is commonly made about user requirements during software development?
Which assumption is commonly made about user requirements during software development?
Signup and view all the answers
What percentage of overall development costs does maintenance typically account for in software engineering?
What percentage of overall development costs does maintenance typically account for in software engineering?
Signup and view all the answers
Which of the following best describes a software product?
Which of the following best describes a software product?
Signup and view all the answers
What typically characterizes software programming compared to software engineering?
What typically characterizes software programming compared to software engineering?
Signup and view all the answers
What is included in the configuration of software?
What is included in the configuration of software?
Signup and view all the answers
Which of the following roles is NOT typically associated with software engineering?
Which of the following roles is NOT typically associated with software engineering?
Signup and view all the answers
What is a primary goal of software engineering?
What is a primary goal of software engineering?
Signup and view all the answers
Which model is NOT part of traditional software engineering?
Which model is NOT part of traditional software engineering?
Signup and view all the answers
Who is associated with defining software engineering as a systematic approach to software analysis and design?
Who is associated with defining software engineering as a systematic approach to software analysis and design?
Signup and view all the answers
Which of the following definitions emphasizes the economic reliability of software?
Which of the following definitions emphasizes the economic reliability of software?
Signup and view all the answers
Which diagram is part of Object-Oriented Software Engineering?
Which diagram is part of Object-Oriented Software Engineering?
Signup and view all the answers
In the evolution of the software industry, which phase was characterized by the creation of tailored solutions for individual clients?
In the evolution of the software industry, which phase was characterized by the creation of tailored solutions for individual clients?
Signup and view all the answers
Which principle is NOT directly associated with the goals of software engineering?
Which principle is NOT directly associated with the goals of software engineering?
Signup and view all the answers
What is one of the aspects of systematic production in software engineering?
What is one of the aspects of systematic production in software engineering?
Signup and view all the answers
Which software process model emphasizes iterative development?
Which software process model emphasizes iterative development?
Signup and view all the answers
Which of the following best describes the essence of software engineering?
Which of the following best describes the essence of software engineering?
Signup and view all the answers
Study Notes
Introduction to Software Engineering
- The course introduces software engineering, its challenges, and processes.
- Aims to help students understand and avoid pitfalls and myths in software design.
- Focuses on the different types of software processes for selection of a suitable one.
- Aims to teach high-quality efficient software design for usability and maintainability.
- Includes advanced methods for software engineering.
Course Objectives
- Learn about difficulties in software development to avoid pitfalls and myths in design.
- Learn different software processes for suitable choice.
- Learn designing high-quality, efficient software for usability and maintainability.
- Learn about advanced methods in software engineering.
Course Contents
- Introduction to Software Engineering
- Software Processes
- Requirements Engineering
- Software Design
- Object-Oriented Software Development
- Software Testing and Verification
- Software Project Management
- Advanced Methods
Chapter 1: Introduction to Software Engineering
- Overview of software engineering, including software crisis, myths, methods, evolution, and status.
Contents (of Chapter 1)
- Software Crisis
- Software Myths
- What is Software Engineering?
- Evolution of Software Engineering
- State-of-the-art in Software Engineering
The Statistics - Chaos Report
- Standish Group 1995 study of 8,380 projects
- Average time overrun 222%
- Average cost overrun 189%
- 61% of projects completed with originally specified features.
- 16% of projects completed with all originally specified features on time and on budget.
- 31% delivered operational, but over budget or schedule or with fewer features
Symptoms of Software Crisis
-
US$250 billion spent annually on application development in the US.
-
US$140 billion wasted due to abandoned or reworked projects.
-
10% of client/server apps are abandoned or restarted.
-
20% of apps are significantly altered to avoid disaster.
-
40% of apps are delivered significantly late. (Compuware study 12/95 of 70 large c/s apps 30 European firms)
Observed Problems
- Software products often fail to meet user needs.
- Software products frequently crash.
- Software development is expensive.
- Software products are difficult to alter, debug, and enhance.
- Software products are often delivered late.
- Software products use resources inefficiently.
Why are the Statistics so Bad?
- Misconceptions about software development
- Software myths (e.g., the man-month myth)
- False assumptions
- Inability to distinguish computer program coding from software product development
- Exponential growth in complexity and difficulty level of software with respect to size.
- Ad-hoc approaches break down when software size increases.
- Lack of engineering training in software professionals
- Programmers with programming skills but missing engineering mindsets on process discipline and internal complexities. (e.g., essences and accidents made by Fred Brooks).
How is Software Usually Constructed?
- Requirements are defined.
- Developers interpret the requirements.
- The problem is solved.
- The problem is solved again (now differently).
- The program is debugged by the program writers.
- The program is described by marketing.
- This is what the customer seemingly wanted, in reality.
Software Myths (Customer Perspectives)
- A general statement of objectives is enough to start software development.
- Missing/vague requirements can be easily incorporated/detailed later.
- Application requirements are not stable; software must be flexible to adapt to change.
Software Myths (Developer Perspectives)
- Once the software is demonstrated, the job is done.
- Issues only begin after software is demonstrated to the customer.
- There is no way to assess quality before coding and testing..
- Tiny software bugs grow in complexity as they progress through further stages.
- The tested code is the only deliverable
- The code is only the externally visible component of the complete software system.
Software Myths (Management Perspectives)
- Good standards and procedures in the company are enough to prevent problems.
- The proof of the pudding is in the eating, not the recipe.
- Having access to the best tools and environment in the company is enough.
Software Myths (Misplaced Assumptions)
- All requirements may be pre-specified.
- Users are expert at specifying their needs.
- Both users and developers are good at visualization.
- The project team can communicate unambiguously.
Confused with Programs and Products
- Programs are usually small with a single developer and user.
- Software products are large with multiple users and developers.
- Programs are often ad-hoc, lack proper documentation, and interface.
- Software products are systematic, well-documented, and user manual-prepared.
Software Programming ≠ Software Engineering
- Programming involves translating problems into computer-understandable language.
- Software engineering involves teams, complex systems, indefinite lifespans, and the role of numerous stakeholders.
What is Software?
- Software is a set of items/objects forming a configuration (i.e. programs, documents, and data).
What is Software? (Continued)
- Software consists of instructions (programs), data structures, and documents.
- It has dynamic behavior in real computers and auxiliary equipment.
Unique Characteristics of Software
- Malleable
- Human intensive
- Intangible and hard to measure
- Usually complex problems
- Depends on hardware
- Top of system engineering "food chain"
- Does not wear out but will deteriorate
- Requires unusual rigor
- Has discontinuous operational nature
Casting the Term
- Software engineering was born in NATO conferences in 1968 to address major software project failures.
What is Software Engineering?
- The application of systematic, disciplined, and quantifiable approach to software development, operation, and maintenance.
- A discipline aiming at producing quality software within budget and time, satisfying user needs.
What is Software Engineering? (Continued)
- Concerned with software development theories, methods, and tools.
- Application of scientific knowledge in design and construction of computer programs, including associated documentation.
- Establishes and uses engineering principles for reliable, efficiently functioning software.
Scope and Goals of Software Engineering
- Scope: study of software processes, development principles, techniques, and notations.
- Goals: produce quality software delivered on time and within budget, satisfying customers' needs.
Software Process Models
- Waterfall life cycle
- Prototyping
- Spiral model
- Automatic Synthesis Model
- Object-oriented model
- 4 GL model
Traditional Software Engineering
- Focuses on software systems, including function, data, and behavior.
- Relies on diagrams like Data Flow Diagram and Entity-Relationship Diagram.
Object-Oriented Software Engineering
- Focuses on objects, functions, and behavior within software systems.
Evolution of Software Industry
- Independent Programming Service
- Software Product
- Enterprise Solution
- Packaged Software for the Mass
- Internet Software and Services
Independent Programming Services (Era 1)
- Founded in 1955 by Elmer Kubie and John Sheldon.
- Early software companies focused on building software for hardware companies.
Software Product (Era 2)
- 1964: Martin Goetz developed Flowchart Software for RCA.
- Selling software to customers without linking to a specific hardware platform.
- Development of early database management systems.
- IBM unbundled software from hardware.
Enterprise Solutions (Era 3)
- Dietmar Hopp led a team at IBM Germany to start a software company (SAP) in 1972.
- Marked by the emergence of Enterprise Solution providers.
- Examples: Baan, Oracle, and implementation of ERP.
Packaged Software for the Mass (Software Era 4)
- Spreadsheet program VisiCalc (1979)
- Bill Gates bought the first version of the OS for IBM PCs in 1981.
- Development of PC-based mass-market software.
Internet Software and Services (Era 5)
- Netscape browser software (1994) launch of the Internet and value-added services period.
Evolution of Design Techniques
- Ad hoc
- Data structure-based
- Control flow-based
- Data flow-based
- Object-oriented
Related Knowledge
- Application domain knowledge
- Specialized SE Knowledge
- Advanced SE knowledge
- Guide to the SWEBOK Ironman
- Computer Science (C.S.)
- Mathematics
IT Market
- Hardware products
- Hardware maintenance & services
- Software products and Services, including embedded software, professional services, enterprise solutions, and mass-market software.
- Processing and Internet services
Software Products and Services
- List of professional services, enterprise solutions, and packaged software companies.
Software Engineering Today
- Organizational focus on past techniques.
- Difficulty in education and training.
- Lack of processes and quality standards within the software engineering industry.
Software Engineering Today? (Continued)
- Knowledge and integration of best practice methodologies in timely fashion.
- Specific improvements in specific areas, but little overall progression.
Not Crisis, But a Chronic Problem
- Consistent software failures persist even after 35 years.
- Quality, budget, and delivery constraints still prevalent.
What's Wrong?
- Software engineering hasn't achieved its promise due to a lack of fault free software, meeting delivery deadlines, and fulfilling the customers needs efficiently.
- Progress despite the flaws of the software engineering industry.
A More Close Look
- Improvements in software engineering, although some problems persist.
- Comparing 1995 and 2003 software industry reports reveals some improvements.
So, What's the Problem?
- Evolving software industry challenges.
- Educational and training issues.
Software Changes in the Past Years
- Software size, increasing drastically.
- Operating environment, changing from batch to complex systems.
Software Changes in the Past Years (Continued)
- Computer systems and software increasing in complexity and size.
- Challenges in programming, as simple programming methods cannot handle the complexity.
Situations for Software Are Different Too
- Intense market forces, unrealistic schedules
- Changing client needs, more rapid software evolution and use of techniques and tools.
- Issues in training and education.
- Talent shortage
- Always trying new things
- Complexity moving into software
The Software Industry Today
- Continued struggles with quality, unrealistic delivery dates, and budgets for producing software, in spite of advancements.
- Issues involving components, technology, and standards, along with conflicting terminology.
The Current State of Software Engineering Today
- Goal-oriented
- Tools and Standards
- Methodology
- Theory & Principles
Three Key Challenges
- Maintaining and updating legacy systems
- Software/hardware heterogeneity
- Pressure for faster software delivery
Ever-Present Difficulties
- Few guiding scientific principles and universally applicable methods within software engineering.
- Managerial/psychological/sociological challenges are as important as technological.
Future of SE
- Processes, including requirements engineering and reverse engineering
- Testing, Maintenance and Evolution, Software architecture and modeling, SE and middleware, tools, and environment, Configuration management, Databases, SE education
- Software analysis, formal specification, mathematical and reliability foundations, performance, SE for safety, security, mobility, Internet, Software economics, empirical studies, and software metrics
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Test your understanding of software engineering concepts, processes, and methodologies. This quiz covers essential topics such as requirements engineering, software design, and advanced methods in software development. Prepare to explore common pitfalls and learn to make informed choices in software processes.