Software Engineering Flashcards
Traits of Successful Software Engineers
- Sense of individual responsibility
- Aware of the needs of team members and stakeholders
- Honest about design flaws and offers constructive criticism
- Resilient under pressure
- Sense of fairness
- Attention to detail
- Pragmatic
Software Engineer
- A software engineer uses engineering principles to plan, design, develop, test, and maintain computer software and mobile applications.
What is software?
Software is a set of items or objects that form a “configuration” that includes
1. Instruction
2. Data structure
3. Documentation
Software roles
- A product
- A vehicle for delivering a product
why is Software a product
o Delivers computing potential
o Produces, manages, acquires, modifies, displays, or transmits information
why is software a vehicle for delivering product
o Supports or provides system functionality
o Controls other programs
o Effects communication
o Helps build other software
process pattern types
stage pattern, task pattern, phase pattern
Framework activities
o Communication
o Planning
o Modeling
o Construction
o Deployment
Umbrella activities
- Software Project Tracking and Control
- Risk Management
- Software Quality Assurance
- Technical Reviews
- Measurement
- Software Configuration Management
- Reusability Management
- Work Product Preparation and Production
Importance of software engineering
- The number of people who have an interest in the features and functions provided by an application has grown dramatically
- The requirements have grown complex, the programs have to be developed by large teams of people
- Individuals, businesses, and governments rely on software for strategic and tactical decision-making as well as day-to-day operations and control
- As the perceived value of an application grows, it is likely that its user base and longevity grows, and demands for adaptation and enhancement will grow
Software process
an adaptable approach that enables the software team to choose the appropriate set of work actions and tasks
polya’s problem solving
- Understand the problem
- Plan a solution
- Carry out the plan
- Examine the results for accuracy
Software Engineering Domain
- System software
- Application software
- Engineering/ Scientific software
- Embedded software
- Product-line software
- AI software
Why must software change?
- Software must be adapted to meet the needs of new computing technology
- Software must be enhanced to implement new business requirements
- Software must be extended to make it interoperable with other more modern systems
- Software must be re-architected to make it viable within a network environment
Software Categories
WebApps
Mobile Application
Cloud Computing
Product-Line Software
Task set
the actual work to be done to accomplish the objectives of a software engineering action
Process Pattern Types
o Stage pattern
o Task pattern
o Phase pattern
Process Assessment and Improvement
- Standard CMMI Assessment Method for Process Improvement
- CMM-Based Appraisal for Internal Process Improvement
- The SPICE
- ISO 9001:2000 for Software
Standard CMMI Assessment Method for Process Improvement
provides a five-step process assessment model that incorporates five phases: initiating, diagnosing, establishing, acting, and learning.
CMM-Based Appraisal for Internal Process Improvement
provides a diagnostic technique for assessing the relative maturity of a software organization; uses the SEI CMM as the basis for the assessment
The SPICE
defines a set of requirements for software process assessment. The intent of the standard is to assist organizations in developing an objective evaluation of the efficacy of any defined software process
ISO 9001:2000 for Software
a generic standard that applies to any organization that wants to improve the overall quality of the products, systems, or services that it provides. The standard is applicable to software organizations and companies.
describe Prescriptive Process Models
- Prescriptive process models advocate an orderly approach to software engineering
state the prescriptive process models
- The Waterfall Model
- The V-Model
- The Incremental Model
- The Evolutionary Model