Lecture 3
23 Questions
1 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

What are the software process models?

waterfall model, prototyping model, iterative/incremental model, spiral model, rational unified process, agile methods

Define waterfall model.

sequential software development process. A phase must be complete and absolutely correct before moving on to the next phase. Progress falls from top to bottom like a waterfall.

What are the difficulties of using a waterfall model?

Hard to respond to changing customer requirements . Designers will have to fully predict the problems and produce a correct design before implementation. This model is only appropriate when the requirements are well-understood, and changes will be fairly limited during the design process.

Define prototyping model.

<p>Gather requirements and make a quick design and build a mock up. Then show it to the customer for feedback. If the customer is not satisfied, the prototype will be revised until satisfied. Once, the prototype is refined, the programmer can start building the software.</p> Signup and view all the answers

What are the advantages and disadvantages of using a prototyping model?

<p>Advantages: Users are actively involved, time and cost is reduced, quicker user feedback is provided for better solution. Prototyping can improve the quality of requirements and specifications provided to developers.Disadvantages: User can think that the prototype that will be thrown away later is actually the final system and get confused, developers can get attached to the prototype that they spend time building and can lead to trying to convert the prototype into the final system, some developers may accidentally spend a lot of time building the prototype. Start up cost to build a team to make the prototype can be expensive.</p> Signup and view all the answers

Define incremental and iterative model.

<p>Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality. User requirements are prioritized, and the highest priority requirements are included in early increments. At each iteration, design modifications are made, and new functional capabilities are added.</p> Signup and view all the answers

What are the advantages and disadvantages of incremental and iterative model?

<p>Advantage: The cost of accommodating changing customer requirements is reduced. More rapid delivery and deployment of useful software to the customer is possible. Early increments act as a prototype to help draw out requirements for later increments. Lower risk of overall project failure. The highest priority system services tend to receive the most testing. Disadvantage: Some costs will be repeated, system structure tends to degrade as new increments are added. Unless time and money is spent on refactoring to improve the software, regular change tends to corrupt its structure. Incorporating further software changes becomes increasingly difficult and costly.</p> Signup and view all the answers

Define spiral model and its usage.

<p>A combination of prototyping with iterative model. Process is represented as a spiral rather than as a sequence of activities with backtracking. Each loop in the spiral represents a phase in the process. Risks are explicitly assessed and resolved throughout the process. The spiral model is mostly used in large projects. Game development is a main area where the spiral model is used and needed.</p> Signup and view all the answers

Define agile methods.

<p>The agile method is a way to manage and deliver a project by working short and fast. It emphasizes on working closely with customers, making frequent small updates, being flexible and quick to adapt to changes, prioritizing people and team work over strict processes, delivering working parts of the project regularly for feedback.</p> Signup and view all the answers

What are the 12 principles of Agile Principles and how to use them in your project?

<ol> <li>Satisfy the customers through early and continuous delivery.</li> <li>Welcome change requirements, even in late development.</li> <li>Deliver working software frequently, with a preference to a shorter time scale.</li> <li>Business people and developers must work together daily throughout the project.</li> <li>Build projects around motivated individuals. Give them the environment and support they need and trust them to get the job done.</li> <li>construct a face to face conversation because that is the best way to exchange information to and within a development team.</li> <li>Working software is the primary measure of progress.</li> <li>The sponsors, developers and users should be able to maintain a constant pace.</li> <li>Continuous attention to technical excellence and good design will enhance speed.</li> <li>Teams can work efficiently and save time and resources by focusing only on what is truly necessary.</li> <li>The best architecture, requirements and designs come from self-organizing teams.</li> <li>The team should reflect on how to become more effective then adjust themselves regularly.</li> </ol> Signup and view all the answers

Explain scrum.

<p>Scrum is a part of the agile framework for managing work on complex projects. It involves a small and cross functional team working in short cycles called sprints. Each sprint typically last between 2 to 4 weeks. Product is designed, coded, and tested during the sprint.</p> Signup and view all the answers

Who are part of the scum team?

<p>Scrum team consists of Product owner: a person who defines the features of the product, decides on the release date and content, prioritize features based on the market value and adjust them every iteration if needed, accept or reject work result. Scrum master: manages the project and makes sure the team is fully productive and functional. Responsible for making sure each member is following the scrum practices and values. The team: self organizing and cross-functional. E.g. programmers, testers, user experience designers, etc.</p> Signup and view all the answers

What is the purpose of the sprint planning meeting? Who attends it and what did they discuss?

<p>The purpose of a sprint planning meeting is to determine what work will be done during the upcoming sprint. Attendees include product owner, scum master, and the development team. During this meeting, they discuss and prioritize the user stories or tasks to be completed in the sprint, estimating their effort and decide how to complete them.</p> Signup and view all the answers

What is the purpose of the daily scrum meeting? Who attends it and what did they discuss?

<p>The purpose of a daily scrum meeting is to provide a brief status update on the progress of the team's work. Attendees include the development team members and the Scrum Master. They discuss what they worked on since the last meeting, what they plan to work on next, and any obstacles or blockers they encountered.</p> Signup and view all the answers

What is the purpose of the sprint review meeting? Who attends it and what did they discuss?

<p>The purpose of a sprint review meeting is to demonstrate the completed work from the sprint to stakeholders and gather feedback. Attendees typically include the product owner, the development team, the Scrum Master, and relevant stakeholders. During the meeting, the team showcases the completed user stories or tasks, discusses any challenges encountered, and receives feedback from stakeholders to inform future iterations.</p> Signup and view all the answers

What is the purpose of the sprint retrospective meeting meeting? Who attends it and what did they discuss?

<p>The purpose of a sprint retrospective meeting is to reflect on the previous sprint and identify areas for improvement. Attendees include the development team members and the Scrum Master. They discuss what went well during the sprint, what could be improved, and actionable steps to enhance their process in the next sprint.</p> Signup and view all the answers

1st rule of ACM code of ethics for software development

<p>Public: act consistently with the public interest, e.g. accept full responsibility for your own work, approve software only if it does not reduce the quality of life, violate their privacy or harm the environment. Therefore, you need to make sure that the app passes all test cases, meets specifications and is safe. It should also have diversity; you must consider making your app accessible to people with disability.</p> Signup and view all the answers

2nd rule of ACM code of ethics for software development

<p>Client and employer: act in a manner that is in the best interests of their client and employer, consistent with the public interest, e.g., refrain from using third party apps that are illegal or unethical knowingly or unknowingly. Keep confidential information private. And only accept ethical work from employers.</p> Signup and view all the answers

3rd rule of ACM code of ethics for software development

<p>Product: ensure that their products and related modifications meet the highest professional standards possible, e.g.: Strive for high quality, acceptable cost and a reasonable schedule, Ensure adequate testing, debugging, and review of software and related documents on which they work. Identify, define and address ethical, economic, cultural, legal and environmental issues related to work projects.</p> Signup and view all the answers

4th rule of ACM code of ethics for software development

<p>Judgement – maintain integrity and make decisions based on your own experience, expertise and analysis without being affected by external factors such as bias, pressure from others and so on. Only accept documents that are under supervision or falls within expertise and agreement. Openly share the conflicts that cannot be avoided.</p> Signup and view all the answers

5th rule of ACM code of ethics for software development

<p>Management – ensure good management on which they work, including effective procedures for promotion of quality and reduction of risk. Make sure that there is a fair agreement about who is doing what work.</p> Signup and view all the answers

6th of ACM code of ethics for software development

<p>Profession – make sure to have integrity and the reputation that aligns with the public interest. You can achieve that by building high quality apps, properly test and review them and deliver what you promised.</p> Signup and view all the answers

7th and 8th rule of ACM code of ethics for software development

<p>Colleagues – be fair and support your colleagues. Self – always keep learning and improving yourself.</p> Signup and view all the answers

More Like This

Use Quizgecko on...
Browser
Browser