SE Processes (WK1&2) Flashcards
Why do we care about software costs?
Software costs dominate computer system costs. Software costs more to maintain than it does to develop. Often software engineering is concerned with cost-effective development.
What are 4 general issues that affect software?
- Heterogeneity (need to be able to evolve across different devices)
- Business and social change
- Security and trust ( we need to be able to trust software)
- Scale (software is developed across a massive range of scales, need to be able to scale up)
What are the two types of software products?
Generic products (stand-alone systems put out on the market for the public)
Customised products ( specially commissioned software)
What are the four attributes of good software?
- Maintainability
- Dependability and security
- Efficiency
- Acceptability (for users of the software, this includes compatibility)
What is software reuse?
A dominant method for web-based systems, is when you think about using pre-existing technologies and software
What are the professional responsibilities (ethics)?
- Confidentiality
- Competence
- Intellectual property rights
- computer misuse
Discuss plan driven vs Agile processes
Plan driven processes are where every activity is planned in advance - lots of documentation
Agile processes are incremental and iterative, and focus on faster delivery - less focus on planning and documentation
What is a software process?
- process is the activities involved in producing a system, can be agile or plan-driven
- process models are abstract representation of these processes
What is the software specification process?
Figuring out what services are required and the constraints on the systems development and operation. Involves: feasibility, requirements analysis/specification/validation
What is the software design and implementation process activity?
This is where the system specification is converted into an executable system. Involves software design and implementation.
What is the software validation process activity?
This is where the system is checked and reviewed! Verification (does it work) and validation (does it meet expectations) check the specification and requirements against the result. Testing is the most common v&v activity
What is the software evolution process activity?
As requirements change through circumstances, this is the software keeping up with changes.
Describe the waterfall model
Plan-driven software model. Seperate and distinct phases of specification and development.
- Can be difficult to respond to change due to the inflexible nature of this model.
- Mostly used on large system engineering projects
What are the benefits and problems of incremental development?
Benefits:
- more rapid delivery of useful software
- easier to get feedback on the development work that has been done
- lower cost of accomodating changes
Problems:
- The process is not visible (more adhoc)
- system structure tends to degrade, as the regular software change tends to not be as well managed and over time these changes can corrupt the structure
What is the integration and configuration process model?
Based on software reuse, where systems are integrated from existing components or application systems (COTS parts). Will generally require some configuration/adaptation.
- Has reduced costs and risks.
- Faster deployed
- BUT, less control over the outcome and evolution of the components