QA of SE lecture slides Flashcards
Exam questions SE (12 cards)
What are some legal issues software engineers need to look out for?
- Intellectual property rights = Engineers should be made aware of local laws governing use of intellectual property like copyright, patents. Be mindful that intellectual property of employers and clients is protected
- Computer Misuse = Engineers should not use their technical skills to misuse other people’s computers. This ranges from a bit trivial (game playing on another machine) to something much more dangerous (dissemination {spread} of viruses)
What are the 8 ethical principles software engineers need to abide by?
- PUBLIC = All engineers shall act consistently with public interest
- CLIENT AND EMPLOYER = All engineers shall act in a manner that is in the best interest of their client and employer consistent with public interest
- PRODUCT = All engineers shall ensure that their products and related modifications meet the highest professional standards possible
- JUDGEMENT = All engineers shall maintain integrity and independence in their professional judgement
- MANAGEMENT = All engineer managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance
- PROFESSION = All engineers shall advance the integrity and reputation of the profession consistent with public interest
- COLLEAGUES = All engineers shall be fair and supportive of their colleagues
- SELF = All engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession
What are some of the case studies of software systems and how do they function?
- Personal insulin pump - An embedded real-time system used in the medical device domain
- Mentcare (mental health management system) - An information system used in healthcare for patient record management.
What is a software process model?
It is an abstract representation of a process. Descripting the process from some particular perspective
What are the different types of processes software engineers go through?
- Plan-driven process = They are processes where all the process activities are planned in advance and progress is measured against this plan
- Agile processing = This is where planning is incremental, and it is easier to change the process to reflect the changing customer requirements.
What are some software process models engineers do?
- Waterfall model = plan-driven model. separate and distinct phases of specification and development
- Incremental development = Specification, development and validation are interleaved {overlap and repeated multiple times}. May be plan-driven or agile.
- Integration and configuration = System is assembled from existing configurable components. May be plan-driven or agile.
What does the waterfall model compose of?
and what is the drawback of using this model?
- Requirements analysis and definition
- System and software design
- Implementation and unit testing
- Integration and system testing
- Operation and maintenance
The drawback of this model is that each process has to be completed before moving onto the next, so changes are hard to be made whilst a process is occurring.
What does the incremental development model conduct of? and how does the 80/20 rule come into action?
It uses interleaved specification, development, and validation in cycles, producing intermediate versions. Each cycle can deliver a usable system, allowing early delivery of core features before final completion
Each iteration can deliver a usable system, and by applying the 80/20 rule, teams may choose to release early—like choosing to fix a 20% system bug that affects 80% users rather than vice versa.
What are the advantages of using the incremental development model?
+ Cost of accommodating changing customer requirements is reduced
+ It is easier to get customer feedback on development work that has been done
What are the disadvantages of using the incremental development model?
– Process isnt completely visible
– System structure tends to degrade as new increments are added
What are the key stages in the reuse model?
- Requirements specification
- Software discovery and evaluation
- Requirements refinement
- Application system configuration
- Component adaptation and integration
What are the advantages and the disadvantages of using the reuse model?
+ Reduced costs and risks
+ Faster delivery and deployment of system
–System may not always meet real needs of users
–Loss of control over evolution of reused system elements