LSU CSC 4330 Software Engineering Final

Pataasin ang iyong marka sa homework at exams ngayon gamit ang Quizwiz!

Codeline

A set of versions of a software component and other configuration items on which that component depends

Repository

A shared database of versions of software components and meta-information about changes to these components

What is the difference between evolutionary and throw-away prototypes?

A throw-away prototype is a prototype that is discarded after development & an evolutionary prototype is one which you build upon to create the final product

What are the main tasks involved in project scheduling?

Identify activities, identify activity dependencies, estimate resources for activities, allocate people to activities, & create project charts

What is the main cause of software engineering issues?

Increasing system complexity & failure to use software engineering methods

What makes a good design?

Information hiding, high cohesion, low coupling, consistency, availability

Prototype

Initial version of a system used to demonstrate concepts and try out design options

What are the 2 types of information in a system release?

Major releases, which deliver significant new functionality, and minor releases, which repair bugs and fix customer problems that have been reported

Client-Server Architecture

Many clients communicate over a network to one or more servers

Incremental Development model

Specification, development & validation are interleaved (may be plan-driven or agile)

Test-driven development

Writing tests before code

Repository Architecture

You have a central data store that different applications use

4 Key Points of Agile Manifesto

(1) Individuals and interactions over processes and tools, (2) working software over comprehensive documentation, (3) customer collaboration over contract negotiation, & (4) responding to change over following a plan

MVC Architecture

3 main components: (1) Model (holds the state), (2) View, (3) Controller

Baseline

A collection of component versions that make up a system

Minimizing recompilation

Check if a compiled version of a component is available. If so, there is no need to recompile that component

Integration Testing

A level of software testing where individual units are combined and tested as a group. The purpose of this level of testing is to expose faults in the interaction between integrated units.

Deltas

A list of differences between one version of the system and another (instead of keeping a copy of each version)

Mainline

A sequence of baselines representing different versions of a system

Scrum

An agile method that provides a project management framework: it is centered around a set of sprints, which are fixed time periods when a system increment is developed

COCOMO (cost modeling)

An empirical model based on project experience

What is project planning?

Breaking down the work into parts, assigning parts to project team members, and anticipating problems that might arise and prepare tentative solutions to those problems

Refactoring

Constant code improvement

Nonfunctional Requirements

Constraints on the services or functions offered by the system such as performance, speed, & ease of use

Coupling Types (from high to low)

Content, Common, Control, Stamp, Data

Acceptance Testing

Customer leads testing and defines cases to be tested

Layered Architecture

Decompose 'layers'; good for info hiding

Software Engineering

Engineering discipline concerned with all aspects of software production

Regression Testing

Ensure that changes have not introduced unexpected behavior

What are the attributes of good software?

Essential software product attributes are maintainability, dependability and security, efficiency, & acceptability.

Software Pricing Considerations

Estimates are made to discover the cost, to the developer, of producing a software system. These estimates take into account hardware, software, travel, training & effort costs.

What are the different types of estimation techniques?

Estimation techniques for software may be experience-based, where managers judge the effort required, or algorithmic, where the effort required is computed from other estimated project parameters.

Capability Maturity Model (CMM)

Framework for continuous process improvement

Cohesion Types (from good to not good)

Functional, Communicational, Sequential, Procedural, Temporal, Logical, Coincidental

Storage management in Git

Git does not use deltas but applies a standard compression algorithm to stored files and their associated meta-information. Git also uses the notion of packfiles where several smaller files are combined into an indexed single file

Installation Testing

If acceptance testing done on site: acceptance = installation else: additional on site testing to ensure completeness of system & to verify any functional or nonfunctional characteristics affected by site conditions

What is Risk Management?

If there are serious problems with the development work that are likely to lead to significant delays, initiate risk mitigation actions to reduce the risks of project failure. In conjunction with these actions, you also have to re-plan the project

Change Management

Keeping track of requests for changes to the software from customers and developers, working out the costs and impact of changes, and deciding the changes that should be implemented

Test Oracle

Mechanism to determine the expected behavior

What are the different types of file identification used to determine if recompilation of a component is needed?

Modification timestamps, where the signature on the source code file is time and date when the file was modified, and source code checksums, where the signature on the source code file is a checksum calculated from data in the file

Distributed Version Control

Multiple versions of the component repository exist at the same time (e.g., Git)

What is the difference between plan-driven & agile processes?

Plan-driven processes are processes where all of the process activities are planned in advance and progress is measured against this plan. In agile processes, planning is incremental and it is easier to change the plan and the software to reflect changing requirements.

Milestones

Points in the schedule against which you can assess progress, for example, the handover of the system for testing

Release Management

Preparing software for external release and keeping track of the system versions that have been released for customer use

Project Scheduling

Process of deciding how the work in a project will be organized as separate tasks, and when and how these tasks will be executed

Testing

Process of executing a program with the intent of finding an error

Test Stub

Program that simulates the activity of a missing module by answering to the identical calling sequence of the module and passing back output data that allows the testing process to continue

Pair Programming

Programmers working in pairs, developing code together

Spiral model

Risk-driven

Waterfall model

Separate and distinct phases of specification and development (plan-driven)

Test Case

Set of inputs and expected results that exercises a component with the purpose of causing failures and detecting faults

Centralized Version Control

Single master repository that maintains all versions of the software components (e.g., subversion)

Dependability and security

Software dependability includes a range of characteristics including reliability, security and safety. Dependable software should not cause physical or economic damage in the event of system failure. Malicious users should not be able to access or damage the system.

Acceptability

Software must be acceptable to the type of users for which it is designed. This means that it must be understandable, usable and compatible with other systems that they use.

Maintainability

Software should be written in such a way so that it can evolve to meet the changing needs of customers

Efficiency

Software should not make wasteful use of system resources such as memory and processor cycles. Efficiency therefore includes responsiveness, processing time, memory utilization, etc.

Functional Requirements

Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations (may state what the system should not do)

Integration & Configuration model

System assembled from existing configurable components (may be plan-driven or agile)

Performance Testing

System performance measured against objectives set by customer

Extreme Programming (XP)

Takes an 'extreme' approach to iterative development: user stories for specification, refactoring, test-first development, & pair programming

Unit Testing

Testing of individual modules

Function Testing

Testing of the individual functions as defined in the specifications

Branching

The creation of a new codeline from a version in an existing codeline. The new codeline and the existing codeline may then develop independently

Merging

The creation of a new version of a software component by merging separate versions in different codelines

Software Architecture

The fundamental organization of a software system embodied in its components, their relationships to one another & to the environment, and the principles guiding its design & evolution

What is Configuration Management?

The management of an evolving software system

Test Driver

The modules that act as temporary replacements for a calling module and give the same output as that of the actual product.

System Building

The process of assembling program components, data and libraries, then compiling these to create an executable system

Version Control (VC) Systems

Version control systems identify, store, and control access to the different versions of components. There are two types: centralized systems and distributed systems.

What are the 4 primary activities of configuration management?

Version control, system building, change management, and release management


Kaugnay na mga set ng pag-aaral

Exam 1: Unit 7: Staffing and Scheduling

View Set

Intro to Coding - Using Flowcharts and Pseudocode

View Set

Lecture 6b: Chapter 4 & 5 Igneous rocks & volcanoes -Geology 301

View Set

A&P II Chapter 19: Blood Vessels

View Set