CSE3310 Midterm 1

studied byStudied by 142 people
5.0(2)
get a hint
hint

Software Engineering

1 / 105

Tags & Description

Studying Progress

0%
New cards
106
Still learning
0
Almost done
0
Mastered
0
106 Terms
1
New cards

Software Engineering

Engineering discipline that is concerned with all aspects of software production from conception to operation and maintenance

New cards
2
New cards

Differences between CS and SE

CS: Theories and methods/fundamentals of software systems

SE: Practicalities of developing software

New cards
3
New cards

Confidentiality

Engineers should respect confidentiality irrespective of whether or not an agreement was signed

New cards
4
New cards

Competence

Not knowingly accept work that is outside their skill level

New cards
5
New cards

4 fundamental activities of SE

  1. Requirements/specifications

  2. Dev/Design and Implementation

  3. Verification/Validation

  4. Maintenance/Evolution

New cards
6
New cards

Requirements/specification

Where customers and engineers define software to be produced and constraints

New cards
7
New cards

Development/Design and Implementation

where software is designed and programmed

New cards
8
New cards

Verification/Validation

Where software is checked to ensure that it’s what’s required

New cards
9
New cards

Maintenance/Evolution

where software is modified to reflect changing customer and market requirements

New cards
10
New cards

Why not base project on prototype?

Prototype is to simply answer a question, not part of whole project since it’s build quickly w/ little care

New cards
11
New cards

Work products used for/created from REQUIREMENTS

artifacts, specifications

New cards
12
New cards

Work products used for/created from IMPLEMENTATION

source code

New cards
13
New cards

Work products used for/created from VALIDATION

Test cases, software w/ defects removed

New cards
14
New cards

Work products used for/created from EVOLUTION

artifacts, specifications, source code, test cases, software w/ defects removed

New cards
15
New cards

Steps of waterfall diagram

  1. Requirements definition

  2. System & software design

  3. Implementation and unit testing

  4. Integration and system testing

  5. Operation and maintenance

New cards
16
New cards

Waterfall

plan driven process that requires the previous step to finish b4 starting next one

New cards
17
New cards

incremental

based on idea of developing initial implementation, getting feedback, and evolving versions until required system has been developed

New cards
18
New cards

integration and config

Dev process focuses on configuring components for use in new setting and integrating them to the system.

New cards
19
New cards

Waterfall Pros

  • Good for hardware development/high manufacturing costs.

  • Predictable

  • Good for stuff that requires planning

  • Good for minimal change

New cards
20
New cards

Waterfall Cons

  • Does not adapt to change well

  • Lots of documentation

  • If a step is incorrect, redo from said step

  • No visibility

  • Product isn’t ready until after completion

New cards
21
New cards

Incremental Pros

  • Parts are working earlier

  • Deliver to customer earlier

  • Get feedback during the design

  • Not as document heavy

  • Better than a waterfall approach for systems whose requirements are likely to change during the development process

New cards
22
New cards

Incremental Cons

  • Refactoring problems: Redo structure of the code

  • Lots of rework

  • Erosion in clarity and quality

  • More requirements

  • System structure tends to degrade as new increments are added

New cards
23
New cards

Given these: which SDLC best describes this?

  • Requirements known

  • Requirements unchanged

  • Customer desire

  • No visibility

Waterfall method

New cards
24
New cards

Given these: which SDLC best describes this?

  • Most functionality

  • Short budget

  • Short schedule

Integration and Configuration

New cards
25
New cards

Prototype

An early version of a software system that is used to demonstrate concepts, try out design options, and find out more about the problem and its possible solutions.

New cards
26
New cards

V-Model (photo)

<p></p>

<p></p>
New cards
27
New cards

V-Model

shows the software validation activities that correspond to each stage of the waterfall process model.

New cards
28
New cards

Requirement

Fundamental to software engineering endeavors. Determine what the customer needs/wants and a basis of your product. Are what the functionality a program needs to have.

New cards
29
New cards

Functional Requirement

Something that the system will be able to do. Can you test it?

New cards
30
New cards

Nonfunctional Requirement

How the system will do something, and how well it does it.

  1. applies to entire system

  2. not in place

  3. ility: readability, availability, security, efficiency

New cards
31
New cards

Elicitation and analysis

Range of system stakeholders to find out about the application domain, services that the system should provide, required system performance, hardware constraints, other systems, etc.

New cards
32
New cards

Stages of elicitation and analysis

  • Requirements Discovery

  • Requirements classification and organization

  • Requirements prioritization and negotiation

  • Requirements specification

New cards
33
New cards

Validation

Concerned with demonstrating that the requirements define the system that the customer really wants

  • Requirements error costs are high so validation is very important.

    • Fixing a requirements error after delivery may cost up to 100 times the cost of fixing an implementation error.

  • Prototyping is an example of this

New cards
34
New cards

Management

Process of managing changing requirements during the requirements engineering process and system development.

  • New requirements emerge as a system is being developed and after it has gone into use.

New cards
35
New cards

Critiques for requirements

a. Vague

b. Conflicting

c. Not written as a requirement

d. Not testable

e. Non precise

f. More than one requirement in one sentence

New cards
36
New cards

Purpose of software process

The activities and processes that are involved in developing and evolving a software system.

New cards
37
New cards

Steps of SEI Capability Maturity Model (SEICMM)

  1. Initial

  2. Managed

  3. Defined

  4. Quantitatively managed

  5. Optimizing

    Single arrow from each step pointing to the next one

New cards
38
New cards

SEICMM Initial

no process at all, free

New cards
39
New cards

SEICMM Managed

Basic schedule and planning, free

New cards
40
New cards

SEICMM Defined

Software process is defined, training of individuals

New cards
41
New cards

SEICMM Quantitatively managed

Measuring thing and use results to make things better, expensive

New cards
42
New cards

SEICMM Optimizing

Able to handle large changes with minimal hiccups, expensive

New cards
43
New cards

Stakeholder

Include anyone who is affected by the system in some way and so anyone who has a legitimate interest in it.

New cards
44
New cards

user requirements

  1. Client managers

  2. system end users

  3. client engineers

  4. contractor managers

  5. system architects

New cards
45
New cards

System requirements

  1. System end users

  2. client engineers

  3. system architects

  4. software developers

  5. stakeholders

New cards
46
New cards

problems with natural language specification

  1. Lack of clarity

    1. Precision is hard w/o making doc hard to read

  2. Requirements confusion

    1. Functional and Non-functional requirements tend to be mixed-up.

  3. Requirements amalgamation

    1. Several different requirements may be expressed together.

New cards
47
New cards

advantages of natural language specification

  1. Expressive, intuitive, universal

  2. Understandable by users and customers easily

New cards
48
New cards

4+1 Model (image)

knowt flashcard image
knowt flashcard image
New cards
49
New cards

Way of writing system requirement specs: Natural language

The requirements are written using numbered sentences in natural language. Each sentence should express one requirement.

New cards
50
New cards

Way of writing system requirement specs: Structured Natural Language

The requirements are written in natural language on a standard form or template. Each field provides information about an aspect of the requirement.

New cards
51
New cards

Way of writing system requirement specs: Graphical Notation

Graphical models, supplemented by text annotations, are used to define the functional requirements for the system. UML (unified modeling language) use case and sequence diagrams are commonly used.

New cards
52
New cards

Way of writing system requirement specs: Mathematical Notation

These notations are based on mathematical concepts such as finite-state machines or sets. Although these unambiguous specifications can reduce the ambiguity in a requirements document, most customers don’t understand a formal specification. They cannot check that it represents what they want, and they are reluctant to accept it as a system contract.

New cards
53
New cards

Requirements Validation checks

Validity, Consistency, Completeness, Realism, Verifiability

New cards
54
New cards

Requirements Validation checks (in depth)

  • Requirements reviews

    • Systematic manual analysis of the requirements

    • Verifiability, Traceability, Comprehensibility

  • Prototyping

  • Test-case generation

New cards
55
New cards

Requirements spreadsheet

never reuse requirements ID, each one has a unique ID (UID)

New cards
56
New cards

How to determine if requirement ID is active

active flag will be on, or off (strikethrough), test cases for each of the requirements at the bottom

New cards
57
New cards

Sequences diagram

<p>Shows interactions between actors and the system and between system components.</p>

Shows interactions between actors and the system and between system components.

<p>Shows interactions between actors and the system and between system components.</p>
New cards
58
New cards

Class diagram

<p>Shows the object classes in the system and the associations between these classes</p><p>Static type of diagram</p>

Shows the object classes in the system and the associations between these classes

Static type of diagram

<p>Shows the object classes in the system and the associations between these classes</p><p>Static type of diagram</p>
New cards
59
New cards

Use case diagram

<p>Show interactions between system and it’s environment.</p>

Show interactions between system and it’s environment.

<p>Show interactions between system and it’s environment.</p>
New cards
60
New cards

Be familiar with the following diagrams.

Use Case, Sequence, Class, Generalization, Aggregation, State, Process, Data Flow

New cards
61
New cards

context diagram

<p>Illustrates the separational context of a system</p><p>Shows what lies outside of system boundaries</p><p>based on perspective of center system</p>

Illustrates the separational context of a system

Shows what lies outside of system boundaries

based on perspective of center system

<p>Illustrates the separational context of a system</p><p>Shows what lies outside of system boundaries</p><p>based on perspective of center system</p>
New cards
62
New cards

Generalization diagram

<p>Rather than learn the detailed characteristics of every entity that we experience, we place these entities in more general classes (animals, cars, etc) and learn the characteristics of these classes. (OOP)</p>

Rather than learn the detailed characteristics of every entity that we experience, we place these entities in more general classes (animals, cars, etc) and learn the characteristics of these classes. (OOP)

<p>Rather than learn the detailed characteristics of every entity that we experience, we place these entities in more general classes (animals, cars, etc) and learn the characteristics of these classes. (OOP)</p>
New cards
63
New cards

Aggregation diagram

<p>shows how classes that are collections are composed of other classes</p><p>similar to part-of relationship in semantic data models</p>

shows how classes that are collections are composed of other classes

similar to part-of relationship in semantic data models

<p>shows how classes that are collections are composed of other classes</p><p>similar to part-of relationship in semantic data models</p>
New cards
64
New cards

State diagram

<p>shows how system reacts to internal and external events</p>

shows how system reacts to internal and external events

<p>shows how system reacts to internal and external events</p>
New cards
65
New cards

Process diagram

<p>reveal how system is used in broader business processes</p>

reveal how system is used in broader business processes

<p>reveal how system is used in broader business processes</p>
New cards
66
New cards

Dataflow diagram

<p>Tracking and documenting how data associated with a particular process moves through the system help analysts and designers understand what is going on in the process</p>

Tracking and documenting how data associated with a particular process moves through the system help analysts and designers understand what is going on in the process

<p>Tracking and documenting how data associated with a particular process moves through the system help analysts and designers understand what is going on in the process</p>
New cards
67
New cards

When to use: context diagram

Simple, shows dependencies and connections to others systems. Are good to show to managers and clients who don't know about the inner workings of the system.

New cards
68
New cards

When to use: use case diagram

Demonstrate the different ways that a user might interact with a system.

New cards
69
New cards

When to use: sequence diagrams

where it is important to understand how different objects or components interact with each other over time

New cards
70
New cards

When to use: class diagrams

When developing an object oriented system model. Objects are to be used to represent something in the real world

New cards
71
New cards

When to use: generalization diagrams

Specifically represent the inheritance hierarchy of classes in a system

New cards
72
New cards

When to use: aggregation diagrams

A big object that uses smaller objects but the smaller objects are independent of that big object and can be amongst different big objects.

New cards
73
New cards

When to use: state diagrams

Used to show system states and events that cause transitions from one state to another.

New cards
74
New cards

When to use: process diagrams

Whenever there is a need to understand, analyze, design, document, or communicate a process. Visualize the steps involved when designing a new process and the relationships between the steps.

New cards
75
New cards

When to use: data flow diagrams

Used to show how data flows within the system between processing steps. Simple and intuitive and so are more accessible to stakeholders.

New cards
76
New cards

Software Architecture

Concerned with understanding how a software system should be organized and designing the overall structure of the system.

Affects the performance, robustness, distributability, and maintainability of a system

New cards
77
New cards

Architectural Quote

"architecture is where non functional requirements are realized"

New cards
78
New cards

Why is architecture important?

  • Architecture is where non-functional requirements are realized.

  • The critical link between design and requirements engineering.

  • Identifies main components in a system and relationships between them.

  • Output is an architectural model that describes how a system is organized.

New cards
79
New cards

Example of non functional requirements being met by architecture

If system has to be fast, the architecture has to have low overhead.

New cards
80
New cards

Layered Architecture

<ul><li><p>Each layer only talks to the layer directly above and directly below it.</p></li><li><p>Easy to switch layers out, only affects adjacent layers.</p></li><li><p>Able to change one layer without touching other layers.</p></li></ul>
  • Each layer only talks to the layer directly above and directly below it.

  • Easy to switch layers out, only affects adjacent layers.

  • Able to change one layer without touching other layers.

<ul><li><p>Each layer only talks to the layer directly above and directly below it.</p></li><li><p>Easy to switch layers out, only affects adjacent layers.</p></li><li><p>Able to change one layer without touching other layers.</p></li></ul>
New cards
81
New cards

Model View Controller

<ul><li><p>Breaks software into 3 pieces (Model, View, and Controller)</p></li><li><p>View is highly changeable. Can easily swap the interface without touching anything else.</p></li></ul>
  • Breaks software into 3 pieces (Model, View, and Controller)

  • View is highly changeable. Can easily swap the interface without touching anything else.

<ul><li><p>Breaks software into 3 pieces (Model, View, and Controller)</p></li><li><p>View is highly changeable. Can easily swap the interface without touching anything else.</p></li></ul>
New cards
82
New cards

Repository Architecture

<ul><li><p>Generally used for databases.</p></li><li><p>Everything (data/info) goes into a center project repository.</p></li><li><p>Minimizes coupling, components are independent of each other.</p></li><li><p>Single point of failure.</p></li><li><p>May be inefficient.</p></li></ul>
  • Generally used for databases.

  • Everything (data/info) goes into a center project repository.

  • Minimizes coupling, components are independent of each other.

  • Single point of failure.

  • May be inefficient.

<ul><li><p>Generally used for databases.</p></li><li><p>Everything (data/info) goes into a center project repository.</p></li><li><p>Minimizes coupling, components are independent of each other.</p></li><li><p>Single point of failure.</p></li><li><p>May be inefficient.</p></li></ul>
New cards
83
New cards

Client Architecture

<ul><li><p>Client connects to many servers (many to one).</p></li><li><p>Each service is a single point of failure, but multiple servers allows it to be robust.</p></li><li><p>Modularity benefits and fault tolerant.</p></li></ul>
  • Client connects to many servers (many to one).

  • Each service is a single point of failure, but multiple servers allows it to be robust.

  • Modularity benefits and fault tolerant.

<ul><li><p>Client connects to many servers (many to one).</p></li><li><p>Each service is a single point of failure, but multiple servers allows it to be robust.</p></li><li><p>Modularity benefits and fault tolerant.</p></li></ul>
New cards
84
New cards

Pipe and Filter Architecture

<ul><li><p>Output of 1 stage goes in as the input of another stage.</p></li><li><p>Batch processing.</p></li><li><p>Really easy to add another stage of processing, you only need to know what goes in and what is going out.</p></li><li><p>Not good for things that demand responsiveness.</p></li><li><p>Compilers are an example.</p></li></ul>
  • Output of 1 stage goes in as the input of another stage.

  • Batch processing.

  • Really easy to add another stage of processing, you only need to know what goes in and what is going out.

  • Not good for things that demand responsiveness.

  • Compilers are an example.

<ul><li><p>Output of 1 stage goes in as the input of another stage.</p></li><li><p>Batch processing.</p></li><li><p>Really easy to add another stage of processing, you only need to know what goes in and what is going out.</p></li><li><p>Not good for things that demand responsiveness.</p></li><li><p>Compilers are an example.</p></li></ul>
New cards
85
New cards

types of client architecture

  • Thin: Client doesn’t have a lot of code/functionality

  • Thick/Fat: More functionality (more JavaScript in a webpage), more responsive

New cards
86
New cards

4+1 Diagram: Logical View

<p>Concerned with the functionality that the system provides to end-users.</p><p>Class and state diagrams</p><p>End user functionality: connects to scenarios and development and process view</p>

Concerned with the functionality that the system provides to end-users.

Class and state diagrams

End user functionality: connects to scenarios and development and process view

<p>Concerned with the functionality that the system provides to end-users.</p><p>Class and state diagrams</p><p>End user functionality: connects to scenarios and development and process view</p>
New cards
87
New cards

4+1 Diagram: Development view

<p>Illustrates a system from a programmer&apos;s perspective and is concerned with software management.</p><p>Package and component diagram</p><p>Programmers, software development: connects to scenarios and physical view</p>

Illustrates a system from a programmer's perspective and is concerned with software management.

Package and component diagram

Programmers, software development: connects to scenarios and physical view

<p>Illustrates a system from a programmer&apos;s perspective and is concerned with software management.</p><p>Package and component diagram</p><p>Programmers, software development: connects to scenarios and physical view</p>
New cards
88
New cards

4+1 Diagram: process view

<p>Deals with the dynamic aspects of the system, explains the system processes and how they communicate, and focuses on the run time behavior of the system.</p><p>Addresses concurrency, distribution, integrator, performance, and scalability, etc.</p><p>Sequence/communication/activity diagram</p><p>Integrators, performance scalability: connects to scenarios and physical view</p>

Deals with the dynamic aspects of the system, explains the system processes and how they communicate, and focuses on the run time behavior of the system.

Addresses concurrency, distribution, integrator, performance, and scalability, etc.

Sequence/communication/activity diagram

Integrators, performance scalability: connects to scenarios and physical view

<p>Deals with the dynamic aspects of the system, explains the system processes and how they communicate, and focuses on the run time behavior of the system.</p><p>Addresses concurrency, distribution, integrator, performance, and scalability, etc.</p><p>Sequence/communication/activity diagram</p><p>Integrators, performance scalability: connects to scenarios and physical view</p>
New cards
89
New cards

4+1 Diagram: Physical view

<p>PoV of a system’s engineer. Concerned with the topology of software components on the physical layer as well as the physical connections between these components.</p><p>Deployment diagram</p><p>System engineers, topology, communications: connects to scenarios</p>

PoV of a system’s engineer. Concerned with the topology of software components on the physical layer as well as the physical connections between these components.

Deployment diagram

System engineers, topology, communications: connects to scenarios

<p>PoV of a system’s engineer. Concerned with the topology of software components on the physical layer as well as the physical connections between these components.</p><p>Deployment diagram</p><p>System engineers, topology, communications: connects to scenarios</p>
New cards
90
New cards

3 tiered layered web app architecture

In descending order: Display, business logic, database

Display usually at top and database at bottom, rest are interchangeable

New cards
91
New cards

Starting point

Base initial design on a generic application architecture. Specialize later for the system being developed.

New cards
92
New cards

Design checklist

compare design to generic app architecture, check for consistency

New cards
93
New cards

Organizing work

Assign work to people to implement different components within the architecture.

New cards
94
New cards

Accessing components for reuse

If there are components that may be reused, compare with generic structures to see whether there are comparable components in the application architecture.

New cards
95
New cards

Vocab for discussion

Use the concepts identified in the generic architecture to discuss and compare applications.

New cards
96
New cards

4+1 Diagram: Scenarios

<p>Serve as a starting point for tests of an architecture prototype.</p><p>Use case diagram</p><p>Every other part connects to this, the “+1” part of the 4+1 diagram</p>

Serve as a starting point for tests of an architecture prototype.

Use case diagram

Every other part connects to this, the “+1” part of the 4+1 diagram

<p>Serve as a starting point for tests of an architecture prototype.</p><p>Use case diagram</p><p>Every other part connects to this, the “+1” part of the 4+1 diagram</p>
New cards
97
New cards

Integration & Config Pros

  • Cheaper

  • Available right away (faster)

  • Reliable

New cards
98
New cards

Integration & Config Cons

  • Does not do exactly what you want it to do.

  • Evolution of the system is harder to do, some components are not controlled by you, so newer versions may not be in sync with what you want to accomplish.

New cards
99
New cards

Step 1 of 4 Fundamental Activities of SE

Requirements/Specifications

New cards
100
New cards

Step 2 of 4 Fundamental Activities of SE

Development/Design and Implementation

New cards

Explore top notes

note Note
studied byStudied by 1 person
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 93 people
Updated ... ago
5.0 Stars(3)
note Note
studied byStudied by 7 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 24 people
Updated ... ago
5.0 Stars(4)
note Note
studied byStudied by 27 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 7 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 5 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 7502 people
Updated ... ago
4.7 Stars(89)

Explore top flashcards

flashcards Flashcard35 terms
studied byStudied by 309 people
Updated ... ago
4.8 Stars(11)
flashcards Flashcard115 terms
studied byStudied by 14 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard30 terms
studied byStudied by 5 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard31 terms
studied byStudied by 4 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard30 terms
studied byStudied by 4 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard44 terms
studied byStudied by 18 people
Updated ... ago
5.0 Stars(3)
flashcards Flashcard130 terms
studied byStudied by 3 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard79 terms
studied byStudied by 789 people
Updated ... ago
4.3 Stars(15)