SWE 3313 Exam 1 Part 1
what a program needs to do
Functional Requirements
The manner in which the functional requirements need to be achieved
- Real-time requirements (timing)
- Performance requirements (quality)
- Modifiability requirements
- Security requirements
- Usability requirements
Nonfunctional requirements
Statements that constrain the ways in which the software can be designed
- User interface
- Platforms
- Schedule requirements
Design constraints
The steps and thoughts related to design decisions
- Programming language
- Algorithms
Design Decisions
consistent names, capitalization, and programming conventions; know thy standard library; test and review code
Implementations
done by clients, or somebody on their behalf, to make sure the program runs as specified. If this testing fails, the client can reject the program
Acceptance testing
determine whether the developers are building the correct system for the client, and verification tests determine if the system build is correct
Verification & Validation test
testing a system with no prior knowledge of its internal workings; identify how the system responds to expected and unexpected user actions, its response time, usability issues and reliability issues
Black Box Testing
tests the internal logic of the software application. It uses knowledge about how the application works and its programming code to test for any errors
White box testing
more functionalities, features, interfaces and linkages to other components, users, and data
Breadth of complexity
more linkages and connections, data sharing among functionalities and logic, control passing among functionalities, nest loops among logic, and multiple hierarchical levels among functions
Depth of complexity
4 Activities for attacking complex problems
1. Decomposition
2. Modularization
3. Separation of concerns
4. Incremental iterations
process of breaking down complex problems into smaller, more manageable parts
Decomposition
process of separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality
Modularization
Continuous Integration/Continuous Deployment or CI/CD
1. continuously integrating the completed functionality
2. delivering that feature to the users
3. having the users deploying that functionalities
with multiple developers everyone has different experience; a common programming language, development tools, database, network, middleware, etc. need to be decided
Technology and Tool Considerations
1. Effort Estimation and Schedule
- cannot be too optimistic or aggressive
2. Assignment of the most effective and properly skilled people for the right tasks
Nontechnical Considerations of Development and Support
[n*(n-1)]/2
Number of communication Paths Formula
scope (meet requirements/specifications), schedule (delivered on time within budget), and quality (meet/exceed set quality standards)
Iron Triangle of Project Management
planning, organizing, monitoring, and adjusting
Four phases of project management (POMA)
- understand the requirements of the project
- perform estimation of work effort, schedule and needed resources
- Establish measurable goals
- Identify and analyze project risks
Planning
part of the planning process; three components: risk identification, prioritization, and mitigation
Risk Management
Risk matrix where likelihood is the vertical axis and impact is the horizontal axis
Risk Prioritization method
- Avoidance: costs of mitigating risks are more than the benefits
- Acceptance: sufficiently low estimated field failure rate
- Transfer: allocating a portion of risk to a third party
- Monitoring: identifying any changes that can affect the impact of the risk.
Risk Mitigation approaches
design organization structure, human resource hiring, education and training, mechanism for track/monitoring the project, risk tracking, project goals
Organizing
regular tracking to ensure that it is headed in the right direction
- Collection of project information (what and how)
- Analysis and evaluation of collected information
- Presentation and communication of project status
Monitoring
used to spot changes in the project environment so that you can plan and make adjustments accordingly; comparing costs from one month to another or comparingestimates with actuals over several weeks or months
Trend Analysis
technique that involves examining the series of input variables in relations to the corresponding output results
Regression Analysis
if the monitoring process indicates any need for adjustment, then the project management team must take timely actions
- Main areas: resources, schedule, and project content
Adjusting
(POma) resources, times, human skills (knowledge/experience), and cost
Project Effort Estimation