Test 1 Updated Flashcards

(70 cards)

1
Q

What is software engineering?

A

The establishment, use, testing and evaluation of sound engineering guidelines and principles to develop a system that can work efficiently and effectively on real machines.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are tools in SE?

A

Techniques and technologies that are used to achieve the desired goals and results or to process a specific request

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are methods in SE?

A

“How”, the steps/instructions to provide technical solutions or “how to’s for building software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What do methods cover in SE?

A

a. Planning and estimation (resources such as budget and timeline)
b. System Requirements
c. Designing Data Structures
d. Program architecture algorithm procedures and identify business structure logic
e. Testing/maintenance, training, documentation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are processes in SE?

A

Combines methods and tools to enable rational and timely development of the system utilizing an engineering model based approach.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the steps to beginning a SE project?

A
  1. Identification of an existing problem or issue, identify a goal and define a clear scope
  2. Resources
  3. Budget
  4. Cost
  5. Guidelines
  6. Plan
  7. Timelines
  8. Deliverables: How and When?
  9. System Architecture
  10. Technologies/Tools
  11. Team Capabilities
  12. Know your clients
  13. Plan the Testing Phase
  14. Identify Deployment strategies, training, etc.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the 2 classes of software?

A

Predictable or determinate and unpredictable or indeterminate.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are the kinds of software?

A
  1. Application software- written to solve a specific need
  2. Engineering/Scientific software - “Number crunching”, non-traditional algorithms
  3. Product-line software
    specific capabilities but focuses on limited(mass) users.
  4. Embedded Systems
    Resides within a product and used to implement and control functions and features for the end user and the system itself.
    ○ Example: keypad control, heating, smart devices, car fuel control, brakes etc.
  5. Artificial Intelligence
    ○ Uses non-numerical algorithms to solve a complex program.
    ○ Example: Robotics applications, expert system, pattern
    recognition, (image + voice), neural networks
  6. Web/ Mobile Based Applications
    ○ Integrated applications for personal or organizational use to solve a problem + provide recommendations.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the seven stages of the software life cycle?

A
  1. Communication
    a. Decision Makers
    b. Developers (understand
    problem +gather data)
    JAD(Joint Application
    Development)
  2. Planning
    a. Report
    b. Agreement
    c. Revision of ideas
    d. Future questions
    • Clients
    • Developers
    • Team Members
  3. Analysis
    a. Generate System Architecture
    b. Visualization (diagrams)
    i. Data Flow Diagram
    ii. UML
    iii. State Diagram
    iv. Physical /logical
    v. Swimlane Diagram
    vi. Use case
    c. Select a Process Model
  4. Database Design
    a. Tables
    b. Schema
    c. Normalization
    d. ERD
  5. Code Construction
    a. UI
    b. Validation
    c. Testing(code)
    d. Modular Programming:
    Top-Down/Bottom-Up
    Approaches
    e. SE Principles
  6. Testing
    a. Black Box
    b. White Box
    c. Security
  7. Deployment
    a. Deployment techniques
    b. Training
    c. User support
    (documentation)
    d. Maintenance
    e. Auditing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the 5 stages of life cycle developments?

A
  1. (Combine 1 + 2) Communication + Planning
  2. Analysis
  3. Database Design
  4. Code Construction
  5. (Combine 6 + 7) Testing + Deployment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the 3 stages of life cycle development (RAD)?

A

(Extra: 3 Stages: Rapid Application Development(RAD)) :
○ Stage 1: Communication, Planning, Analysis
○ Stage 2: Code cost + DB
○ Stage 3: Testing/Deployment

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are legacy systems?

A

Systems developed decades ago that have been modified to meet changes in business requirements and computing technologies.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are some prescriptive models?

A
  1. Waterfall Model - Each phase leads into the next. Must make sure requirements are clear.
    - Time consuming
    - Can’t go back to previous phases
  2. Iterative Model: Each phase is in depth and focuses on the current phases impact on not only the current phase but also all past and future phases. Very thorough and in-depth, extremely time consuming
  3. RAD
    -Incremental model that emphasizes short development cycles
    Needs:
  4. Skilled and experiences devs
  5. Clients are aware of project scope, requirements and deliverables
  6. Create fully functional units within a short time
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are some evolutionary models?

A
  1. Prototype model (non-functional)
    -Reference model provides a quick design
    -Enables the developers to create a quick design model of a product
    Steps:
    a. Requirements
    b. Generate a quick design -> Visualization
    c. Start building prototype
    d. Feedback, communication, testing, evaluation
    e. Accepting/modifying the idea
    f. Designing the real system
  2. Spiral Model
    Focus on:
    -Assessment/evaluation of each step
    -Risk -> Alternatives

Activities:

a. Customer communication
b. Analysis
c. Risk analysis
d. Evaluation and Engineering
e. Assessment of construction steps

  1. Concurrent model
    - Project deployment divided into feature-based/feature-driven teams
    - Focus = skills/feature implementation
    - Query language: Generate reports
    - Accessibility/sharing/security of files: Graphical capabilities
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the components of DFD?

A
  1. Context diagram
  2. Data flow diagram
  3. Child DFD
  4. Physical and logical processes
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What needs to be defined in a DFD?

A
  1. Identify operational requirements and characteristics
    - Functional characteristics: “What” i.e. “What exactly is the system required to do”; behavior
    - Non-functional characteristics: “How” i.e. “How is the system going to perform that operations”; performance
  2. Activities, actions, processes the system performs
  3. Operation requirements related to the system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What are the steps of the process lifecycle?

A

S/W Process leads to assessment/evaluation/checking. This either leads to modification if the assessment finds issues, and approval if it does not. The modification then leads back to the S/W process, requiring modifications and revisions. On the other hand the approval also leads back to the S/W process, where you must identify any further risks.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is Agility?

A

A set of values and principles that teams can use in making decisions on how to develop software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What are the benefits of Agile programming?

A
  • Very Flexible
  • You as the developer decide the rules, and make an agile plan
  • Gives a foundation for better software development
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What are some potential agile rules?

A
  • Give preference to individuals and interactions rather than processes and tools
  • Working software over detailed and comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What is different about agile as opposed to other programming paradigms?

A
  • Fosters communication and collaboration among all who serve on it
  • Represents a reasonable alternative to conventional projects
  • Responds to changes, emphasizes rapid delivery of operational software
  • Customers are viewed as part of the development team, eliminating the “us and them” attitude
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What are the principles of Agile?

A
  1. Highest priority to satisfy the customer through early and continuous delivery of valuable software
  2. Welcome changing requirements
  3. Deliver working software frequently
  4. Developers and managers must work together throughout the project
  5. Build projects around motivated individuals
  6. When possible have face-to-face conversations - most effective
  7. Working software is the primary measure of software
  8. Maintain constant pace
  9. Continuous attention to technical excellence and design enhances excellence
  10. Simplicity
  11. Best architecture and requirements emerge from self-organizing teams
  12. Regular intervals and adjustments accordingly
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What key assumptions does agile address?

A
  1. It is difficult to predict which software requirements will persist/change
  2. Software design and construction will interleave
  3. Analysis, design, construction and testing are not predictable.

A process must be adaptable

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is XP?

A

Extreme programming uses an object oriented approach and encompasses a set of rules and practices in the following framework:

a) Planning
b) Design
c) Coding
d) Testing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What is ASD?
Adaptive software dev = technique for building complex software and systems. - Speculation - initiation state - adaptive cycle planning is conducted - Collaboration - Learning
26
What is DSDM?
Dynamic Systems Development Method provides a framework for building and maintaining systems through the use of incremental prototyping in a controlled project environment. Latest version of RAD – role of “keeper” of the method. DSDM life cycle: -Feasibility study -Business study -Functional model iteration -Design and build iteration -Implementation
27
What does MoSCoW mean?
Requirements are prioritized using this ranking: M – Must have requirements S – Should have if at all possible C – Could have but not critical W – Won’t have this time, but potentially later
28
What are the steps in Scrum?
- Create user stories and convert into product 'backlog' or 'wish list' to make this application successful - Identify which specific stories should be good or bad - remove from wish list - Identify roles - Prioritize backlog - and breakdown large tasks (if any) - Provide estimates of release of each task - Create release backlog and divide them into sprints - Each member updates the amount of work completed and goal satisfaction on a daily basis. As a team, daily performance is stored and remaining work can be measured.
29
What roles exist in Scrum?
-Product owner – to make sure right features get into the backlog. Set the direction. -Scrum Master (project manager) – identify project tools, organize team, setup meetings, etc. -Developer – build the system -Testers – Test the application -Customers – use it -Executive team
30
What is the goal of sprints?
The goal of Sprints (Sprint 1, Sprint 2, … Sprint n) is to make ‘Release Backlog’ items into ship-ready state. All features must be 100% complete.
31
What is the burndown chart?
-It is extremely important to monitor the Sprint performance. For example, with a chart called Burndown Chart. -The Burndown Chart is the reason for Sprint’s popularity and success. Includes: Work Remaining Vs Time.
32
What is Crystal?
Resource limited method where primary goal is to deliver working software and secondary goal is setting up the next target. Comprised of: Crystal Clear, Crystal Yellow, Crystal Orange characteristics. Driven by factors: Team size, system criticality, project priorities
33
What is FDD?
Feature Driven Development | A "feature" is a client-valued function that can be implemented in a givem time.
34
What is AM?
Agile Modeling - Model with a purpose - Use multiple models - Content is more important - Know the models and tools - Adapt locally - within a team
35
What is function deployment?
Function deployment determines the value (as perceived by the customer) of each function required of the system
36
What is information deployment?
Identifies data objects and events
37
What is task deployment?
Examines the behavior of the system
38
What is value analysis?
Determines the relative priority of requirements
39
What is information that should be collected for the requirements?
- A statement of need a feasibility - A bounded statement of scope for the system or product - A list of customers, user, and other stakeholders who participated in requirements elicitation - A description of the system's technical environment - A list of requirements and the domain contraints that apply to each - A set of usage scenarios that provide insight into the use of the system or product under different operating conditions - Any prototypes developed to better define requirements
40
How do you build the analysis model?
-Scenario-based elements: -Functional: Processing narratives for software functions Use-case: Descriptions of the interaction between an "actor" and the system Class-based elements: Implied by scenarios Behavioral Elements: State diagram Flow-oriented elements: Data flow diagram
41
What is CASE?
Computer Aided Software Engineer is a category of software that provides a development environment for programming teams.
42
What tools does CASE often provide?
- Summarizing initial requirements - Developing flow diagrams - Scheduling development tasks - Preparing documentation - Developing program code, Debugging environments, verification and validation - Graphical modeling tools (E/R modeling, object modeling etc.) - Analyze code for complexity, modularity, performance - Project management. Manage plans, task assignments, scheduling
43
What are use-cases?
A collection of user scenarios that describe the thread of usage of a system. Each scenario is described from the point of view of an "actor" - a person or device that interacts with the software in some way
44
What questions do use-case scenarios answer?
◦Who is the primary actor, the secondary actor (s)? ◦ What are the actor’s goals? ◦ What preconditions should exist before the story begins? ◦ What main tasks or functions are performed by the actor? ◦ What extensions might be considered as the story is described? ◦ What variations in the actor’s interaction are possible? ◦ What system information will the actor acquire, produce, or change? ◦ Will the actor have to inform the system about changes in the external environment? ◦ What information does the actor desire from the system? ◦ Does the actor wish to be informed about unexpected changes?
45
What is a class diagram?
A class diagram describes the member variables and functions that a class within the system will need.
46
What is a UML state diagram?
Walks through all possible states for the system, the relevant variables values in those states, as well as the relevant actions available
47
What is a swim lane diagram?
Allows the modeler to represent the flow of activitied described by the use-case and at the same time indicate which actor (if there are multiple) or analysis class has responsibility for the action described by an activity rectangle.
48
What questions should you ask when validating requirements?
-Is each requirement consistent with the overall objective for the system/product? -Have all requirements been specified at the proper level of abstraction? That is, do some requirements provide a level of technical detail that is inappropriate at this stage? -Is the requirement really necessary or does it represent an add-on feature that may not be essential to the objective of the system? -Is each requirement bounded and unambiguous? -Do any requirements conflict with other requirements? -Is each requirement achievable in the technical environment that will house the system or product? -Is each requirement testable, once implemented? -Does the requirements model properly reflect the information, function and behavior of the system to be built. -Has the requirements model been “partitioned” in a way that exposes progressively more detailed information about the system. -Have requirements patterns been used to simplify the requirements model. Have all patterns been properly validated? Are all patterns consistent with customer requirements?
49
What is domain analysis?
- Define the domain to be investigated. - Collect a representative sample of applications in the domain: Research your case + competitors - Analyze each application in the sample. - Develop an analysis model for the objects.
50
What are the elements of the analysis model?
- Scenario-based elements (Use-case diagrams, Use cases - test, Activity diagrams, swim line diagrams) - Class based elements (class diagrams, analysis packages, CRC models, collaboration diagrams) - Flow-oriented elements (Data-flow diagrams, Control flow diagrams, processing narratives) - Behavioral elements (State diagrams, sequence diagrams)
51
What is flow oriented modeling?
Represents how data objects are transformed at they move through the system A data flow diagram (DFD) is the diagrammatic form that is used Considered by many to be an ‘old school’ approach, flow-oriented modeling continues to provide a view of the system that is unique—it should be used to supplement other analysis model elements
52
What is an external entity?
Represented as a square in a DFD, a producer or consumer of data, such as a person, a device or a sensor.
53
What is a process?
Represented as a circle in a DFD, a process is a data transformer which changes input to output. For example, computing taxes, determining area, formatting a report, or displaying a graph.
54
What is data flow?
Represented as an arrow (with text) in a DFD. Data flows through a system beginning as input and being transformed into output. I.e. base and height flowing into a process that computes a triangles area, and the area data flowing out of the process as output.
55
What are data stores?
Represented as two horizontal bars (like an equal sign with text in between). Represents data being stored for later use
56
What are some DFD guidelines?
-all icons must be labeled with meaningful names -the DFD evolves through a number of levels of detail -always begin with a context level diagram (also called level 0) -always show external entities at level 0 -always label data flow arrows -do not represent procedural logic
57
What are some notes about flow modeling?
-each bubble (process) is refined until it does just one thing -the expansion ratio decreases as the number of levels increase -most systems require between 3 and 9 levels for an adequate flow model -a single data flow item (arrow) may be expanded as levels increase (data dictionary provides information)
58
What are control flow diagrams?
Represents “events” and the processes that manage events An “event” is a Boolean condition that can be ascertained by: ◦ listing all sensors that are "read" by the software. ◦ listing all interrupt conditions. ◦ listing all "switches" that are actuated by an operator. ◦ listing all data conditions. ◦ recalling the noun/verb parse that was applied to the processing narrative, review all "control items" as possible CSPEC inputs/outputs.
59
What are analysis classes?
External entities (e.g., other systems, devices, people) that produce or consume information to be used by a computer-based system. Things (e.g, reports, displays, letters, signals) that are part of the information domain for the problem. Occurrences or events (e.g., a property transfer or the completion of a series of robot movements) that occur within the context of system operation. Roles (e.g., manager, engineer, salesperson) played by people who interact with the system. Organizational units (e.g., division, group, team) that are relevant to an application. Places (e.g., manufacturing floor or loading dock) that establish the context of the problem and the overall function of the system. Structures (e.g., sensors, four-wheeled vehicles, or computers) that define a class of objects or related classes of objects.
60
What is CRC?
Class Responsibility Collaborator modeling. Analysis classes have "responsibilities" which are the attributes and operations encapsulated by the class Analysis class collaborate with one another -Collaborators are those classes that are required to provide a class with the information needed to complete a responsibility. ◦ In general, a collaboration implies either a request for information or a request for some action.
61
What information should be captured and analyzed?
Business functions to be developed -All data required for these business functions -Business rules determining data behavior, constraints, limits, relationships, and life-cycle -Business function flow -Identify other related business systems -Collaboration with other external and internal business systems -Existing data that may have to be converted -Opportunities for re-engineering Preliminary transition plan -Security requirements -Technical architectures that maximize opportunities for appropriate sharing of information -Architectural issues such as network and systems capacity planning -Contingency planning
62
How do you decide whether to build or buy a business system?
-Do surveys of the marketplace and indicate availability of similar products that would address the majority of your business problems. -Determine product compatibility with the current technical environment and standards (includes security, network, database, desktop tools, middleware, and application software delivery issues). -Analyze the full life-cycle cost of a buy-versusbuild decision, including customization cost. -Determine the availability of internal resources to build a system. -Identify the contract resources available to augment staff to build a system. -Analyze the time-frame involved in buying versus building a system.
63
How do you initiate operations planning?
-Determine how technical and functional upgrades will be accomplished. -Determine desktop and server hardware, and need to upgrade or change end-user desktop computers. -Determine timing and strategy for backing up data. -Determine resources to support ongoing operations addressing application and hardware maintenance. -Develop a communication plan
64
What information do you need to consider to produce an analysis summary of high-level conclusions?
-Acceptable approaches -Acceptable technologies and general architectures -Opportunities for re-engineering -Refinement of resource needs (people, money, environment) -Unacceptable approaches -Unacceptable technologies and general architectures -Risks
65
What is software architecture?
The software architecture of a system is the set of structures needed to reason about the system, which comprise system elements, relations among them, and properties of both.
66
What aspects fall under software architecture?
1. An overview, the overall shape 2. How it fits in with its environment 3. How it meets its purposes 4. Its visual impact 5. Its small details 6. The decisions that go into the design
67
Why is architecture important?
The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the effectiveness of the design, its stated requirements, (2) consider architectural alternatives at a stage when making design changes is still relatively easy, and (3) reduce the risks associated with the construction of the software.
68
What is the scope of architecture?
1. Software components are emphasized 2. Components range from modules and classes to databases and middleware 3. Properties of components: what is necessary to understand how the components interact
69
What is a framework?
An implementation-specific skeletal infrastructure for design work. It provides a generic structure and behavior for a family of software abstractions, and specifies their collaboration and use within a given domain.
70
What does each architectural style describe?
1) a set of components (e.g., a database, computational modules) that perform a function required by a system, 2) a set of connectors that enable “communication, coordination and cooperation” among components, 3) constraints that define how components can be integrated to form the system, and 4) semantic models that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts.