Chapter 2: Software Process and Process Models

Ace your homework & exams now with Quizwiz!

What are the four activities that may be part of the design process for information systems?

1. Architectural Design - where you identify the overall structure of the system, the principal components, their relationship and how they are distributed. 2. Database Design - Where you design the system data structures and how these are represented in a database. Decide to reuse or create a new database. 3. Interface Design - where you define the interfaces between system components 4. Component Selection and Design - Reuse components or design new. Simple Design Specification for the programmer. Can design models in UML. The UML may be used automatically to get code implementation.

What are the three Stages of Testing process?

1. Component Testing - Each component is tested independently without other system components. Components can be simple entities (functions, objects classes and etc). Test automation tools (Junit) can rerun component tests when new versions are created of the component. 2. System Testing - Finding Errors that result from unanticipated interactions between components and component interface problems. Whether system meets functional or non-functional requirements. 3. Customer Testing - For custom built software, customer testing may reveal errors and omissions in the system requirements definition. Customer testing shows how well the software product meets the customer's needs.

What are the advantages of Incremental Delivery?

1. Customers can use the early increments as prototypes and gain experience that informs their requirements for later system increments. 2. Customer don't have to wait for entire system is delivered. 3. Easy to incorporate changes to the system. 4. As the highest priority services first and later increments then integrated.

How can software prototype help anticipate changes that may be required?

1. In the requirements engineering process, a prototype can help with the elicitation and validation of system requirements. 2. In the system design process, a prototype can be used to explore solutions and in the development of a user interface for the system.

What are the problems with Incremental Delivery?

1. Iterative Delivery is problematic when the new system is intended to replace the existing system. [but in iterative you have to reuse features in the old systems] 2. Most systems require a set of Basic facilities. In Iterative delivery, requirements are not identified in detail until an increment is to be implement. 3. In iterative process, the specification of the is developed in conjunction with the software (interleaved). It conflicts with procurement model of most organization of having complete system specification as part of the software development contract.

What are the phases of Waterfall Model?

1. Requirements analysis and definition - The systems services, constraints, and goals are established by consultation with system users. ( system specification) 2. System and Software Design - The System design establishes the overall system architecture. The Software Design involves identifying and describing the fundamentals software system abstractions and relationship. 3. Implementation and Unit Testing- Software design is realized as a set of programs or program units. Unit testing involves verifying that each unit meet its specification. 4. Integration and System Testing - The individual program units are integrated and tested as a complete system to ensure that the software requirements have been met. After testing the software system is delivered to the customer. 5. Operation and Maintenance - The longest life-cycle phase. The system is installed and put into practice. Maintenance involves - correcting errors that were not discovered in earlier stages of the life cycle - improving the implementation of systems units - enhancing the system's services as new requirements are discovered.

What are the advantages of Incremental Development over Waterfall?

1. The cost of implementing requirements changes is reduced. The amount of analysis and documentation that has to be redone is less that waterfall 2. It is easier to get customer feedback on the development work that has been done. Customers can find it difficult to read software design documents that is done in waterfall. 3. Early delivery and deployment of useful software to the customer is possible.

From Management Perspective, the incremental approach has two problems, what are they?

1. The process is not visible. Managers need regular deliverables (solid) to measure progress. If systems are developed quickly, it is not cost effective to produce documents that reflect every version of the system. 2. System Structure tends to degrade as new increments are added. Difficult and costly to add new features to a system. Agile suggests that you should refactor (improve on restructuring) the software.

What is prototyping?

A prototype is an early version of a system that is used demonstrate concepts, try out design options, and find out more about the problem and its possible solutions. - iterative Development of the prototype is essential so that costs are controlled and system stakeholders can experiment with the prototype early in the software process.

What is a Software Process Model (Software Development Life Cycle)

A simplified representation of software process. Each process model represents a process from a particular perspective and thus only provides partial information about that process. There are generic processes models like waterfall model, incremental Development, and Integration and Configuration.

What is a Software Design?

A software design is a description of the structure of the software to be implemented, the data models, and structures used by the system, the interfaces between system components, and sometimes the algorithms used.

what happens before the requirements Engineering Process?

Before the requirements engineering process starts, a company may carry out a feasibility or marketing study to access whether or not there is a need or market for the software required. Feasibility studies are short-terms, relatively cheap study that inform the decision whether or not to go ahead with a more detailed analysis.

Coping with change?

Change is inevitable when it comes to software projects. Change adds cost to software development because of the rework that has to be done. To reduce the cost of rework, these principles should be thought of... 1. change anticipation - where the software process includes activities that can anticipate or predict possible changes before significant rework is required. (like a prototype). 2. Change Tolerance - where the process and software are designed so that changes can be easily made to the system (like an incremental development)

What is Software Process improvement?

Companies have turned to Software Process improvement as a way of enhancing the quality of their software, reducing costs, or accelerating their development process. Process improvement means understanding existing process and changing these processes to increase product quality and for reduce costs and development time.

What types of software system is waterfall appropriate for?

IMPORTANT - Waterfall cannot accept changes to the system later. 1 Embedded Systems - Software has interference with the hardware systems because of the inflexibility of hardware, it is not usually possible to delay decisions on the software's functionality until it is implemented. 2. Critical Systems - extensive safety and security analysis of software specification and design. 3. Large Software Systems - when broader engineering systems are developed, complete specifications are needed for each subsystems being developed.

What is test-driven development?

In a test-driven development, which is normal part of the agile processes, tests are developed along with the requirements before development starts. This helps the testers and developers to understand the requirements and ensures that there are no delays as test cases are created.

Describe Incremental Delivery?

Incremental Delivery is an approach to software development where some of the developed increments are delivered to the customer and deployed for use in their working environment. In a incremental delivery process, customers define which of the services are most important to them.

Describe Incremental Development?

Incremental Development is based on the idea of developing an initial implementation, getting feedback from users and others, and evolving the software through several versions until the required system has been developed. It can be either plan driven, where the system increments are identified in advance. Or Agile approach, the early increments are identified but the development of later increments depends on progress and customer priorities.

What is the unified Process (UP) and IBM's Rational Unified Process (RUP)?

It is use-case driven, architecture-centric, iterative and incremental software process. Iterations are grouped into four phases: Inception, Elaboration, Construction, and transition. - Each UP phase consists of one or more iterations. They are built on previous iterations, and the final product is constructed incrementally. Each phase go through a set of nine disciplines: business modelling, requirements, design, implementation and test activities, plus supporting activities such as configuration management, project management, and environment.

What are the general process models for reuse based development?

Requirements Specification - The initial requirements for the system are proposed. Brief descriptions of essential requirements and system features. Software Discovery and Evaluation - Given outline of requirements, search is made for components and systems that provide the functionality required. Candidate components and systems are evaluated to meet the essential requirements, and if they generally suitable for use in the system. Application System Configuration - If an off -the-shelf application system that meets the requirements is available, it may then be configured for use with the new system. Component adaptation and integration - If there is no off-the-shelf system, individual reusable components may be modified, and new components developed. They are later integrated with the new system.

What are the Four Fundamental Software Engineering activities?

Software Specification - The functionality of the software and constraints on it operation must be defined Software Development - The software to meet the specification must be produced Software Validation - The software must be validated to ensure that it does what customers want. Software Evolution - The software must evolve to meet changing customer needs.

What is the waterfall model? (generic process model)

Takes the Fundamental process activities of specification, development, validation and evolution and represents them as a separate process phases such as requirements specification, software design, implementation and testing.

What is the right software process model?

The right process model depends - on the customer and regulatory requirements - the environment where the software will be used - the type of software being developed. For ex, software critical systems will use waterfall model because of analysis and documentation that is required before implementation. For larger systems one may combine all the generic software process.

When is the Waterfall model is not the right process?

The waterfall model is not the right process in situations where informal team communication is possible and software requirements change quickly. **** Iterative Development and agile methods are better for these systems.

What is Increment Development? (generic process model)

This approach interleaves the activities of specification, development, and validation. The system is developed as a series of version with each version adding functionality to the previous version.

What is integration and Configuration? (generic process model)

This approach relies on the availability of reusable components or systems. The system development processes focuses on configuring these components for use in a new string setting and integrating them into a system.

Describe Software Validation?

Verification and Validation is intended to show that the system meets expectation and the system customer. Program is tested using simulated data, checking processes (inspections and reviews) There is a three-stage testing process: component, system, and customer testing.

Describe Plan-driven software process for testing?

When a plan-driven software process is used testing is driven by a set of test plans. An independent team of testers works from the system specification and design. It is called the V-model of development. Software Validation activities (testing process) corresponds to each stage of the waterfall process model activities.

Describe Integration and Configuration?

we reuse code that is similar to what the solution to a problem requires. Reuse oriented approaches rely on a base of reusable software computers and an integrating framework for the composition of the components. Software Components that are reused are 1. Stand-alone applications systems that are configured for use in particular environment. . General purpose systems. 2. Collections of objects that are developed as a component or as a package to be integrated with a component framework like Java Spring framework. 3. Web services that are developed according to service standards and that are available for remote invocation over the internet.

What are the three main activities in the requirements engineering process?

1. Requirements Elicitation and Analysis - deriving the system requirements through observation of existing systems, discussing with users and task analysis. These help you understand the system to be specified. 2. Requirements specification - transforming the information gathered during requirements analysis into a document that defines a set of requirements. - User Requirements, abstract statements of system requirements - System Requirement, detailed description of the functionality to be provided.

What is a Spiral Model?

Proposed by Barry Boehm, the spiral model is an evolutionary software process that couples the iterative nature of prototyping with controlled and systematic aspects of the waterfall model. - provides the potential for rapid development of increasingly more complete of the software to be developed. It is a risk-driven process.


Related study sets

Midterm Review_Marketing, Production, and Distribution

View Set

IT314 CH12 Sub- Queries and MERGE Statement

View Set

Study Guide: Genesis 1-11 Creation, the Fall, Sin Stories

View Set

Microbiology Unit 2 Lrnr Exam #2

View Set