Podcast
Questions and Answers
What was the primary motivation for the emergence of software engineering?
What was the primary motivation for the emergence of software engineering?
Which of the following was NOT a major problem identified during the "Software Crisis"?
Which of the following was NOT a major problem identified during the "Software Crisis"?
What is a significant implication of software defects, as illustrated by examples in the provided text?
What is a significant implication of software defects, as illustrated by examples in the provided text?
What is the key difference between software engineering and computer science?
What is the key difference between software engineering and computer science?
Signup and view all the answers
Based on the provided information, which of the following statements is TRUE about the "Software Crisis"?
Based on the provided information, which of the following statements is TRUE about the "Software Crisis"?
Signup and view all the answers
According to the provided text, what percentage of software projects were delivered but never successfully used
?
According to the provided text, what percentage of software projects were delivered but never successfully used
?
Signup and view all the answers
Which of the following is NOT a characteristic of a computer scientist, as described by the text?
Which of the following is NOT a characteristic of a computer scientist, as described by the text?
Signup and view all the answers
What does the text suggest about the importance of software engineering?
What does the text suggest about the importance of software engineering?
Signup and view all the answers
Why is it important to complete coding projects, even if they are not professionally-related?
Why is it important to complete coding projects, even if they are not professionally-related?
Signup and view all the answers
What is one of the common criteria large companies look for when hiring software engineers?
What is one of the common criteria large companies look for when hiring software engineers?
Signup and view all the answers
What is one of the benefits to taking an entry-level role as a software developer?
What is one of the benefits to taking an entry-level role as a software developer?
Signup and view all the answers
Which of the following is NOT a recommended skill for improving your soft-skills?
Which of the following is NOT a recommended skill for improving your soft-skills?
Signup and view all the answers
What are some practical ways to learn coding for professional development?
What are some practical ways to learn coding for professional development?
Signup and view all the answers
What is a key difference between Software Engineers and Developers?
What is a key difference between Software Engineers and Developers?
Signup and view all the answers
What is the main reason Software Engineers typically earn more than Software Developers?
What is the main reason Software Engineers typically earn more than Software Developers?
Signup and view all the answers
What is the expected growth rate for Software Developers, Quality Assurance Analysts, and Testers from 2021 to 2031, according to the BLS?
What is the expected growth rate for Software Developers, Quality Assurance Analysts, and Testers from 2021 to 2031, according to the BLS?
Signup and view all the answers
Which of the following is NOT a reason for the high demand for Software Engineers?
Which of the following is NOT a reason for the high demand for Software Engineers?
Signup and view all the answers
What is a primary reason for the rising demand for Software Engineers in companies?
What is a primary reason for the rising demand for Software Engineers in companies?
Signup and view all the answers
Why is Software Engineer a broad career option?
Why is Software Engineer a broad career option?
Signup and view all the answers
How does the BLS categorize Software Engineers?
How does the BLS categorize Software Engineers?
Signup and view all the answers
Which of the following accurately describes the average annual salary of Software Developers, according to the content?
Which of the following accurately describes the average annual salary of Software Developers, according to the content?
Signup and view all the answers
What is the main responsibility of an engineer in the context provided?
What is the main responsibility of an engineer in the context provided?
Signup and view all the answers
Which of the following best describes the analysis phase in problem-solving?
Which of the following best describes the analysis phase in problem-solving?
Signup and view all the answers
What defines the methodologies in software engineering?
What defines the methodologies in software engineering?
Signup and view all the answers
Which attribute is NOT essential for good software according to the content?
Which attribute is NOT essential for good software according to the content?
Signup and view all the answers
Which of the following is a primary activity of software engineering?
Which of the following is a primary activity of software engineering?
Signup and view all the answers
What distinguishes software engineering from computer science?
What distinguishes software engineering from computer science?
Signup and view all the answers
What aspect does system engineering NOT typically encompass?
What aspect does system engineering NOT typically encompass?
Signup and view all the answers
Which of the following best defines software products?
Which of the following best defines software products?
Signup and view all the answers
What is one of the key challenges facing Software Engineering?
What is one of the key challenges facing Software Engineering?
Signup and view all the answers
What percentage of software costs are attributed to Development Costs?
What percentage of software costs are attributed to Development Costs?
Signup and view all the answers
Which statement about Evolution Costs is correct for custom software?
Which statement about Evolution Costs is correct for custom software?
Signup and view all the answers
Which type of project should use a series of prototypes according to Software Engineering techniques?
Which type of project should use a series of prototypes according to Software Engineering techniques?
Signup and view all the answers
What is a critical attribute of good software that reflects its ability to adapt over time?
What is a critical attribute of good software that reflects its ability to adapt over time?
Signup and view all the answers
Dependable software should not cause what type of damage in the event of a system failure?
Dependable software should not cause what type of damage in the event of a system failure?
Signup and view all the answers
Which software development approach is influenced by the web's availability of services?
Which software development approach is influenced by the web's availability of services?
Signup and view all the answers
Which of the following is NOT included under the characteristics of software dependability?
Which of the following is NOT included under the characteristics of software dependability?
Signup and view all the answers
What is one benefit of pursuing leadership roles in projects?
What is one benefit of pursuing leadership roles in projects?
Signup and view all the answers
Which of the following is NOT recommended for a career as a Software Engineer?
Which of the following is NOT recommended for a career as a Software Engineer?
Signup and view all the answers
Why is it important for Software Engineers to follow their passion?
Why is it important for Software Engineers to follow their passion?
Signup and view all the answers
What role does professional networking play for Software Engineers?
What role does professional networking play for Software Engineers?
Signup and view all the answers
What advantage does obtaining certification provide for a Software Engineer?
What advantage does obtaining certification provide for a Software Engineer?
Signup and view all the answers
How does keeping skills updated benefit a Software Engineer?
How does keeping skills updated benefit a Software Engineer?
Signup and view all the answers
What type of applications run on a local computer?
What type of applications run on a local computer?
Signup and view all the answers
Which of the following is a common misconception about leadership roles?
Which of the following is a common misconception about leadership roles?
Signup and view all the answers
Study Notes
Introduction to Information Technology - Software Engineering Module
- The module was prepared by Dr. Mohammad Malkawi, Dr. Moh'd Radaideh, Dr. Malik Qasaimeh, and Dr. Hamza Al-Kofahi.
- The module was developed for Jordan University of Science and Technology.
- The date of the module is October 29, 2022.
Part 1: Software Engineering Introductory View
-
Origin of Software Engineering: Software Crisis:
- Software Engineering emerged from the Software Crisis of the 1960s, 1970s, and 1980s.
- The crisis highlighted problems in software development, including project budget overruns, schedule delays, property damage caused by software defects, and identity theft due to poor security.
- The emphasis of software crisis evolved from productivity to quality.
- Some examples of these issues include the OS/360 Operating System, and the catastrophic failure of the Therac-25 incident.
- Software defects can cause significant harm, such as in medical equipment.
-
Why Software Engineering?
- A pie chart shows expenditure on Software Projects totaling $96.7 million, with 45% delivered but not successfully used, 30% paid for but not delivered, 20% used with extensive rework and ultimately abandoned, and a very small percentage (2%) used as delivered.
-
Scientist vs. Engineer:
- A computer scientist proves theorems about algorithms, designs languages, and defines knowledge representation schemes. They have infinite time.
- An engineer develops solutions for application-specific problems for clients, using computers, languages, tools, techniques, and methods. Engineers work in multiple application domains and have 3 months to achieve the outcome.
Software Engineering - A Problem Solving Activity
- Analysis: Understanding the problem and breaking it down into smaller parts.
- Synthesis: Combining the pieces into a structured solution.
- Techniques (Methods): Formal procedures for producing results using well-defined notation.
- Methodologies: Collections of techniques applied throughout software development, unified by a philosophical approach.
- Tools: Instruments or automated systems to execute techniques.
Frequently Asked Questions about Software Engineering
- What is Software? Computer programs and documentation, developed for a specific customer or general market.
- Attributes of Good Software: Functionality, performance, maintainability, dependability, and usability.
- What is Software Engineering? An engineering discipline concerned with all aspects of software production, from specification to maintenance.
- Fundamental Software Engineering Activities: Specification, development, validation, and evolution.
- Difference between Software Engineering and Computer Science: Computer Science focuses on theory and fundamentals, while Software engineering concerns the practical development of software.
- Difference between Software Engineering and System Engineering: System engineering concerns all aspects of computer-based systems, including hardware, software, and process engineering. Software engineering is part of this process.
Frequently Asked Questions about Software Engineering (cont.)
- Key Challenges: Coping with diversity, reduced delivery times, and building trustworthy software.
- Software Engineering Costs: Roughly 60% of expenses are for development, 40% for testing. Often, evolution (change) costs exceed initial development costs for custom software.
- Techniques/Methods: Different methods work best for different systems (e.g., safety-critical systems require different specifications than game development).
- Web's Impact: The web has enabled software services and distributed systems. It has also spurred advancements in programming languages and software reuse.
Essential Attributes of Good Software
- Maintainability: Software should be adaptable to meet evolving customer needs.
- Dependability and Security: Software should not cause physical or financial harm and be protected from malicious users.
- Efficiency: Should not waste resources (e.g., memory, processing time).
- Acceptability: Software must be understandable, usable, and compatible with other systems.
Software Engineering
- Definition: An engineering discipline concerned with all aspects of software production, from initial specification to ongoing maintenance.
- Engineering Discipline: Uses appropriate theories and methodologies to address organizational and financial constraints.
- Software Production: Involves technical development processes, project management, and tooling.
Importance of Software Engineering
- Reliance: Increasing reliance on advanced software systems by individuals and society.
- Reliability and Cost-Effectiveness: The need for reliably producing software economically and quickly.
- Cost Considerations: Changing and maintaining software after implementation often constitutes a large fraction of the overall cost.
General Issues Affecting Most Software
- Heterogeneity: Software systems must operate across a variety of networking devices and systems.
- Business and Social Change: Software must adapt to rapid changes in business practices and societal needs.
- Security and Trust: Ensuring the security and trustworthiness of software in an increasingly interdependent world.
Part 2: Software Engineering Knowledge Areas
- SEKA#1 (Software Requirements): Eliciting, analyzing, specifying, and validating software requirements, and managing them throughout the life-cycle.
- SEKA#2 (Software Design): Defining the architecture, components, interfaces, and characteristics of a system based on software requirements.
- SEKA#3 (Software Construction): Creating working software through coding, verification, unit testing, integration testing, and debugging.
- SEKA#4 (Software Testing): Dynamic verification to ensure the program behaves as expected.
Software Engineering Knowledge Areas (cont.)
- SEKA#5 (Software Maintenance): Integral part of the software life-cycle despite often receiving less attention than development. Maintaining software components developed by others is becoming more important.
- SEKA#6 (Software Configuration Management): A supporting process for project management, development, maintenance, and quality assurance.
- SEKA#7 (Software Engineering Management): Managing software projects through phases defined as initiation and scope definition, project planning, project enactment, review, and evaluation, closure, and the measurement of the software engineering phase.
- SEKA#8 (Software Engineering Process): Concerned with the activities of software engineers for developing, maintaining, and operating software. Includes processes for requirements, design, construction, and testing; configuration management processes are also important.
Software Engineering Knowledge Areas (cont.)
- SEKA#9 (Software Engineering Models & Methods): Provides structures, methodologies, a notation, and procedures for constructing, analyzing, specifying, designing, constructing, testing and verifying software and related work products. Success oriented design and repeatable activities are important.
- SEKA#10 (Software Quality): Concerned with software engineering's perspective of culture/ethics, value/cost, quality models/characteristics, improvement, safety, quality assurance, control, verification and validation of systems, reviews, audits, requirements, defect management, techniques, measurements, and quality tools.
- SEKA#11 (Software Engineering Professional Practice): Covers professionalism (accreditation, certification, codes of ethics, professional conduct, roles of professional societies, economic impact, employment, legal issues, documentation), dynamics of working in teams, cognition, dealing with problem complexities, interacting with stakeholders, uncertainty/ambiguity, and multicultural environments; and communication skills (reading, understanding/summarizing, writing, team communication, presentations).
Software Engineering Knowledge Areas (cont.)
- SEKA#12 (Software Engineering Economics): Making business decisions related to software engineering, aligning technology decisions with business goals. Study of value, costs, resources, and their relationship in a given situation. Processes such as cash flow, valuation, inflation, depreciation, taxes, and the entire life-cycle (product, project, program, portfolio) are considered.
- SEKA#13 (Computing Foundations): Problem solving, abstraction, programming fundamentals, debugging, data structures, algorithms and complexity, computer organization, operating systems, compilers, databases, data management, network communication, parallel distributed computing, basic user/developer factors, and secure software development and maintenance.
- SEKA#14 (Mathematical Foundations): Sets/relations/functions, proof techniques, graphs, trees, finite state machines, numerical precision/errors, algebraic structures, basic logic, counting, discrete probability, grammars, and number theory.
- SEKA#15 (Engineering Foundations): Empirical methods/experimental technique, statistical analysis, measurement, engineering design/simulation/prototyping, standards, and root cause analysis.
Part 3: Software Engineering Job Opportunities, Careers and Applications
-
Becoming a Software Engineer:
- Define a software engineer
- Role differences from Software Developers
- Job outlook (growth expected)
- Average salaries
- Advancement strategies
- Software Engineers vs. Developers: Comparing education, focus, skills, and salary.
- Job Outlook: Discussing expected growth for jobs in software development (and associated fields).
- Reasons for Demand: Factors driving demand for software engineers, including increasing technology complexity, the creation of more innovative software options, the need for continuous software maintenance, and the accelerated growth of technology in many industries.
Part 4: Software Engineering Certifications
-
Software Development International Certifications:
- AWS Certified DevOps Engineer - Professional; The Certified Software Development Professional (CSDP)
- IEEE Computer Society certifications
- National Initiative for Cybersecurity Careers and Studies(NICCS) certifications (include Certified Secure Software Lifecycle Professional (CSSLP) )
-
Software Testing International Certifications:
- International Software Testing Qualifications Board (ISTQB)
- Certified Tester Foundation Level (CTFL); Certified Tester Advanced Level Test Analyst (CTAL-TA); Certified Tester Advanced Level Test Manager (CTAL-TM); Certified Tester AI Testing (CT-AI), and Certified Tester Game Testing (CT-GaMe).
-
Software Security International Certifications:
- Certified Ethical Hacker (CEH) (from the EC-Council); Certified Information Systems Security Professional (CISSP) (from the ISC).
-
Project Management & Software Project Management International Certifications:
- Project Management Institute (PMI) certifications - Professional Scrum Master I (PSM I), Professional Scrum Master II (PSM II), Professional Scrum Master III (PSM III), Professional Scrum Product Owner I (PSPO I), Professional Scrum Product Owner II (PSPO II), Professional Scrum Product Owner III (PSPO III), Professional Scrum Development (PSD), Professional Agile Leadership (PAL), Professional Agile Leadership – Evidence-Based Management (PAL EBM), Scaled Professional Scrum (SPS), Professional Scrum with Kanban (PSK), and Professional Scrum with User Experience (PSU).
How to Advance In Your Career As A Software Engineer
- Practical Coding, Obtaining Experience at Large Companies, Developing Soft-Skills, and Pursuing Leadership Experience.
- Build a professional portfolio
- Entry-level position considerations
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
This quiz covers key concepts related to software engineering, including the motivation for its emergence, the 'Software Crisis,' and the distinctions between software engineering and computer science. Test your understanding of important factors that influence the software industry and the characteristics of software professionals.