Questions 100% on Flashcards
(40 cards)
Fundamental activities that are common to all software processes includes: Specification,design and implementation, validation, and evaluation.What does a software engineer do during the validation process?
-defining the organization of the system and implementing the system
-checking that it does what the customer wants
-defining what the system should do
-changing the system in response to changing customer needs
-Checking that it does what the customer wants
What would be a direct benefit of requirement validation?
-Put documents in nice format
-Help agile development
-Reduce the cost of having to fix issues after delivery
-Get more requirements from stakeholders
-Reduce the cost of having to fix issues after delivery
What are some of the requirements elicitation techniques?
-Interview uses of the system
-Develop the system
-Refactoring
-Observe the existing system
-Improve reliability of the system
-Interview uses of the system
-Observe the existing system
Why agile development is not a good choice for long-lifetime systems?
-Because they can’t deliver software fast enough
-Having the development team in the same location
-The whole team attends daily short meetings
-Hard to track the backlog to find work that needs to be done
-Original developers will not always stay at the same job
-Original developers will not always stay at the same job
Which of the following is a true statement about generic product?
-Software that is commissioned for specific customer need
-Software that is developed to maintain the hardware in a specific factory
-Software made for any customer who wants to buy it back
-Banking app made for specific bank to manage its internal activities
-Software made for any customer who wants to buy it back
What are the characteristics of agile development?
-Detailed documentation
-Mostly focused on coding
-Frequent delivery of new versions
-Implementation starts after the system design has been fully completed
-Minimal documentation
-None of the above
-Mostly focused on coding
-Frequent delivery of new versions
-Minimal documentation
Despite the many advantages the “integration and configuration” model brings to the table, there are several disadvantages to using such a model.(select all that apply)
-Requirements may be compromised due to reusable components not having everything the user needs
-Being able to deliver the software faster
-Loss of control over evaluation due to reused elements belonging to another company
-The programmers having to start writing new codes from scratch
-None of the above
-Requirements may be compromised due to reusable components not having everything the user needs
-Loss of control over evaluation due to reused elements belonging to another company
What are the essential attributes of good software?
-Maintainability
-Dependability and security
-Efficiency
-Acceptability
Application Types
-Stand-alone applications
-Interactive transaction-based applications
-Embedded control systems
-Batch processing systems
-Entertainment systems
-Systems for modeling and simulation
-Data collection systems
-Systems of systems
Software Engineering Ethics
-Confidentiality
-Competence
-Intellectual Property Rights
-Computer Misuse
Four common activities in software process
-Specification
-Design and implementation
-Validation
-Evolution
The Waterfall Model Phases
-Requirements analysis and definition
-System and software design
-Implementation and unit testing
-Integration and system testing
-Operation and maintenance
Waterfall Model Problems
-Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements.
-The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites.
Incremental Development
-This is based on the idea of developing an initial implementation, getting feedback from users & others, and evolving the software through several versions until the required system has been developed
-Specification, development, and validation activities are interleaved rather than separate, with rapid feedback across activities.
Integration and configuation model
-In the majority of software projects, there is some software reuse. This often happens informally when people working on the project know of or search for code that is similar to what is required.
-Based on software reuse where systems are integrated from existing components or application systems (sometimes called COTS -Commercial-off-the-shelf) systems).
-Reused elements may be configured to adapt their behavior and functionality to a user’s requirements
-Reuse is now the standard approach for building many types of business systems.
Component Testing
-Individual components are tested independently, without other system components.
-Components may be functions or objects or coherent groupings of these entities.
System Testing
-Testing of the system as a whole. This process is concerned with finding errors that result from unanticipated interactions between components and component interface problems. It is also concerned with showing that the system meets its functional and non-functional requirements.
Customer Testing
-This is the final stage in the testing process before the system is accepted for operational use. Testing with customer data to check that the system meets the customer’s needs.
System Prototyping
-where a version of the system or part of the system is developed quickly to check the customer’s requirements and the feasibility of design decisions. This approach supports change anticipation. Changes required after delivery will be reduced.
-A prototype is an initial version of a system used to demonstrate concepts and try out design options.
Agile Development
-Specification, design, implementation and testing are inter-leaved and the outputs from the development process are decided through a process of negotiation during the software development process.
Extreme Programming
Extreme Programming (XP) takes an ‘extreme’ approach to iterative development.
-New versions may be built several times per day
-Increments are delivered to customers every 2 weeks
-All tests must be run for every build and the build is only accepted if tests run successfully.
Refactoring
-Refactoring is the process of restructuring existing code without changing any of its functionality
-Conventional wisdom in software engineering is to design for change. It is worth spending time and effort anticipating changes as this reduces costs later in the life cycle.
-XP, however, maintains that this is not worthwhile as changes cannot be reliably anticipated.
-Rather, it proposes constant code improvement (refactoring) to make changes easier when they have to be implemented.
Test-first development
-Testing is central to XP and XP has developed an approach where the program is tested after every change has been made. Development cannot proceed until test cases have been developed.
-XP testing features:
–Test-first development.
–Incremental test development from scenarios.
–User involvement in test development and validation.
–Use of automated testing frameworks. Automated test harnesses are used to run all component tests each time a new release is built.
Scrum
-an agile method that focuses on managing iterative development rather than specific agile practices.