Software Engineering Midterm Study Guide

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

which is true about the use case diagram above? A cannot complete without B B cannot complete without A C cannot complete without B None of the above

C cannot complete without B

requirements imprecision

Problems arise when requirements are not precisely stated. Imprecise requirements lead to development of incorrect software

The result of this activity is a description of the system in terms of actors and use cases Requirements Elicitation Object design Implementation System design

Requirements Elicitation

Given the above use case diagram, which of the following statements is true of the ViewBill use case description The Participation actors is incorrect. It should say "Initiated by Patient and Database" The Flow of events is incorrect. Event #1 should say something about patents logging into the system The Pre-Condition is incorrect. It should be blank The use case description is correct

The participation actors are incorrect. It should say "initiated by patient and database"

extend relationship

a base use case may be influenced by the behavior of the extending use case extend relationships typically used for exceptional behavior in a use case

scenarios

a narrative of what people do and experience as they try to ake use of the systems a concrete example of the system in use used by developers to communicate with clients to better understand the requirements

what are attack vectors

a pathway through which an attaccker exploits a system pathways is the part of the application that serves as the delivery mechanism or is the target of an attack that seeks to exploit a weakness attack vectors represent vulnerability risks for application

what is software engineering

a systematic (organized) approach to software development and maintenance

use cases

a use case represents a sequence of interaction form some functionality the set of use cases define the scope of the system everything outside the system boundary is outside the scope of the system

what is the difference between vulnerability and weakness

a vulnerability is an instance of a security fault in software vulnerabilities can exploited by an attacker a weakness is a type of vulnerability most vulnerabilities most vulnerabillities are due to programming error

what are the set of object-oriented software engineering technical activities

activities produce work products 1. Requirements Elicitation 2. Analysis 3. System Design 4. Object Design 5. Implementation6. Testing

actors

actors represent external entities that interact with the system actors can be human or component actors are part of the system's environment

Which of the following weaknesses is possible and poses a risk to the application? Cross-Site Scription at event #1 Improper Input Validation at event #1 Exposure of Sensitive Information at event #2 All the above

all of the above

Which of these need to be part of a use case description participating actors flow of events use case name all of the above

all of the above

which of the following can be considered a limitation of threat modeling? The accuracy of threat identification and scoring mechanism might not be precise Threat modeling can be time consuming Currently threat moddelling is highly dependent of human expertise all the above

all of the above

flow of events

alternating flow

what is a model

an abstraction of reality abstractions - ignore irrelevent depends on the purpose of the model what is relevant or irrelevant depends on the purpose of the model

exposure of sensitive information

application could reveal important information abouts its implementation state or other confidential ( ip addresses or database connection attack vectors ( descriptive error messages insecure cookies , cache, url parameters, and network traffic mitigation includesL using generic error messaes effective accesss control strong data encryption limiting clients- side information exposure

What is software

computer programs and associated documentation and data

case tool

computer-aided software engineering

post condition

conditions that are satisfied after a use case completes such as • A state that shows that the use case completed • acknowledgement is received• account balance is correctly updated

precondition

conditions that needs to be satisfied before a use case is initiated should not be trivial, e.g, system is turned on, or user has access to system, user pushes login button

what is the meaning of software requirements

descriptions of features that the system must have: description of system services (functional) description of system constraints(non-functional) generated during requirements elicitation critical to distinguish constraints from services It is a contract between the client and the developer

what are the causes of software system failures

developers did not anticipate seldom-occuring situations (e.g. memory leaks), the use actively misusing the system, and project management failures lead to delivery of an incorrect system, lead to unnecessary complexity (e.g., scope creep)

how to find use cases

discuss scenarios - client interview use task observation - find out what the user does create user interface mock-ups

improper access control

failure to correctly determining if the actor is authorized to access some functionaluty or information could result from inconsistent enforcement of authentication and authorization across the application attack vectors (url request, form data)

what is a use diagram also called

functional model

which of the following questions is suitable for eliciting reliability requirements who maintains the system? how much data can the system loose? what documentation should be provided to the user? how many concurrent users should the system support?

how much data can the system loose?

reliabiltiy sample questions for eliciting nonfunctional requirements

how reliable, and fault-tolerant should the system be? is restarting the system acceptable in the event of a failure> (e,g. cruise control system)

which of these activities could be included in Requirements Elicitation? Identifying usage scenarios Identifying the object model Identifying the dynamic model all of the above

identifying usage scenarios

include and extend relationship

include - necessary use case extend - optional use case

what are types of reuse

include and extend relationship

what are the three different attack methods for weaknesses

injection, interception, inspection

what is an attack method

it is a technique that us utilized by an attacker (malicious actor) to exploit a weakness

legal

licensing, regulations(e.g., accessibility)

why is it important to model software

modeling is a means for dealing with complexity because software is complex and some operating systems have more than 100 million lines of code

why are reports of vulnerabilities increasing

modern software is connected to a network modern software reuse many existing software components modern software is very large lack of tools to help developers address security in the development process each vulnerability is associated with a weakness over 900 weaknesses have been enumerated

what are the work products produced by the requirements elicitation activities

nnonfunctional requirements, functional model, dynamic model, analysis object model

Which of the following is NOT considered part of software? Design plans Configuration files The requirements None of the above

none of the above

Which of the following tasks is prescribed for the Security Development Lifecycle (SDL)? Build a prototyple Fix old bugs Plan for the next phase None of the above

none of the above

SQL injection

occurs when an attacker can insert sql statements into application data attack could gain access to the database (view or modify database) interfere with application login (e.g access control) attack vectors (primarily form data) mitigation includes : • Proper validation and sanitization of all incoming data • avoiding the use of user-supplied input in SQL queries • Using stored procedures rather than dynamic queries

unambiguous

only one system is described, cannot be misinterpreted

safety

prevention of damage or harm to a resource (system, data, user). e.g.,

security

prevention of unauthorized access to sstem and data

why model?

problem solving mechanism focus on what is important

performance

quantifiable attributes of the system related to response time or throughput

use case reuse

reduces complexity of use cases by identifying commonalities between use cases avoids redundancy

_________ is a category of requirements that is measured by rate of failure Portability Reliability Usability Performance

reliability

correct

requirements accurately represent what the customer wants (Not what the engineer thinks the customer needs) does not contain unintended features the software engineer should fid out exactly • What: the service (function) required. The goal of the service • Who: the actor that the service is indented for and performs tasks • How: the interaction, including what data (input or output) is needed

se technical activities

requirements elicitation, analysis, object design , system desing

requirements validation

requirements shoul be continuously validated (checked) requirements should be checked for ambiguity, correctness, consistency, completeness if requirements are invalid, all subsequent work products are invalid

examples of associated documentation

requirements, design, test cases (results), manual, configuration files

what are some examples of attack vectors

script: form input, email attachment messaging: http request, email message form data source code ( and scripts) file data (word, excel, json, xml, zip, etc) cookie data email message images(jpeg, gif, etc) network traffic network protocols(https, ftp, smtp, etc)

requirements specification

services and constraints

what is the difference between function and non-function requirements

services vs constraints

Which of the following models will best accommodate changing requirements during the development process? Spiral model Security Development Lifecycle Waterfall model None of the above

spiral model

portability

the ability to transfer system or components between different platforms

reliability

the anility of a system to perform its required function s(corretly and without failure) main time to faulure failure rate

injection

the attacker inserts some form of malicious data into the control flow of an application malicious data could ne in many forms ( code, program) other forms of this method include the insertion of commands into system, to perform tasks on begalf of the attacker

inspection

the attacker is able to observe sensitive information about the application (eg. db request information, implementation details, user credentials attacker could review source code and other system artifacts (client side views, cache, logs and configuration files, stack trace) attack could use obtained information to refine future attack

interception

the attacker is able to view or modigy sensitive data in the application's network traffic typically known as man in the middle attack attacker is able to intercept the traffic between a sender and receiver

include relationship

the base use case includes another use case in its flow of events the base use case would not be considered complete withoug the included use case included use case is not optional

maintainability

the ease of changes to the system, e.g. measure downtime during maintenance

usability

the ease of use of the system from the perspective of the user user interface design, online help,k documentation (tool tims?)

examples of ambiguity

the system shall provide appropriate viewers for the user to read documents in the database the viewer should display the document in a timely manner the users should be able to manage their account the system should be secure these system should be reliable

What are functional requirements

they describe required services

what are non functional requirements

they describe the constraints on the system;s operation and development. They can improve the overall system

why is it important to engineer software

to eliminate software failures

Why is software engineering important? To follow an organized approach to software development To ensure that software systems never encounter failures To create software products with maximum complexity All of the above

to follow an organized approach to software development

ui mockups

ui mock-up can be used to determine use case mock-ups represent a prototyple determine interactions and data acts as a storyboard

A requirements specification is _______ if exactly one system is defined. unambiguous correct consistent complete

unambiguous

what is uml

unified modeling language, a standard for modeling object-oriented software, it is a language i.e has a notation

categories of non-functional requirements

usability, reliability, performance, maintainability, Portability, Implementation, Legal, Security, Safety

what are the parts of the structured document that make up a use case description

use case name, participation actors, pre condition, flow of events, post condition, quality requirements

functional requirements

use cases, • Actors (roles. E.g., User, Manager)• Interactions (what actions are required)• Inputs, output (what data is required)

implementation

use of specific tool, language, or platform

Which of the following can cause software system failures? Following established practices User misuse and poor project planning Testing software thoroughly Overusing hardware resources

user misuse and poor project planning

cross site scripting

web browsers havve the ability to run embedded code this can be exploited by inserting malicious web scripts malicious code could redirect the user or user's data to another domain mitigation includes : • avoiding the use of user-supplied input inapplication logic • validating both application input and output

usability sample questions for eliciting nonfunctional requirements

what is the level of expertise of the user? what user interface standards are familiar to the user? what documentation should be provided to the user?

cross-site request forgery

when an application is unable to correctly determine if a client request is unintentionally sent by the user attacker exploits improper verification of request user is tricked into clicking a link to submit a malicious request requeest leverages the context of the user's valid session attack vectors ( e.g weblinks in eail) mitigation includes: using unique request tokens inserting tokens into hidderd form fields

security sample questions for eliciting nonfunctional requirements

• Are there any data access restrictions?• Are there are access restrictions to functionality?• What are the possible security threats for the application?

safety sample questions for elicitiong nonfunctional requirements

• Are there are risks to loss of data? • Are there any risks of harm to life? • Are there any risks of damage to a component?

performance sample questions for eliciting nonfunctional requirements

• How responsive should thesystem be? • Are any user tasks time critical? • How many concurrent usersshould it support? • How large is the typical data? • What is the worst latency that isacceptable to users?

complete

• Specification should include descriptions of allrequirements (services and constrains). • All features are described

consistent

• There should be no conflicts or contradictions in thedescriptions of the system requirements. • Uniformity • Standardization • Freedom from contradiction among the documents

examples of preconditions

• User has completed a required preceding use case (E.g. Login, Search) • System is in a certain state/state change (E.g., Fault occurrence, timed event)

maintainability sample questions for eliciting nonfunctional requirements

• What are the foreseenextensions to the system?• Who maintains the system?• How much downtime isacceptable?

what are the steps of cross-site request forgery

1. bank manager is logged into acme bank system 2. a request that will transfer money from bank is embedded in a link 3. link is sent by email or website 4. manager clicks link which sends request 5. money is transferred to attacker

Below are brief descriptions of the same use case( UploadImage) for two software applications (A & B): Application A: UploadImage: This use case will allow a customer to upoload a profile image. The image can be of any image calid image format. Application B: UploadImage: This use case will allow a customer to upload a profile image. The image must be of JPEG Which of the following statement is correct of the applications Application A has better reliability Application A has better usability Application A has better performance All the above

Appliction A has more better usability


Ensembles d'études connexes

Econ 102 Midterm 2 Practice Test

View Set

macro: real interest rates and international capital flows

View Set

Project 3 - UNIT 6 - What´s up? - 6C - 6D

View Set

Principles of Economics I section 7

View Set

Business Computer Applications Unit 1

View Set