a step-by-step structure with milestones and stages
Process
This shows how the major pieces of the final application will fit and interact at an abstract level
High-level design
means being flexible and adaptable to challenges
Agile mindset
You should be writing code as simple as possible. One of the rules of basic programming is to never get caught up in trying to be overly clever
KISS method
a systematic approach to the analysis, design, assessment, implementation, test, maintenance and reengineering of software
Software Engineering
A technical definition of what is required for building a system.
specification
Allows multiple users to access shared resources from a central location
client-server
XP, Scrum, and Nexus are these things
frameworks
Every class or module in a program should only provide one specific functionality.
Single Responsibility
one of the first computer software programmers and made the term "software engineering"
Margaret Hamilton
Name the 3 characteristics of good requirements
complete, consistent, unambiguous
Breaks larger tasks into smaller functions
function-oriented design
Instead of working on several different things at once, the entire team will focus on a limited set of high value tasks.
high value tasks
Refactoring code means reviewing your code and looking for ways to optimize it, making it more efficient while keeping the results exactly the same.
refractor
NATO sponsored a conference dedicated to the topic of software engineering on this year
1968
Code and programs that meet the specifications in accordance with user requirements
program
These are where the inner APIs go to the API management system
data sources
In 1990s, the majority of software projects were failing because they spent too much time working on this
software features that no one will use
This is a set of well-defined instructions to solve a particular problem. It takes a set of inputs and produces the desired output.
algorithm
a professor of mathematics, found the bug Pentium
Thomas Nicely
This language lets you specify how parts of the system work
UML or Unified Modeling Language
These diagrams help to understand object behavior and their relationships at a particular moment.
object diagram
an agile software development framework that aims to produce higher quality software and higher quality of life for the development team.
XP or extreme programming
fully customised along with data and security
Build
implement new features, does pair programming, and refactors code for others
entry-level software engineer