True/False:
Software Engineering is a systematic approach to the analysis, design, assessment, implementation, test, maintenance, and reengineering of software
True
What does SDLC Stand for?
Software Design Life Cycle
True/False:
Software Architecture includes and influences availability, scalability, performance, and reliability
True
An object diagram and class diagram is the same thing
False
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?
What kind of software do SWE aim to deliver?
High-quality software on time and on budget
What is SDLC?
A structured process that enables production of high-quality and low-cost software
What is software architecture?
It defines the structure and how components interact
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
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
Who is Margaret Hamilton?
- American Computer Scientist, one of the first programers.
- Created term "Software Engineer"
- Major role in flight for NASA Apollo program
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
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
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.
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.
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
Name at least three phases of SDLC
Concept
Requirements
Design
Development
Test
Maintenance
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
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
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.
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
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
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
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
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