Software Engineering Midterm Review Questions

Ace your homework & exams now with Quizwiz!

What is test driven programming, and which agile process advocates for it?

XP

What type of testing refers tot testing done by the clients to make sure the program runs as specified?

acceptance testing

Explain the main aspects that open source development shares with Agile methods?

"Short" releases and multiple iterations Incremental design/development User involvement (especially for in-house) Informal communications Assumes changes

Explain some of the characteristic of the Agile methodologies?

"Short" releases and multiple iterations Incremental design/development User involvement (especially for in-house) Minimal documentation Informal communications Assumes changes

Compare and Contrast Agile and traditional methods?

"Small" vs "Large" projects Assumes change vs Can't handle change Minimal Documentation vs duplication Incremental Design vs Non-incremental

What are the six main dimensions of requirements that you need to address when collecting requirements?

1) Individual Functionality 2) Business flow 3) Data, formats, and information needs 4) User interfaces 5) Interfaces with other systems 6) Constraints such as performance, reliability, and security

What are the four types of requirements traceability?

1) backward from traceability: links the requirements to the documents source or the person who created it 2) forward from traceability: links the requirement to design and implementation 3) backward to traceability: links design and implementation back to the requirements 4) forward to traceability: links documents preceding the requirements to the requirements

List and describe three items that you will need to consider when prioritizing requirements

1) current customer demands 2) competition and current market condition 3) future customer needs 4) immediate sales advantage 5) critical problems in the existing product

List four items that are included in the description of a high-level business profile.

1) opportunity/needs 2) Justification 3) Scope 4) Major constraint 5) Major functionality 6) Success factor 7) User characteristics

What are the eight principles for software engineering code of ethics recommended by the IEEE-CS/ACM Version 5.2 joint task force report

1) software engineers shall act consistently with the public interest 2) Software engineers shall act in a manner that is in the best interests of their client and employer, consistent with the public interest 3) software engineers shall ensure that their products and related modifications meet the highest professional standards possible 4) software engineers shall maintain integrity and independence in their professional judgement 5) Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance 6)Software engineers shall advance the integrity and reputation of the profession consistent with the public interest 7) software engineers shall be fair to and supportive of their colleagues 8) software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession

What is the maximum number of communication paths for a team of twenty people

190 paths which is K(20)

Describe a way to simplify a complex problem

A common attribute among the methodologies of simplification is to lessen the relationships, number of functionalities, amount of interactions, etc. One such technique is decomposition, and another is modularization.

Define the depth versus the breadth issue in software complexity

Breadth: concerned with the numbers involved with major functions , features within each functional area, interfaces to external systems, simultaneous users, and types of data and data structures Depth: concerned with how different parts of the program are linked together. Ways programs could be linked together include: hierarchical, sequential, loop, or recursive, Depth also has a focus on error handling and performance.

List the four core values of XP

Communication Simplicity Feedback Courage

What are two general characteristics of a good design that naturally evolve from requirements?

Consistency and completeness

What are the four quadrants in the Spiral Model? Trace the requirements set of activities through each quadrant.

Determining obejctives, alternatives

What is one advantage and disadvantage of the waterfall process?

Disadvantage: Limited user interaction Advantage: Gives Project Managers a more precise status of the due date/release date

Agile methods prefer rigid process over adapapting to the people?(True or False)

False

What is GUI? What is CLI?

GUI: Graphical User Interface is a type of interface by which users can interact with the computer by the means of mouse, keyboard, etc. The GUI consists of windows, icons, and buttons CLI: Command line interface is a type of user interface in which the users interact with the computers through commands. A user writes a command on a terminal or compiler and system receives the command and gives a response according to that command

What requirements qualify as functional requirements? Specify in what manner they need to be achieved.

Input formats: What is the format for the input data? How should it be stored? Sorting: specifies how to sort a file by characters, numbers, etc. To simplify our problem, we define sorting among characters as being in numerical order, and the sorting of the file to be in ascending order Special cases, boundaries, and error conditions: specifies how to handle special cases, boundaries and error conditions

List two technical concerns in developing large systems

Large system requires software engineers to consider many aspects of development including: a) architecture and design decompostion b) choices of language, database, network, middleware c) the process and methodologies to be used for development

List three of the typical kinds of nonfunctional requirements

Performance requirements Real-time requirements Modifiability requirements security requirements usability requirements

List 5 XP practices:

Planning Game Metaphor Simple Design Coding Standard Refactoring

What is the goal of a software process model?

Provides "guidance" for a systematic coordination and controlling of : - The tasks - The personnel who perform the tasks

What factors does the Crystal family consider when choosing a methodology?

Size Criticality Priority

Can a software engineer become a certified Professional Engineer?

There is not PE designation for software engineers

Agile methods prefer working programs over comprehensive documentation (True or False)

True

What is the viewpoint-oriented requirements definition method used for?

Viewpoint oriented requirements definition are used to identify the different user classes and their viewpoints. Viewpoint analysis help to recognize different perspectives and provides a way for discovering and possible conflicts in the requirements proposed by different stakeholders

What are statements that define and qualify what the program needs to do?

program requirements

List two of the three strategies cited by the 2004 U.S. General Accounting Office report as key to ensuring delivery of successful software

attention must be given to software development environment the development process should be disciplined the usage of metrics to gauge cost, schedule and other performance

Which decisions are those taken by the software engineer about the best ways (processes, techniques, and technologies) to achieve the requirements?

choose a process to build a program based on the input size, user interfaces, etc. which platforms should be chosen to run a program depends upon the need of the problem statements. A software engineer should always analyze the problem whether it needs additional platforms to run the program or not a software engineer should choose a programming language which is suitable according to the design constraints. It is an important technical decision.

What are statements that constrain the ways in which the software can be designed and implemented?

design constraints

List and describe at a high level the steps involved in the software requirements engineering process

elicitation documentation and definition specification prototyping analysis review and validation agreement and acceptance

Which type of requirement statement defines what the program needs to do?

functional requirements

List four factors that should be considered in deciding how many post release people will be needed

original development people committed, expected users, known problems, projected problems

What are the three main items that must be planned prior to conducting requirements engineering?

plan for requirements activities agreeing on resources, methodology and schedule for requirements activities obtain and organize the agreed upon resource and methodology

From the definition of software engineering, list three areas that software engineering must touch on

technical and business processes specific methodologies and techniques product characteristics and metrics people skills, and teamwork tools and training project coordination and management

What is meant by the term principles of software engineering

the rules and assumptions in software engineering derived from extensive observations

When and where was the term software engineering first introduced

the term software engineering was suggested at conferences organized by NATO in 1968 and 1969 to discuss the software crisis, which was difficulties encountered in developing large and complex systems

List two key reasons that have caused both software project successes and failures

user involvement executive management support clear requirement statements proper planning


Related study sets

Level H, Unit 11: Choosing the Right Word

View Set

SIE 7 The Securities Act of 1933 and Primary Markets

View Set