Other (Week 1,2,3) Flashcards
Software Engineering vs Computer Science?
Computer Science
- Focuses on understanding, designing, and developing programs and computers.
Software Engineering
- Building and maintaining software systems. From idea to final product
Tar pit?
Large system programming, many great and powerful beasts have thrashed violently in it.
Schedule Oriented Practices?
Speed-Oriented Practices
Schedule-Risk Oriented Practices
Visibility-Oriented Practices
Best Possible Schedule?
- Avoid Classic Mistakes
- Apply Development Fundamentals
- Manage Risks to Avoid Setbacks
- Apply Schedule Oriented Practices
5 Principles of Software Staffing?
Top Talent Career Progression Misfit Elimination Job Matching Team Balance
People Related Mistakes?
Undermined Motivation Weak Personnel Uncontrolled Problem Employees Adding People to Late project Unrealistic expectations
Process Related Mistakes?
Overly optimistic schedules
Contractor Failure
Insufficient Risk Management
Insufficient Planning
Management Fundamentals consist of?
Size of product (functionality)
Complexity,
Other product characteristics
Resource Management
3 Basic steps to create a software schedule?
Estimate the size of the project
Estimate effort needed
Estimate schedule based on the estimate
Fundamental topics in architecture and design?
Major Design Styles (object design, structured design, data structure design) Foundational Design Concepts (information hiding, modularity, abstraction, encapsulation, basic data structures) Standard Design Approaches (exception handling, internationalization, portability, i/o, memory management, data storage) Design Considerations (financial applications, scientific applications) Architectural Schemes (subsystem organization, logging)
Construction Fundamentals?
Coding Practices (variable naming, layout, documentation)
Data-related concepts (including scope, persistence, and binding time)
Control-related concepts (using conditionals, controlling loops)
Assertions and other code-centered error detection practices
Rules for packaging code into routines, modules, classes and files
Unit testing and debugging practices
Software Configuration Management?
Is the practice of managing project artifacts so that the project stays in consistent state over time.
SCM Practices?
Evaluating proposed changes,
Tracking changes,
Handling multiple versions
Agile Points (Class)
- You have to know when to say no
- Communication, frequency, transparency
- Process is adaptive, incrementally refined
- Continuous tradeoff
- Highly iterative
- Customer has to be involved