Looks like no one added any tags here yet for you.
What are the essential attributes of good software?
Maintainability, dependability & security, acceptability, efficiency
What are the two fundamental types of software?
Generic products and Customized products
What is software engineering?
The documentation and process of developing software.
What are the four fundamental activities in software processes?
Software specification, software development, software validation, software evolution
What's the difference between software engineering and computer science?
Computer science is more focused on the methods and theories of computers and software systems
What are the four general issues that affect different types of software?
Heterogeneity, Change, Security, and Scale
5 different types of software applications
Embedded systems, web apps/server side, entertainment systems, operating systems, batch processing system
What software engineering fundamentals apply to all types of software systems?
Software process, focus on reliability, importance of reliability, software reuse
Three key characteristics of the engineering of web-based software engineering?
Software reuse, service-oriented systems, rich interfaces
What are the fundamental activities that are common to all software processes?
Software process models, process activities, coping with change, and process improvement
What are the development stages in integration and configuration?
Requirements specification, software discovery and evaluation, requirements refinement, application system configuration, and component adaptation and integratin
What are the principal requirements engineering activities?
Requirements elicitation and analysis, requirements specification and requirements validation
What are the two different approaches to process improvement and change that have been proposed?
System prototyping and incremental delivery
What are the identified levels in the SEI's Capability Maturity Model?
Initial, managed, defined, quantitatively managed, and optimizing
What are the shared characteristics of different agile methods of software development?
The process of specification, design and implementation. Documentation is also minimized.
List the 5 principles of agile methods
customer involvement, embrace change, incremental delivery, maintain simplicity, people not process
3 important agile techniques that were introduced in extreme programming?
Pair programming, refactoring,
What is test-first development?
The tests are written for the code before the actual function is made
What features are normally provided by version management systems?
Build script generation, version control integration, test automation, and documentation generation
What are user requirements and system requirements?
User requirements are the generalities of the system while the system requirements are the actual specifications
What is the distinction between functional and non-functional requirements?
Functional requirements are specific as to how the system should react in situations or what is should not do. Non-functional requirements are constraints on the services or functions often a little harder to really specify
What are the principal stages of requirements engineering?
elicitation and analysis, specification, and validation
What is ethnography and how is it used to in requirements engineering?
Ethnography is simply observing people in their work place and finding out what they need for seeing their everyday interactions
What info should be available in a scenario?
How the system starts, normal flow of events, what can go wrong and how to fix it, how the system ends
How do managers and test engineers use a system requirements document?
They use it to determine if the software meets all the user requirements.
What are the main advantages of using a standard format to specify requirements?
It removes some of the problems of natural language specification and variability is reduced.
What is a use case?
A use case is a way of describing interactions between users and a system using a graphical model and structured text.
three validation techniques
Consistency checks, completeness checks, and realism checks
What is requirements engineering?
It is the managing of evolving requirements and how they be managed.
What perspectives should be used for developing models of a software system?
An external perspective, interaction perspective, structural perspective, and a behavioral perspective
What UML diagrams types do you need to represent the essential features of a system?
Activity diagrams, use-case diagrams, sequence diagrams, class diagrams, and state diagrams
What is a context model?
A model describing the boundaries of the system. What will be developed and what will not
How are activity diagrams used in describing the context of use of a system?
Shows the activities in a process and the flow of control from one activity to another
What is illustrated in a UML sequence diagram?
The interactions between actors and objects of a system
How is generalization is used to simplify models of a system with many similar objects?
We learn about general classes and learn the characteristics for that class and use that information to narrow down objects
What is the basic assumption that underlies event-driven modeling?
The assumption is that a system has a finite number of states and that events may cause a transition from one state to another
The three types of abstract system models that are recommended by the MDA method?
A computation independent model, a platform-independent model, and platform specific model
What is the distinction between validation and verification?
Verification is making sure the software meets its functional and non-functional requirements. Validation is making sure the system meets the customer's expectations.
What is meant by configuration management?
It is concerned with the policies, processes, and tools for managing changing software systems.
What features are normally provided by version management systems?
Version control, system building, change management, and release management
What is a baseline?
It is a collection of component versions that make up a system.
What are two actions that git version management takes to reduce system storage?
A compression algorithm for stored files and they use the notion of pack files where smaller files are combined into a indexed single file
What are the three different platforms that may be involved in a system building process?
The development system includes development tools such as compilers and source code editors, the changes are typically in a private workspace before making changes to the system. The build server builds definitive, executable versions of the system. The target environment is the platform on which the system executes.
What are the two types of signature that may be used to relate source code files and their equivalent object code in a build system?
Modification timestamps and source code backups
What are the objectives of the change management process?
The evolution of the system is controlled and only the most urgent and cost-effective changes are prioritized.
What are the advantages of inspections over testing?
In testing, test code could of overlooked some aspect so the system wouldn't have been thoroughly tested. In an inspection, the system can be reviewed with broader knowledge.
The three principal stages of testing for a commercial software system?
Development testing, release testing, and user testing
The three important classes of interface errors?
Interface misuse, interface misunderstanding, timing erros
What are the three types of user testing?
Alpha testing, beta testing, and acceptance testing
What is stress testing and why is it useful?
If a system is designed to handle 300 processes per second and you test well beyond that you can ensure it meets that and make checks to make sure it doesn't go past the point of degradation