Software Engineering Final Exam| Verified Solution
Software Engineering Final Exam| Verified Solution Name some ways VCS systems help in software development. - Keep records of changes - Allow collaborative development - Know who made changes to what - Revert changes - Build/release management Centralized VCS - Commit directly to remote - Server has main copy - Ex: Subversion Distributed VCS - Commit locally, push and pull to remotes - No one has main copy - Ex: Git What are the advantage of DVCS over Centralized VCS? - Can commit locally and push once you're ready - Don't need internet connection to commit GitHub Workflow (0. Fork if not part of organization) 1. Clone 2. Branch 3. Commit 4. Pull in branch you want to merge to 5. Push to origin (GitHub) 6. Make pull request/get feedback 7. Merge pull request 8. Delete branch Git Branch Split in commit history, lets you work in parallel Git Fork Copy of someone else's repo on GitHub Git Clone Get local copy of repo Git Origin Default remote (GitHub in our case) test bj ;P Git Master Main branch Git HEAD Latest commit of current branch 4 Aspects of a Dependable System Availability Reliability Safety Security (R ASS) Software Quality Measurements 1. Sufficiency 2. Robustness 3. Reliability 4. Flexibility 5. Efficiency 6. Scalability 7. Re-usability 8. Security Be able to read, interpret, modify and create UML use-case diagrams Use case diagrams are a representation of a user's interaction with the system. Similar to user stories but more formal and complex. Includes a summary of usage requirements, from the users point of view, includes the basic course of events as well as alternative paths and preconditions and post conditions. Reliability Measure of the average amount of time between failures Efficiency How well a component satisfies speed or storage requirements Scalability Measure of the ability to use the component as scope increases Flexibility Measure of how adaptable to 'reasonable' changes in a component is Reusability How usable a component is in related applications without modification Robustness How well the component will recover from anomalous events Functional Requirement Requirements about the functionality of the product Non-Functional Requirement Relate to quality attributes (reliability, testability, efficiency, usability, etc.) What is INVEST? Good user stories are: Independent Negotiable Valuable Estimable Small Testable Epic Large feature/user story Why do we need requirements? Need to know what features to focus on, what we don't need to worry about Class Association Most generic kind of relationship. ie. "instructor teaches a class" Class Aggregation More specific kind of relationship. "has-a-relationship" or "is a part of relationship". The part can exist independent of the whole. Empty diamond Class Composition Even more specific relationship. "consists-of relationship" or "contains relationship". The part cannot exist independent of the whole. Filled diamond. Generalization child is more specific versions of the parent child inherits attributes, associations, & operations from the parent child can override an inherited aspect Be able to read, interpret, modify and create UML activity diagrams Used to model business process, or a single usage scenario or a business rule. Graphical representation of activities or workflow, where the different shapes have different meanings. Black circle represents the start. Rounded rectangles represents actions. Diamonds represent decisions. Black bars represent concurrent activities. 3 C's of a user story - Card - Conversation - Confirmation Be able to read, interpret, modify and create UML class diagrams Objects do not exist in isolation. UML shows these relationships: association, aggregation and composition, generalization, dependency.
Información del documento
- Subido en
- 15 de febrero de 2024
- Número de páginas
- 14
- Escrito en
- 2023/2024
- Tipo
- Examen
- Contiene
- Preguntas y respuestas