INTRO TO SOFTWARE ENGINEER Flashcards
Define the term “software crisis” in context of software engineering. What factors contribute to this crisis?
• Software crisis are this challenges faced during the developing and maintaining of a software product that often lead to failure.
• Factors include:
complexity
requirement change
cost and time constraints
quality assurance issues
skill shortage
rapid growth in problem size
Why have software products become more problematic and costly compared to hardware ? Give specific examples
This is because they are difficult to modify, debug, and enhance. Frequent crashing and lack of reliability (they often do not meet the users needs) and are also deceivers late .
What are the four fundamental software process activities? Briefly describe the purpose of each activity
• Software Specification - defining the software and constraints on its operation
• Software development - designing and programming the software
• Software validation - based neurons the software meets the user’s requirements
software evolution - modifying the softest to meet changes
Explain how software engineering differs from simply writing a program. Include the addition components that are part of a software product
Software engineering is an engineering discipline that focuses on all aspect of software production and not just programming. This includes ;
programs
documentation
maintainability
dependability
security
efficiency.
Describe the importance of cohesion and coupling in software engineering and explain the benefits of high cohesion and low coupling
Cohesion refers to how closely related the functions within a module are, while coupling measures the degree of dependence between modules .
High cohesion improves readability and maintainability of modules while low coupling reduces interdependence making the system easier to modify and debug.
Explain the concept of modularity and its significance in software development
Modularity is the division of software into smaller modules and each handling a specific function .
• easier development
• easier testing
• easier maintenance
In what ways are software engineers responsible to society beyond their technical duties
They are to ensure software is reliable, safe and meets social and ethical needs
Why is is software engineer described as both art and science
because it involves both implementation of systematic processes and creativity
what is meant by systematic approach in software engineering
this involves structured methodologies and process that ensure quality and efficiency of software development
Based on the document , outline a brief plan using the fundamental software process activities for developing
specification, development, validation and evolution