CS4345 Software Engineering Priciples Test 1

Ace your homework & exams now with Quizwiz!

What perspectives should be used for system modelling?

An external perspective An interaction perspective A behavioral perspective A structural perspective.

Who is the User?

The person who actually uses the software Customer = user in some cases

Waterfall Model

A feasibility study cannot create a proposed budget and schedule without a preliminary study of the requirements and a tentative design. Detailed design and implementation reveal gaps in the requirements specification. Requirements and/or technology may change during the development.

Lightweight process

The development team releases working software in small increments, and develops the plans incrementally, based on experience. Each increment includes all the process steps. There is expectation that changes will be made based on experience. [example: Agile Software Development]

FROM QUIZ 2: Requirements should specify 'what' but not 'how' T or F?

True

Scrum Benefits

Unstable requirements do not hold up progress Customers see on-time delivery of increments and gain feedback on how the product works Product is broken down into manageable chunks

Acceptance testing

The client tests the final version of the system or parts of the system against the requirements.

Choosing a Software Process

If the requirements are poorly understood, or expected to change, select a process that keeps flexibility. Iterative refinement, sprints, phased implementation. If a big software systems has many inter-related components, avoid major changes to the design of a system during development. Sequential process, such as the modified waterfall model. If the market for the software is poorly understood, use a process that gets operational software in front of customers as quickly as possible. Incremental, sprints.

Risk is lowered by:

Prototyping key components Frequent releases, or dividing large projects into phases Early and repeated testing with users and customers Following a visible software process Making use of reusable components

The challenge of Agile development

The agile approach is excellent for the development or continual enhancement of a system within an established architecture A high-level team must establish the overall architecture and coordinate the sprints

Incremental (Agile Development)

The project is divided into a large number of small tasks, known as sprints For each sprint, a team works through a full software development cycle including planning, requirements analysis, design, coding, testing, and acceptance testing, and release Each sprint is completed in a fixed time period, e.g., four weeks. The size of an sprint is based on team size, e.g., 5-10 people.

Spiral Development

Used when certain parts of the system may be well understood but other parts require iterative refinement to clarify the specifications. Creates a base system that has the overall structure of the final product with dummy stubs for missing components Creates a comprehensive set of test cases for all completed components Use a succession of sprints to develop new or improved components, each with a set of test cases. Add these components to the source code library On a daily cycle, build the entire system from the source code library and run the complete set of test cases

Which of the following is the reason the software is delivered late?

-Changing customer requirements that are not reflected in schedule changes - Technical difficulties that could not have been foreseen in advance - Human difficulties that could not have been foreseen in advance.

Principles of UI Design

-Consistency -Feedback -Ability to interrupt or reverse actions -Error handling

What are the principal stages of the requirements engineering process?

1. Requirements elicitation and analysis 2. Requirements specification 3. Requirements validation

Give 5 reasons why eliciting requirements is difficult?

1. Stakeholders don't know what they want 2. Stakeholders use their own language that requirements engineers may not understand. 3. Stakeholder requirements may conflict 4. Political factors may influence the system requirements 5. The business environment may change during elicitation.

Different types of risk

Project risks Product risks Business risks

Causes of failed software projects

1.Incomplete requirements 2.Lack of user involvement 3.Lack of resources 4.Unrealistic expectations 5.Lack of executive support 6.Changing requirements & Specs 7. Lack of planning 8. System no longer needed

Scrum Term: Scrum

A daily meeting of the Scrum team that reviews progress and prioritizes work to be done that day. Ideally, this should be a short face - to - face meeting that includes the whole team .

Scrum Term: Sprint

A development iteration. Sprints are usually 2 - 4 weeks long.

Scrum Term: Development Team

A self-organizing group of software developers, which should be no more than 7 people. They are responsible for developing the software and other essential project documents .

What is a software process model?

A simplified representation of a software process presented from a specific perspective. Workflow perspective- sequence of activities Data-flow perspective-information flow Role/action perspective- who does what (actors)

Sprint

A sprint is a set period of time during which a team completes part of a software project Each sprint will go through most of all process steps A typical sprint might have a team of 6-8 people working 2-4 weeks.

System requirements

A structured document setting out detailed descriptions of the system's functions, services and operational constraints. Defines what should be implemented so may be part of a contract between client and contractor.

Spiral (made popular by MS with OS)

A variant of iterative refinement in which new and updated components are added to the developing system as they are completed

What UML diagram types do you need to represent the essential features of a system?

Activity diagrams, Use case diagrams, Sequence diagrams, Class diagrams, State diagrams

Scrum Term: Product Owner

An individual (or possibly a small group) whose job is to identify product features or requirements, prioritize these for development and continuously review the product backlog to ensure that the project continues to meet critical business needs . The Product Owner can be a customer but might also be a product manager in a software company or other stakeholder representative .

Activity

An activity is a general term of any part of a project that takes place over time (also known as task) Each step in software development can be broken into several activities

Scrum Term: Velocity

An estimate of how much product backlog effort that a team can cover in a single sprint. Understanding a team's velocity helps them estimate what can be covered in a sprint and provides a basis for measuring improving performance .

FROM QUIZ 2: Which of the following is not a project management goal? - Keeping overall costs within budget - Delivering the software to the customer at the agreed time - Maintaining a happy and well functioning development team. - Avoiding customer complaints

Avoiding customer complaints

FROM QUIZ 2: Which model in system modeling depicts the dynamic behavior of the system?

Behavioral model

GUI vs CLI

CLI - Command line interface - Allows complex instructions to be given to computer - Requires learning or training - Suitable for scripting/ non-human clients GUI - graphical user interface: - Not suitable for some complex interactions - New users pick up gui faster - Difficult to build scripts - Control over files and the operating system - Only suitable for human users

Phased Development

Combine sequential and iterative elements A simple system with basic functionality is brought quickly into production (Phase 1). This system may be developed using a sequential or iterative refinement Subsequent phases are based on experience gained from users of the previous phase

Waterfall

Complete each process step ONCE before beginning the next

Milestone

Completion of a specified set of activities (e.g., delivery of a deliverable, completion of a process step)

Project management

Concerned with activities involved in ensuring that software is delivered on time and on schedule and in accordance with the requirements of the organisations developing and procuring the software.

What are the four critical factors in people management ?

Consistency, Respect, Inclusion, Honesty

Non-functional requirements

Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc. Often apply to the system as a whole rather than individual features or services. Requirements that are not directly related to the functions that the system must perform. performance , reliability, portability, etc. delivery , training, standards, etc. legal , interoperability, etc.

Domain requirements

Constraints on the system from the domain of operation

Iterative Refinement (Evolutionary Development)

Create a prototype system early in the process Review the prototype with clients and test it with users, to improve the understanding of the requirements and clarify the design Refine the prototype in a series of iterations Requirements are hard to understand until there is an operational system, particularly with user interfaces Mistakes in the requirements are the most expensive to correct.

The Project Manager

Create and maintain the schedule Track progress against schedule Keep some slack in the schedule ( minimize risk) Continually make adjustments: Start activities before previous activity complete Sub-contract activities Renegotiate deliverables Keep senior management informed ( visibility).

FROM QUIZ 2: Every task that is scheduled should be assigned to a specific team member is termed as? - Compartmentalization - Defined Milestones - Defined Responsibilities - Defined outcome

Defined Responsibilities

FROM QUIZ 2: Which of the following is not a step of requirement engineering? - Elicitation - Design - Analysis - Documentation

Design

Existing and planned system models (presentation 8 slide 5 she said to memorize)

Existing System: - Used during requirements engineering - Help clarify what the existing system does - Can be used as a basis for discussing strengths and weaknesses New System: - Used during requirements engineering - Help explain the proposed requirements to other system stakeholders. - Engineers use theese models to discuss design proposals to and for documentation In a model-driven engineering process, it is possible to generate a complete or partial system implementation from the system model

FROM QUIZ 2: A stakeholder is anyone who will purchase the completed software system under development. T or F?

False

FROM QUIZ 2: "Consider a system where, a heat sensor detects an intrusion and alerts the security company." What kind of a requirement the system is providing?

Functional

What is the distinction between functional and non-functional requirements?

Functional requirements define what the system should do. Non-functional requirements are not directly concerned with specific system functions but specify required system properties or place constraints on the system or its development process.

The three competing goals

Functionality, Cost, Time

Types of software products:

Generic, Bespoke(customized)

Iterative refinement

Go quickly through all the steps to create a rough system, then repeat them to improve the system

Heavyweight and Lightweight Methodologies: Client Negotiation

Heavyweight

Heavyweight and Lightweight Methodologies: Following a plan

Heavyweight

Heavyweight and Lightweight Methodologies: Processes and tools

Heavyweight

Heavyweight and Lightweight Methodologies: Specification

Heavyweight

Heavyweight Processes vs Lightweight Processes

Heavyweight: expect detailed specification. Written documentation that specifies each requirement in detail. Carefully checked by client and developers. Time consuming and difficult to create and maintain. Clients rarely understand the implications. Lightweight: use an outline specification + other tools. Documentation describing key requirements in appropriate detail. Reviewed by client and developers. Iterative or incremental development processes allow the client to appreciate what the final system will do

Human Computer Interaction (HCI)

Human Computer Interaction is the academic discipline that studies how people interact with computers

FROM QUIZ 2: What is the first step of requirement elicitation?

Identifying Stakeholder

What are the most important differences between agile planning and plan-based development?

In plan-based development, a plan for the whole project is drawn up before the project starts and this plan is modified as more information becomes available during the project. In agile planning, planning is iterative and only the next iteration of the software is planned, often in detail. In plan - based development, the schedule is usually extended if problems occur ; in agile planning, the system being developed is cut down so that the

Problems with natural language

Lack of clarity Requirements confusion Requirements amalgamation

Heavyweight and Lightweight Methodologies: Client collaboration

Lightweight

Heavyweight and Lightweight Methodologies: Individuals and interactions

Lightweight

Heavyweight and Lightweight Methodologies: Responding to change

Lightweight

Heavyweight and Lightweight Methodologies: Working Software

Lightweight

User Interface Design: Mental model

Mental model: 1) User interface 2) Interface functions 3) data and metadata 4) computer systems and networks The user interface is the appearance on the screen and the actual manipulation by the user (fonts, colors, logos, etc) (mouse control, touch screen, etc)

FROM QUIZ 2: Which of the following is a functional requirement? - Maintainability - Robustness - Portability - None

None

Tabular specification

Particularly useful when you have to define a number of possible alternative courses of action. Used to supplement natural language.

Plan-driven VS Agile development

Plan-driven development A plan-driven approach to software engineering is based around separate development stages with the outputs to be produced at each of these stages planned in advance. Not necessarily waterfall model- plan-driven, incremental development is possible Iteration occurs within activities. 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.

List 3 types of non-functional requirement?

Product requirements, that specify or constrain the software's behavior. Organizational requirements, are general requirements derived from policies and procedures in the customer's organization. External requirements, which cover all requirements derived from factors external to the system and its development process.

Plan-driven Development

Pros: Early planning allows organizational issues (availability of staff, other projects, etc.) to be closely taken into account, Potential problems and dependencies are discovered before the project starts, rather than once the project is underway. Cons: Many early decisions have to be revised because of changes to the environment in which the software is to be developed and used.

What is a software process?

Set of activities whose goal is the development or evolution of software. Specification- what the system should do and its development constraints Development-production of the software system Validation- validating the development against customer requirements Evolution- making changes to the software in response to changing demands

For what types of system are agile approaches to development particularly likely to be successful ?

Small and medium-sized software product development. Custom software development in an organization where there is a clear commitment from customers to become involved in the development process .

Agile

Small increments of software are developed in a sequence of sprints, each of which creates a deployable code

What is Software Engineering?

Software engineering is an engineering discipline that is concerned with all aspects of software production (Design, development and maintenance). Software engineering is concerned with the practicalities of developing and delivering useful software.

FROM QUIZ 2: ___and___ are the two issues of Requirement Analysis.?

Stakeholder, Developer

User requirements

Statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers.

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. Describe functionality or system services.

FROM QUIZ 2: What is a collection of software engineering work tasks, milestones, and deliverables that must be accomplished to complete a particular project?

Task set

FROM QUIZ 2: Which of the following is not considered a risk in project management? - Specification delays - Product competition - Testing - Staff turnover

Testing

Scrum Term: Scrum Master

The Scrum Master is responsible for ensuring that the Scrum process is followed and guides the team in the effective use of Scrum. He or she is responsible for interfacing with the rest of the company and for ensuring that the Scrum team is not diverted by outside interference. The Scrum developers are adamant that the Scrum Master should not be thought of as a project manager. Others, however, may not always find it easy to see the difference .

Program testing

The development team tests components individually (unit testing) or in combination (system testing) against the design to find bugs, etc.

Scrum Term: Potentially Shippable Product Increment

The software increment that is delivered from a sprint . The idea is that this should be 'potentially shippable' which means that it is in a finished state and no further work, such as testing, is needed to incorporate it into the final product . In practice, this is not always achievable .

Heavyweight process

The development team works through the steps slowly and systematically, with the aim of fully completing each step and delivering a complete software product that will need minimal changes and revision [example: modified waterfall model]

Event

The end of a group of activities, e.g., agreement by all parties on the budget and plan

Three phases of scrum

The initial phase is an outline planning phase where you establish the general objectives for the project and design the software architecture. This is followed by a series of sprint cycles, where each cycle develops an increment of the system. The project closure phase wraps up the project, completes required documentation such as system help frames and user manuals and assesses the lessons learned from the project.

What is the software requirements document?

The official document that defines the requirements that should be implemented by the system developers.

Who is the client?

The person for whom the software development team creates the software. The person who provides resources and expects some product in return Client satisfaction is a primary measurement of success in a software project

feasibility study

The results of the feasibility study should be a report that recommends whether or not it is worth carrying on with the requirements and development process.

User Experience (UX)

The user experience is the total of all the factors that contribute to the usability (or otherwise) of a computer and its systems

Scrum Term: Product Backlog

This is a list of 'to do' items which the Scrum team must tackle . They may be feature definitions for the software, software requirements, user stories or descriptions of supplementary tasks that are needed, such as architecture definition or user documentation .

FROM QUIZ 2: Which is one of the most important stakeholders from the following?

Users of the software

User testing

Versions of the user interface are tested by users. Their experience may lead to changes in the requirements or the design.

In a heavyweight process:

each process step creates a deliverable, usually documentation, ex: requirements specification

Scope

expresses the boundaries of the system

What is a use-case?

identifies a typical interaction with a system and the actors (human or computer) involved in that interaction.

Rapid Software Development

is now often the most important requirement for software systems

Deliverable

some work product that is delivered to the client

In a lightweight process:

the deliverables are incremental working code, with minimal supporting documentation

Mental Model/Conceptual model

what a user thinks is true about a system, not necessarily what is actually true. A mental model allows a user to predict the results of his/her actions A mental model is simpler than the represented system. It includes only enough information to allow reasonable predictions

Proposal Planning stage

when you are bidding for a contract to develop or provide a software system.

Project Startup Planning Phase

when you have to plan who will work on the project, how the project will be broken down into increments, how resources will be allocated across your company, etc.

What is the distinction between the terms' shall' and 'should' in a user requirements document, which is written in natural language?

ʻ Shall ʼ normally indicates a mandatory requirement ʻ Should ʼ indicates a desirable but not essential requirement.


Related study sets

Howard University Biology 101 Final Study Guide (Ch.1 - Ch.8)

View Set

AP Human Geography Key Issue 11.3 Part 1 Terms

View Set

Graphic Designer Interview Questions

View Set

Chapter 5: Performance Measurement

View Set

Security+ Assessment Exam 1 (DG)

View Set

мовознавство терміни: фонетика

View Set

Pharmacology-Chapter 46 Antineoplastic Drugs Part 2

View Set