Download Software Engineering Exam Guide | Waterfall, Agile, DFD, Prototyping and more Exams Introduction to Software Engineering in PDF only on Docsity!
Software Engineering Exam #1 questions and
answers 2025/2026 latest update 1.What is software? - answer- Computer programs and associated documentation
- Developed for specific customer or general market 2.What are attributes of good software? - answer- Deliver required functionality and performance
- Maintainable, dependable, usable 3.What is software engineering? -production answer- Engineering discipline concerned with all aspect of software
4.What are the fundamental software engineering activities? - answer- Software specification
- Software development- Software validation
- Software evolution 5.Software engineering vs computer science? -fundamentals answer- Computer science focuses on theory and
- Software engineering focuses on practicalities of developing and delivering software 6.Software engineering vs system engineering? -based system development (hardware, software, process engineering) answer- System engineering concerned with computer-
- Software engineering more general 7.What are the key challenges facing software engineering? - answer- Dealing with increasing diversity
- Dealing with demands for reduced delivery times- Dealing with developing trustworthy software
8.What are the costs of software engineering? - answer- 60% development costs
- 40% testing costs
- For custom software, evolution costs outweigh development costs 9.What differences has the web made to software engineering? -availability of software services answer- Dramatically increased
- Ability to develop highly distributed service-based systems- Important advances in programming languages and software reuse
10.What makes GOOD software? - answer- Functionality
- Usability- Maintainability
- Dependability- Efficiency
11.Software is EXPENSIVE. What are the major costs? - answer- Salaries
- Organizational changes 12.Software is expensive. What are the major general questions to ask? -money? answer- Who is paying the
- What does that person/organization want?- What are the measures of success/failure? -- In the eyes of the SW engineer? Or the paying organization? 13.Main Stakeholders -- Customers answer- Clients
- Users 14.Who is the client? -- The person who provides resources and expects product in return answer- The person for whom the SW development team creates the software
20.User Testing - answer- Versions of user interface are tested by USERS.
- May lead to changes in requirements and design 21.Program Testing -combination (system testing) against to design to find bugs, etc answer- DEVELOPMENT TEAM tests components individually (unit testing) or in
22.Acceptance Testing -against their requirements answer- The CLIENT tests the final version of the system or parts of the system
23.Process Step: Feasibility - answer- A feasibility study precedes the decision to begin a project
- What is the scope of the proposed project?
- Is the project technically feasible?
- What are the projected benefits?
- What are the costs, timetable?
- Are the resources available?
- What are the risks and how can they be managed?
- Leads to a decision: go or no-go. 24.Process Step: Requirements - answer- Define function of the system from the client's viewpoint.
- Establish the system's functionality, constraints, and goals by consultation with the client, customers,and users.
- Must be developed in a manner that is understandable by both the client and the development staff.This step is divided into: -- Requirements analysis -- Requirements definition-- Requirements specification
- Failure to agree on the requirements is one of the biggest causes of software projects failing. Process Step: System and Program Design -developers' viewpoint answer- Design describes the system from the software
- System design: Establish a system architecture, both hardware and software, that matches therequirements
- Program design: Represent the software functions in a form that can be transformed into one or moreexecutable programs
- Models are used to represent the requirements, system architecture, and program design. Process Step: Implementation --- The software design is realized as a set of programs or program units. answerImplementation (coding) -- These software components may be written by the development team, acquired from elsewhere, ormodified from existing components.
Program testing -- Program testing by the development staff is an integral part of the implementation.-- Individual components are tested against the design. -- The components are integrated and tested against the design as a complete system. Process Step: Acceptance and Release - answerAcceptance testing
Incremental Development -software are placed in production (sprints). answer- A variant of iterative refinement in which small increments of
- ex: Agile development. Heavyweight Software Development -slowly and systematically, with the aim of fully completing each process step and delivering a complete answer- Development team works through the process steps software product that will need minimal changes and revision.
- ex: Waterfall model Lightweight Software Development -increments, and develops the plans incrementally, based on experience. Each increment includes all the answer- Development team releases working software in small process steps. There is an expectation that changes will be made based on experience.
- Agile Software Development Deliverables - answer- Some work product that is delivered to the client. Types of Software Process -successful software process for software development. answer- The basic process steps can be combined in many ways to create a
- Development of a major system may use all three main dev models/methods in various combosincluding: -- Phased development-- Spiral development
Waterfall Model (steps) - answer> Feasibility study > Requirements> System design
> Program design > Implementation (coding)> Program testing > Acceptance & release> Operation & maintenance
Waterfall Model (Advantages/Disadvantages) - answerAdvantages:
- Process visibility+ Separation of tasks
- Quality control at each step+ Cost monitoring at each step
Disadvantages:
- Not flexible enough most of the time- Each step reveals things that should have been changed in previous step(s)
Problem with Traditional Waterfall -different steps build off one another answer- Purely sequential models do not work in practice as
Modified Waterfall Model -previous step and then go down the chain starting from there) answerWaterfall but with feedback (from any step you can go back to a
> Feasibility study > Requirements> System design > Program design> Implementation (coding) > Program testing> Acceptance & release
- Successive refinement Incremental Development - answer- Project is divided into large number of small tasks called sprints
- For each sprint, a team works through a full software development cycle including planning,requirements analysis, design, coding, testing, and acceptance testing, and release
- Each sprint is completed in a fixed time period, e.g., four weeks
- The size of an sprint is based on team size, e.g., 5-10 people Sprint (Incremental Dev) - answer- The fundamental concept of Incremental Development
- A single sprint is a full software development cycle including planning, requirements analysis, design,coding, testing, and acceptance testing, and release
Incremental Development (Advantages/Disadvantages) - answerAdvantages:
- Pay-back on investment begins soon+ Requirement are more clearly understood in developing subsequent sprints
- Feedback from customers and clients can be incorporated in later phases+ Easier for small teams to develop a small sprint correctly
Disadvantages:
- A high-level team must establish overall architecture and coordinate increments- Often not suitable for huge projects with lots of co-dependent parts
Ways to Lower Risk in Software Development - answer- Prototyping key components
- Frequent releases, or dividing large projects into phases
- Early and repeated testing with users and customers
- Following a visible software process
- Making use of reusable components Feasibility Study - answer- A study made before committing to a project
- Leads to decision to (go ahead, do not go ahead, think again/rework)
- Often leads to budget request Why are Feasibility Studies Difficult? --- Clients may be unsure of the scope of the project answerUncertainty -- Benefits are usually very hard to quantify-- Approach is usually ill-defined. Estimates of resources and timetable are very rough-- Organizational changes may be needed
Advocacy -- Advocacy is needed to build enthusiasm for a project: to convince an organization to undertake anexpensive, complex project with many risks. -- Enthusiasm is good, but enthusiasts usually emphasize potential benefits and downplay risks. What is Requirements Engineering? -system and the constraints under which it operates and is developed. answer- Establishing the services that a customer requires from a
- The system requirements are the descriptions of the system services and constraints that aregenerated during the requirements engineering process.
- Functional user requirements may be high-level statements of what the system should do.
- Functional requirements describe the functions that the system must perform.
- Functional system requirements should describe the system services in detail. Non-Functional Requirements -response time and storage requirements. Constraints are I/O device capability, system representations, answer- Define system properties and constraints e.g. reliability, etc
- Process requirements may also be specified mandating a particular IDE, programming language ordevelopment method
- Non-functional requirements may be more critical than functional requirements. If these are not met,the system may be useless
Scenario - answer- A scene that illustrates some interaction with a proposed system
- A tool used during requirements analysis to describe a specific use of a proposed system.
- Capture the system, as viewed from the outside, e.g., by a user, using specific examples. Describing a Scenario - answer- A statement of the purpose of the scenario
- The individual user or transaction that is being followed through the scenario
- Assumptions about equipment or software
- The steps of the scenario
Actor (Use Cases) - answer- A user of a system in a particular role
- Can be human or an external system Use Case -users of the system. answer- Capture functional requirements of a system from the perspectives of the different
- Textual narratives describing the different kinds of scenarios in which the system will be used.
- Help to visualize which actors are involved in which scenarios.
- The functional requirements described in use cases will be realized software design.
- Non-functional (or qualitative) requirements are not depicted with use cases. Use Case Diagram (UCD) -work together answer- Diagram to depict how the functional requirements of a system will
- Includes actors (users or systems), use cases, and lines connecting actors to use cases depicting therelationship between the two
Misuse Case - answer- A negative use case
- Ask what a misactor could do to take advantage of/harm system Benefits of Misuse Cases - answer- Elicitation of security and safety requirements
- Early identification of threats, mitigations, and exceptions that could cause system failure
- Early identification of test cases
Disadvantages:
- Makes it difficult to reject initial solution when it is presented- Very difficult to contain scope of prototype
- System documentation is often absence or incomplete- System backup and security issues are overlooked
Types of Prototyping - answer- Throw-Away Prototyping
- Evolutionary Prototyping Throw-Away Prototyping -then discarded answer- A prototype is produced to help discover requirements problems and
- Developed from the initial requirements but is not used for the final project Evolutionary Prototyping -stages to the final system answer-An initial prototype is produced and refined through a number of
-It is consider the most fundamental form of prototyping -Objective to deliver a working system to the end user Throw-Away Prototyping (Advantages/Disadvantages) - answerAdvantages:
- Significantly reduce project risk+ Has a short project timeline
Disadvantages:
- The prototype does nothing, it is just presentational- Limited purpose
- Becoming increasingly less popular Low Fidelity Prototyping (Advantages/Disadvantages) - answerAdvantages:
- Lower development cost+ Evaluate multiple design concepts
- Useful communication device+ Addresses screen layout issues
- Useful for identifying requirements Disadvantages:- Limited error checking
- Facilitator driven- Limited utility after requirements established
- Navigation and flow limitations Low-Fidelity Prototyping - answer- Generally limited function, limited interaction prototyping effort
- They are constructed to depict concepts, design alternatives and screen layouts. They are intended todemonstrate general look and feel of the interface
- They are created to educate, communicate and inform, but not to train, test or serve as a basis forwhich to code.
- Used early in the design cycle to show general conceptual approaches without much investment indevelopment.
High-Fidelity Prototyping - answer- It represent the core functionality of the products user interface.
- High fidelity prototypes are fully interactive systems. Users can enter data in entry fields, respond tomessages, select icon to open windows and interact with user interface as if it were a real system.
Decision Table (Advantages/Disadvantages) -+ Make it possible to detect combinations of conditions that would otherwise not have been found answerAdvantages:
Disadvantages:
- Not equivalent to complete test cases containing step-by-step instructions of what to do in what order- However, if we have a lot of combinations, it may not be possible or sensible to test every combination
What is a Decision Table? -expressions are mutually exclusive in a predefined area answer- Table representing complete set of conditional expressions where
Why Use Decision Tables? --- Compact and structured presentation answerPowerful visualization
Preventing errors is easier -- Avoid incompleteness and inconsistency Modular knowledge organization-- Group related rules into single table -- Combine tables to achieve decision Data Flow Diagram -and between processes and data stores answer- Focus on the movement of data between external entities and processes,
DFD Components - answer- Source/Sink
- Data Flow- Process
- Data Store
Source/Sink (DFD Component) - answer- Drawn as white box
- Any class of people, an organization, or another system which exists outside the system you arestudying
- Form the boundaries of the system
- The system and external entities exchange data in the form of data flows
- Must be named, titles preferred to names of individuals - use a noun Data Store (DFD Component) - answer- Drawn as white rectangle w/ beige end
- Data at rest
- Represents holding areas for collection of data, processes add or retrieve data from these stores
- Name using a noun (do not use 'file')
- Only processes are connected to data stores
- Show net flow of data between data store and process. Data Flow (DFD Component) - answer- Drawn as Red Arrow
- Data in motion
- Marks movement of data through the system