Software Engineering
SDLC
Software Design
Diagrams
Misc.
100

True/False:

Software Engineering is a systematic approach to the analysis, design, assessment, implementation, test, maintenance, and reengineering of software

True

100

What does SDLC Stand for?

Software Design Life Cycle

100

True/False:


Software Architecture includes and influences availability, scalability, performance, and reliability

True

100
true/false:


An object diagram and class diagram is the same thing 

False

100

True/False:

Validation is defined as: Does software work compared to given specifications? Am I building the product right?

False! Validation is: Does software work compared to what user needs? Am I building the right product?

200

What kind of software do SWE aim to deliver?

High-quality software on time and on budget

200

What is SDLC?

A structured process that enables production of high-quality and low-cost software

200

What is software architecture?

It defines the structure and how components interact

200

Structural Diagram vs Behavioral Diagram

Structural diagrams: show the static framework, components, and physical makeup of a system

Behavioral diagrams: illustrate dynamic changes, workflows, and interactions inside a system

200

White Box vs. Black box testing

  • White-box involves testing internal structure, logic, and code


    • Requires access to source code, logic, design

    • Improves performance, security, maintainability

  • Black-box assesses functionality, behavior, and output w/o knowledge of internal structure, logic, code


    • Functionality, usability, and compatibility of the software

    • User and stakeholder expectations

300

Who is Margaret Hamilton?

- American Computer Scientist, one of the first programers.

- Created term "Software Engineer"

- Major role in flight for NASA Apollo program


300

Functional Vs. Non-Functional Requirements

  • Functional: Developed must implement requirements so users can achieve goals with the product


    • Business/User/Product requirements

  • Non-Functional: Place constraints on what goals should be met


    • Usability, Reliability, Performance

300

List aspects of Microservice architecture

Microservice are small business services that can work together and can be deployed independently

Agility, small, fault/data isolation, scalable

Complex, data integrity issues, network problems


300

Object vs. Class Diagram

  • Class Diagram: Maps out the static structure of a system using classes, attributes, methods, and relationships.

  • Object Diagram: Shows a snapshot of specific object instances and their relationships at a precise moment in time.

300

YAGNI Acronymn and meaning

You Aren't Gonna Need It: Avoid building features or adding complexity in anticipation of future needs until they are actually required.

400

What do software engineers do?

  • Extracting/analyzing/writing requirements

  • Building prototypes/developing and writing designs

  • Researching domains, Developing,testing, and recording software

  • Isolating problems and solving them

  • Attending meetings, archiving, getting ready for distribution

400

Name at least three phases of SDLC

  • Concept

  • Requirements

  • Design

  • Development

  • Test

  • Maintenance

400

List aspects of layered architecture 

  • Organizes a system into layers with distinct responsibilities

  • Provides services to layer above, communicates with layer directly below

  • Widely used in web, desktop, and enterprise applications

  • Improves organization and maintainability but can become rigid

400

Static vs. Dynamic Diagrams

Static Diagrams: model the structure of a system (what it is made of)

  • Architecture, components, relationships

Dynamic: model the behavior of a system (how its parts interact over time)

  • Workflows, logic, state changes

400

Define Encapsulation and Inheritance

  • Encapsulation: Bundling data and methods into a single unit (a class) and hiding internal details from the outside

  • Inheritance: Letting a new class adopt the properties and methods of an existing parent class to reuse code.

500

Define each:

Requirement Analysis, Software Design, Process Planning, Process Control, Verification/Testing

  • Requirement Analysis: determine needs and constraints

  • Software Design: determine ways to satisfy requirements and constraints

  • Process Planning: determine product development tasks, precedence, and potential risks

  • Process Control: determine methods for controlling project and process, measure progress, measure progress, and take corrective action where necessary

  • Verification, Validation, and Testing: Evaluate final produce and documentation

500

Name and Define each aspect of the WRSPM Reference

  • World: World assumptions influence our system and problem domain

  • Requirements: User understanding of what they want from the solution

  • Specifications: Interface between how system will meet user requirements

  • Program: Code and programs that meet specifications in accordance with user requirements

  • Machine: hardware specifications

500

What is MVC?

Model-View-Controller:

Separates an application into three components: Model, View, Controller

  • Model manages data, View displays info, Controller handles input and communicates between other two

  • Improves organization, maintainability, testability

500

Name and define three structural diagrams

  • Class Diagram: Maps out the static structure of a system using classes, attributes, methods, and relationships.

  • Object Diagram: Shows a snapshot of specific object instances and their relationships at a precise moment in time.

  • Component Diagram: Illustrates the organization and dependencies of software components.

  • Deployment Diagram: Maps out the physical or virtual hardware and the software deployed on it.

  • Package Diagram: Groups elements into packages to show architectural dependencies and organize namespaces.

  • Composite Structure Diagram: Depicts the internal structure of a class or component, including ports and connectors.

  • Profile Diagram: Extends UML vocabulary using stereotypes and tag definitions for specific domains

500

Name Core Values of Agile Software Development

  • Individual and Interactions - process and tools

  • Working Software - comprehensive documentation

  • Customer collaboration - contract negotiation

  • Responding to change - following plan

M
e
n
u